Beyond Chat: Tree-based Problem Solving
Problem solving and software design is essentially a graph search in a solution space. Yet most generative AI interfaces force us into linear conversations.
Compression of Software Journey
Problem solving and software design is essentially a graph search in a solution space. Yet most generative AI interfaces force us into linear conversations.
I’ve always been curious in nature and experimenting with countless projects. Some make it as open source to Github . Many more just sit on my disk, never seeing daylight.
How to onboard a new developer to a codebase?
The paper The Paradox of Software Visualization by Steven Reiss opens with a question:
It’s been a while since the last update about Closh. The reason is that I wanted to finish the GraalVM port before a release. Unfortunately, the port proved more difficult. I kept working on it but kept running into more issues delaying the release. So I finally claimed a defeat in this round and went for a release without it.
Often times there is a need to extract information or do a transformation involving structured data in formats like JSON, XML and others. For one-off tasks a command line is very useful but traditional tools like sed and awk are lacking in these cases. What other tools can we use to work with data on the command line?
The purpose of this post is to go through possible features and summarize the design of the script mode for Closh . It can be divided into two parts. I am going to start with definition of CLI arguments. The second part describes details of the script mode behavior.
I’ve been using bash for a nearly a decade and half. During that time I’ve seen very little innovation of bash and command line shells in general. The frustration with lack of innovation culminated in October last year. As I’ve been discovering the power and beauty of Clojure I got a spark of inspiration. I hacked together a proof of concept to see if it would be viable to use Clojure as a…
One great feature of modern command shells that improves experience is the tab-completion of commands. After typing part of a command and hitting the TAB key the shell presents list of possible completions of a given command. For some commands the completions are quite sophisticated. Lets look how it works for most common shells.
The command-line interface (CLI) is a powerful way to control computers. However, it is also quite difficult to learn and more complicated to use. Graphical user interfaces (GUI) offer alternative approach that is more intuitive and easier to use but they loose some power. My goal is to explore an approach that takes power from CLI and intuitiveness from GUIs.