<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Programming on ericsuh.com</title>
    <link>https://www.ericsuh.com/categories/programming.html</link>
    <description>Recent content in Programming on ericsuh.com</description>
    <generator>Hugo -- gohugo.io</generator>
    <copyright>© 2009 – 2022</copyright>
    <lastBuildDate>Sun, 31 Jan 2016 19:40:00 -0800</lastBuildDate><atom:link href="https://www.ericsuh.com/categories/programming/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Writing code and prose</title>
      <link>https://www.ericsuh.com/blog/posts/2016/01/writing-code.html</link>
      <pubDate>Sun, 31 Jan 2016 19:40:00 -0800</pubDate>
      
      <guid>https://www.ericsuh.com/blog/posts/2016/01/writing-code.html</guid>
      <description>One of the most important qualities for effective programming in large codebases is good writing ability—not writing code, but writing prose for other humans.
Undoubtedly, this is not a surprise to long-time industry veterans (after all, we don&amp;rsquo;t often program in machine code anymore), but it&amp;rsquo;s a quality I often find is overlooked by engineers that arrive straight out of college. Those that I see write the cleanest, most maintainable code are those who write prose well, whether in documentation, in emails, or in their everyday lives.</description>
    </item>
    
    <item>
      <title>Quick BibTeX capitalization-preserving one-liner</title>
      <link>https://www.ericsuh.com/blog/posts/2013/3/bibtex-one-liner.html</link>
      <pubDate>Fri, 29 Mar 2013 12:00:00 -0800</pubDate>
      
      <guid>https://www.ericsuh.com/blog/posts/2013/3/bibtex-one-liner.html</guid>
      <description>While writing my thesis, I realized that I need to preserve the capitalization of some words like proper or gene names in the titles of references that I imported from the Pubmed database, but having to manually comb through my BibTeX file and surround everything with curly braces was not my idea of fun. vim to the rescue!
This regex is a bit hairy, but it works and it&amp;rsquo;s idempotent. Every once in a while, I just rerun the command to make sure all the capitalizations in the titles are &amp;ldquo;protected&amp;rdquo;.</description>
    </item>
    
    <item>
      <title>Switching from R to Python</title>
      <link>https://www.ericsuh.com/blog/posts/2013/3/pandas-and-r.html</link>
      <pubDate>Tue, 26 Mar 2013 21:00:00 -0800</pubDate>
      
      <guid>https://www.ericsuh.com/blog/posts/2013/3/pandas-and-r.html</guid>
      <description>I&amp;rsquo;ve lately switched from R to use Python and its companion scientific libraries, such as numpy, scipy, pandas, and matplotlib, and after a few months being really immersed in it, I have to agree with John Cook, &amp;ldquo;I&amp;rsquo;d rather do math in a general-purpose language than try to do general-purpose programming in a math language.&amp;rdquo;
Some of the advantages I&amp;rsquo;ve seen in using Python for my data analysis have been:</description>
    </item>
    
    <item>
      <title>Do more in CoffeeScript</title>
      <link>https://www.ericsuh.com/blog/posts/2012/8/do-more-with-coffeescript.html</link>
      <pubDate>Fri, 03 Aug 2012 14:00:00 -0800</pubDate>
      
      <guid>https://www.ericsuh.com/blog/posts/2012/8/do-more-with-coffeescript.html</guid>
      <description>I&amp;rsquo;ve been dabbling a bit in CoffeeScript, and so far it&amp;rsquo;s been fairly good once I started to trust its abstractions and not worry so much about leakiness.
Some handy CoffeeScript features I wish were better documented (it is somewhat in a Github issue thread, but nowhere else as far as I can see at the time of this writing) are the variations on the do (...) -&amp;gt; ... syntax.</description>
    </item>
    
    <item>
      <title>Using pylint with Vim QuickFix</title>
      <link>https://www.ericsuh.com/blog/posts/2012/5/using-pylint-with-vim-quickfix.html</link>
      <pubDate>Tue, 22 May 2012 23:00:00 -0800</pubDate>
      
      <guid>https://www.ericsuh.com/blog/posts/2012/5/using-pylint-with-vim-quickfix.html</guid>
      <description>These days I almost exclusively work in dynamic scripting languages, so having a linter is really quite helpful. After the Nth time switching terminal windows out of vim to run pylint or jshint or some other such linter (where N is &amp;raquo; bajillions), I got tired of it and wanted to see how vim could integrate. QuickFix, as it turns out, is great, but frankly the documentation for the errorformat syntax could use some work, and I don&amp;rsquo;t think all of the formats out there, especially for pylint, are all that great.</description>
    </item>
    
    <item>
      <title>Tech M and M</title>
      <link>https://www.ericsuh.com/blog/posts/2012/5/tech-m-and-m.html</link>
      <pubDate>Tue, 22 May 2012 14:00:00 -0800</pubDate>
      
      <guid>https://www.ericsuh.com/blog/posts/2012/5/tech-m-and-m.html</guid>
      <description>From Etsy&amp;rsquo;s Code as Craft blog, an interesting post about the logic and practice of their non-punitive, blameless post-mortem system for analyzing errors:
Why shouldn&amp;rsquo;t they be punished or reprimanded? Because an engineer who thinks they&amp;rsquo;re going to be reprimanded are disincentivized to give the details necessary to get an understanding of the mechanism, pathology, and operation of the failure. This lack of understanding of how the accident occurred all but guarantees that it will repeat.</description>
    </item>
    
    <item>
      <title>Punchcards and Terminals</title>
      <link>https://www.ericsuh.com/blog/posts/2012/5/punchcards-and-terminals.html</link>
      <pubDate>Tue, 15 May 2012 14:00:00 -0800</pubDate>
      
      <guid>https://www.ericsuh.com/blog/posts/2012/5/punchcards-and-terminals.html</guid>
      <description>In yet another interesting historical computing highlight, we have the 1887 US dollar bill to thank for why we have 80 characters per terminal line as the current default terminal size:
[The first punchcards measured] 3.25 by 7.375 inches, the same size as the 1887 US paper currency because Hollerith [the inventor of the cards] used Treasury Department containers as card boxes.
Then, in 1928, IBM introduced the &amp;ldquo;modern&amp;rdquo; 80-column punch card with the same 3.</description>
    </item>
    
    <item>
      <title>BLAS-tuning by hand</title>
      <link>https://www.ericsuh.com/blog/posts/2012/5/blas-by-hand.html</link>
      <pubDate>Fri, 11 May 2012 12:00:00 -0800</pubDate>
      
      <guid>https://www.ericsuh.com/blog/posts/2012/5/blas-by-hand.html</guid>
      <description>I had no idea that the &amp;ldquo;Goto&amp;rdquo; in &amp;ldquo;Goto BLAS&amp;rdquo; is actually the name of a person, Kazushige Goto, who has a short report about him in the New York Times. He apparently works single-handedly to hand-optimize his version of the BLAS (Basic Linear Algebra Subroutines) algorithm package that drives most mathematical and scientific software today:
Mr. Goto uses only a program called a software debugger that allows him to track how data moves among different components of a microprocessor.</description>
    </item>
    
    <item>
      <title>Artifacts of UNIX History</title>
      <link>https://www.ericsuh.com/blog/posts/2012/1/artifacts-of-unix-history.html</link>
      <pubDate>Fri, 27 Jan 2012 23:40:00 -0800</pubDate>
      
      <guid>https://www.ericsuh.com/blog/posts/2012/1/artifacts-of-unix-history.html</guid>
      <description>Ever wonder why UNIX/Linux has so many random directories for storing binaries, libraries, and so on (e.g. /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin), and why user directories are actually under /home rather than /usr? Well, wonder no more, thanks to Rob Landley and a nice comment thread at Hacker News. Rob starts out:
You know how Ken Thompson and Dennis Ritchie created Unix on a PDP-7 in 1969? Well around 1971 they upgraded to a PDP-11 with a pair of RK05 disk packs (1.</description>
    </item>
    
    <item>
      <title>The Reason Android is Laggy</title>
      <link>https://www.ericsuh.com/blog/posts/2011/12/the-reason-android-is-laggy.html</link>
      <pubDate>Tue, 06 Dec 2011 11:55:00 -0800</pubDate>
      
      <guid>https://www.ericsuh.com/blog/posts/2011/12/the-reason-android-is-laggy.html</guid>
      <description>I am not an Android developer, so I have no way to verify what this guy is saying. That said, it does sound quite plausible:
It&amp;rsquo;s not GC pauses. It&amp;rsquo;s not because Android runs bytecode and iOS runs native code. It&amp;rsquo;s because on iOS all UI rendering occurs in a dedicated UI thread with real-time priority. On the other hand, Android follows the traditional PC model of rendering occurring on the main thread with normal priority.</description>
    </item>
    
    <item>
      <title>A bug hunt</title>
      <link>https://www.ericsuh.com/blog/posts/2010/4/a-bug-hunt.html</link>
      <pubDate>Fri, 09 Apr 2010 21:11:00 -0800</pubDate>
      
      <guid>https://www.ericsuh.com/blog/posts/2010/4/a-bug-hunt.html</guid>
      <description>Daniel Jalkut writes a short, great story about one bug in one of his programs. Every programmer has probably experienced both the frustration as well as the satisfaction of finding and squashing such a subtle bug.</description>
    </item>
    
  </channel>
</rss>
