<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Tools on Adam Koszek - Personal Website</title>
    <link>https://www.koszek.com/tags/tools/</link>
    <description>Recent content in Tools on Adam Koszek - Personal Website</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <managingEditor>adam@koszek.com (Adam Koszek)</managingEditor>
    <webMaster>adam@koszek.com (Adam Koszek)</webMaster>
    <lastBuildDate>Thu, 16 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://www.koszek.com/tags/tools/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Agent Glass</title>
      <link>https://www.koszek.com/blog/2026/04/16/agent-glass/</link>
      <pubDate>Thu, 16 Apr 2026 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2026/04/16/agent-glass/</guid>
      <description>&lt;p&gt;I built Agent Glass.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.koszek.com/img/2026-04-16-agent-glass/agentglass-screenshot.png&#34; alt=&#34;AgentGlass session browser screenshot&#34; title=&#34;AgentGlass — browsing AI agent sessions&#34;&gt;&lt;/p&gt;
&lt;p&gt;Beautiful, isn&amp;rsquo;t it?
This baby has three panes:
Sidebar with all the stuff you need right away. Click around, don&amp;rsquo;t be scared.
The list of stuff you&amp;rsquo;re supposed to be looking at is the middle pane: think
of it as an index of everything that you went through with AI agents.
All your conversations will be listed here.
Most of your eye&amp;rsquo;s time will be on the main pane, which is the content.
This is where the transcript of all your AI divagations live.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>SSH VPN on OSX with SSHuttle in 3 minutes</title>
      <link>https://www.koszek.com/blog/2017/04/09/ssh-vpn-with-sshuttle-in-3-minutes/</link>
      <pubDate>Sun, 09 Apr 2017 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2017/04/09/ssh-vpn-with-sshuttle-in-3-minutes/</guid>
      <description>&lt;p&gt;You will learn how to setup SSH VPN with
&lt;a href=&#34;https://github.com/apenwarr/sshuttle&#34;&gt;sshuttle&lt;/a&gt; &lt;strong&gt;quickly&lt;/strong&gt; here.
SSH VPN people say is &amp;ldquo;poor man&amp;rsquo;s&amp;rdquo; &lt;a href=&#34;https://en.wikipedia.org/wiki/Virtual_private_network&#34;&gt;VPN&lt;/a&gt;, but I view it
as a great tool, since you can&amp;rsquo;t always spin OpenVPN easily. If you have the SSH
keys installed on the server, there&amp;rsquo;s no need for any other configuration.
No certificates, no drama. I&amp;rsquo;m using OSX for the purposes of this article.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.koszek.com/img/2017-04-09-ssh-vpn-with-sshuttle-in-3-minutes/rishabh-varshney-138805_5p.jpg&#34; alt=&#34;alt_text_4&#34; title=&#34;Image_text_4&#34;&gt;
&lt;br&gt;
&lt;small&gt;&lt;small&gt;&lt;small&gt;
&lt;em&gt;(Photo by &lt;a href=&#34;https://unsplash.com/@rishabh&#34;&gt;Rishabh Varshney&lt;/a&gt; via &lt;a href=&#34;https://www.unsplash.com&#34;&gt;Unsplash&lt;/a&gt;)&lt;/em&gt;
&lt;/small&gt;&lt;/small&gt;&lt;/small&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>The best OSX file manager</title>
      <link>https://www.koszek.com/blog/2017/01/18/the-best-osx-file-manager/</link>
      <pubDate>Wed, 18 Jan 2017 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2017/01/18/the-best-osx-file-manager/</guid>
      <description>&lt;p&gt;Even if you don&amp;rsquo;t like Windows, some tools there are great. One of them is
&lt;a href=&#34;https://www.winamp.com&#34;&gt;WinAmp&lt;/a&gt;, probably the best audio player around. (do you know a replacement
for OSX? Let me know!)&lt;/p&gt;
&lt;p&gt;Another is &lt;a href=&#34;https://www.ghisler.com&#34;&gt;Total Commander&lt;/a&gt;&amp;ndash;the 2 pane file commander. Total Commander
can do anything you can think of for file management.
Its UI was like &lt;a href=&#34;https://en.wikipedia.org/wiki/Norton_Commander&#34;&gt;Norton Commander&lt;/a&gt;&amp;rsquo;s: the
&amp;ldquo;blue background&amp;rdquo; file manager for DOS.&lt;/p&gt;
&lt;p&gt;You miss a lot if you don&amp;rsquo;t use these tools, since they&amp;rsquo;re huge time savers.
There isn&amp;rsquo;t a similar functionality built in the OSX, so you&amp;rsquo;ll have to do
your homework. You can use Finder, of course, and I do like Finder and its
preview feature. Also the the embedded image editor is very useful. However
for shuffling files Finder is terrible. To move one file from one directory
to another, you must open two windows. Or you must open tabs. Selecting
files is terrible. I can&amp;rsquo;t count how many times I&amp;rsquo;ve selected 20 images and
they all were accidently opened. Or you select many files and want to move
them to the directory on the very bottom of the current screen. Good luck
with that. For file-system management, Finder sucks. You must admit it.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Dealing with large jobs on Travis-CI</title>
      <link>https://www.koszek.com/blog/2016/07/25/dealing-with-large-jobs-on-travis/</link>
      <pubDate>Mon, 25 Jul 2016 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2016/07/25/dealing-with-large-jobs-on-travis/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m releasing &lt;a href=&#34;https://github.com/wkoszek/&#34;&gt;all my projects&lt;/a&gt;
&lt;a href=&#34;https://www.koszek.com/blog/2016/07/11/what-i-learned-from-connecting-60-projects-to-ci-system/&#34;&gt;through continuous integration&lt;/a&gt;,
so I end up working with &lt;a href=&#34;https://www.travis-ci.org&#34;&gt;Travis-CI&lt;/a&gt; a lot.
Travis provides a corresponding diagnostic page for each project I have
linked to it from GitHub.
For example one of my GitHub projects &lt;a href=&#34;https://github.com/wkoszek/cpu60&#34;&gt;is here&lt;/a&gt; and
its Travis-CI subpage &lt;a href=&#34;https://travis-ci.org/wkoszek/kmnsim&#34;&gt;would be here&lt;/a&gt;.
If you look at the link format, you&amp;rsquo;ll understand what I mean.
In there you can see what the output of your job was.
Most of the jobs are fairly simple and finish within short period of time.
For these jobs debugging the build steps is easy: just look at the console
output and see what&amp;rsquo;s wrong. It&amp;rsquo;s what I do 95% of time. Below I give hints
on how to handle 5% of other cases.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>What Docker really is</title>
      <link>https://www.koszek.com/blog/2016/06/27/what-docker-really-is/</link>
      <pubDate>Mon, 27 Jun 2016 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2016/06/27/what-docker-really-is/</guid>
      <description>&lt;p&gt;It felt strange when Docker first came out, since I couldn&amp;rsquo;t really
understand what it is. It is an interesting feeling when people market and
brand a new technology in a way which makes it obscure and hard to
understand. So below you have my explanation of Docker, the way I would like
to see it couple of months ago.&lt;/p&gt;
&lt;h2 id=&#34;docker-in-one-paragraph&#34;&gt;Docker in one paragraph&lt;/h2&gt;
&lt;p&gt;Docker is a manager for isolated buckets of software called containers. I
gives you a way to say: &amp;ldquo;My software is based on Ubuntu; it must have these
4 packages installed, and these 5 commands must be executed to make it run
continually&amp;rdquo;. These steps will be done at &amp;ldquo;build&amp;rdquo; time, during which your
~1GB image will be created. From this image containers with your software
can be started on many OSes.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Use as few tools as possible</title>
      <link>https://www.koszek.com/blog/2016/05/16/use-as-few-tools-as-possible/</link>
      <pubDate>Mon, 16 May 2016 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2016/05/16/use-as-few-tools-as-possible/</guid>
      <description>&lt;p&gt;Choosing a technology stack is an essential part of building and
engineering your software product. This is the matter you&amp;rsquo;ll be stuck in
forever. Unless you build a 2-line program it&amp;rsquo;s important to make good
decisions at this stage.&lt;/p&gt;
&lt;p&gt;I see a lot of &amp;ldquo;technical fashion&amp;rdquo; in the computer world. People come up
with new and different solutions to the same problems, depending on
things like programming language or a method itself. And then they start
encompassing their new creations into new products. Thus we see new wave
of computer languages, tools and transpilers which essentially do the
same, but in a different way.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>How to ask questions on Stack Overflow?</title>
      <link>https://www.koszek.com/blog/2016/04/18/how-to-ask-questions-on-stack-overflow/</link>
      <pubDate>Mon, 18 Apr 2016 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2016/04/18/how-to-ask-questions-on-stack-overflow/</guid>
      <description>&lt;p&gt;This year I want to contribute to Stack Overflow. I&amp;rsquo;ve been using this
site for years, but have never answered any questions, rated answers or
posted replies. I want to change this.&lt;/p&gt;
&lt;p&gt;I went ahead and made myself several tags with topics I&amp;rsquo;m good at. And
as a break from work, I try to answer questions. There is a lot of good
questions, but most of them are bad. People make it hard to help
themselves. They either give a lot of data, but don&amp;rsquo;t formulate the
problem, or state the problem, but give no information about their
setup, environment and conditions. Stack Overflow is no different than
any other technical forum. Mailing lists and GitHub Issues are another
examples. But you must communicate clearly to really benefit from them.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>How to store SSH passphrases in LastPass</title>
      <link>https://www.koszek.com/blog/2015/12/07/using-lastpass-with-ssh/</link>
      <pubDate>Mon, 07 Dec 2015 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2015/12/07/using-lastpass-with-ssh/</guid>
      <description>&lt;p&gt;Passwords are a terrible authentication mechanism. Even though this
mechanism exists in computer systems for years, frankly there aren’t too
many solutions to address the password problem. If you’ve dealt with
more than three different APIs I bet you must have committed
confidential data to GitHub at least once. SSH with its keys isn’t any
better, and is used in more critical places.&lt;/p&gt;
&lt;p&gt;Below I attempt to address the SSH passphrase problem. My setup is based
on LastPass. LastPass stores a binary bundle with all your passwords in
the cloud. Bundle is fetched on your machine, and you decrypt it with a
master password. During decrypting phone-based 2-factor authentication
is used for increased security. If your master password is weak, you’re
baked. Upon decryption you have an access to all your passwords,
including SSH passphrases. The script automates the management of
ssh-agent and key adding.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>How I use transparency during development</title>
      <link>https://www.koszek.com/blog/2015/12/02/use-transparency-while-development/</link>
      <pubDate>Wed, 02 Dec 2015 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2015/12/02/use-transparency-while-development/</guid>
      <description>&lt;p&gt;The 13” MacBook Air isn’t a perfect development environment, yet I still
need to do some work done outside of the house. I’ve been experimenting
around and that’s what I’ve came up with:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;2015-12-02-use-transparency-while-development/image01.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;In the background you have a Web browser with
&lt;a href=&#34;https://github.com/middleman/middleman-livereload&#34;&gt;middleman-livereload&lt;/a&gt;.
Each time I make a small source code change in Vim and save a file, the
live-reload updates the site in the background. We could call it
“real-time”. The advantage of this method is that you can use it without
any special configuration: default Terminal in MacOSX or Xterm client
being able to display transparency will work. And you must have some
environment for web development where
&lt;a href=&#34;https://livereload.com/&#34;&gt;Livereload&lt;/a&gt; works. Transparency I have isn’t
shown percentage-wise, but it’s set to around ⅓:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Quiz: portability of “find” command</title>
      <link>https://www.koszek.com/blog/2015/11/29/quiz-portability-of-find-command/</link>
      <pubDate>Sun, 29 Nov 2015 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2015/11/29/quiz-portability-of-find-command/</guid>
      <description>&lt;p&gt;On MacOSX:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wk:/w/repos/dockerfiles&amp;amp;&amp;gt; find wkoszek -type d -depth &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wkoszek/base
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wkoszek/nginx
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;On Linux you get:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;find: warning: you have specified the -depth option after a non-option
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;argument -type, but options are not positional &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;-depth affects tests
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;specified before it as well as those specified after it&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;. Please specify
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;options before other arguments.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Hint: compare manual pages of both commands.&lt;/p&gt;
&lt;p&gt;Quiz: do you know offhand what’s the correct fix?&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>My GitHub Wishlist: Consolidate Request</title>
      <link>https://www.koszek.com/blog/2015/11/23/my-github-wishlist-consolidate-request/</link>
      <pubDate>Mon, 23 Nov 2015 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2015/11/23/my-github-wishlist-consolidate-request/</guid>
      <description>&lt;p&gt;If you develop any sort of software nowadays sooner or later you’ll end
up on &lt;a href=&#34;https://github.com/&#34;&gt;GitHub&lt;/a&gt;. On one side a business, on the
other: great part of the Open Source world. I’d claim that GitHub was an
integral part of the distributed software development revolution. For
me, GitHub is the first source of contact if I want to see who already
wrote software bits I need for my next project.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://git-scm.com/&#34;&gt;Git&lt;/a&gt; and GitHub dominate today, since they’re
basically so much better than anything else. When I started to work on
software, most of the projects used &lt;a href=&#34;https://www.cvs.com/&#34;&gt;CVS&lt;/a&gt; or
&lt;a href=&#34;https://subversion.apache.org/&#34;&gt;Subversion&lt;/a&gt;, and while they had some
pros (an ability to fetch only some project’s directories) the cons were
many. Nowadays everybody is migrating to Git or Mercurial, and old
services such as &lt;a href=&#34;https://sourceforge.net/&#34;&gt;SourceForge&lt;/a&gt; or &lt;a href=&#34;https://code.google.com/&#34;&gt;Google
Code&lt;/a&gt; are becoming more of a ghost sites
(Google de-featured Google Code already).&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Pastebin adds DOS new-line separators at the end snippets</title>
      <link>https://www.koszek.com/blog/2015/10/05/pastebin-adds-dos-newline-on-snippet/</link>
      <pubDate>Mon, 05 Oct 2015 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2015/10/05/pastebin-adds-dos-newline-on-snippet/</guid>
      <description>&lt;p&gt;Over the weekend I was finally starting to get my head wrapped around
automated backups on my Synology DS214. This was supposed to be a ten
minute project which of course extended due to some trivial problems
along the way. For example: I needed a Python script for fetching data
from the Internet over HTTPS so I made this for myself:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#!/usr/bin/env python&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; urllib2&lt;span style=&#34;color:#f92672&#34;&gt;,&lt;/span&gt; sys
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;urlstr &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; sys&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;argv[&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;fname &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; urlstr&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;split(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;/&amp;#39;&lt;/span&gt;)[&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;response &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; urllib2&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;urlopen(urlstr)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;f &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; open(fname, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;w&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;f&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;write(response&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;read())
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;f&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;close()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;written &amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; fname
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;And I pasted it to PasteBin:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Command Line Interface to GoDaddy.com</title>
      <link>https://www.koszek.com/blog/2015/08/03/command-line-interface-to-godaddy/</link>
      <pubDate>Mon, 03 Aug 2015 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2015/08/03/command-line-interface-to-godaddy/</guid>
      <description>&lt;p&gt;For quite some time now I’ve been a user of
&lt;a href=&#34;https://www.godaddy.com/&#34;&gt;&lt;em&gt;GoDaddy&lt;/em&gt;&lt;/a&gt;. I remember my frustration with
&lt;a href=&#34;https://www.nazwa.pl/&#34;&gt;&lt;em&gt;the Polish registrar&lt;/em&gt;&lt;/a&gt; holding some of my
&lt;code&gt;.pl&lt;/code&gt; domains: their user interface was terrible, since after logging
to your account all you could see was an advertisement:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;2015-08-03-command-line-interface-to-godaddy/image01.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;The website with an ad always loaded very quickly. Then you had to
switch to “Control Panel”, which was always very slow. I could complain
more about the amount of time I have spent trying to do basic things
there, but I’ll leave it as a topic for &lt;a href=&#34;https://www.barelyusable.com&#34;&gt;&lt;em&gt;my usability
website&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>How the best companies do Continuous Integration</title>
      <link>https://www.koszek.com/blog/2015/06/29/how-best-companies-do-continuous-integration/</link>
      <pubDate>Mon, 29 Jun 2015 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2015/06/29/how-best-companies-do-continuous-integration/</guid>
      <description>&lt;p&gt;Nothing but the successful result of compilation delivers this unique
feeling of accomplishment. There are multiple stages of project&amp;rsquo;s success,
yet each feedback on a positive program build is exciting, since it is just one
step from actual program execution&amp;ndash;the ultimate goal.&lt;/p&gt;
&lt;p&gt;Yet when done too frequently, building becomes a problem. Especially when
projects grow, you become dependent on many other libraries. Maybe even
whole projects. Building simple application nowadays requires inclusion of
many 3rd party modules, and this process is not always easy.
And this is how building becomes problematic, since
it starts to be slow and boring. Feedback loop, which usually is really
tight for small programs becomes really long and slow; in the process you start
getting distracted, and cheat yourself that you can multitask, but you
really can&amp;rsquo;t.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Fixing Middleman-spellcheck</title>
      <link>https://www.koszek.com/blog/2015/06/20/fixing-middleman-spellcheck/</link>
      <pubDate>Sat, 20 Jun 2015 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2015/06/20/fixing-middleman-spellcheck/</guid>
      <description>&lt;p&gt;Sometimes when you make a change to the software, it is interesting to
predict how long will such change take. Fixing &lt;em&gt;Middleman-spellcheck&lt;/em&gt; was
initially only about letting myself to select words which I would consider
correct and do it from within the front-matter of each Middleman&amp;rsquo;s article
files. It ended up taking more than I anticipated, and below is short
description on what went wrong.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://middlemanapp.com/advanced/custom_extensions/&#34;&gt;Middleman plugin infrastructure&lt;/a&gt; lets
one to run a filter on several stages of the build process, and
Middleman-spellcheck runs at the end, once all files are converted from
&lt;code&gt;.md&lt;/code&gt; to &lt;code&gt;.html&lt;/code&gt; files.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Figuring out confusing assembly instructions &amp;mdash; Koszek trick #2</title>
      <link>https://www.koszek.com/blog/2012/06/26/koszek-trick-2/</link>
      <pubDate>Tue, 26 Jun 2012 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2012/06/26/koszek-trick-2/</guid>
      <description>&lt;p&gt;Today&amp;rsquo;s post will be very simple, maybe trivial. One of the hacks that I came
up with, when I encountered confusing arcane of ANSI C, or when I played
with assembly for fun and profit.&lt;/p&gt;
&lt;p&gt;Problem: isolate ANSI C construct or in-line assembly block, so that upon a
translation to intermediate assembly, block will be exposed more easily in a
visual manner.&lt;/p&gt;
&lt;p&gt;So imagine you want to isolate memory reference within ANSI C and figure out
what the corresponding assembly line is. Assume given portion of the code:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Cross-compile GNU assembler for MIPS</title>
      <link>https://www.koszek.com/blog/2012/06/10/mips-assembler/</link>
      <pubDate>Sun, 10 Jun 2012 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2012/06/10/mips-assembler/</guid>
      <description>&lt;p&gt;Just a short note, not to have to walk through the Web each time I
want to get some strange opcodes generated.&lt;/p&gt;
&lt;p&gt;Today &amp;ldquo;strange&amp;rdquo; means &amp;ldquo;MIPS&amp;rdquo;. &amp;ldquo;Nobody uses MIPS&amp;rdquo;, you say? Well &amp;ndash; I still believe MIPS
is the cleanest RISC architecture available today. So yes, I want to have
something translate:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;_start:
	addi	$2, $2, 123
	addi	$3, $3, 321
	add	$4, $2, $3

	addi	$5, $5, 1
	addi	$6, $6, 2
	or	$7, $5, $6

	addi	$8, $8, 0xf
	addi	$9, $9, 0x3
	and	$10, $8, $9
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;To:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Funny mistakes and The Toyota Way</title>
      <link>https://www.koszek.com/blog/2012/05/14/funny_mistake/</link>
      <pubDate>Mon, 14 May 2012 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2012/05/14/funny_mistake/</guid>
      <description>&lt;p&gt;This article has a strange mix of UNIX and methodology and mental problems
of post&amp;rsquo;s author, related with inspirations from the The Toyota Way. I read
The Toyota Way, since I tried to find something related to couple of things
I&amp;rsquo;m interested in: (1) how companies work (2) Japanese culture (3)
computers. (3) I involved myself. The way I think about stuff in &amp;ldquo;The Toyota
Way&amp;rdquo; is that I&amp;rsquo;ll not only get to know how Toyota solves problems, but I&amp;rsquo;ll
bring experiences from the book to my problem solving, mental toolset and
I&amp;rsquo;ll transmute them to my daily job with UNIX systems.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Unfriendly IT, or how to get Perforce diffs e-mailed to you</title>
      <link>https://www.koszek.com/blog/2012/05/13/unfriendly_it/</link>
      <pubDate>Sun, 13 May 2012 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2012/05/13/unfriendly_it/</guid>
      <description>&lt;p&gt;Work for a big corporation can be very challenging sometimes. This touches me
especially when I have to request something, and IT department doesn&amp;rsquo;t
agree for providing me this functionality. Sometimes things are very simple,
sometimes are more complex.&lt;/p&gt;
&lt;p&gt;In this particular case, I tried to provide myself a way to review Perforce
commits other person working with me was doing. Solution, which we all know to
be pretty darn good, is to have &lt;code&gt;diffs&lt;/code&gt; e-mailed to you, just like we do on:&lt;/p&gt;</description>
    </item>
    
  </channel>
</rss>
