Skip to main content

3 posts tagged with "engineering"

View All Tags

LLMs and an optimistic take on the future of software engineering

· 12 min read

“Give me a lever long enough and a fulcrum on which to place it, and I shall move the world.” — a quote attributed to Greek mathematician and physicist, Archimedes.

Archimedes lifting the world

Archimedes' lever (image credit 1)

I vividly recall my early days of programming: the dopamine hits after seeing my code successfully compile and my program run; the thing that I imagined suddenly coming to life on screen. Programming was difficult and knowledge hard-won, perhaps due to my skill level at the time and the fact that documentation and guidance were not so readily available.

These were the days of 56k dial-up, GeoCities and Quake III Arena. Websites were individually-crafted and online communities were mostly decentralised. Programming knowledge was dispersed across small and dedicated websites and communities. Then came the rapid proliferation of open-source software and Stack Overflow's arrival, which changed the scene again, centralising programming discussions, better disseminating knowledge and example code.

The world looks very different now and the landscape is shifting dramatically once more. A pivotal moment arrived in 2022 with the release of ChatGPT, the generative artificial intelligence (AI) chatbot from OpenAI, which is based on their Generative Pre-trained Transformer (GPT) Large Language Model (LLM).

While the initial implications might have been hazy, with each subsequent advancement, the power of LLMs and their place in our future is becoming clearer.

Footnotes​

  1. Credit for the image to ZDF, Terra X, Gruppe 5, Susanne Utzt, Cristina Trebbi, Jens Boeck, Dieter Stürmer, Fabian Wienke, Sebastian Martinez, which has been cropped and is licensed under the Creative Commons Attribution 4.0 International license. ↩

'Command not found' when running chruby

· 2 min read

Following the Ruby community’s advice to avoid using the system-installed Ruby instance for development, you install chruby using the official installation instructions and intend to configure your Ruby versions using ruby-install. After installing chruby, you open a terminal and see the following error when running the command on your Unix-like OS (Ubuntu Linux or MacOS):

$ chruby
chruby: command not found

Detecting regression commits using git bisect

· 2 min read

Locating the commit that introduced a regression, or some undesirable change, in a codebase can be difficult. Locating the same in a frequently-changing codebase with a large number of contributors is harder again.

Fortunately git bisect provides a helpful tool for doing precisely this. Rather than performing a linear search of the commits, git bisect uses a clever binary search algorithm to locate the offending commit far more efficiently.