<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Old on Adam Koszek - Personal Website</title>
    <link>https://www.koszek.com/tags/old/</link>
    <description>Recent content in Old 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>Wed, 04 Jul 2018 00:00:00 +0000</lastBuildDate><atom:link href="https://www.koszek.com/tags/old/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Solution to an ugly cookie law</title>
      <link>https://www.koszek.com/blog/2018/07/04/solution-to-an-ugly-cookie-law/</link>
      <pubDate>Wed, 04 Jul 2018 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2018/07/04/solution-to-an-ugly-cookie-law/</guid>
      <description>&lt;p&gt;European Union has a law that addressed privacy issues of the Internet
users.
The law regulates a technology called
&lt;a href=&#34;https://en.wikipedia.org/wiki/HTTP_cookie&#34;&gt;HTTP Cookies&lt;/a&gt;, which is a clunky but
necessary way of storing state on user&amp;rsquo;s computer.
There&amp;rsquo;s quite a bit of a background in here, and I don&amp;rsquo;t want to diverge
the discussion to technical topics too much.
To make it short: license plate on your car can be used for both identifying
you in front of the protected gate, making sure your car is operational and
registered.
Each time you come back to the gate, and either a camera or a security guest
sees your license plate, you&amp;rsquo;re permitted to go in.
But it can also be used to follow you on a highway and learn where
you live. HTTP cookie is that same for the Internet.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Don&#39;t Kid Yourself About Software Bootcamps</title>
      <link>https://www.koszek.com/blog/2017/06/30/dont-kid-yourself-about-coding-bootcamps/</link>
      <pubDate>Fri, 30 Jun 2017 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2017/06/30/dont-kid-yourself-about-coding-bootcamps/</guid>
      <description>&lt;p&gt;Don&amp;rsquo;t kid yourself about bootcamps. These intensive trainings last couple
of weeks and promise marvels. It&amp;rsquo;s not a good way to become a
software developer. It&amp;rsquo;s worthwhile experience and a good investment if you want to
start, but assuming you can become a &amp;ldquo;software engineer&amp;rdquo; or even &amp;ldquo;software
developer&amp;rdquo; during software bootcamp may end up in a surprise. I write this
because I met enough people &lt;strong&gt;discouraged&lt;/strong&gt; by software bootcamps, since
they often end up disappointed and drop software work whatsoever. This is
bad, so below you have some suggestions about bootcamps.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>To actually ship software, add constraints</title>
      <link>https://www.koszek.com/blog/2017/06/28/to-actually-ship-software-add-constraints/</link>
      <pubDate>Wed, 28 Jun 2017 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2017/06/28/to-actually-ship-software-add-constraints/</guid>
      <description>&lt;p&gt;When you build &lt;strong&gt;your&lt;/strong&gt; software, you don&amp;rsquo;t have the usual constraints
which you have at work: you don&amp;rsquo;t have a deadline, you don&amp;rsquo;t have specs, you
don&amp;rsquo;t have customers asking for features, no agile plan with stories,
sprints, points and tasks. You&amp;rsquo;re your own boss. You can do whatever you
want. For example: you can write your project in a niche programming
language maybe 500 people in the world use. &lt;strong&gt;And this is why programming is
great.&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Hackers and Cooks: how building software really feels like</title>
      <link>https://www.koszek.com/blog/2017/06/26/hackers-and-cooks/</link>
      <pubDate>Mon, 26 Jun 2017 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2017/06/26/hackers-and-cooks/</guid>
      <description>&lt;p&gt;After a busy day of debugging you went grocery shopping. After starying for
eight hours straighs into the iTerm, being in the avocado section felt like
a breeze. And then you enter home.&lt;/p&gt;
&lt;h2 id=&#34;cooks&#34;&gt;Cooks&lt;/h2&gt;
&lt;p&gt;You enter the kitchen and it&amp;rsquo;s a mess. You&amp;rsquo;re scared of putting your bags
full of fresh, organic produce. Germs are everywhere, after all, and you
know it. The tabletop is sticky. Hard to be surprised&amp;ndash;you can&amp;rsquo;t really
recall when it was last cleaned. Or who did it. For sure it wasn&amp;rsquo;t you. Not
since you started living here.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Great Movies About Design</title>
      <link>https://www.koszek.com/blog/2017/06/05/great-movies-about-design/</link>
      <pubDate>Mon, 05 Jun 2017 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2017/06/05/great-movies-about-design/</guid>
      <description>&lt;p&gt;Design is an overloaded word, but we all get it when we see or experience
it. For software design and achieving usability the basics of design are
indespensible. Understanding why things are placed the certain way and have
certain color is important.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.koszek.com/img/2017-06-05-the-best-movies-for-designers/federica-campanaro-27450_15p.jpg&#34; alt=&#34;alt_text_1&#34; title=&#34;Image_text_1&#34;&gt;&lt;/p&gt;
&lt;p&gt;Reading about it is great, and I highly
encourage you to buy &lt;a href=&#34;https://amzn.to/2seIqyg&#34;&gt;Non-Designers Design Book&lt;/a&gt;,
but if you prefer to watch something in the moments of relative downtime,
below is the list of movies about design.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Which Open Source Projects Should You Contribute To</title>
      <link>https://www.koszek.com/blog/2017/05/31/which-open-source-projects-should-you-contribute-to/</link>
      <pubDate>Wed, 31 May 2017 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2017/05/31/which-open-source-projects-should-you-contribute-to/</guid>
      <description>&lt;p&gt;I don&amp;rsquo;t remember which audiobook I heard it from, but the author stated we
all seek and are directed by four things: status, power, money, and
popularity.  Working on software is no different: people don&amp;rsquo;t spend their
private time in front of the computer hacking code without a reason.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.koszek.com/img/2017-05-31-how-to-select-an-open-source-project-to-contribute-to/markus-spiske-109588_10p.jpg&#34; alt=&#34;alt_text_1&#34; title=&#34;Image_text_1&#34;&gt;&lt;/p&gt;
&lt;p&gt;You must like to get critique from people who read your code, since it
improves your skills.  After you bring changes and the people like them, it
brings all of your &amp;ldquo;ratios&amp;rdquo; higher too. Another example is when your
projects reach certain level on maturity and you get recognized by other
hackers (through GitHub stars) when they like the program you wrote or the
tool you&amp;rsquo;ve hacked. Personally I get a spike of motivation that way. It&amp;rsquo;s
one of the things that keeps me going with &lt;a href=&#34;https://github.com/wkoszek&#34;&gt;my Open Source&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>15 Tips on Staying Productive Offline as a Software Engineer</title>
      <link>https://www.koszek.com/blog/2017/05/22/15-tips-on-staying-productive-offline-as-a-software-engineer/</link>
      <pubDate>Mon, 22 May 2017 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2017/05/22/15-tips-on-staying-productive-offline-as-a-software-engineer/</guid>
      <description>&lt;p&gt;Software engineer offline you can be more productive.
I argue that being offline actually helps a lot, especially with &lt;em&gt;focus&lt;/em&gt;.
You may in theory waste your time becuase you&amp;rsquo;ll reimplement a function,
or done things suboptimally, but it&amp;rsquo;s not that much of a deal.
Below I tell you how to give it a try, and I walk you through the tools I use.
Why staying offline may help?&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.koszek.com/img/2017-05-22-15-tips-on-staying-productive-offline-as-a-software-engineer/courtney-recker-190987_10p.jpg&#34; alt=&#34;alt_text_0&#34; title=&#34;Image_text_0&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;no-distractions&#34;&gt;No distractions&lt;/h2&gt;
&lt;p&gt;When you flip &amp;lsquo;Wi-Fi&amp;rsquo; off, &lt;a href=&#34;https://hangouts.google.com/&#34;&gt;Hangouts&lt;/a&gt;, &lt;a href=&#34;https://slack.com/&#34;&gt;Slack&lt;/a&gt;, &lt;a href=&#34;https://www.hipchat.com/&#34;&gt;HipChat&lt;/a&gt;, e-mail notifications,
push notifications, iMessage and your other enemies stop to work. Do it
regularly and you&amp;rsquo;ll see its benefits.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>What it&#39;s like to write software in the hardware industry</title>
      <link>https://www.koszek.com/blog/2017/05/13/what-i-learned-from-writing-software-in-hardware-industry/</link>
      <pubDate>Sat, 13 May 2017 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2017/05/13/what-i-learned-from-writing-software-in-hardware-industry/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://www.joelonsoftware.com&#34;&gt;Joel Spolsky&lt;/a&gt; stated that as a software
engineer one can have a great workspace experience in the software company.
When I first read it, I worked for the hardware company, in fact, and it
took me a while to understand what he meant. Let&amp;rsquo;s say he was 50% right.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.koszek.com/img/2017-05-13-what-i-learned-from-writing-software-in-hardware-industry/ST_Microelectronics_OSMLT04_H_mouse_sensor_chip_with_vertical_and_horizontal_illumination_15p.jpg&#34; alt=&#34;alt_text_1&#34; title=&#34;Image_text_1&#34;&gt;&lt;/p&gt;
&lt;p&gt;What I share with you here is my experience is backed by one year of internship at
&lt;a href=&#34;https://www.xilinx.com&#34;&gt;Xilinx&lt;/a&gt; in 2011, followed by
three year full-time 2012&amp;ndash;2015. I worked for a hardware/software team writing
low-level drivers to the OS used for stress-testing of silicon. Such an
OS runs on a silicon prototype, and tries to beat your CPU and I/O subsystem
to death. This all is done in hope silicon issues will get exposed before
the chip hits the fab, which means huge money savings.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Treat Continuous Integration as your virtual user</title>
      <link>https://www.koszek.com/blog/2017/05/07/treat-ci-as-a-virtual-user/</link>
      <pubDate>Sun, 07 May 2017 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2017/05/07/treat-ci-as-a-virtual-user/</guid>
      <description>&lt;p&gt;Ninety five percent of professional software engineers use &lt;a href=&#34;https://jenkins.io&#34;&gt;Jenkins&lt;/a&gt; as a &lt;a href=&#34;https://en.wikipedia.org/wiki/Continuous_integration&#34;&gt;Continuous Integration&lt;/a&gt;. The rest are consumers of &lt;a href=&#34;https://www.travis-ci.org&#34;&gt;Travis-Ci&lt;/a&gt;, &lt;a href=&#34;https://www.circleci.com&#34;&gt;Circle CI&lt;/a&gt; and many other
hosted CI platforms. None of these platforms are opinionated. They are just a little
smarter replacements of &lt;code&gt;cron&lt;/code&gt;, allowing you to simply throw many commands
into the flow to build your software. We use these tools in a dump way, I
argue, and it wastes the time of customers of our software.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Single Command Principle</title>
      <link>https://www.koszek.com/blog/2017/04/29/single-command-principle/</link>
      <pubDate>Sat, 29 Apr 2017 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2017/04/29/single-command-principle/</guid>
      <description>&lt;p&gt;You should follow the &lt;strong&gt;Single Command Principle&lt;/strong&gt; of software deployment.
A customer takes your software from the repository, looks at the &lt;code&gt;README&lt;/code&gt;
file and sees a single command. A main entrance to the whole &amp;ldquo;software&amp;rdquo;.
Stuff is built and starts to just work in five minutes. This saves time and
effort.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.koszek.com/img/2017-04-29-single-command-principle/ales-krivec-2859_10p.jpg&#34; alt=&#34;alt_text_0&#34; title=&#34;Image_text_0&#34;&gt;&lt;/p&gt;
&lt;p&gt;This command should either run your software with safe defaults, most common
configuration or something that shows that the run is successful.&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>How software engineer should invest in career growth</title>
      <link>https://www.koszek.com/blog/2017/03/31/how-software-engineer-should-invest-in-career-growth/</link>
      <pubDate>Fri, 31 Mar 2017 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2017/03/31/how-software-engineer-should-invest-in-career-growth/</guid>
      <description>&lt;p&gt;This post is for people who look for ways to spend money on personal growth,
as a software engineer.
Previously I covered &lt;a href=&#34;https://www.koszek.com/blog/2017/02/06/how-much-software-engineer-should-invest-in-career-growth/&#34;&gt;how much one should spend to growth&lt;/a&gt;.
Here let&amp;rsquo;s talk about the best resources you can invest in.&lt;/p&gt;
&lt;p&gt;You should seek for ways of saving your money and after-tax earnings.&lt;br&gt;
Before you apply any of the suggestions, remember to ask your school or
employer about them.
They have a way to bring resources to you, because funds for training and
growth are specially allocated in big institutions. Let&amp;rsquo;s start from the
cheapest to the most expensive.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Are you a good Open Source contributor?</title>
      <link>https://www.koszek.com/blog/2017/03/28/are-you-a-good-open-source-contributor/</link>
      <pubDate>Tue, 28 Mar 2017 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2017/03/28/are-you-a-good-open-source-contributor/</guid>
      <description>&lt;p&gt;Most likely you aren&amp;rsquo;t a good
&lt;a href=&#34;https://en.wikipedia.org/wiki/Open-source_software&#34;&gt;Open Source&lt;/a&gt;
contributor. Most people aren&amp;rsquo;t.
Let&amp;rsquo;s look at it a bit closer.
Below you&amp;rsquo;ll find a scale which will give you the sense of how the
community of Open Source is structured. Where do you fall in it?&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.koszek.com/img/2017-03-28-are-you-a-good-open-source-contributor/volkan-olmez-101863_15p.jpg&#34; alt=&#34;alt_text_7&#34; title=&#34;Image_text_7&#34;&gt;&lt;/p&gt;
&lt;p&gt;By community you can understand several things, but to simplify things:
think of &lt;a href=&#34;https://www.github.com&#34;&gt;GitHub&lt;/a&gt;.
Don&amp;rsquo;t worry too much GitHub is an actual company.
In your head &lt;a href=&#34;https://git-scm.com&#34;&gt;Git&lt;/a&gt; and GitHub are synonyms of the Open Source already,
because they have
the biggest number of software repositories, the biggest number of users, and
they provide everything that a modern software project needs.
Their community is the most vibrant, and they host the most important OSS projects.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Movies every software engineer should watch</title>
      <link>https://www.koszek.com/blog/2017/03/13/movies-every-software-engineer-should-watch/</link>
      <pubDate>Mon, 13 Mar 2017 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2017/03/13/movies-every-software-engineer-should-watch/</guid>
      <description>&lt;p&gt;This is a live list of movies I enjoyed. They assist
me till now. I often think of scenes from some of these titles.
They spark my imagination, and bring some smile.&lt;/p&gt;
&lt;h2 id=&#34;triumph-of-the-nerds&#34;&gt;Triumph of the Nerds&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://www.amazon.com/Riding-the-Bear/dp/B01N6AJPQA/ref=as_li_ss_il?s=instant-video&amp;ie=UTF8&amp;qid=1489978286&amp;sr=1-1&amp;keywords=The+Triumph+of+the+Nerds&amp;linkCode=li2&amp;tag=wkoszek08-20&amp;linkId=270c3ffee65cb42a91b011b40dfffc08&#34; target=&#34;_blank&#34;&gt;&lt;img border=&#34;0&#34; src=&#34;//ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&amp;ASIN=B01N6AJPQA&amp;Format=_SL160_&amp;ID=AsinImage&amp;MarketPlace=US&amp;ServiceVersion=20070822&amp;WS=1&amp;tag=wkoszek08-20&#34; &gt;&lt;/a&gt;&lt;img src=&#34;https://ir-na.amazon-adsystem.com/e/ir?t=wkoszek08-20&amp;l=li2&amp;o=1&amp;a=B01N6AJPQA&#34; width=&#34;1&#34; height=&#34;1&#34; border=&#34;0&#34; alt=&#34;&#34; style=&#34;border:none !important; margin:0px !important;&#34; /&gt;&lt;/p&gt;
&lt;p&gt;Very interesting documentary on Silicon Valley history.&lt;/p&gt;
&lt;h2 id=&#34;something-ventured&#34;&gt;Something Ventured&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://www.amazon.com/Something-Ventured-Nolan-Bushnell/dp/B00WJT5ZBE/ref=as_li_ss_il?s=instant-video&amp;ie=UTF8&amp;qid=1489976556&amp;sr=1-1&amp;keywords=something+ventured&amp;linkCode=li2&amp;tag=wkoszek08-20&amp;linkId=7bb336ee8d1789529454a5a10de5111a&#34; target=&#34;_blank&#34;&gt;&lt;img border=&#34;0&#34; src=&#34;//ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&amp;ASIN=B00WJT5ZBE&amp;Format=_SL160_&amp;ID=AsinImage&amp;MarketPlace=US&amp;ServiceVersion=20070822&amp;WS=1&amp;tag=wkoszek08-20&#34; &gt;&lt;/a&gt;&lt;img src=&#34;https://ir-na.amazon-adsystem.com/e/ir?t=wkoszek08-20&amp;l=li2&amp;o=1&amp;a=B00WJT5ZBE&#34; width=&#34;1&#34; height=&#34;1&#34; border=&#34;0&#34; alt=&#34;&#34; style=&#34;border:none !important; margin:0px !important;&#34; /&gt;&lt;/p&gt;
&lt;p&gt;Silicon Valley is made out of a mix of investors and engineers, and this
movie shows this real tight collaboration between the two. It has some
computer legends, and I can&amp;rsquo;t speak highly enough about it.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>How to use Ansible Vault with LastPass</title>
      <link>https://www.koszek.com/blog/2017/03/05/how-to-use-ansible-vault-with-lastpass/</link>
      <pubDate>Sun, 05 Mar 2017 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2017/03/05/how-to-use-ansible-vault-with-lastpass/</guid>
      <description>&lt;p&gt;There are several competitors for password managers.
I use &lt;a href=&#34;https://www.lastpass.com&#34;&gt;LastPass&lt;/a&gt;, because it has an Open Source &lt;a href=&#34;https://github.com/lastpass/lastpass-cli&#34;&gt;command line client&lt;/a&gt;.
This is an officially supported tool, maintained by the LastPass itself.
I haven&amp;rsquo;t audited the code; I have just looked at several &lt;code&gt;.c&lt;/code&gt; files, and
it seamed decent. Code has been around since 2014, so in the last three
years I suspect both good and bad guys had a chance to find issues.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>What&#39;s the most expensive stage of software engineering?</title>
      <link>https://www.koszek.com/blog/2017/02/28/whats-the-most-expensive-stage-of-software-engineering/</link>
      <pubDate>Tue, 28 Feb 2017 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2017/02/28/whats-the-most-expensive-stage-of-software-engineering/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://www.koszek.com/img/2017-02-28-whats-the-most-expensive-in-software/pandu-agus-wismoyo-196366_10p.jpg&#34; alt=&#34;alt_text_0&#34; title=&#34;worker&#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/@kangterbang&#34;&gt;Yatesndu Agus Wismoyo&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;
&lt;p&gt;Imagine we&amp;rsquo;re starting a software project together this year.
It will run in production, and serve a large amount of live customer
traffic.
Its lifespan may look like this:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.koszek.com/img/2017-02-28-whats-the-most-expensive-stage-of-software-engineering/sw_graph_50p.jpg&#34; alt=&#34;alt_text_3&#34; title=&#34;Image_text_3&#34;&gt;&lt;/p&gt;
&lt;p&gt;If this cycle of maintenance is long enough, it can overweight the cost of
all previous stages. I &lt;a href=&#34;https://travis-ci.org/wkoszek/&#34;&gt;do have projects&lt;/a&gt;
which are considered &amp;ldquo;finished&amp;rdquo;: all the features are there, and as much as
you can&amp;rsquo;t make a hammer any better, neither can I any of these projects.
But for the most part, the software story is a little different: it&amp;rsquo;ll
always be a recipe, but the kitchen, ingredients, pans or people will change over
time. These adjustments cost money.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Making pull requests that merge</title>
      <link>https://www.koszek.com/blog/2017/02/18/making-pull-requests-that-merge/</link>
      <pubDate>Sat, 18 Feb 2017 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2017/02/18/making-pull-requests-that-merge/</guid>
      <description>&lt;p&gt;The role of the software architect is to reject bad code, push back on
unnecessary features and prevent the project from accumulating cruft.
I use the term &amp;ldquo;software architect&amp;rdquo; here to match the professional
environment, but it can apply to any independent software developer,
including Open Source software engineers writing projects they love and talk
about.
When you make a change to the software source code, you will need to pass a
judgement of a software architect.
To bring your code into the project upstream, there are two angles
you&amp;rsquo;ll be evaluated from: technical and social.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Learn programming: self study guide</title>
      <link>https://www.koszek.com/blog/2017/02/13/learn-programming-self-study-guide/</link>
      <pubDate>Mon, 13 Feb 2017 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2017/02/13/learn-programming-self-study-guide/</guid>
      <description>&lt;p&gt;The advice you will get here is a true and honest take on how I believe you
should start programming computers, and how you can self-educate yourself in
a programming craft. I know how to do it because I went through this process
by myself and I know exactly where the pain points are. I don&amp;rsquo;t talk about
any specific books, as other people have done it already. I only talk about
methodology and mental side of studying.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>How much software engineer should invest in career growth</title>
      <link>https://www.koszek.com/blog/2017/02/06/how-much-software-engineer-should-invest-in-career-growth/</link>
      <pubDate>Mon, 06 Feb 2017 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2017/02/06/how-much-software-engineer-should-invest-in-career-growth/</guid>
      <description>&lt;p&gt;Software engineers can start generating income pretty early on. You don&amp;rsquo;t
need permission from anyone, no certificates, no paperwork, no examination.
If you have your debts paid off, this is the moment when you should think of
yourself as a single-person company. Why? It&amp;rsquo;s not because I want you to go
and become a freelancer and be on your own, but becuase it&amp;rsquo;s easier to
understand how to make decent financial decisions that way.  Let&amp;rsquo;s talk
about this.  For the purposes of our discussion let&amp;rsquo;s assume that if your
name is David Roberts, the name of your company is &amp;ldquo;David Roberts LLC&amp;rdquo;.
Write it down, if it helps you: &amp;ldquo;David Roberts, CEO of David Roberts LLC&amp;rdquo;.
You&amp;rsquo;re in a company mindset now. We can understand what it really means now.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Why you should start programming on UNIX</title>
      <link>https://www.koszek.com/blog/2017/01/28/why-you-should-start-programming-on-unix/</link>
      <pubDate>Sat, 28 Jan 2017 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2017/01/28/why-you-should-start-programming-on-unix/</guid>
      <description>&lt;p&gt;It&amp;rsquo;s simpler than anything else around.&lt;/p&gt;
&lt;p&gt;I know. It&amp;rsquo;s counterintuitive. All the nice tools and integrated
environments for writing code looks slick. You may even see other people
using them in the train to work.&lt;/p&gt;
&lt;p&gt;You look over their shoulder and it doesn&amp;rsquo;t look that hard.&lt;/p&gt;
&lt;p&gt;But it is.&lt;/p&gt;
&lt;p&gt;So stay with me hear and listen. The idea might be counterintuitive, but if
you go with it, I think you&amp;rsquo;ll learn programming faster and you&amp;rsquo;ll be a
better engineer at the end, since you&amp;rsquo;ll do more things by yourself.&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>Reading 101 for software engineers</title>
      <link>https://www.koszek.com/blog/2017/01/17/reading-for-software-engineers/</link>
      <pubDate>Tue, 17 Jan 2017 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2017/01/17/reading-for-software-engineers/</guid>
      <description>&lt;p&gt;I would argue that without reading, you&amp;rsquo;re wasting a lot of time.
&amp;ldquo;Good people borrow, and great steal&amp;rdquo;. I know few software engineers, who
don&amp;rsquo;t read and yet still write amazing software. But there are very few of them.
I bet you&amp;rsquo;re not one of them, actually.
And most of their time, they do waste &lt;em&gt;some&lt;/em&gt; time too.
Very few of us solve unique problems. You&amp;rsquo;re probably not the lucky guy either.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>That&#39;s why you haven&#39;t accomplished enough in 2016</title>
      <link>https://www.koszek.com/blog/2017/01/02/thats-why-you-havent-accomplished-enough-in-2016/</link>
      <pubDate>Mon, 02 Jan 2017 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2017/01/02/thats-why-you-havent-accomplished-enough-in-2016/</guid>
      <description>&lt;p&gt;When you make a plan to accomplish goals, most of the time you don&amp;rsquo;t do it
very well. Maybe it&amp;rsquo;s the book you wanted to read, the podcasts you wanted
to listen, or maybe finally wrapping up the pet project of yours.&lt;/p&gt;
&lt;p&gt;First of all typically you have too many goals.
Another problem is that they&amp;rsquo;re not very precise.
Not very measurable.
You don&amp;rsquo;t know how to even start. You never start and thus you fail.
Maybe even you&amp;rsquo;re slightly depressed or upset, since not finishing what
you&amp;rsquo;ve plan kind of sucks.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Building an Open Source iOS app: lessons learned</title>
      <link>https://www.koszek.com/blog/2016/12/12/building-an-open-source-ios-app/</link>
      <pubDate>Mon, 12 Dec 2016 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2016/12/12/building-an-open-source-ios-app/</guid>
      <description>&lt;p&gt;Below you can find an abstract and materials for the talk I gave at the
Silicon Valley Mobile Developers and Designers Meetup at Hacker Dojo, Santa
Clara, Dec 12th, 2016.&lt;/p&gt;
&lt;h2 id=&#34;slides&#34;&gt;Slides&lt;/h2&gt;
&lt;p&gt;Slideshare slides.&lt;/p&gt;
&lt;iframe src=&#34;//www.slideshare.net/slideshow/embed_code/key/EkJuhVmt4s5wPe&#34; width=&#34;595&#34; height=&#34;485&#34; frameborder=&#34;0&#34; marginwidth=&#34;0&#34; marginheight=&#34;0&#34; scrolling=&#34;no&#34; style=&#34;border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;&#34; allowfullscreen&gt; &lt;/iframe&gt; &lt;div style=&#34;margin-bottom:5px&#34;&gt; &lt;strong&gt; &lt;a href=&#34;//www.slideshare.net/wkoszek/building-an-open-source-ios-app-lessons-learned&#34; title=&#34;Building an Open Source iOS app: lessons learned&#34; target=&#34;_blank&#34;&gt;Building an Open Source iOS app: lessons learned&lt;/a&gt; &lt;/strong&gt; from &lt;strong&gt;&lt;a target=&#34;_blank&#34; href=&#34;//www.slideshare.net/wkoszek&#34;&gt;Wojciech Koszek&lt;/a&gt;&lt;/strong&gt; &lt;/div&gt;
&lt;p&gt;For easy download, go to GitHub link below.&lt;/p&gt;
&lt;h2 id=&#34;abstract&#34;&gt;Abstract&lt;/h2&gt;
&lt;p&gt;In this talk I&amp;rsquo;m going to talk about lessons learned from building Sensorama
&lt;a href=&#34;http://www.sensorama.org&#34;&gt;https://www.sensorama.org&lt;/a&gt;, an Open Source sensor platform for data science.
The main theme of the talk will be Open Source: what is great about it, what
is bad and how you must become a part of the Open Source
community to really move quickly and benefit from it.
For this project, I did both the code and the design, so you&amp;rsquo;ll have a chance to see how
solo-developer deals with time/feature constraints, which tools I&amp;rsquo;ve used
and what my approach towards development in this mode is.
In other words: I&amp;rsquo;ll tell you what I did to stay sane.
If the iOS development were a walk in a dark city park, this talk may turn
out to be your flashlight. If you like it, star it at GitHub:
&lt;a href=&#34;https://www.sensorama.org&#34;&gt;https://github.com/wkoszek/sensorama-ios&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Failure of my one post per week goal</title>
      <link>https://www.koszek.com/blog/2016/11/02/failure-of-my-one-post-per-week-goal/</link>
      <pubDate>Wed, 02 Nov 2016 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2016/11/02/failure-of-my-one-post-per-week-goal/</guid>
      <description>&lt;p&gt;I started to appreciate bloggers and YouTubers this year. We&amp;rsquo;ve got many,
many people pushing great content into the Internet for free, and let me
tell you: I&amp;rsquo;m not one of them.&lt;/p&gt;
&lt;p&gt;After understanding that writing on a regular basis is important, I&amp;rsquo;ve tried
to do one blog a week.&lt;/p&gt;
&lt;p&gt;One blog a week. Really. This isn&amp;rsquo;t that much if you think about it. I
believed that it&amp;rsquo;d be around 30 minutes of writing and maybe several more on
proofreading and publishing, but it&amp;rsquo;s official &amp;ndash; I&amp;rsquo;ve failed.&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 I learned from connecting 60 projects to CI system</title>
      <link>https://www.koszek.com/blog/2016/07/11/what-i-learned-from-connecting-60-projects-to-ci-system/</link>
      <pubDate>Mon, 11 Jul 2016 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2016/07/11/what-i-learned-from-connecting-60-projects-to-ci-system/</guid>
      <description>&lt;p&gt;Several months ago I started to wonder what makes me check out software
sitting at &lt;a href=&#34;https://www.GitHub.com&#34;&gt;GitHub&lt;/a&gt; and try it out.
Some projects I was more willing to work with, and some I
simply skipped without thinking about it much.
It seemed like a habit which I&amp;rsquo;ve developed over the years.
But why do I have this feeling of carelessly ignoring some projects over another?&lt;/p&gt;
&lt;p&gt;The characteristics of projects I&amp;rsquo;m drawn into are pretty simple: good,
clear documentation, good top-level directory structure, presence of some
&amp;ldquo;dotfiles&amp;rdquo; and &amp;hellip; green badge, signalizing &lt;a href=&#34;https://en.wikipedia.org/wiki/Continuous_integration&#34;&gt;Continuous Integration
(CI)&lt;/a&gt;
system is actually verifying this software is at least building fine.&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>Don&#39;t document. Automate!</title>
      <link>https://www.koszek.com/blog/2016/04/11/dont-document-automate/</link>
      <pubDate>Mon, 11 Apr 2016 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2016/04/11/dont-document-automate/</guid>
      <description>&lt;p&gt;When I go to an article or a GitHub page it sometimes amazes me how good
stuff people produce. I&amp;rsquo;m building an sensor platform recently, and a lot of
problems I solve by using software others wrote and made it free. This
is great. But there&amp;rsquo;s one pattern which I need to criticize: people write
way to much.&lt;/p&gt;
&lt;p&gt;What do I mean by that?&lt;/p&gt;
&lt;p&gt;The normal flow of getting software to work is typing a series of steps. For
example it may require typing 10 commands in the command line. And these
commands for ninety five percent of people will likely be the same.
For the rest 10% they&amp;rsquo;ll be
slightly customized, but not much. Nothing that couldn&amp;rsquo;t be achieved with
10-line shell script consuming 1-2 parameters.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Dropbox on iOS is disappointing</title>
      <link>https://www.koszek.com/blog/2016/04/04/dropbox-on-ios-is-disappointing/</link>
      <pubDate>Mon, 04 Apr 2016 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2016/04/04/dropbox-on-ios-is-disappointing/</guid>
      <description>&lt;p&gt;Dropbox popularized the idea of cloud storage. They were the first
widely used product which normal people like my mother could understand.
On OSX Dropbox is integrated very well with the OS. In fact, you can see
Dropbox as a folder and basically forget that the files which you save
locally will be transmitted on the server in the background.&lt;/p&gt;
&lt;p&gt;On a daily basis I use Google Drive, but when I got an iPad, I thought
it&amp;rsquo;d be good to keep Dropbox as my iPad backing store, so that I don&amp;rsquo;t
get distracted with my normal stuff. I intended to keep PDFs, books and
other documents in Dropbox so that I could use my iPad for productive
work.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>I&#39;ve got an iPad Pro yesterday</title>
      <link>https://www.koszek.com/blog/2016/03/21/ive-got-ipad-pro-yesterday/</link>
      <pubDate>Mon, 21 Mar 2016 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2016/03/21/ive-got-ipad-pro-yesterday/</guid>
      <description>&lt;p&gt;When iPad Pro came out, I got really excited. The price was fairly high, but
this model seemed to include all features I always wanted from a
tablet.&lt;/p&gt;
&lt;p&gt;My priorities when making a tablet purchase:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;big, high resolution screen. Should mean no more eyeballing of
A4/American Letter size documents on small screen with scaled down fonts;
also more trees saved on printing down things I&amp;rsquo;d only read once.&lt;/li&gt;
&lt;li&gt;decent pencil for drawing&lt;/li&gt;
&lt;li&gt;a lot of memory for podcasts, trainings and audiobooks&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I got iPad Pro. It is my first tablet ever. Up until this point I felt like
buying a tablet would be a total waste of money, since the features from the
list are pretty essential for my usual workflow.&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>Computer History from Giants Themselves</title>
      <link>https://www.koszek.com/blog/2015/11/16/computer-history-from-giants-themselves/</link>
      <pubDate>Mon, 16 Nov 2015 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2015/11/16/computer-history-from-giants-themselves/</guid>
      <description>&lt;p&gt;I was an idol driven kid and I’ve always had somebody I admired when
growing up. From the earliest recollections I could trace back in my
memory the very first person was probably my grandfather, the master
tailor. And through him I got to know
&lt;a href=&#34;https://en.wikipedia.org/wiki/MacGyver&#34;&gt;MacGyver&lt;/a&gt;. I was allowed to
watch MacGyver, since my grandfather believed it would teach me
creativity and also because I loved pocket knifes. Till this day each
time you say something bad about MacGyver, you’ll have an enemy in me,
since it was such an integral part of my growing up and becoming
creative. Same applies to &lt;a href=&#34;https://en.wikipedia.org/wiki/John_%22Hannibal%22_Smith&#34;&gt;John Hannibal
Smith&lt;/a&gt; and
probably &lt;a href=&#34;https://en.wikipedia.org/wiki/Emmett_Brown&#34;&gt;Dr Emmet Brown&lt;/a&gt;.
The older I got, the more my idols shifted from the fictional characters
to real-world people, and this stayed with me till my adult life.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>How to use nginx on Travis (or other) CI system</title>
      <link>https://www.koszek.com/blog/2015/11/01/nginx-on-travis-ci/</link>
      <pubDate>Sun, 01 Nov 2015 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2015/11/01/nginx-on-travis-ci/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://www.travis-ci.org&#34;&gt;Travis Ci&lt;/a&gt; is one of the most essential tools for
my projects, since it takes a burden of maintaining Jenkins away of me. I
try to use Travis automation for every boring activity, and having it run
after each source code change to do some basic tests saves me a lot of time.&lt;/p&gt;
&lt;p&gt;Making things work in Travis is typically straightforward, but there are
cases where a special configuration needs to be applied, since the new
Travis is based on the container-based architecture. This poses some
requirements: no &lt;code&gt;root&lt;/code&gt; access and no &lt;code&gt;sudo&lt;/code&gt; functionality for your setup
scripts. Some software doesn&amp;rsquo;t like that.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Subtle difference between FreeBSD, MacOSX and Linux printf</title>
      <link>https://www.koszek.com/blog/2015/10/28/subtle-difference-between-linux-and-macosx-printf/</link>
      <pubDate>Wed, 28 Oct 2015 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2015/10/28/subtle-difference-between-linux-and-macosx-printf/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m working on polishing my &lt;code&gt;mini_printf&lt;/code&gt; implementation and making a final,
verified and documented code release, and the thing I made work in the past
and something that stopped working when I moved to MacOSX was a randomized
stress-test.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/wkoszek/mini_printf&#34;&gt;https://github.com/wkoszek/mini_printf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s pretty neat: it uses its own PRNG generator to achieve repeatability
and uses its numbers to construct randomized format strings which are then
played against OSes &lt;code&gt;printf()&lt;/code&gt; and my &lt;code&gt;mini_printf()&lt;/code&gt; API. Both versions are
later compared. I exposed a lot of bugs in &lt;code&gt;mini_printf&lt;/code&gt; that way, of which
all have been fixed.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Top 3 bugs I make in shell scripts</title>
      <link>https://www.koszek.com/blog/2015/10/12/top-three-bugs-i-make-in-shell-scripts/</link>
      <pubDate>Mon, 12 Oct 2015 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2015/10/12/top-three-bugs-i-make-in-shell-scripts/</guid>
      <description>&lt;p&gt;Most people involved in software rarely talk about bugs. Perhaps it’s
because a lot of software designers are striving for perfection, and
aren’t willing to talk about the times when the machine conquered them.
We all create software bugs, so let’s break the silence. Below are my
top three bugs which occur while writing shell scripts.&lt;/p&gt;
&lt;h3 id=&#34;order-of-redirection&#34;&gt;Order of redirection&lt;/h3&gt;
&lt;p&gt;Let’s take an example script which generates “STDOUT” on standard output
and “STDERR” on standard error.&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>wget in 9 lines of Python For Hostile Environments</title>
      <link>https://www.koszek.com/blog/2015/10/04/wget-in-9-lines-of-python-for-hostile-environments/</link>
      <pubDate>Sun, 04 Oct 2015 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2015/10/04/wget-in-9-lines-of-python-for-hostile-environments/</guid>
      <description>&lt;p&gt;HTTPS seems to be everywhere these days, including GitHub. It’s great to
see the security of the Web improved, but sometimes this comes at a
cost. Recently I wanted to actually fetch and test my own repository for
bootstrapping my storage box from Synology:&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/wkoszek/synology&#34;&gt;https://github.com/wkoszek/synology&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The DS214play model which I have comes with the &lt;code&gt;wget&lt;/code&gt; program without
HTTPS, so doing a command line bootstrapping is difficult. This is one
of this weird chicken-and-egg problems we sometimes experience, and to
test my software releases published on GitHub, I wrote this simple
thing, which lets me fetch the release and do further bootstrapping and
testing:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Do You Have a Favorite Shell Trick?</title>
      <link>https://www.koszek.com/blog/2015/09/28/do-you-have-a-favorite-shell-trick/</link>
      <pubDate>Mon, 28 Sep 2015 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2015/09/28/do-you-have-a-favorite-shell-trick/</guid>
      <description>&lt;p&gt;The very first scripting programming language I learned was Perl. It was
circa 2000; Python wasn’t that popular back then, and my choice leaned
towards Perl since I could get a decent books about it in Polish. I
remember squeezing $20 and getting something that seemed like &lt;a href=&#34;https://amzn.to/1VhXyEb&#34;&gt;the
thickest book ever&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Several years later I came back to Perl because Xilinx was using it too,
and since then I’ve had the chance to come back and polish some of my
Perl chops. We had a very nice build system written in Perl which let
you check out files selectively. You would check out a file to a clean
directory, hit “build”, and it’d build a project for you from vanilla
sources. Then you’d check out a file you wanted to modify and keep
hacking on it. Next you’d hit “build” again, but this time the system
would use the modified file instead of the plain file from the
repository. All the junk files from C and Verilog compiler would be put
in the obj/ directory for you, so you never had to see them. I liked it,
since my workspace was really neat and tidy (two to three source code
files plus some log files).&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Why it&#39;s not about self-driving</title>
      <link>https://www.koszek.com/blog/2015/09/23/why-its-not-about-self-driving/</link>
      <pubDate>Wed, 23 Sep 2015 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2015/09/23/why-its-not-about-self-driving/</guid>
      <description>&lt;p&gt;In “How to be Rich” Jean Paul Getty expressed his excitement about
enormous advances in science and technology at the beginning of the
20th century. The 21st century seemed to start in an equally exciting
way, for example the self-driving car is attracting a great deal of
attention lately. When I was about 14 years old a friend of mine told me
that if &lt;a href=&#34;https://en.wikipedia.org/wiki/KITT&#34;&gt;KITT&lt;/a&gt; had existed, she’d
have bought one. I wasn’t surprised - every kid in my neighborhood
wanted KITT and everybody wanted to be
&lt;a href=&#34;https://en.wikipedia.org/wiki/David_Hasselhoff&#34;&gt;Hasselhoff&lt;/a&gt;. Moving
to the US meant dealing with everything supersized; the smallest car at
the airport car rental was bigger than anything I’d ever driven. I
really wanted a CarOS: a software featuring a button which would get me
from A to B with no hassle. I promised myself that when a self-driving
vehicle like this becomes available, I would become an early adopter as
soon as my wallet would let me.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Facebook Paper and Copyright screens</title>
      <link>https://www.koszek.com/blog/2015/09/08/copyright-screen-of-facebook-paper/</link>
      <pubDate>Tue, 08 Sep 2015 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2015/09/08/copyright-screen-of-facebook-paper/</guid>
      <description>&lt;p&gt;In the process of working on &lt;a href=&#34;http://www.sensorama.org&#34;&gt;Sensorama&lt;/a&gt; I
wanted to get inspired by a well designed modern mobile app. Figuring
out the libraries and technologies people use in well designed products
is often a good way to go. Even Apple &lt;a href=&#34;https://developer.apple.com/videos/wwdc/2014/?include=223&#34;&gt;uses existing
products&lt;/a&gt; as
a base for their &lt;a href=&#34;https://developer.apple.com/videos/wwdc/2015/?id=801&#34;&gt;next
products&lt;/a&gt;. But
how to find out more about software internals?&lt;/p&gt;
&lt;p&gt;Legal pages are those boring documents that none of us ever usually
reads. But they are also a great source of engineering information. As
makers of software, due to legal and copyright issues, we need to give
credits to authors of the libraries we use, as well as inform users
about potential risks. And no - you can’t just use the copy &amp;amp; paste
function, obfuscate it with your own variable names, reformat tabs to
spaces and shift a few lines here and there. Technically you’re supposed
to credit people for their work. Basically: help people who have written
free code to put their names out there in the wild so that now and then
they might land some consulting gigs in exchange for free (as in “free
beer”) tools.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>(Probably) the single biggest collection of Ruby scripts</title>
      <link>https://www.koszek.com/blog/2015/09/01/the-single-biggest-collection-of-ruby-scripts/</link>
      <pubDate>Tue, 01 Sep 2015 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2015/09/01/the-single-biggest-collection-of-ruby-scripts/</guid>
      <description>&lt;h2 id=&#34;quickstart&#34;&gt;Quickstart&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/wkoszek/book-programming-ruby&#34;&gt;https://github.com/wkoszek/book-programming-ruby&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;explanation&#34;&gt;Explanation&lt;/h2&gt;
&lt;p&gt;To evaluate the feasibility of different Ruby interpreters I wanted to
investigate how any of Ruby 1.8, 1.9, 2.x and Rubinius will deal with
subsets of scripts fed to them. I did it because I&amp;rsquo;ve noticed
&lt;a href=&#34;https://github.com/rubinius/rubinius/issues/3456&#34;&gt;regressions with Rubinius&lt;/a&gt;
in the past, and I wanted to understand whether this situation is similar for a
larger code base and basically how serious these issues are.&lt;/p&gt;
&lt;p&gt;On the separate now, for learning Ruby I used couple of books, and one of
them was:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>How do you evaluate new technologies?</title>
      <link>https://www.koszek.com/blog/2015/08/26/how-do-you-evaluate-new-technologies/</link>
      <pubDate>Wed, 26 Aug 2015 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2015/08/26/how-do-you-evaluate-new-technologies/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://www.google.com/search?num=100&amp;amp;espv=2&amp;amp;q=how&amp;#43;do&amp;#43;i&amp;#43;get&amp;#43;started&amp;#43;with&amp;amp;oq=how&amp;#43;do&amp;#43;i&amp;#43;get&amp;#43;started&amp;#43;with&amp;amp;gs_l=serp.3..0l10.2369.4525.0.4799.11.6.3.2.2.0.120.574.3j3.6.0....0...1c.1.64.serp..3.8.404.yCvToyxF6AE&#34;&gt;“How do I get started with X”&lt;/a&gt;
is probably one of the most frequently asked questions on technical
forums. With 2.8 billion results from Google, somehow technical “AWS”
manages to top the search results page:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;2015-08-26-how-do-you-evaluate-new-technologies/image05.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;As a software crowd, we all start to use new technologies at some point.
While many technologies are fairly self-explanatory (having no
“democratize” or “disruptive” in their name), many of them aren’t, or
simply have no feature that distinguishes them from other available
options. How do &lt;strong&gt;you&lt;/strong&gt; select new components for your newest product?&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>I wish Ruby and Python stopped changing so much</title>
      <link>https://www.koszek.com/blog/2015/08/17/i-wish-ruby-and-python-stopped-changing-so-much/</link>
      <pubDate>Mon, 17 Aug 2015 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2015/08/17/i-wish-ruby-and-python-stopped-changing-so-much/</guid>
      <description>&lt;p&gt;In &lt;a href=&#34;https://www.koszek.com/blog/2015/07/22/why-the-go-wont-be-successful/&#34;&gt;my article on Go&lt;/a&gt;,
I expressed my frustration on trying to make
&lt;a href=&#34;https://github.com/prasmussen/gdrive&#34;&gt;&lt;em&gt;gdrive&lt;/em&gt;&lt;/a&gt; work in no time.
Unfortunately, I failed to do so in a predicted time back then. Many users
commented on wrong title and problems with the content.
While I still believe tools that just
don’t work are likely to drive users away, I must say that one of the
reader’s comments on my article expressed a point of view, which I can
identify with:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Non-continuous innovation = dangerous or “Amazon Ad Platform Cleanups”</title>
      <link>https://www.koszek.com/blog/2015/08/10/non-continuous-innovation-is-dangerous/</link>
      <pubDate>Mon, 10 Aug 2015 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2015/08/10/non-continuous-innovation-is-dangerous/</guid>
      <description>&lt;p&gt;I received an email from Amazon two months ago, but I didn’t really pay
attention to it,letting it stew in my mailbox for a while, until I
visited the &lt;a href=&#34;https://www.koszek.com/reading/&#34;&gt;&lt;em&gt;reading section of my
website&lt;/em&gt;&lt;/a&gt; in the hope of referring to
&lt;a href=&#34;https://www.koszek.com/books/2012/12/07/book-the-old-new-thing/&#34;&gt;&lt;em&gt;the book I read a while
ago&lt;/em&gt;&lt;/a&gt;,
and all I saw instead of a nice picture was this:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;2015-08-10-non-continuous-innovation-is-dangerous/image02.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;The cause is good, but the place is bad. So I went back and I dug up the
email:&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>Optimize for the Developer’s Time, Not the Machine’s</title>
      <link>https://www.koszek.com/blog/2015/07/28/optimize-for-developers-time/</link>
      <pubDate>Tue, 28 Jul 2015 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2015/07/28/optimize-for-developers-time/</guid>
      <description>&lt;p&gt;It is sometimes easy to forget how computer engineers in the early days
struggled just to make things work. In ’70s and ’80s, computing
resources like memory were scarce; CPUs were slow, and disk space was
limited. There was little or no networking, and communication with the
computer was primitive. Heck, even Norton Commander on a 12” was
suboptimal. Right now, I could probably achieve this:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;2015-07-19-optimize-for-developers-time/image02.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;And do it in a single Terminal window, which would make ’70s engineers’
eyeballs go red with jealousy. Have you ever wondered what the world was
like without Vim or Emacs? Yet these are fairly recent accomplishments.
To summarize: It’s easy to forget all these things and keep asking
questions such as &lt;a href=&#34;https://www.joelonsoftware.com/items/2008/02/19.html&#34;&gt;&lt;em&gt;why are Microsoft Office file formats so
complicated&lt;/em&gt;&lt;/a&gt;,
unless you understand the heritage of certain decisions and computers in
general.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Why the Go Language Won&#39;t Be Successful</title>
      <link>https://www.koszek.com/blog/2015/07/22/why-the-go-wont-be-successful/</link>
      <pubDate>Wed, 22 Jul 2015 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2015/07/22/why-the-go-wont-be-successful/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Since I wrote this post two years ago, I changed my mind:
Go is OK.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The other day I stumbled upon a &lt;a href=&#34;https://www.google.com/url?q=https%3A%2F%2Fgithub.com%2Fprasmussen%2Fgdrive&amp;amp;sa=D&amp;amp;sntz=1&amp;amp;usg=AFQjCNGAiYDSR3UBgK6bT9wAoUSUPQrd-A&#34;&gt;Google Drive command line client&lt;/a&gt;. It’s a software project written in the Go language. It lets you access Google Drive from the command line. I felt it was a great project, and I wanted to give it a shot, so I started reading. Unfortunately, the program is distributed in binary form, and given several problems that GitHub has had over the past 2 years or so, I’d rather not run binaries from GitHub on my machine. Makes sense, right?&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Source Code from &#34;Programmer Guide to NCurses&#34; by Dan Gookin</title>
      <link>https://www.koszek.com/blog/2015/07/08/programmers-guide-to-ncurses/</link>
      <pubDate>Wed, 08 Jul 2015 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2015/07/08/programmers-guide-to-ncurses/</guid>
      <description>&lt;p&gt;Even though I&amp;rsquo;ve never read Gookin&amp;rsquo;s book, I&amp;rsquo;ve noticed that his website
tarball with C sources is quite useful, as it contains small self-contained
programs. To the sources I&amp;rsquo;ve added a &lt;code&gt;makefile&lt;/code&gt; to make build automated and
I&amp;rsquo;ve fixed programs which weren&amp;rsquo;t compiling.&lt;/p&gt;
&lt;h2 id=&#34;dependencies&#34;&gt;Dependencies&lt;/h2&gt;
&lt;p&gt;For MacOSX I didn&amp;rsquo;t need anything. For Ubuntu you&amp;rsquo;ll probably have to type:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-terminal&#34; data-lang=&#34;terminal&#34;&gt;apt-get install libncurses5-dev libncurses5
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;how-to-build&#34;&gt;How to build?&lt;/h2&gt;
&lt;p&gt;Fetch the source, enter its folder and type make:&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>Random notes on &#34;Barely usable&#34;</title>
      <link>https://www.koszek.com/blog/2012/08/06/barely-usable/</link>
      <pubDate>Mon, 06 Aug 2012 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2012/08/06/barely-usable/</guid>
      <description>&lt;p&gt;Hall in my new apartment is narrow enough to make it impossible to bring ANY
form of the furniture in. Wanna desk? NEEEEEEEEEEE. Cupboard?
NEEEEEEEEEEEEE. Just impossible. Last 8 months I tried to live without a
desk, but I must admit — just like the Internet access, I really do need a
desk. I guess better chair is yet another investment I need to make. Anyway:
hall = too narrow.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Almost usable &amp;mdash; Sharp MFP printer menu</title>
      <link>https://www.koszek.com/blog/2012/07/02/mfp-printer/</link>
      <pubDate>Mon, 02 Jul 2012 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2012/07/02/mfp-printer/</guid>
      <description>&lt;p&gt;I decided to give Sharp MFP printer a try. I&amp;rsquo;m pretty conservative (lets say I&amp;rsquo;m radical:
if something works nicely for me, I don&amp;rsquo;t wanna change). But printers which
we had here in the company never really worked for me, since on the floor of hundreds of people
printers are the things that nearly never work. Either lack of toner or lack
of skilled human being to figure out, what&amp;rsquo;s wrong with the darn machine,
which claims it&amp;rsquo;s jammed, but it&amp;rsquo;s not.&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>fpurge() hack &amp;mdash; Koszek trick #1</title>
      <link>https://www.koszek.com/blog/2012/05/19/koszek_trick/</link>
      <pubDate>Sat, 19 May 2012 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2012/05/19/koszek_trick/</guid>
      <description>&lt;p&gt;A friend of mine asked me once:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;How to recover text formatted by printf(), but do not spit it
output to the console?&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Right now I don&amp;rsquo;t exactly remember why &lt;code&gt;fprintf()&lt;/code&gt; couldn&amp;rsquo;t be used, but I
remember this was in the environment where &lt;code&gt;fprintf()&lt;/code&gt; (or all?) changes
couldn&amp;rsquo;t be applied.&lt;/p&gt;
&lt;p&gt;This is a technique I was came up with. Please note: this is &lt;em&gt;HUGE&lt;/em&gt; hack and
it is not proven to work on your system. It is based on the fact data from
&lt;code&gt;printf&lt;/code&gt; function family is first written to the buffer &lt;code&gt;buf&lt;/code&gt;, and until
it&amp;rsquo;s internally flushed, it won&amp;rsquo;t be printed. Lack of flush is implicitly
expected due to the large buffer size, and buffering set by &lt;code&gt;setbuf&lt;/code&gt;. Once
we generate enough data in the &lt;code&gt;buf&lt;/code&gt; buffer through &lt;code&gt;fprintf&lt;/code&gt; calls, we copy
the data to &lt;code&gt;text&lt;/code&gt; buffer, and discard &lt;code&gt;buf&lt;/code&gt; buffer. Discarding happens via
&lt;code&gt;fprune&lt;/code&gt; and its associated file descriptor, for which buffer has been used
for.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>01001011, or on the art of snare drum patterns</title>
      <link>https://www.koszek.com/blog/2012/05/17/stick_control/</link>
      <pubDate>Thu, 17 May 2012 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2012/05/17/stick_control/</guid>
      <description>&lt;p&gt;Below is my short experiment on finding an analogy between two of things I
like: computers and music. Sometimes when I think about snare drum
technique, I really feel it&amp;rsquo;s the most awkward activity which human being
came up with.&lt;/p&gt;
&lt;p&gt;Really. Think about it for a moment.&lt;/p&gt;
&lt;p&gt;Adult man takes a pair of wooden sticks, plastic head stretched on the wooden, round
frame, which resonates and makes stretched head&amp;rsquo;s surface pretty damn loud and starts hitting this
surface. On purpose. For a long time, with high level concentration, heading towards perfection in
the evenness of strokes and sounds.&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>
    
    <item>
      <title>How to write a good Google Summer of Code Proposals</title>
      <link>https://www.koszek.com/blog/2012/04/28/how_to_write_gsoc_proposal/</link>
      <pubDate>Sat, 28 Apr 2012 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2012/04/28/how_to_write_gsoc_proposal/</guid>
      <description>&lt;p&gt;Let me keep it short. As short and concrete as your proposal should be.
I document my  examples with this years proposals, but the fact you see
title of your project here means nothing. These are just examples.&lt;/p&gt;
&lt;h3 id=&#34;project-title&#34;&gt;Project title&lt;/h3&gt;
&lt;p&gt;Nothing more here. Keep it short and precise. &lt;em&gt;&lt;strong&gt;NTFS for FreeBSD&lt;/strong&gt;&lt;/em&gt; is so
much different than &lt;em&gt;&lt;strong&gt;Proposal for FreeBSD&lt;/strong&gt;&lt;/em&gt;.  Positively different.&lt;/p&gt;
&lt;h3 id=&#34;short-description&#34;&gt;Short description&lt;/h3&gt;
&lt;p&gt;I always try to think that &lt;strong&gt;lesser is more&lt;/strong&gt;.  Please keep it short. Very
short. Lets make it 2-sentence short. So short description can contain 1
sentence answer for each of the questions:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Google Summer of Code &amp;mdash; how proposals are evaluated</title>
      <link>https://www.koszek.com/blog/2012/04/27/freebsd_good_proposal/</link>
      <pubDate>Fri, 27 Apr 2012 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2012/04/27/freebsd_good_proposal/</guid>
      <description>&lt;p&gt;In the previous post I explained the motivation behind GSoC and the state of
things with regards to how it helps FreeBSD.&lt;/p&gt;
&lt;p&gt;I guess I must explain a bit more on how GSOC proposal evaluations are done,
since it can be not entirely clear to outsiders.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Below you&amp;rsquo;ll find an insight on how the evaluation of Google Summer of Code
took place for the FreeBSD project, but please not that people and projects
vary in how they treat their students and participants. Having said that,
over the years of GSoC participation I&amp;rsquo;ve had a chance to interact with
other teams, and their experiences and the approach are similar to FreeBSD&amp;rsquo;s
in how the communicate, help and judge students.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Google Summer of Code &amp;mdash; my take</title>
      <link>https://www.koszek.com/blog/2012/04/26/freebsd_gsoc_proposal/</link>
      <pubDate>Thu, 26 Apr 2012 00:00:00 +0000</pubDate>
      <author>adam@koszek.com (Adam Koszek)</author>
      <guid>https://www.koszek.com/blog/2012/04/26/freebsd_gsoc_proposal/</guid>
      <description>&lt;p&gt;So it has been a week since I reviewed 32 Google Summer of Code proposals for
FreeBSD.  If you don&amp;rsquo;t know anything about it, try to see
&lt;a href=&#34;https://www.google-melange.com&#34;&gt;Google&amp;rsquo;s Google Summer of Code website&lt;/a&gt;.
In short it&amp;rsquo;s a sponsored action that lets
students spend their summer (8 weeks) hacking Open Source projects, learning
new stuff, helping the community, growing as programmers and engineers and
additionally &amp;ndash; earning some additional money.&lt;/p&gt;
&lt;p&gt;Organization gets $500 for accepted project. Students gets $5000 for accepted
project. In the middle of the deadline (midterm) students receive 50% of
their expected compensation: $2500. The rest comes at the end.&lt;/p&gt;</description>
    </item>
    
  </channel>
</rss>
