<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>on breakpoint</title><link>https://onbreakpoint.com/</link><description>Recent content on on breakpoint</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 02 Oct 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://onbreakpoint.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Writing Code vs. Writing Prose</title><link>https://onbreakpoint.com/writing-code-vs.-writing-prose/</link><pubDate>Thu, 02 Oct 2025 00:00:00 +0000</pubDate><guid>https://onbreakpoint.com/writing-code-vs.-writing-prose/</guid><description>&lt;h1 id="writing-code-vs-writing-prose">Writing Code vs. Writing Prose&lt;/h1>
&lt;p>Programming languages were developed because natural language isn&amp;rsquo;t adequate to communicate
instructions to computers. Unlike natural language, programming languages have strong composability:
you can take a line of code and start putting things into it or removing things from it to
drastically change its meaning. Doing that with natural language is also possible, but not the
extent that it is with a programming language. With code, operations can be stacked, complex
behavior (which would take dozens of sentences to explain properly in natural language) can be
represented with a couple of lines of code, and special notation/syntax is developed to aid
readability.&lt;/p>
&lt;p>Because code is so malleable, you can take a poorly-written codebase and improve it little by
little, incrementally, until you&amp;rsquo;re left with something which is pretty decent. You can&amp;rsquo;t really do
the same with prose. You can make slight adjustments, but you can&amp;rsquo;t convert a terrible book into a
great one by revising it repeatedly. Sometimes the whole point of good prose is to have good flow
and that flow is often ruined by heavy editing.&lt;/p>
&lt;p>Code differs from natural language in that code is used to control a computer. Natural language is
used to communicate to another human. Thinking in a language that&amp;rsquo;s been designed to control
computers isn&amp;rsquo;t natural for the human brain, that&amp;rsquo;s why programmers use tight feedback loops and
iterative improvement to get things right. Thinking in natural language is (hopefully) natural for
humans, that&amp;rsquo;s why converting your stream of thought directly into words, without too much
alteration, leads to beautiful prose. To communicate effectively you need a sense of flow and
emotional sensitivity that you just can&amp;rsquo;t improve by increasing the number of iterations.&lt;/p>
&lt;p>Another difference is that, with software, you have proxies for measuring how well you&amp;rsquo;re doing. For
a functional requirement (like adding a new feature, e.g.), you usually have a clear indicator of
success: the feature either works or it doesn&amp;rsquo;t. For a non-functional requirement, you have
benchmarks you can run to test resource usage, latency, frames per second, or some other metrics
that you might find relevant. Writers don&amp;rsquo;t have such proxies. There&amp;rsquo;s no definitive way of knowing
if your writing will resonate with anyone out there.&lt;/p>
&lt;p>As a writer, you take pride in your style and ability to challenge convention. And while programmers
can develop taste and personal style, that&amp;rsquo;s not exactly a hard requirement for writing good code.&lt;/p>
&lt;p>Just like there are different kinds of writing, there are also different kinds of programming. But,
what often ends up happening is that organizations tend to want to unify these differences so they
don&amp;rsquo;t rely on certain programmers if they ever decide to leave. During review, code is often
analyzed and systemically checked against a set of conventions: a colleague can tell you exactly
what you need to do improve your code with regards to what&amp;rsquo;s considered good code within that
organization. On the other hand, an editor can give you pointers, but they won&amp;rsquo;t be able to write
for you and, with the exception of straightforward mistakes, they won&amp;rsquo;t be able to provide
definitive suggestions.&lt;/p>
&lt;p>There are similarities, of course. One thing that code- and prose-writing have in common is that
both activities can be used as a means of exploration, not just as means to an end. Writers often
write to organize their ideas and perhaps generate new ideas in the process of writing, because the
act of putting thoughts into words acts a useful test for assessing one&amp;rsquo;s understating of the topic
at hand. Programmers often write throwaway code to test out certain assumptions before investing
weeks of work with a specific approach.&lt;/p>
&lt;hr>
&lt;p>I&amp;rsquo;ve been thinking about these differences lately because I&amp;rsquo;ve noticed that I have a tendency to
treat my prose like code. When I write a blog article, I always think that I can improve it on the
next sitting. I think of drafts as unfinished projects that can always be tweaked. But, what I&amp;rsquo;ve
found is that if I come up with something that just isn&amp;rsquo;t good enough, no amount of tweaking will do
the job. At that point, starting from scratch and rethinking the entire thing is usually the right
thing to do.&lt;/p></description></item><item><title>Ideas for Tooling in Education</title><link>https://onbreakpoint.com/ideas-for-tooling-in-education/</link><pubDate>Sat, 28 Jun 2025 00:00:00 +0000</pubDate><guid>https://onbreakpoint.com/ideas-for-tooling-in-education/</guid><description>&lt;h1 id="ideas-for-tooling-in-education">Ideas for Tooling in Education&lt;/h1>
&lt;p>I&amp;rsquo;ve found that some of the most useful writing on AI is that of the kind that goes &amp;ldquo;Here&amp;rsquo;s how I
use AI/LLMs/ChatGPT as an X&amp;rdquo; where X is usually a programmer or a researcher of some kind. Simon
Willison, for example, has a series called &lt;a href="https://simonwillison.net/series/using-llms/">How I use LLMs and ChatGPT&lt;/a>
that gives you a decent picture of where AI is actually useful, instead of having to take someone&amp;rsquo;s
word for it.&lt;/p>
&lt;p>Most of my AI use revolves around learning. Ever since these models started getting better at
reasoning and finding references, I&amp;rsquo;ve noticed that I tend to keep a tab open with a chatbot in it
as I&amp;rsquo;m ingesting new information. New tools for education seem to always be either overly-hyped by
early adopters or underappreciated by sceptics. I think that&amp;rsquo;s a testament to how hard learning is:
most new technology is usually effective at getting learners excited/motivated to learn more about
something, but traditional tools &amp;ndash; like just reading a book, for example &amp;ndash; are still the most
effective ways to internalize new information.&lt;/p>
&lt;h2 id="why-learning-is-hard">Why Learning is Hard&lt;/h2>
&lt;p>One of the reasons why teaching &amp;ndash; and presenting information in general &amp;ndash; is hard is that you&amp;rsquo;re
often presenting information to different kinds of people with different backgrounds, different
amounts of context, and with varying levels of intelligence and comprehension. As an educator,
you&amp;rsquo;re often explaining at a pace that is too slow for some, and too fast for others. At other
times, you&amp;rsquo;re presenting information that is too deep for those who only want a shallow
understanding of the topic, or too brief for those who want to know the details.&lt;/p>
&lt;p>This issue of pace is certainly more common in lectures and video materials than in text (i.e.,
textbooks, lecture notes, papers). Text allows the reader to consume the information at their own
pace. So, someone who has plenty of context regarding the material at hand might just skim through
the text. Whereas, someone who hasn&amp;rsquo;t been familiarized with the terminology yet, or hasn&amp;rsquo;t gone
through the necessary prerequisites to understand the material at hand, can read through the text
more slowly, possibly rereading multiple times.&lt;/p>
&lt;p>The problem with traditional text formats regarding the former case is that the learner still has to
spend energy and time skimming through the text &amp;ndash; even if very little to no information is being
retrieved. In the process, the learner could miss important information that they would have wanted
to pay attention to otherwise. Skimming could also make the reader feel disengaged or bored.&lt;/p>
&lt;p>The problem with the latter case (i.e., slowing down the pace or rereading when something is too
challenging) is that it doesn&amp;rsquo;t always work. The alternatives in this case often are: (1) reading
something that&amp;rsquo;s adjacent to what we&amp;rsquo;re trying to learn, (2) reading a textbook on the same topic
that&amp;rsquo;s less technical or easier to approach for our current level of understanding, (3) working
through exercises, or (4) changing the learning medium (e.g., going from text to video). After going
through some of these options, one could go back to tackling the topic at hand more prepared than
before.&lt;/p>
&lt;p>LLMs offer something that&amp;rsquo;s pretty tangible when it comes to solving this issue of pace and
verbosity in learning. The ability to go through some text, find something you don&amp;rsquo;t quite
understand, and then have the LLM explain that for you is not only useful in the sense that you get
more information, but it also means that you now have a knob to control how much time and energy you
want to invest in one topic. You control the depth, verbosity, language, examples, and tone used to
explain a topic.&lt;/p>
&lt;h2 id="knobs-for-verbosity-and-depth">Knobs for verbosity and depth&lt;/h2>
&lt;p>Future tools that aim to utilize AI for learning should try to offer high granularity when it comes
to controlling these knobs. With just these two variables &amp;ndash; verbosity and depth &amp;ndash; you get to
generate four kinds of text:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Low verbosity, low depth.&lt;/strong> A quick and non-detailed explanation of something. Useful for those
who don&amp;rsquo;t want to invest a lot of time on the topic and don&amp;rsquo;t care about the details.&lt;/li>
&lt;li>&lt;strong>Low verbosity, high depth.&lt;/strong> A concise explanation of something. Useful for those that already have
plenty of context about the topic at hand and prefer to get a compact explanation. Examples of
this type of text would include research papers, mathematical proofs, definitions that rely on
specific notation or symbolic language, and algorithms explain through pseudocode.&lt;/li>
&lt;li>&lt;strong>High verbosity, low depth.&lt;/strong> A wordy explanation of something that&amp;rsquo;s not packed with insightful
information. Useful for those who want a gentle introduction to a topic, or for those who just
enjoy reading. Examples could include self-help books, the &lt;a href="https://en.wikipedia.org/wiki/For_Dummies">For Dummies&lt;/a>
reference books, and introductory articles.&lt;/li>
&lt;li>&lt;strong>High verbosity, high depth.&lt;/strong> Lengthy explanation of something that&amp;rsquo;s complex. Textbooks could
be a good example of this category.&lt;/li>
&lt;/ul>
&lt;p>LLMs with high context windows have already gotten better at ingesting large amount of information
and summarizing it into fewer paragraphs [0]. Similarly, extracting more information from
tightly-packed sentences works pretty well too. You do this by picking a sentence that&amp;rsquo;s too dense
&amp;ndash; or assumes prior knowledge which you don&amp;rsquo;t have &amp;ndash; and then feeding it to an LLM to slowly build
up understanding, validating your understanding incrementally by asking questions and having the LLM
prompt you for answers.&lt;/p>
&lt;h2 id="personalized-learning">Personalized learning&lt;/h2>
&lt;p>Controlling verbosity and depth is already a form of personalized learning because you get to choose
the material which is attuned towards your intended time-investment and effort. But, LLMs can still
do better at personalizing the learning experience by allowing you to generate material that&amp;rsquo;s
suited to your current level of understanding, learning style, and background.&lt;/p>
&lt;p>You can decide if, instead of using fictional or over-simplified &amp;ldquo;textbook examples,&amp;rdquo; you want to
read about actual real-world applications of the thing you&amp;rsquo;re reading &amp;ndash; or you can do the opposite:
you may decide that you don&amp;rsquo;t want to get bogged down into the implementation details of something
and ask for a simplified example, instead.&lt;/p>
&lt;p>You could use your current knowledge and prompt the LLM to find differences between the information
you currently have and the one you want to obtain. (This is why books like &amp;ldquo;Java for C++
programmers&amp;rdquo; exist, for example.) This makes it easier to form new connections, increasing the
likelihood that you remember the information at hand.&lt;/p>
&lt;p>You can test your current understanding by posing a question which would showcase whether your
mental model is accurate. There&amp;rsquo;s no societal pressure about being wrong. If your current
understanding is incorrect, you get to test it before building on top of a flawed mental model.&lt;/p>
&lt;p>You should also be able to control the kinds of sources the LLM should ingest information from.
Filtering sources that you don&amp;rsquo;t find to be trustworthy.&lt;/p>
&lt;p>You can go from not understanding a sentence to gathering information incrementally by alternating
between the levels of depth to adapt to the level of effort that you&amp;rsquo;re willing to put in to
internalize that information.&lt;/p>
&lt;p>This closely resembles having a personal tutor. You get many of the
benefits of having a real tutor (see &lt;a href="https://en.wikipedia.org/wiki/Bloom's_2_sigma_problem">Bloom&amp;rsquo;s 2 sigma problem&lt;/a>),
but this one has more energy and patience and won&amp;rsquo;t judge you like a normal tutor would. The
downside being that LLMs cannot replicate the captivating energy of a really good tutor, nor can
they replicate a personality that has a consistent philosophy with strong opinions on certain
matters. They&amp;rsquo;re often very dull so they&amp;rsquo;re probably better off being used as tools for enhancing
learning rather than replacing conventional methods.&lt;/p>
&lt;p>If you are interested to learn more about how we can use AI to improve education,
check out Andy Matuschak&amp;rsquo;s &lt;a href="https://andymatuschak.org/hmwl">How might we learn?&lt;/a> presentation.
The process of learning something new is often too messy to fit into a well-organized flow. The
reason why Andy&amp;rsquo;s work in this problem is compelling to me is that he&amp;rsquo;s been able to pinpoint some
of the most common pain points in the learning process &amp;ndash; like the conflict between implicit and
guided learning, memory retention, social connection &amp;ndash; and has offered tractable solutions.&lt;/p>
&lt;p>There&amp;rsquo;s a plethora of &lt;a href="https://www.ycombinator.com/companies?query=cursor%20for">&amp;ldquo;Cursor for X&amp;rdquo;&lt;/a> type of applications popping up everyday. Yet, I haven&amp;rsquo;t seen
anything that compelling that integrates the current LLM capabilities with &amp;ldquo;the learning
experience.&amp;rdquo; I think any solution offered in this area should also try to promote itself as a
another tool in the student&amp;rsquo;s toolbox, rather than as a new experience that&amp;rsquo;s going to revolutionize
or, even worse, replace traditional learning.&lt;/p>
&lt;hr>
&lt;p>[0] What I&amp;rsquo;m talking about here is still normative: I would like for the depth and verbosity knobs
to be reliable, but that&amp;rsquo;s not always the case. Some models are particularly verbose and instructing
them otherwise sometimes results in missing information, rather than conciseness. Another issue
where these models fail sometimes is when you want something very specific. Sometimes the amount of
effort it takes to get that specific thing often outweighs the effort that you would have otherwise
spent on just looking at a more comprehensive source of information like a book or a paper.&lt;/p></description></item><item><title>Terminal User Interfaces</title><link>https://onbreakpoint.com/terminal-user-interfaces/</link><pubDate>Sun, 25 May 2025 00:00:00 +0000</pubDate><guid>https://onbreakpoint.com/terminal-user-interfaces/</guid><description>&lt;h1 id="terminal-user-interfaces">Terminal User Interfaces&lt;/h1>
&lt;p>Terminal user interfaces (TUIs) have been experiencing something of a revival lately. For example,
&lt;a href="https://github.com/rothgar/awesome-tuis">this repository&lt;/a> lists more than 350 projects, almost 300
of which have over 1000 stars and have received a commit within the last year. This data doesn&amp;rsquo;t
really tell us whether these projects are any good, of course, but it does show the sentiment: TUIs
are back in style.&lt;/p>
&lt;p>It&amp;rsquo;s been interesting to see a new wave of users adopting these tools for day-to-day work. The
keyword here being &amp;ldquo;new&amp;rdquo; because I&amp;rsquo;m not talking about the usual TUI-users: the first being those
who refuse to leave the comfort of their terminal; and the second being those enthusiastic Linux
users who like to post screenshots of their desktops on the Internet. Instead, I&amp;rsquo;m talking about users
who just want to get their work done and move on with their day.&lt;/p>
&lt;p>Even big corporations have started shipping small TUI utilities instead of just doing the obvious
thing (that, of course, being: shipping a browser in the form of an Electron app because that&amp;rsquo;s what
we do in 2025).&lt;/p>
&lt;p>Looking at how user interfaces have evolved over the years, you can see that the TUI model for
representing interactive UI elements via text was pretty common before it became apparent that
interactive elements like menus, buttons, windows, icons, modals, and input fields could be better
represented via a visual medium that wasn&amp;rsquo;t limited by what a terminal could render. The graphical
model was more powerful because it could render UI elements more expressively. This not only made
some interfaces easier to use, but it allowed for different types of user interfaces that couldn&amp;rsquo;t
have been conceived of in the terminal. It made programs that were trying to solve inherently
complex problems (think Photoshop, Figma, Unreal Engine) possible by adding support for rendering
high-quality assets (images, videos, and 3D objects), smooth animations, and better operating system
integration (notifications, file pickers, and other native OS features) with graphical richness and
high performance. So TUIs remained a niche, used primarily by more technical users who had just
become too accustomed with their old tools.&lt;/p>
&lt;p>One would expect that, with computers as powerful as the ones we have today, interactive programs
based on something as primitive as text would be completely replaced. But I keep seeing new
frameworks and libraries that are supposed to make TUI development easier. (&lt;a href="https://github.com/charmbracelet/bubbletea">BubbleTea&lt;/a>, &lt;a href="https://github.com/Textualize/textual">Textual&lt;/a>, and &lt;a href="https://github.com/ratatui/ratatui">Ratatui&lt;/a>
are a few examples.) Talk on GitHub and other programming communities is a good indication of
popularity, but not necessarily of quality. This could just be another one of those things that
programmers are very hyped to talk about, and not something that&amp;rsquo;s going to have any significant
impact on how we use computers. Yet, it looks like this type of interface is now popular among a new
set of users (different from the two user personas I mentioned above) and I was curious to know why.&lt;/p>
&lt;p>Before thinking about what it is that people are getting from these kinds of interfaces, I thought
I&amp;rsquo;d first take a look at my own workflow to understand what these tools have been doing for me.
Since I&amp;rsquo;m quite fond of spending time on the terminal myself, I find TUIs to be great for certain
use cases. Looking at my own day-to-day workflow, I can outline these benefits:&lt;/p>
&lt;ul>
&lt;li>an interface for computers that can&amp;rsquo;t render GUI applications,&lt;/li>
&lt;li>an interface for controlling another computer (remotely using SSH) with better interactivity
when compared to using a sequence of commands,&lt;/li>
&lt;li>fast,&lt;/li>
&lt;li>lightweight,&lt;/li>
&lt;li>lots of keybindings,&lt;/li>
&lt;li>more customizable, and&lt;/li>
&lt;li>rendered on a terminal.&lt;/li>
&lt;/ul>
&lt;p>The first two points are only relevant for certain use cases and are not relevant for everyday use.
So, I suspect that they&amp;rsquo;re not a primary motivator for using a TUI for most users.&lt;/p>
&lt;p>Regarding all the other points (except for the last one): yes, they&amp;rsquo;re relevant, but they&amp;rsquo;re not
necessarily exclusive to TUIs. There&amp;rsquo;s no reason why a good graphical program can&amp;rsquo;t provide
comparable speed, efficient use of resources, lots of customizability, or a plentiful number of
keyboard shortcuts &amp;ndash; in fact, you can argue that it could even do a better job in all regards.
However, in practice, it is often true that for many use cases (think programs for managing files,
inspecting system resources, listening to music, managing databases), TUI-based programs do a better
job of providing these features than their GUI counterparts.&lt;/p>
&lt;p>So then why is it that TUIs are often better in these regards when there&amp;rsquo;s nothing inherent to this
model that makes it more suitable for making these kinds of programs? I suspect that the lack of
keybindings has something to do with the expectations that most users have when they&amp;rsquo;re interfacing
with a GUI application &amp;ndash; namely that they don&amp;rsquo;t expect a graphical program to be used with an
extensive amount of keyboard shortcuts. This could be why most GUIs don&amp;rsquo;t tend to emphasize this
feature as much as the TUI counterparts do [0].&lt;/p>
&lt;p>Inferior customization could be a consequence of user expectations as well. Most users typically
expect GUIs to just work and don&amp;rsquo;t put as much emphasis on customizing their experience, so, again,
programmers writing graphical applications probably don&amp;rsquo;t emphasize this feature as much as
programmers writing terminal tools do, so the consequence of that is that we get fewer GUIs with
support for very granular configuration options. TUI users, on the other hand, I think are typically more
inclined to modify the program to suit their personal preferences &amp;ndash; this could include changing the
color scheme, icons, fonts, and the actions onto which keyboard shortcuts are mapped to.&lt;/p>
&lt;p>Related to user expectations, it&amp;rsquo;s worth pointing out that there&amp;rsquo;s a cultural difference between the
two paradigms [1]. The fact that TUIs are harder to use for beginners means that the userbase is
composed of power users and development is meant to cater to the needs of those power users, and
thus features are much more sophisticated than they would have been otherwise.&lt;/p>
&lt;p>These reasons are relevant, but they&amp;rsquo;re not really describing something that&amp;rsquo;s inherent to this
model. Yes, the average TUI user appreciates these benefits (performance, low resource use,
customization, etc.) more than the average GUI user does, and sometimes there tends to be a
difference in terms of cultural mindset between the two userbases, but that&amp;rsquo;s more to do with
coincidental reasons rather than inherent qualities. At the end of the day, a TUI will be running
inside of a terminal window. Even if that program is being rendered on &lt;a href="https://alacritty.org">a GPU-rendered terminal emulator&lt;/a>,
it&amp;rsquo;s still a program inside of a window, so these benefits aren&amp;rsquo;t exclusive to TUIs.&lt;/p>
&lt;p>It turns out that there is an inherent advantage that this model has, and it&amp;rsquo;s precisely that which
limits in the first place: the terminal. (This is the last point, mentioned on the list above.)
People who live on their terminals prefer to keep most of their everyday programs inside the
terminal because it acts a layer, an operating system of sorts, for them to work on top of [2].
Having everything in your terminal means that you get to use one set of keybindings for creating and
switching through tabs, splitting panes, running scripts, and more.&lt;/p>
&lt;p>It also means that, visually, the contextual switch that occurs when you go from one program to the
other (e.g., from your editor to your file manager) is minimal because (1) you can have them both
use the same color scheme, (2) they both look similar because they&amp;rsquo;re limited by what can be drawn on
the terminal, and (3) have similar keybindings for similar behavior because terminal-based programs
tend to follow common conventions more than their GUI counterparts (think, for example, how
ubiquitous Vim keybindings are).&lt;/p>
&lt;p>It&amp;rsquo;s been interesting to see more and more stuff moving onto the terminal. For decades people have
been saying that text is too primitive as an interface; in fact, some might have you think that text
isn&amp;rsquo;t good enough even for developing software (see attempts at visual programming). Yet, text is
still such a powerful way of defining interaction that its use has not only persisted, but grown.
Windows &amp;ndash; which for years tried to promote graphical interfaces for everything and had very poor
terminals &amp;ndash; finally &amp;ldquo;admitted defeat&amp;rdquo; by making the Windows Terminal in 2019. The main form of
interaction with LLMs, as of right now, is via text. I would also like to believe that this is a
counter-reaction to how normalized it has become to ship Electron apps. And it feels
great when your music player takes &lt;a href="https://github.com/hrkfdn/ncspot/blob/33ccf944e9701e40edd8479c533a03815e36a8e5/doc/resource_footprint.md?plain=1#L4-L7">46 MiB of memory instead of 1 GiB&lt;/a>.&lt;/p>
&lt;p>One thing that I don&amp;rsquo;t feel too comfortable with is when I look at everything that&amp;rsquo;s been happening
with Neovim: it often feels like people are just mapping GUI patterns onto the terminal and I&amp;rsquo;m not
always sure if I like it. Sometimes it feels like it defeats the purpose. One would hope that we
don&amp;rsquo;t start using a primitive system like text as a base for building complex user interfaces like
we did with the web where we started building gigantic web applications on top of a system that was
meant to be used for making [hypertext] documents.&lt;/p>
&lt;p>Still, I&amp;rsquo;m happy that we now have great terminals like &lt;a href="https://github.com/wezterm/wezterm">WezTerm&lt;/a>,
&lt;a href="https://github.com/kovidgoyal/kitty">Kitty&lt;/a>, and &lt;a href="https://github.com/ghostty-org/ghostty">Ghostty&lt;/a>
that are both feature-rich and fast. My workflow has changed so much during the last few years and I
keep finding new gems in the terminal world.&lt;/p>
&lt;hr>
&lt;p>[0] To clarify, there are plenty of GUI applications that have an extensive set of keybindings, it&amp;rsquo;s
just that most of them can&amp;rsquo;t be or weren&amp;rsquo;t meant to be used via the keyboard exclusively.&lt;/p>
&lt;p>[1] And I didn&amp;rsquo;t list this as a benefit because I&amp;rsquo;m still unsure whether it really is a benefit &amp;ndash;
considering that it&amp;rsquo;s debatable whether the pros outweigh the cons.&lt;/p>
&lt;p>[2] A common, misguided belief is that these users prefer the terminal because of the aesthetics or
because it acts as a form of virtue signaling, which may very well be the case for some, and might
have been for me too when I was a more impressionable programmer; but, I think there are pragmatic
reasons why the terminal interface works so well for programmers.&lt;/p></description></item><item><title>Ahoy</title><link>https://onbreakpoint.com/ahoy/</link><pubDate>Thu, 15 May 2025 00:00:00 +0000</pubDate><guid>https://onbreakpoint.com/ahoy/</guid><description>&lt;h1 id="ahoy">Ahoy&lt;/h1>
&lt;p>Ahoy, fellow hacker!&lt;/p>
&lt;p>You&amp;rsquo;ve found my home on the Internet. Here you should expect to read about programming, design,
engineering, and anything else that piques my interest.&lt;/p>
&lt;p>I&amp;rsquo;ve seen so many programming blogs starting off with an enthusiastic post about the blog&amp;rsquo;s
meticulously-crafted infrastructure, using the latest static-site generator written in the author&amp;rsquo;s
language of choice, and then that post being one of the only entries in the blog. I&amp;rsquo;ll refrain from
that type of post for now with the hopes of not falling into the same trap &amp;ndash; though, I must admit,
it is tempting.&lt;/p></description></item><item><title>Now</title><link>https://onbreakpoint.com/now/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://onbreakpoint.com/now/</guid><description>&lt;h1 id="now">Now&lt;/h1>
&lt;p>&lt;em>Last updated: &lt;strong>December 8, 2025&lt;/strong>.&lt;/em>&lt;/p>
&lt;ul>
&lt;li>Working on &lt;a href="https://github.com/bnuredini/pathsurfer">pathsurfer&lt;/a>.&lt;/li>
&lt;li>Making a game engine from scratch.&lt;/li>
&lt;/ul>
&lt;p>(This is my /now page, inspired by &lt;a href="https://nownownow.com/about">nownownow.com&lt;/a>.)&lt;/p></description></item></channel></rss>