<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>minusblag</title>
	<atom:link href="http://www.minuslab.net/d/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.minuslab.net/d</link>
	<description>two words pen island</description>
	<lastBuildDate>Wed, 14 Jul 2010 02:24:52 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>World Cup pick&#8217;em over, back to hax</title>
		<link>http://www.minuslab.net/d/?p=195</link>
		<comments>http://www.minuslab.net/d/?p=195#comments</comments>
		<pubDate>Wed, 14 Jul 2010 02:24:52 +0000</pubDate>
		<dc:creator>Dave Foster</dc:creator>
				<category><![CDATA[hax]]></category>
		<category><![CDATA[flags]]></category>
		<category><![CDATA[worldcup]]></category>

		<guid isPermaLink="false">http://www.minuslab.net/d/?p=195</guid>
		<description><![CDATA[I was a ghost around here during the World Cup due to the pick the winners site I was running, SevenSteps, which was a pretty big success.  I had left a lot of it to do right before the tournament started, and even though I did add tests to this Rails site, it surely did [...]]]></description>
			<content:encoded><![CDATA[<p>I was a ghost around here during the World Cup due to the pick the winners site I was running, <a href="http://worldcup.l3ib.org">SevenSteps</a>, which was a pretty big success.  I had left a lot of it to do right before the tournament started, and even though I did add tests to this Rails site, it surely did not catch them all.  Anyway, I&#8217;ll be blagging about the good and bad points of my experience running the site and try to deconstruct a few things here.</p>
<p>Even though the site is done, today I hacked a bit on reworking the way I did user combined flags.  During haxpact (which abruptly ended, oops), I wrote about a mini Sinatra project I had in my staging area to allow <a href="http://www.minuslab.net/d/?p=187">users to combine two nations&#8217; flags</a> in a few ways.  The goal was always to use this for the WC site, and I hacked the feature in a few days before people signed up.  Many people used it and liked it, but the approach I took could&#8217;ve been improved.</p>
<p>The problem was twofold: first, the flag getter was a Rails controller, meaning it had to be routed and requested, and on a <a href="http://worldcup.l3ib.org/leaderboard">leaderboard page</a> with 40+ different flags on it, it resulted in 41+ requests to the server. Despite caching, it still takes a while to get through routing as opposed to just a normal image resource (which can be cached by the user&#8217;s browser).</p>
<p>Second, the technique used to combine the flags was based on running the convert tool from ImageMagick from the command line. The end result was obviously cached, but ended up producing 152 separate cached images as users tweaked flags, taking up 604kb in computed images. Not to mention the taxing on the server during the production of these cached images!  Clearly this wasn&#8217;t optimal, there had to be some way for the client to do the work.</p>
<p>A while ago, while doing some infovis stuff with <a href="http://raphaeljs.com/">Raphael</a> on the site, I had thought of using that &amp; canvas to have the client render the flags themselves, but dismissed it when I noticed the flags had some blurring issues when used as the fill to an SVG rectangle. However, today a friend mentioned that SVG is not the only thing that can be used on a canvas &#8211; he suggested I try just using Javascript to draw on the canvas directly.  After some quick tests, this proved to be a viable option.</p>
<p>The technique I ended up going with involved using an image tag set to one of the two flags making up the combination, two HTML5 &#8220;data&#8221; attributes on that tag, then using some jQuery to replace the images with canvas tags and do the composition right there. This allows the flags to be retrieved just like any other image, and cached by the browser.</p>
<p>I didn&#8217;t push it yet, because I didn&#8217;t round out support for IE (aka, don&#8217;t do anything, it can&#8217;t handle canvas well), and well, the World Cup is over, so not much reason to do it.  But still neat to see what could&#8217;ve been.  I reduced the avg query time for the leaderboard from 10.5s down to 4.8s &#8211; rather significant.  All lessons I&#8217;ll take with me for the future, and certainly will be considering how to use with my <a href="http://www.minuslab.net/d/?p=193">FM Crests</a> project that I&#8217;ll be picking back up.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.minuslab.net/d/?feed=rss2&amp;p=195</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FMCrests: internal cleanups</title>
		<link>http://www.minuslab.net/d/?p=193</link>
		<comments>http://www.minuslab.net/d/?p=193#comments</comments>
		<pubDate>Sat, 27 Mar 2010 21:17:51 +0000</pubDate>
		<dc:creator>Dave Foster</dc:creator>
				<category><![CDATA[fmcrests]]></category>
		<category><![CDATA[hax]]></category>
		<category><![CDATA[haxpact]]></category>

		<guid isPermaLink="false">http://www.minuslab.net/d/?p=193</guid>
		<description><![CDATA[Continuing where I left off with FMCrests, I had offloaded a lot of logic in the script and left it up to the base SVG to describe a lot more of itself.  I realized the same could be done in order to properly style the patterns with fills and outline colors.  I used to have [...]]]></description>
			<content:encoded><![CDATA[<p>Continuing where I <a href="http://www.minuslab.net/d/?p=171">left off</a> with FMCrests, I had offloaded a lot of logic in the script and left it up to the base SVG to describe a lot more of itself.  I realized the same could be done in order to properly style the patterns with fills and outline colors.  I used to have to require a big list of every pattern in the script, and then by hand sort them into lists where some need fills only, some need fills and outlines, etc.  Now, the document simply tells it what it needs based on the presence of a positive stroke-width.  Reducing the script further is always the goal!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.minuslab.net/d/?feed=rss2&amp;p=193</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flag Combinator</title>
		<link>http://www.minuslab.net/d/?p=187</link>
		<comments>http://www.minuslab.net/d/?p=187#comments</comments>
		<pubDate>Sat, 27 Mar 2010 02:51:02 +0000</pubDate>
		<dc:creator>Dave Foster</dc:creator>
				<category><![CDATA[hax]]></category>
		<category><![CDATA[flags]]></category>
		<category><![CDATA[haxpact]]></category>

		<guid isPermaLink="false">http://www.minuslab.net/d/?p=187</guid>
		<description><![CDATA[Earlier, when I wrote about the Sinatra staging area I had set up, I had mentioned a project that I had worked on there but hadn&#8217;t made public yet.  That project was a precursor to the FMCrests project.  It was meant to serve a similar purpose, to provide logos for users on a site to differentiate them. [...]]]></description>
			<content:encoded><![CDATA[<p>Earlier, when I wrote about the <a href="http://www.minuslab.net/d/?p=96">Sinatra staging area</a> I had set up, I had mentioned a project that I had worked on there but hadn&#8217;t made public yet.  That project was a precursor to the FMCrests project.  It was meant to serve a similar purpose, to provide logos for users on a site to differentiate them.  Its unofficial title is the <a href="http://stage.minuslab.net/flags/">Flag Combinator</a>.</p>
<p>For the upcoming <a href="http://www.minuslab.net/d/?p=100">World Cup pick&#8217;em site</a>, I wanted to have a way for the users to show their allegiances (often times more than one country), and it reminded me of the Enemy Territory days and <a href="http://clanbase.ggl.com/news.php">Clanbase</a>&#8217;s method of identifying player nationalities.  Next to every name was a stylized small flag icon, and some people got to make their own.  I thought it would be pretty neat to be able to have a service that automatically combines two flags in various ways, so after some experimenting with imagemagick, I created a few masks that can be used to combine two flags.</p>
<p>This was my first real project with Sinatra, and is what turned me onto the project in the first place.  This is not a world class service (and I hope it doesn&#8217;t get linked around, it likely won&#8217;t), but if you have a need to make a small flag icon, knock yourself out.  Here&#8217;s some samples:</p>
<p><a href="http://www.minuslab.net/d/wp-content/uploads/2010/03/flag-irelanditaly.png"><img class="alignnone size-full wp-image-188" title="flag-irelanditaly" src="http://www.minuslab.net/d/wp-content/uploads/2010/03/flag-irelanditaly.png" alt="" width="18" height="12" /></a> <a href="http://www.minuslab.net/d/wp-content/uploads/2010/03/flag-serbiajapan.png"><img class="alignnone size-full wp-image-189" title="flag-serbiajapan" src="http://www.minuslab.net/d/wp-content/uploads/2010/03/flag-serbiajapan.png" alt="" width="18" height="12" /></a> <a href="http://www.minuslab.net/d/wp-content/uploads/2010/03/flag-swedenestonia.png"><img class="alignnone size-full wp-image-190" title="flag-swedenestonia" src="http://www.minuslab.net/d/wp-content/uploads/2010/03/flag-swedenestonia.png" alt="" width="18" height="12" /></a> <a href="http://www.minuslab.net/d/wp-content/uploads/2010/03/flag-usascotland.png"><img class="alignnone size-full wp-image-191" title="flag-usascotland" src="http://www.minuslab.net/d/wp-content/uploads/2010/03/flag-usascotland.png" alt="" width="18" height="12" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.minuslab.net/d/?feed=rss2&amp;p=187</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>256 Color Mode in Vim</title>
		<link>http://www.minuslab.net/d/?p=181</link>
		<comments>http://www.minuslab.net/d/?p=181#comments</comments>
		<pubDate>Fri, 26 Mar 2010 04:05:44 +0000</pubDate>
		<dc:creator>Dave Foster</dc:creator>
				<category><![CDATA[hax]]></category>
		<category><![CDATA[haxpact]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.minuslab.net/d/?p=181</guid>
		<description><![CDATA[Continuing with yesterday&#8217;s tools theme, today I decided to see what it would take to get vim in a terminal to work with 256 colors.  I use gnome-terminal, and turns out it is as easy as doing in vim:

set t_Co=256

Nice!  Here&#8217;s a shot of my terminal with the desert256 color scheme:

I typically use gvim [...]]]></description>
			<content:encoded><![CDATA[<p>Continuing with yesterday&#8217;s tools theme, today I decided to see what it would take to get <a href="http://vim.wikia.com/wiki/256_colors_in_vim">vim in a terminal to work with 256 colors</a>.  I use gnome-terminal, and turns out it is as easy as doing in vim:</p>
<pre class="brush: php">
set t_Co=256
</pre>
<p>Nice!  Here&#8217;s a shot of my terminal with the desert256 color scheme:</p>
<p><a href="http://www.minuslab.net/d/wp-content/uploads/2010/03/vim256.png"><img class="alignnone size-thumbnail wp-image-184" title="vim256" src="http://www.minuslab.net/d/wp-content/uploads/2010/03/vim256-150x150.png" alt="" width="150" height="150" /></a></p>
<p>I typically use gvim when writing code, but lately as I&#8217;ve done more Rails stuff, I&#8217;ve been using vim inside of GNU screen, with a few related screens next to each other, switching between them with F11 and F12.  This became a pretty handy setup for working with Rails apps, especially as I can do it from Windows machines using Putty.</p>
<p>This introduces a few more variables into the equation, Putty and screen.  Imagine my surprise when Putty Just Worked &#8482; as well as gnome-terminal did!</p>
<p>As for screen, a recompile with the &#8211;enable-colors256 configure flag specified was all it took.  I installed to my home dir on l3ib so as not to disturb the system screen, although if it works ok renamed to a different binary name like &#8220;screen256&#8243; i may install it to /usr/local.  Much props to <a href="http://www.jukie.net/bart/blog/256-colour-xterm">this blag entry</a>.  His instructions make debian actually seem rather easy to use (I&#8217;m not familiar with it), and the screenrc is necessary to pull things together.  I still need to put my keybinds back in, but it looks like I have a sweet setup for Rails hacking now!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.minuslab.net/d/?feed=rss2&amp;p=181</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Updated zsh git prompt</title>
		<link>http://www.minuslab.net/d/?p=175</link>
		<comments>http://www.minuslab.net/d/?p=175#comments</comments>
		<pubDate>Thu, 25 Mar 2010 03:55:21 +0000</pubDate>
		<dc:creator>Dave Foster</dc:creator>
				<category><![CDATA[hax]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[haxpact]]></category>
		<category><![CDATA[zsh]]></category>

		<guid isPermaLink="false">http://www.minuslab.net/d/?p=175</guid>
		<description><![CDATA[Taking a break from work for a bit to write a quick haxpact entry:  today I delved back into my cobbled together .zshrc file to improve a git prompt I had stolen and mangled from somewhere a long time ago.  It was decent in its operation: when entering a git working dir (well, a bare [...]]]></description>
			<content:encoded><![CDATA[<p>Taking a break from work for a bit to write a quick haxpact entry:  today I delved back into my cobbled together .zshrc file to improve a git prompt I had stolen and mangled from somewhere a long time ago.  It was decent in its operation: when entering a git working dir (well, a bare git repo would work too), it would change my left and right prompts to display information about the git repo, such as the current branch and a little red star which indicated git-diff had output.  Here is an example:</p>
<p><a href="http://www.minuslab.net/d/wp-content/uploads/2010/03/zsh-git-prompt-subdir.png"><img class="alignnone size-medium wp-image-176" title="zsh-git-prompt-subdir" src="http://www.minuslab.net/d/wp-content/uploads/2010/03/zsh-git-prompt-subdir-300x240.png" alt="" width="300" height="240" /></a></p>
<p>While this was nice, it had a few deficiencies I was looking to fix.</p>
<ul>
<li>No indication of where you were on the file system &#8211; if you had a few repos named the same way, such as a development and deployment website repo, you could not tell them apart</li>
<li>The red * only appeared when a repo had unstaged modifications &#8211; staged modifications were not indicated</li>
<li>The commands used in precmd had trouble when entering a git repo on a filesystem attached via sshfs &#8211; it would just freeze</li>
</ul>
<p>Luckily, zsh has a module called vcs_info, which I&#8217;ve known about for a while but finally decided to check out today.  Thanks to <a href="http://zsh.sourceforge.net/Doc/Release/User-Contributions.html#SEC273">official documentation</a>, and <a href="http://kriener.org/articles/2009/06/04/zsh-prompt-magic">this blag post</a>, I was able to update my .zshrc to fix at least the first two issues (have not tried the third yet).  I won&#8217;t get into explanations, the two links above do that more than enough, but it&#8217;s reduced my zsh file massively.  Here are some relevant portions:</p>
<pre class="brush: php">

DEFPROMPT=&#039;${BLUE}%~ ${PROMPTCOLOR}${PROMPTCHAR}${NC} &#039;   # promptcolor/promptchar match hostname coloring and show a different char if ssh&#039;d somewhere
DEFRPROMPT=$SSHPROMPT     # shows @ when ssh&#039;d somewhere else

zstyle &#039;:vcs_info:*&#039; enable git                                 # only enable git/git-svn
zstyle &#039;:vcs_info:*:prompt:*&#039; check-for-changes true            # slower, but lets us show changes to working/index
zstyle &#039;:vcs_info:*:prompt:*&#039; unstagedstr &quot;${RED}*&quot;             # unstaged changes string: red *
zstyle &#039;:vcs_info:*:prompt:*&#039; stagedstr &quot;${yellow}+&quot;            # staged changes string: yellow +
zstyle &#039;:vcs_info:*:prompt:*&#039; actionformats &quot;$VCSPROMPT&quot; &quot;${NC}[${BLUE}%b%c%u${NC}:${purple}%a${NC}]${SSHPROMPT}&quot; # left and right prompt when an action is occuring (rebase, etc)
zstyle &#039;:vcs_info:*:prompt:*&#039; formats &quot;$VCSPROMPT&quot; &quot;${NC}[${BLUE}%b%c%u${NC}]${SSHPROMPT}&quot; # left and right prompt when normal (no action)
zstyle &#039;:vcs_info:*:prompt:*&#039; nvcsformats &quot;no&quot; &quot;no&quot;             # sets $_vcs_info_msg_[0|1]_ to &quot;no&quot; when no vcs, testable

function precmd() {
   print -Pn  &quot;\033]0;%m: %~\007&quot;

    vcs_info &#039;prompt&#039;
    if [[ $vcs_info_msg_0_ != &quot;no&quot; ]];
    then
        PROMPT=&quot;${vcs_info_msg_0_}&quot;
        RPROMPT=&quot;${vcs_info_msg_1_}&quot;
    else
        PROMPT=$DEFPROMPT
        RPROMPT=$DEFRPROMPT
    fi
}
</pre>
<p>And it looks like this (hey wait, this looks pretty similar..):</p>
<p><a href="http://www.minuslab.net/d/wp-content/uploads/2010/03/zshgitprompt.png"><img class="alignnone size-full wp-image-177" title="zshgitprompt" src="http://www.minuslab.net/d/wp-content/uploads/2010/03/zshgitprompt.png" alt="" width="625" height="17" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.minuslab.net/d/?feed=rss2&amp;p=175</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FMCrests: slight progress</title>
		<link>http://www.minuslab.net/d/?p=171</link>
		<comments>http://www.minuslab.net/d/?p=171#comments</comments>
		<pubDate>Wed, 24 Mar 2010 13:11:41 +0000</pubDate>
		<dc:creator>Dave Foster</dc:creator>
				<category><![CDATA[fmcrests]]></category>
		<category><![CDATA[hax]]></category>
		<category><![CDATA[haxpact]]></category>

		<guid isPermaLink="false">http://www.minuslab.net/d/?p=171</guid>
		<description><![CDATA[Late entry, blah.  I worked more on the FMCrest page yesterday, including emailing the author of the jQuery Colorwheel plugin in order to figure out how to use one colorwheel for many input boxes, clicking one to be the &#8220;active&#8221; color.  It turns out that I mostly had it right, just confused a jQuery object [...]]]></description>
			<content:encoded><![CDATA[<p>Late entry, blah.  I worked more on the FMCrest page yesterday, including emailing the author of the jQuery Colorwheel plugin in order to figure out how to use one colorwheel for many input boxes, clicking one to be the &#8220;active&#8221; color.  It turns out that I mostly had it right, just confused a jQuery object with a DOM object.</p>
<pre class="brush: javascript">
var je = $(&#039;input#color_base&#039;);    // this is a jQuery object
var de = je[0];                         // this is a DOM object
</pre>
<p>Hopefully I&#8217;m not lying in my example above.  This clears up about 90% of my confusion when using jQuery for anything.  Anyway, now colors work.</p>
<p><a href="http://www.minuslab.net/d/wp-content/uploads/2010/03/crestgen-colorsworking.png"><img class="alignnone size-medium wp-image-172" title="crestgen-colorsworking" src="http://www.minuslab.net/d/wp-content/uploads/2010/03/crestgen-colorsworking-300x170.png" alt="" width="300" height="170" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.minuslab.net/d/?feed=rss2&amp;p=171</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>FMCrests: webpage interface!</title>
		<link>http://www.minuslab.net/d/?p=166</link>
		<comments>http://www.minuslab.net/d/?p=166#comments</comments>
		<pubDate>Tue, 23 Mar 2010 02:10:01 +0000</pubDate>
		<dc:creator>Dave Foster</dc:creator>
				<category><![CDATA[fmcrests]]></category>
		<category><![CDATA[hax]]></category>
		<category><![CDATA[haxpact]]></category>

		<guid isPermaLink="false">http://www.minuslab.net/d/?p=166</guid>
		<description><![CDATA[My time for hacking is going to get very slim this week as I&#8217;m doing some consulting, but today I was able to get a big portion of the FMCrests project underway:

That&#8217;s right, a web page to help you build a crest!  This is the overall goal of the project, to provide a web interface [...]]]></description>
			<content:encoded><![CDATA[<p>My time for hacking is going to get very slim this week as I&#8217;m doing some consulting, but today I was able to get a big portion of the <a href="http://www.minuslab.net/d/?p=124">FMCrests</a> project underway:</p>
<p><a href="http://www.minuslab.net/d/wp-content/uploads/2010/03/fmcrestsweb.png"><img class="alignnone size-medium wp-image-167" title="fmcrestsweb" src="http://www.minuslab.net/d/wp-content/uploads/2010/03/fmcrestsweb-300x204.png" alt="" width="300" height="204" /></a></p>
<p><a href="http://www.minuslab.net/d/wp-content/uploads/2010/03/fmcrestsweb.png"></a>That&#8217;s right, a web page to help you build a crest!  This is the overall goal of the project, to provide a web interface for users to build a crest then be able to download and use them.  It still has a lot of work to do, but here&#8217;s some working features:</p>
<ul>
<li>Enumerate and display (live!) thumbnails for all shapes and patterns</li>
<li>Generate a large preview image whenever the user selects something new</li>
<li>Caching any and all preview images, which invalidate when the source SVG changes</li>
</ul>
<p>It still needs a few features, such as:</p>
<ul>
<li>Working color selector: it works for only one field at the moment</li>
<li>Generate a tar/gz or zip and previews of all smaller sizes (standard icon sizes 16&#215;16, 22&#215;22, 24&#215;24, 32&#215;32, 48&#215;48, 64&#215;64, 128&#215;128)</li>
<li>Squash any requests with referers</li>
<li>Work queue system for requests maybe?  To help with any load</li>
<li>Refactor ruby command line script to be an includable class instead of calling said script from backtick operators in this web interface</li>
</ul>
<p>I was also able to improve the command line script in a few ways today:</p>
<ul>
<li>Get live list of shapes and patterns by &#8211;shapes or &#8211;patterns on command line</li>
<li>Remove the need for a predefined clip path: now is copied from base shape path, this makes it much easier to maintain</li>
</ul>
<p>Rather pleased with the output today.  Hopefully I can keep up momentum!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.minuslab.net/d/?feed=rss2&amp;p=166</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MFTail</title>
		<link>http://www.minuslab.net/d/?p=164</link>
		<comments>http://www.minuslab.net/d/?p=164#comments</comments>
		<pubDate>Mon, 22 Mar 2010 00:57:47 +0000</pubDate>
		<dc:creator>Dave Foster</dc:creator>
				<category><![CDATA[hax]]></category>
		<category><![CDATA[haxpact]]></category>
		<category><![CDATA[mftail]]></category>

		<guid isPermaLink="false">http://www.minuslab.net/d/?p=164</guid>
		<description><![CDATA[A while ago I wanted to write an &#8220;activity meter&#8221; for IRC which would show something like &#8220;messages per minute&#8221; or similar, so I could not always have my IRC window open and have that output somewhere on like a dzen bar, so I could know when the channels I really follow were picking up. [...]]]></description>
			<content:encoded><![CDATA[<p>A while ago I wanted to write an &#8220;activity meter&#8221; for IRC which would show something like &#8220;messages per minute&#8221; or similar, so I could not always have my IRC window open and have that output somewhere on like a dzen bar, so I could know when the channels I really follow were picking up.  My first implementation was pretty silly, involving parsing irssi logs and trying to figure out what day it was.  This was pretty goofy and worked but not very well.</p>
<p>My next idea was to follow those same log files by using a &#8220;tail -f&#8221; mechanism (or just inotify) and keep the activity monitor always running, so it would keep a running count of messages/min or whatever other measurement I came up with.  I realized I needed a way to tail multiple files, and not really knowing that the standard tail -f command could take more than one file as an argument, I wrote one in Ruby which is called MFTail (multi-follow-tail).</p>
<p>Its design is similar to <a href="http://projects.l3ib.org/trac/fsniper">fsniper</a>, another project I am part of, in that it forks and dups output from a parent process.  Essentially I was forking for every file I wanted to monitor, running tail -f on those files, and piping the output back into the parent process so it could be output with a prefix of the file in front of it.</p>
<p>Of course, someone pointed out later than tail -f works on multiple files, but I still prefer the output of mftail in that it prefixes every line with the file it came from, whereas tail will print a header every time the most recent outputted file switches, which is annoying to parse.</p>
<p>MFTail is available in git: <a href="http://code.l3ib.org/?p=.users/daf/mftail.git;a=summary">http://code.l3ib.org/?p=.users/daf/mftail.git;a=summary</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.minuslab.net/d/?feed=rss2&amp;p=164</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FMCrests: Simple Shield Shape</title>
		<link>http://www.minuslab.net/d/?p=159</link>
		<comments>http://www.minuslab.net/d/?p=159#comments</comments>
		<pubDate>Sat, 20 Mar 2010 15:12:01 +0000</pubDate>
		<dc:creator>Dave Foster</dc:creator>
				<category><![CDATA[hax]]></category>
		<category><![CDATA[fmcrests]]></category>
		<category><![CDATA[haxpact]]></category>

		<guid isPermaLink="false">http://www.minuslab.net/d/?p=159</guid>
		<description><![CDATA[Taking a cue from Hull&#8217;s style of crest, I made a different looking shield:

It&#8217;s a little less roundy than the original shield.
Going to see about a &#8220;fat&#8221; shield type like Arsenal or Portsmouth.  Also, looking at Arsenal gives me an idea for a second &#8220;pattern&#8221; layer, like those blue stripes on the outside of the [...]]]></description>
			<content:encoded><![CDATA[<p>Taking a cue from <a href="http://en.wikipedia.org/wiki/File:Hull_City.svg">Hull&#8217;s style of crest</a>, I made a different looking shield:</p>
<p style="text-align: center;"><a href="http://www.minuslab.net/d/wp-content/uploads/2010/03/ex-shape-simpleshield.png"><img class="size-full wp-image-160 aligncenter" title="simpleshield" src="http://www.minuslab.net/d/wp-content/uploads/2010/03/ex-shape-simpleshield.png" alt="" width="240" height="240" /></a></p>
<p>It&#8217;s a little less roundy than the original shield.</p>
<p>Going to see about a &#8220;fat&#8221; shield type like <a href="http://en.wikipedia.org/wiki/File:Arsenal_FC.svg">Arsenal</a> or <a href="http://en.wikipedia.org/wiki/File:Portsmouth_FC_crest_2008.png">Portsmouth</a>.  Also, looking at Arsenal gives me an idea for a second &#8220;pattern&#8221; layer, like those blue stripes on the outside of the shield.  It would likely be shape specific instead of general patterns like the ones currently, but could add a lot more to the crest.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.minuslab.net/d/?feed=rss2&amp;p=159</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FMCrests &#8211; better renderer, more shapes/patterns</title>
		<link>http://www.minuslab.net/d/?p=143</link>
		<comments>http://www.minuslab.net/d/?p=143#comments</comments>
		<pubDate>Sat, 20 Mar 2010 03:28:55 +0000</pubDate>
		<dc:creator>Dave Foster</dc:creator>
				<category><![CDATA[hax]]></category>
		<category><![CDATA[fmcrests]]></category>
		<category><![CDATA[haxpact]]></category>

		<guid isPermaLink="false">http://www.minuslab.net/d/?p=143</guid>
		<description><![CDATA[More work on FMCrests today.  I was able to conduct a comparison with librsvg&#8217;s tool, rsvg-convert versus my original use of Imagemagick&#8217;s convert, and lo and behold librsvg does a much better job with the outside borders on 16&#215;16 renderings.  Here is a side by side comparo:

The one on the left is imagemagick, the right [...]]]></description>
			<content:encoded><![CDATA[<p>More work on <a href="http://www.minuslab.net/d/?p=124">FMCrests</a> today.  I was able to conduct a comparison with librsvg&#8217;s tool, rsvg-convert versus my original use of Imagemagick&#8217;s convert, and lo and behold librsvg does a much better job with the outside borders on 16&#215;16 renderings.  Here is a side by side comparo:</p>
<p><a href="http://www.minuslab.net/d/wp-content/uploads/2010/03/im-rsvg-comparison.png"><img class="size-full wp-image-144 alignnone" title="im-rsvg-comparison" src="http://www.minuslab.net/d/wp-content/uploads/2010/03/im-rsvg-comparison.png" alt="" width="47" height="71" /><br />
</a>The one on the left is imagemagick, the right is librsvg.  Rsvg does not suffer from the hideous aliasing on the outside of the white bordered images, but it does not improve much on the vertical stripes in the last crest.  I&#8217;m thinking I will just end up removing the &#8220;thin&#8221; stripes option and make people use the medium size one that currently exists.</p>
<p>I also added more patterns and a circle shape too:</p>
<p><a href="http://www.minuslab.net/d/wp-content/uploads/2010/03/ex-pat-tritone_vert.png"><img class="size-full wp-image-145 alignleft" title="tritone_vert" src="http://www.minuslab.net/d/wp-content/uploads/2010/03/ex-pat-tritone_vert.png" alt="" width="240" height="240" /></a><a href="http://www.minuslab.net/d/wp-content/uploads/2010/03/ex-pat-tritone.png"><img class="size-full wp-image-146 alignleft" title="tritone" src="http://www.minuslab.net/d/wp-content/uploads/2010/03/ex-pat-tritone.png" alt="" width="240" height="240" /></a><a href="http://www.minuslab.net/d/wp-content/uploads/2010/03/ex-pat-horzstripes_med.png"><img class="alignleft size-full wp-image-147" title="horzstripes_med" src="http://www.minuslab.net/d/wp-content/uploads/2010/03/ex-pat-horzstripes_med.png" alt="" width="240" height="240" /></a><a href="http://www.minuslab.net/d/wp-content/uploads/2010/03/ex-pat-horzstripe_fat.png"><img class="alignleft size-full wp-image-148" title="ex-pat-horzstripe_fat" src="http://www.minuslab.net/d/wp-content/uploads/2010/03/ex-pat-horzstripe_fat.png" alt="" width="240" height="240" /></a><a href="http://www.minuslab.net/d/wp-content/uploads/2010/03/ex-pat-x.png"><img class="alignleft size-full wp-image-149" title="x" src="http://www.minuslab.net/d/wp-content/uploads/2010/03/ex-pat-x.png" alt="" width="240" height="240" /></a><a href="http://www.minuslab.net/d/wp-content/uploads/2010/03/ex-pat-v.png"><img class="alignleft size-full wp-image-150" title="ex-pat-v" src="http://www.minuslab.net/d/wp-content/uploads/2010/03/ex-pat-v.png" alt="" width="240" height="240" /></a><a href="http://www.minuslab.net/d/wp-content/uploads/2010/03/ex-shape-circle-twotone.png"><img class="alignleft size-full wp-image-151" title="circle-twotone" src="http://www.minuslab.net/d/wp-content/uploads/2010/03/ex-shape-circle-twotone.png" alt="" width="240" height="240" /></a><a href="http://www.minuslab.net/d/wp-content/uploads/2010/03/ex-shape-circle-v.png"><img class="alignleft size-full wp-image-152" title="circle-v" src="http://www.minuslab.net/d/wp-content/uploads/2010/03/ex-shape-circle-v.png" alt="" width="240" height="240" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.minuslab.net/d/?feed=rss2&amp;p=143</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.434 seconds -->
