<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts on Jnsn.dev</title><link>/posts/</link><description>Recent content in Posts on Jnsn.dev</description><generator>Hugo</generator><language>en</language><lastBuildDate>Fri, 08 Aug 2025 19:37:08 +0200</lastBuildDate><atom:link href="/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>AI isn't what helps you solve that</title><link>/posts/itsnotai/</link><pubDate>Fri, 08 Aug 2025 19:37:08 +0200</pubDate><guid>/posts/itsnotai/</guid><description>&lt;p&gt;Yesterday everything that involved automation by a computer was &amp;ldquo;robotics&amp;rdquo;.
Robot Process Automation was the solution to every single human process problem
ever in any business, and it was the only solution. You may as well have
renamed the computer to the &amp;ldquo;Robotic Process Machine&amp;rdquo;, because everything it
did was reduced down to that.&lt;/p&gt;
&lt;p&gt;Well times have changed, and the hot new technology of matrix multiplications
have replaces RPA. Now everything is AI. On some level, It&amp;rsquo;s hard to care. Lay
people will call anything a computer does the wrong thing, and who can blame
them. Our terminology is often so convoluted and technical that we have a hard
time sticking to it. The difference this time is the amount of shit being sold
to them. A person mislabeling useful software products as RPA might buy
a license to IBM RPA, whereas a person mislabeling useful software as AI will
give all their money to Sam Altman since the functional economy is going to
end.&lt;/p&gt;</description></item><item><title>Invest in AI by staying the fuck away</title><link>/posts/dontinvest/</link><pubDate>Wed, 06 Aug 2025 17:16:40 +0200</pubDate><guid>/posts/dontinvest/</guid><description>&lt;p&gt;The age of AI is here! We&amp;rsquo;re all so excited for the machine to finally generate
an incomprehensible amount of garbage, but just imagine if all that garbage was
actually useful.&lt;/p&gt;
&lt;p&gt;Well I refuse. I&amp;rsquo;m not interested in imagining how useful you could be to me if
you did anything I actually wanted. If you want me to be excited, then maybe do
something interesting&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;Inexplicably I&amp;rsquo;m alone with this opinion and everybody and their dog is trying
to get into AI. Investors want the stocks badly enough that none of these
companies are public. Executives want to implement the technology badly enough
that they are making direct threats to their employees. American politicians
and oligarch are talking about this technology as if it&amp;rsquo;s opium, and they can&amp;rsquo;t
wait until we&amp;rsquo;re addicted. This from a technology that is fundamentally
disconnected from physical reality. It generates text. It can never build
a house or grow a potato.&lt;/p&gt;</description></item><item><title>Beauty in engineering</title><link>/posts/engineering_beauty/</link><pubDate>Sat, 25 Mar 2023 16:33:14 +0100</pubDate><guid>/posts/engineering_beauty/</guid><description>&lt;p&gt;Discussions around Software engineering as a profession is often
framed as objective, focused around absolute truths, rules, and hard
guidelines. Don&amp;rsquo;t repeat yourself, You ain&amp;rsquo;t gonna need it, the SOLID
principles. All of these are discussed as absolute truths, and when
a dissenting opinion is voiced people rush in to either disagree or
point out how &lt;em&gt;actually&lt;/em&gt; the claimed dissenting opinion is some sort of
fringe case is only relevant to absolute experts. The vast majority of
mortal programmers should still adhere strictly to the rule.&lt;/p&gt;</description></item><item><title>Another look at terminal emulators</title><link>/posts/fastisslow/</link><pubDate>Sun, 06 Mar 2022 12:10:53 +0100</pubDate><guid>/posts/fastisslow/</guid><description>&lt;p&gt;I had some time this weekend to look back at my &lt;a href="/posts/frametime/"&gt;frametime&lt;/a&gt; project from last year. Drawing inspiration from
an article on lwn from 2018 called &lt;a href="https://lwn.net/Articles/751763/"&gt;A look at terminal emulators&lt;/a&gt;
I figured it could be fun to dive into the relative performance of
terminal emulators is 2022.&lt;/p&gt;
&lt;p&gt;The lwn article used an application called &lt;a href="https://pavelfatin.com/typometer/"&gt;Typometer&lt;/a&gt;
to asses the relative latency of the different terminal emulators.
Typometer works by sending some input to the application, and monitoring
the display buffer until the change is reflected. Assuming the other
parts of the chain are unaffected by HOW this change comes to be, it&amp;rsquo;s
a really simple pure software solution to getting a latency number.&lt;/p&gt;</description></item><item><title>Word Macro Stuff</title><link>/posts/xport/</link><pubDate>Thu, 08 Jul 2021 21:57:18 +0200</pubDate><guid>/posts/xport/</guid><description>&lt;p&gt;Faced with over 100 Word VBA macros and a request for information about
which macros call a certain webservice. How do you get that information
without going insane? With a lot of python, some Windows black magic,
and a couple of open Microsoft &amp;ldquo;standards&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Recently a team came to me to ask if it was possible to figure out who
called one of our old applications. The application is a horrible pain
for the team maintaining it, and they&amp;rsquo;d like to shut it down. Not least
because it&amp;rsquo;s basically impossible to build. They had traced down a lot
of applications already, but they were stuck on a folder brimming with
Word VBA macros. From experience, they knew some of them called this
application, but which?&lt;/p&gt;</description></item><item><title>Towards GUI latency benchmarking</title><link>/posts/frametime/</link><pubDate>Sat, 09 Jan 2021 20:34:23 +0100</pubDate><guid>/posts/frametime/</guid><description>&lt;img 
 sizes="(min-width: 35em) 1200px, 100vw"
 srcset='
 
 /posts/frametime/device_hu_e65dea44a8420e5e.jpg 500w
 
 
 , /posts/frametime/device_hu_675d66ac7cf3b922.jpg 800w
 
 
 , /posts/frametime/device_hu_c99ec08ddd1e7577.jpg 1200w
 
 
 , /posts/frametime/device_hu_36238750de18d9db.jpg 1500w 
 '
 
 src="/posts/frametime/device.jpg" 
 
 alt=""&gt;

&lt;p&gt;I am a huge believer in latency as an important part of UI &lt;em&gt;feel&lt;/em&gt;. I am
also a believer in optimizing against what you can measure. In this
regard I see a hole in the open-source ecosystem: We have no
&lt;em&gt;structured&lt;/em&gt; ways to measure GUI lag.&lt;/p&gt;
&lt;h1 id="lag"&gt;Lag&lt;/h1&gt;
&lt;p&gt;When I say lag I mean the time between you pressing a physical button on
your keyboard/mouse, and a change becoming visible on screen. I worry
that this measurement in particular is suffering on modern systems with
modern programming techniques and with no cheap and easy way to measure
the effect we can&amp;rsquo;t even discuss it.&lt;/p&gt;</description></item><item><title>Reuters 3000 keypad</title><link>/posts/keypad/</link><pubDate>Fri, 13 Mar 2020 17:52:50 +0100</pubDate><guid>/posts/keypad/</guid><description>&lt;p&gt;I recently obtained the keypad section from a Reuters 3000 Xtra
keyboard. I&amp;rsquo;m a fan of tiny keyboards like the planck. These keyboards
usually don&amp;rsquo;t have a numpad, so an external keypad is appealing to me.&lt;/p&gt;
&lt;h1 id="discovery"&gt;Discovery&lt;/h1&gt;
&lt;p&gt;To start of with we will take a physical overview of this keypad. Both
to learn what we have to work with, but also just to document it.&lt;/p&gt;
&lt;h2 id="description-of-the-keypad"&gt;Description of the keypad&lt;/h2&gt;



























&lt;img 
 sizes="(min-width: 35em) 1200px, 100vw"
 srcset='
 
 /posts/keypad/keypad_start_hu_9c4ff04cf0bac104.jpg 500w
 
 
 , /posts/keypad/keypad_start_hu_81df7efd4cee2277.jpg 800w
 
 
 , /posts/keypad/keypad_start_hu_c5d9f0fa5181bbfd.jpg 1200w
 
 
 , /posts/keypad/keypad_start_hu_1d4834a813d3a4d5.jpg 1500w 
 '
 
 src="/posts/keypad/keypad_start.jpg" 
 
 alt=""&gt;

&lt;p&gt;On the outside the first thing that catches the eye are the giant
colored MINE and YOURS buttons, quickly followed by the other weirdly
labeled and colored buttons. I&amp;rsquo;m sure they were meaningful in the 3000
Xtra system. I will make good use of them as macro buttons. Also notice
the alarm label, behind that white cover is an led. I&amp;rsquo;m probably going
to place the numlock indicator there.&lt;/p&gt;</description></item></channel></rss>