<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0">
<channel>
    <title>Zed Shaw</title>
    <link>http://zedshaw.com/</link>
    <description>Collection of all my various projects and writings.</description>
    <language>en-us</language>
    
        <item>
            <title>Dear Gartner, Fire Andrea Di Maio</title>
            <author>Zed A. Shaw</author>
            <link>http://oppugn.us/posts/1279735838.html</link>
            <guid>http://oppugn.us/posts/1279735838.html</guid>
            <pubDate>Wed, 21 Jul 2010 10:51:51 -0700</pubDate>
            <description>
                &lt;p&gt;I didn&#39;t know you hired racists.  I mean, maybe racist is a bit of a
stretch, but there&#39;s no other word for &#34;asshole who arbitrarily
stereotypes potential customers&#34; so let&#39;s just call Andrea Di Maio the
racist piece of shit he is.  I say this, because in addition to pretty
fucking racist &lt;a href=&#34;http://blogs.gartner.com/andrea_dimaio/2010/07/21/keep-developers-out-of-politics-please/&#34;&gt;comments&lt;/a&gt;
about programmers, I&#39;m pretty sure he&#39;s full of all sorts of other
stereo types that are just lovely.  He probably thinks Blacks are
stupid, Latinos have big families, Women should shut up and poop out
kids, and Jews are cheap and killed Jesus.&lt;/p&gt;

&lt;p&gt;Because, let me tell you, where there&#39;s smoke there&#39;s fire Gartner, and
any man who&#39;d just come out and say anything about who I am because of
my profession has got to harbor all sorts of evil bullshit mythological
beliefs in his tiny little pathetic mind.&lt;/p&gt;

&lt;p&gt;But what do I know, all of the above is just guessing, and Andrea may be
a pretty upstanding guy.  Hell, I&#39;ll give him the benefit of the doubt
that he didn&#39;t give me and just say I take back all the things I just
said about him being a Nazi racist fuck.  He&#39;s probably alright, even if
he is a little fucking ugly.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Mongrel2 Is Now BSD Licensed</title>
            <author>Zed A. Shaw</author>
            <link>http://sheddingbikes.com/posts/1279561382.html</link>
            <guid>http://sheddingbikes.com/posts/1279561382.html</guid>
            <pubDate>Mon, 19 Jul 2010 10:33:55 -0700</pubDate>
            <description>
                &lt;p&gt;I believe in this programming language agnostic movement so strongly
that I&#39;m going to bet the farm on the goal by giving Mongrel2 the most
flexible license I possibly can so that it can reach the largest
audience possible.&lt;/p&gt;

&lt;p&gt;Mongrel2 is now BSD licensed with commit
&lt;a href=&#34;http://mongrel2.org/info/c4b9041f42&#34;&gt;c4b9041f42&lt;/a&gt; and I want everyone to
use it and not have to worry about licensing issues or problems with
contributors.&lt;/p&gt;

&lt;p&gt;The license is the basic 3 clause BSD license:&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Mongrel2's Got Config Files, Streams MP3s</title>
            <author>Zed A. Shaw</author>
            <link>http://sheddingbikes.com/posts/1279487547.html</link>
            <guid>http://sheddingbikes.com/posts/1279487547.html</guid>
            <pubDate>Sun, 18 Jul 2010 14:01:58 -0700</pubDate>
            <description>
                &lt;p&gt;It&#39;s done, and it is fucking awesome.  I&#39;ve been using it for the last
few days while I worked on the next demo (a ICY mp3 streaming handler)
and the new configuration system works amazingly well.  The design is
basedon a Model-View-Controller design where:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Mongrel2 == Controller&lt;/li&gt;
&lt;li&gt;Sqlite DB == Model&lt;/li&gt;
&lt;li&gt;View == m2sh config system&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What&#39;s this m2sh you ask?  Why, pure awesome is what.  The m2sh is a
simple Python command line program that acts as the View UI to a
Mongrel2 config file.  With m2sh you craft configurations using little
Python scripts that are a lot like config files in other webservers.
You can then use m2sh to start, stop, reconfigure, look at the config,
create new ones, pretty much all the stuff you end up doing with janky
git repos and shell scripts or etckeeper.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Mongrel2 Python Library Working</title>
            <author>Zed A. Shaw</author>
            <link>http://sheddingbikes.com/posts/1279007133.html</link>
            <guid>http://sheddingbikes.com/posts/1279007133.html</guid>
            <pubDate>Tue, 13 Jul 2010 00:35:24 -0700</pubDate>
            <description>
                &lt;p&gt;After fixing up a bunch of bugs today and getting the HTTP handler to
properly deal with request bodies, I sat down and implemented a first
cut at a Python library for writing handlers.  It turns out that since
&lt;a href=&#34;http://zeromq.org&#34;&gt;ZeroMQ&lt;/a&gt; handles a bunch of the protocol crap for me,
all I have to do is parse the format and I&#39;m done.  I finalized the
format last night, so tonight is just implementing some simple code.&lt;/p&gt;

&lt;p&gt;You can install it by grabbing the &lt;a href=&#34;http://mongrel2.org/wiki?name=GettingStarted&#34;&gt;Mongrel2 source&lt;/a&gt;
and then doing:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;$ cd examples/python &amp;amp;&amp;amp; sudo python setup.py install&lt;/p&gt;
&lt;/blockquote&gt;

            </description>
        </item>
    
        <item>
            <title>Mongrel2 With Special Unixy Powers</title>
            <author>Zed A. Shaw</author>
            <link>http://sheddingbikes.com/posts/1278913041.html</link>
            <guid>http://sheddingbikes.com/posts/1278913041.html</guid>
            <pubDate>Sun, 11 Jul 2010 22:27:55 -0700</pubDate>
            <description>
                &lt;p&gt;If you want to try out the latest gear, read the &lt;a href=&#34;http://mongrel2.org:6767/wiki?name=GettingStarted&#34;&gt;Getting Started&lt;/a&gt;
document that explains how to get up and running and do some demos and
such.  It runs through all the recent features, but is still definitely
targeted at a programmer type who wants to try it out.  Let&#39;s go over
some of the big features.&lt;/p&gt;

&lt;h1&gt;GNU Make 4Life&lt;/h1&gt;

&lt;p&gt;I tried to like &lt;a href=&#34;http://industriousone.com/premake&#34;&gt;Premake4&lt;/a&gt; but it
just fails miserably on too many platforms.  The fact that you need
Premake4 to build Premake4 makes it nearly useless for many platforms,
most notably OSX and a few Linux variants.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Mongrel2: State Machines, HTTP->0MQ, Events</title>
            <author>Zed A. Shaw</author>
            <link>http://sheddingbikes.com/posts/1278464593.html</link>
            <guid>http://sheddingbikes.com/posts/1278464593.html</guid>
            <pubDate>Tue, 6 Jul 2010 17:54:20 -0700</pubDate>
            <description>
                &lt;p&gt;I&#39;m &lt;em&gt;very&lt;/em&gt; excited about the connection state machine because it means 
that in addition to the original highly accurate Mongrel HTTP parser,
I&#39;ve now got a connection state system that&#39;s just as accurate.  It will
let Mongrel2 support bizarre proxy configurations, keep-alive state, any
kind of backends, HTTP long poll operations, JSSocket, and WebSockets.&lt;/p&gt;

&lt;p&gt;As I worked on it this last week I started stumbling into extra features
I got for free with this design.  HTTP long poll and keep-alive from
HTTP-&gt;0MQ are probably the two sexiest.  Thanks to this design, long
polling isn&#39;t a special feature, it&#39;s just how things work.  It also
means that HTTP-&gt;0MQ has the ability to do N:M processing similar to the
current &lt;a href=&#34;http://mongrel2.org:6767/chat&#34;&gt;chat demo&lt;/a&gt; but using plain HTTP.&lt;/p&gt;

&lt;p&gt;What I&#39;m most excited about is how, since the state machine is
controlled by simple integer events through a fast
&lt;a href=&#34;http://www.complang.org/ragel/&#34;&gt;Ragel&lt;/a&gt; FSM, that means people can
write filters based on the events and the callbacks.  In the same way
people grabbed the Mongrel HTTP Parser and used it to build web servers,
this new connection state machine will let you extend Mongrel2&#39;s
internal connection state processing to meet whatever hairy problems you
meet.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>I Quit My Job At Dropbox 2 Weeks Ago</title>
            <author>Zed A. Shaw</author>
            <link>http://sheddingbikes.com/posts/1278121913.html</link>
            <guid>http://sheddingbikes.com/posts/1278121913.html</guid>
            <pubDate>Fri, 2 Jul 2010 18:37:02 -0700</pubDate>
            <description>
                &lt;p&gt;Don&#39;t read into that though.  Dropbox has a lot of potential and if you
want to work there, then &lt;a href=&#34;http://www.dropbox.com/webengineer&#34;&gt;go check out this job&lt;/a&gt; 
that they&#39;re promoting.&lt;/p&gt;

&lt;h1&gt;What&#39;s Next?&lt;/h1&gt;

&lt;p&gt;Rather than &lt;a href=&#34;http://news.ycombinator.com/item?id=1482049&#34;&gt;gossip about&lt;/a&gt; what&#39;s essentially a
minor event in my life, you should go do something cool.  I plan on
dropping a major feature of Mongrel2 this weekend, assuming I can
get the code right.  I&#39;m also going to play some guitar and try to get
through my Bass Method book and learn &#34;It Had To Be You&#34;.  Maybe I&#39;ll
see Toy Story 3, I hear it&#39;s good.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Mongrel2 Almost Valgrind Pure, Bstring Happy</title>
            <author>Zed A. Shaw</author>
            <link>http://sheddingbikes.com/posts/1277863730.html</link>
            <guid>http://sheddingbikes.com/posts/1277863730.html</guid>
            <pubDate>Tue, 29 Jun 2010 19:00:07 -0700</pubDate>
            <description>
                &lt;p&gt;My next whack of work was to tighten up the HTTP processing so that it
can handle all the bizarre ways that browsers use it, but before I did
that I had some work to do.&lt;/p&gt;

&lt;p&gt;You see, while Mongrel2 on &lt;a href=&#34;http://mongrel2.org/info/1ab485d5dc&#34;&gt;Monday&lt;/a&gt;
could served lots of requests without crashing, it wasn&#39;t really too
tidy.  I&#39;d been slacking off in my usual C coding purity and just using
all the stupid C string functions that invite buffer overflows.  And
while I&#39;d been running mongrel2 under &lt;a href=&#34;http://valgrind.org/&#34;&gt;Valgrind&lt;/a&gt;
during its entire development, I was playing fast and loose with the
memory management.&lt;/p&gt;

&lt;p&gt;It was time to get serious.  Starting with &lt;a href=&#34;http://mongrel2.org/info/1ab485d5dc&#34;&gt;this commit&lt;/a&gt;
I finally set out to eliminate almost all use of the evil string
functions using the &lt;a href=&#34;http://bstring.sourceforge.net/&#34;&gt;bstring&lt;/a&gt; library.
The bstring library is a heavily tested and very well designed library
for working with strings.  It gives you all the usual stuff you&#39;d get in
a modern language, and in a package that keeps things secure.  I like
this library because it doesn&#39;t try to become The One True String
Replacement.  Instead, you use it for your internal data structures, and
then easily interface it to other libraries that already expect regular
C strings.  It&#39;s not totally foolproof, but it is a big help.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Mac & Cheese rant</title>
            <author>Daniel Greenfeld</author>
            <link>http://oppugn.us/posts/1279823157.html</link>
            <guid>http://oppugn.us/posts/1279823157.html</guid>
            <pubDate>Tue, 29 Jun 2010 10:37:14 -0500</pubDate>
            <description>
                &lt;p&gt;However, the truth is that I really loathe mac &amp;amp; cheese. I hate
cooking it, I hate eating it, I hate cleaning up after it. I&#39;ve thrown
away pots that have been used to cook it. I claim to be different
because I despise this American staple, and silly as you may think it
may be it is my preference not to have anything to do with cheesy
pasta. Heck, it ain&#39;t even healthy.&lt;/p&gt;

&lt;p&gt;Note: I sometimes like some cheese on top of tomato based sauces or
chili that has pasta mixed into it. This is not the same thing as mac
&amp;amp; cheese.&lt;/p&gt;

&lt;p&gt;Yet the complication I face is that I have dear friends and family who
think that their prize-winning homemade mac &amp;amp; cheese made from
imported unpasteurized cheese will be something that I love. That I&#39;ll
change and they&#39;ll get the chance to smugly say that it was the
quality of what I&#39;ve eaten that discouraged me.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Mongrel2 Sqlite3 Config System Working</title>
            <author>Zed A. Shaw</author>
            <link>http://sheddingbikes.com/posts/1277495906.html</link>
            <guid>http://sheddingbikes.com/posts/1277495906.html</guid>
            <pubDate>Fri, 25 Jun 2010 12:49:29 -0700</pubDate>
            <description>
                &lt;p&gt;The first word of warning is that obviously this is going to change.
It&#39;s an interesting idea, but it has potential to go horribly wrong if
it&#39;s not constantly usability tested.  If you have a knee-jerk reaction
to this that&#39;s based on your dislike of SQL, just hold off on that.  I
wouldn&#39;t force SQL on anyone who didn&#39;t want it, so expect great tooling
for this to come out.&lt;/p&gt;

&lt;h1&gt;Why Sqlite?&lt;/h1&gt;

&lt;p&gt;I want Mongrel2 to be &lt;em&gt;very&lt;/em&gt; language agnostic, and that means you
should be able to configure and manage it with your favorite ops
friendly language.  I&#39;d rather have people work against a known and
migrateable SQL database than force everyone out there to try to write
hackjob tools that munge an ever changing config file format.  Hopefully
this will make &lt;a href=&#34;http://mongrel2.org&#34;&gt;Mongrel2&lt;/a&gt; an operations wet dream
where servers can be managed easily, have their configurations migrated
(yes &lt;em&gt;migrated&lt;/em&gt;), validated for consistency, and even live
reconfiguration without restarts.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Mongrel 2 Routing And The Magnetic Bikeshed</title>
            <author>Zed A. Shaw</author>
            <link>http://sheddingbikes.com/posts/1277144478.html</link>
            <guid>http://sheddingbikes.com/posts/1277144478.html</guid>
            <pubDate>Mon, 21 Jun 2010 11:12:43 -0700</pubDate>
            <description>
                &lt;p&gt;As of &lt;a href=&#34;http://mongrel2.org/info/079c177756&#34;&gt;commit 079c177756&lt;/a&gt; I have
that working, and it took me just one day.  Best of all, using the two
data structures, the entire piece of code that meshes them together is:&lt;/p&gt;

&lt;pre&gt;
int RouteMap_collect_match(void *value, const char *key, size_t len)
{
    assert(value &amp;&amp; &#34;NULL value from TST.&#34;);

&lt;pre&gt;&lt;code&gt;Route *route = (Route *)value;
&lt;/code&gt;&lt;/pre&gt;

            </description>
        </item>
    
        <item>
            <title>Mongrel2 Is "Self-Hosting"</title>
            <author>Zed A. Shaw</author>
            <link>http://sheddingbikes.com/posts/1276761301.html</link>
            <guid>http://sheddingbikes.com/posts/1276761301.html</guid>
            <pubDate>Thu, 17 Jun 2010 00:46:41 -0700</pubDate>
            <description>
                &lt;p&gt;A web server simply written in C that loved all languages equally.
When I wrote the original Mongrel I wanted to make a server that loved
all Ruby web frameworks equally.  Rather than make it Rails specific I
wanted everyone to have a chance, and the end result was many nice
frameworks and Merb eventually taking over Rails.&lt;/p&gt;

&lt;p&gt;I wanted to do &lt;em&gt;this same thing for all programming languages&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;This week, I finally started that web server and I named it
&lt;a href=&#34;http://mongrel2.org/home&#34;&gt;Mongrel2&lt;/a&gt;.  It took me about 1 week to
get a first functioning version up once inspiration hit me of how
exactly I could do it.  This version is functional enough to be
self-hosting and support a &lt;em&gt;mostly working&lt;/em&gt; web &lt;a href=&#34;http://mongrel2.org:6767/chat/&#34;&gt;chat
server&lt;/a&gt;.  The code for this is currently
about &lt;a href=&#34;http://dpaste.de/XNjA/&#34;&gt;366 lines of C&lt;/a&gt; and
&lt;a href=&#34;http://dpaste.de/dxxg/&#34;&gt;57 lines of hack Python&lt;/a&gt; plus some supporting
libraries.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Why I Use Fossil</title>
            <author>Zed A. Shaw</author>
            <link>http://sheddingbikes.com/posts/1276624594.html</link>
            <guid>http://sheddingbikes.com/posts/1276624594.html</guid>
            <pubDate>Tue, 15 Jun 2010 10:46:51 -0700</pubDate>
            <description>
                &lt;p&gt;For example, people who use git like to say fossil is weird.  Fossil&#39;s
actually pretty normal compared to git.  The commands make sense,
there&#39;s help, and it&#39;s simple so each thing does one thing.  Git users
however will avoid fossil because it&#39;s not like git, and don&#39;t want to
learn anything new, yet when git came out those same people kept saying
learning git was like learning C. It&#39;s good for you!&lt;/p&gt;

&lt;p&gt;Well, what if learning fossil is good for you?  Hell, I think you should
know all the SCMs you can and be able to switch between them.  You might
not like it, and I complain all the time I have to commit a merge in
mercurial, but I know how to use them anyway.&lt;/p&gt;

&lt;p&gt;Another complaint people have about fossil is that it looks like crap.
I&#39;m sorry, but if you&#39;re comparing fossil to github or bitbucket then
that&#39;s an unfair comparison.  Github and bitbucket are hosted services
that get paid money and have been designed to support many projects at
one domain used by many people.  Fossil is fairly new, and while it
supports most of the features or more that github and bitbucket do, it&#39;s
designed by programmers to be used by other programmers.  It&#39;s not that
great of a design, but the UI is pretty easy to use and gets the job
done.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>The Wrong Aesthetic</title>
            <author>Zed A. Shaw</author>
            <link>http://sheddingbikes.com/posts/1276445247.html</link>
            <guid>http://sheddingbikes.com/posts/1276445247.html</guid>
            <pubDate>Sun, 13 Jun 2010 08:58:59 -0700</pubDate>
            <description>
                &lt;p&gt;The author has converted a simple for loop into a usage of boost::bind,
but has also attempted to format the for loop to make it look like the
same amount of code.  Let&#39;s compare if I simply rework the for loop to
look normal:&lt;/p&gt;

&lt;p&gt;&lt;pre&gt;
int Dice::total() const {
  int total = 0;
  const_iterator i;&lt;/p&gt;

&lt;p&gt;for(i = dice.begin(); i != dice.end(); ++i) {
        total += (*i)-&gt;faceValue();
  }&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Assholes Code Like Assholes (and Like Giles)</title>
            <author>Zed A. Shaw</author>
            <link>http://oppugn.us/posts/1276150607.html</link>
            <guid>http://oppugn.us/posts/1276150607.html</guid>
            <pubDate>Wed, 9 Jun 2010 23:08:35 -0700</pubDate>
            <description>
                &lt;p&gt;Life&#39;s too short to learn from people like Giles, and I want to create
the next generation of compasionate coders, not asshole coders like him.&lt;/p&gt;

&lt;p&gt;Now, let&#39;s begin!&lt;/p&gt;

&lt;h1&gt;Works Is Not Good Enough&lt;/h1&gt;

            </description>
        </item>
    
        <item>
            <title>The days of the programmer are over. Long live the programmer.</title>
            <author>Guillaume Theoret</author>
            <link>http://oppugn.us/posts/1276871402.html</link>
            <guid>http://oppugn.us/posts/1276871402.html</guid>
            <pubDate>Wed, 9 Jun 2010 21:47:15 -0400</pubDate>
            <description>
                &lt;p&gt;Then, as far as I can tell it transitioned to the famous programmers
being the ones that wrote books or possibly magazine articles. Then
came the famous blogger/programmer, with blogger definitely the key
part of that dichotomy. Now it&#39;s the ones founding companies and
making a lot of money.&lt;/p&gt;

&lt;p&gt;Is this really a problem though? Sure, it makes programmers a second
class citizen, relegated to sweat away like the cog they are while
others take credit for their hard work but is that likely to stay that
way?&lt;/p&gt;

&lt;p&gt;Well, yes and no.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Please Kill FedEx And UPS</title>
            <author>Zed A. Shaw</author>
            <link>http://oppugn.us/posts/1276122413.html</link>
            <guid>http://oppugn.us/posts/1276122413.html</guid>
            <pubDate>Wed, 9 Jun 2010 15:15:38 -0700</pubDate>
            <description>
                &lt;p&gt;Nope, that&#39;s not how it works.  I have easily 10 communications devices
on my computer right now.  I can go to google and punch in exact GPS
coordinates and zoom in on the top of your fucking head and count your
hairs.  I can send text messages, twitter, emails, phone calls and even
&lt;em&gt;automate&lt;/em&gt; all of this.  The ease with which FedEx or UPS could tell me
that a driver is outside my door, right fucking now, or will be in 10
minutes is staggering.&lt;/p&gt;

&lt;p&gt;But now, these stupid companies decided to write their shit in Forth and
now they can&#39;t use any modern technology to accomplish the one fucking
thing I am paying them extra for.&lt;/p&gt;

&lt;p&gt;I am not paying them to drive my package into the city and then make me
pick it up from a fucking warehouse.  I am paying for the box to be on
my doorstep with a fucking smile and goddamned signature.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>There Are No Famous Programmers (Shedding Bikes)</title>
            <author>Ken Baldwin</author>
            <link>http://sheddingbikes.com/posts/1276872767.html</link>
            <guid>http://sheddingbikes.com/posts/1276872767.html</guid>
            <pubDate>Tue, 8 Jun 2010 13:19:45 -0700</pubDate>
            <description>
                &lt;p&gt;I read your blog on &#34;There are no Famous Programmers&#34; (from reddit.com), and
I have my own thoughts regarding programmers and programming. I have been
programming for 30 years starting with Fortran then C and C++. I have a
Masters in Mechanical engineering (not CS, but have taken night classes). &lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>How I Perma-Trolled Reddit</title>
            <author>Zed A. Shaw</author>
            <link>http://oppugn.us/posts/1276025130.html</link>
            <guid>http://oppugn.us/posts/1276025130.html</guid>
            <pubDate>Tue, 8 Jun 2010 12:14:38 -0700</pubDate>
            <description>
                &lt;p&gt;If you contrast this with &lt;a href=&#34;http://news.ycombinator.com&#34;&gt;HN&lt;/a&gt; it&#39;s night
and day.  HNers are intelligent, and while they seem unable to read
sometimes, they at least have interesting things to say.  I used to love
reading the HN comments, because even when they were brutal about
something I wrote they were insightful 90% of the time.&lt;/p&gt;

&lt;p&gt;Reddit is the equivalent of squeezing every pimple on every teenage
nerd&#39;s face into a giant cup, irradiating it with gamma radiation, and
then feeding it to the The Commic Book guy with an Star Trek phaser
enema.  They&#39;re pointless useless little morons, and one day I decided
to troll them as hard as I could.&lt;/p&gt;

&lt;p&gt;The end result is that I&#39;ve trolled reddit so hard that they end up
trolling themselves, and I&#39;m going to explain to you exactly how I did
it.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Re: No famous Programmers</title>
            <author>Zak Kuhn</author>
            <link>http://sheddingbikes.com/posts/1276872664.html</link>
            <guid>http://sheddingbikes.com/posts/1276872664.html</guid>
            <pubDate>Tue, 08 Jun 2010 11:29:14 -0700</pubDate>
            <description>
                &lt;p&gt;Over and over companies go through a hiring process to ramp up a 
project. Every time, programmers and engineers need to reprove 
themselves to some &lt;em&gt;ahem&lt;/em&gt; douche. But the fault is not theirs, it is 
ours. We allow ourselves to be controlled and manipulated. We refuse to 
learn how to negotiate. We scoff at collective bargaining. In the end, 
we may get pissed off, threaten to go somewhere else, and finally get a 
raise as the realization of what we actually do sinks into some 
manager&#39;s head somewhere, and they panic and cave on the raise we 
demand. But really, we gave away our ingenuity, drive, and dedication 
for years at an undervalued rate.&lt;/p&gt;

&lt;p&gt;Where am I going with this? The idea is for the programmer&#39;s &#34;internet 
workshop&#34;. In the age of the internet, we can collaborate on projects 
like the Gnu/Linux OS. But we need to be on the same team as 
programmers. And we need to get paid. The &#34;internet workshop&#34; would be a 
place where companies come to get software built. Yeah, a consulting 
company... kind of... But it would have it&#39;s own internal mechanism for 
programmers from around the internet to work on projects, get paid, and 
establish reputation, not with clients, but internal to the &#34;workshop 
community&#34;, so that they don&#39;t have to interview every time. When a hard 
problem comes up for a project, a talented programmer can be assigned 
(or choose to jump on it). When there is some &#34;scut work&#34;, a junior 
programmer can get some of it out of the way, and get an opportunity for 
feedback from senior programmers. And they can get paid a decent rate...&lt;/p&gt;

&lt;p&gt;It would take a lot for something like that to happen. But until it 
does, we will continue to compete amongst ourselves as programmers, 
drive our compensation down through competition, and devalue our 
abilities. Doctors realized this long ago, and created the AMA. 
Engineers (civil, mechanical) created the PE designation. Even actors 
created the SAG (but big stars still make millions). It&#39;s time for us to 
do the same as programmers.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>There Are No Famous Programmers</title>
            <author>Zed A. Shaw</author>
            <link>http://sheddingbikes.com/posts/1275989245.html</link>
            <guid>http://sheddingbikes.com/posts/1275989245.html</guid>
            <pubDate>Tue, 8 Jun 2010 02:18:56 -0700</pubDate>
            <description>
                &lt;p&gt;VCs and term sheets? Really?  Well shit, tomorrow I get a
&lt;a href=&#34;http://www.ladyada.net/make/x0xb0x/&#34;&gt;x0xb0x&lt;/a&gt; and tonight I was hacking
on a cool new web server now that I&#39;m done with
&lt;a href=&#34;http://mulletdb.com&#34;&gt;MulletDB&lt;/a&gt;.  And these guys just think about VCs and
term sheets?  That&#39;s kind of sad really.&lt;/p&gt;

&lt;p&gt;Let me tell you about this cool new web server.  I figured out how to
merge the &lt;a href=&#34;http://zeromq.org&#34;&gt;ZeroMQ&lt;/a&gt; event polling system with the
&lt;a href=&#34;http://swtch.com/libtask/&#34;&gt;libtask&lt;/a&gt; coroutine library so that you can
use libtask to handle tons of TCP/UDP and ZeroMQ sockets in a single
thread.  I then took this &lt;em&gt;very&lt;/em&gt; cool hack, and started building a web
server using my Mongrel HTTP parser, but I modified the parser so that
the same server on the same port can handle HTTP or Flash XMLSockets
transparently.  The next step is to get this server to route HTTP and
XMLSocket JSON messages to arbitrary ZeroMQ backends.  I was inspired by
this so much that I registered utu.im and may try to bring it back.  Not
sure how or when though.&lt;/p&gt;

&lt;p&gt;Sounds cool right?  Totally doesn&#39;t matter one bit.  I could hack on
projects like this and nobody would care at all because I&#39;m a famous
programmer, and there is no such thing as famous programmers.  I don&#39;t
exist.  I&#39;m an enigma.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>LPTHW Ex 38 Done: Reading Code</title>
            <author>Zed A. Shaw</author>
            <link>http://sheddingbikes.com/posts/1275816630.html</link>
            <guid>http://sheddingbikes.com/posts/1275816630.html</guid>
            <pubDate>Sun, 6 Jun 2010 02:21:55 -0700</pubDate>
            <description>
                &lt;p&gt;You should now go out and find some Python code to read.  You should
be finding and reading any Python code you can and trying to steal
ideas that you find.  You actually should have enough knowledge to
be able to read, but maybe not understand what the code does.  What
I&#39;m going to teach you in this lesson is how to apply things you&#39;ve
learned to understand other people&#39;s code.&lt;/p&gt;

&lt;p&gt;First, take the code you want to understand and print it out.  Yes,
print it out, because your eyes and brain are more used to reading
paper than computer screens.  Make sure you only print a few pages
at a time.&lt;/p&gt;

&lt;p&gt;Second, you should go through your printout and take notes of the
following:&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Exercise 36: Designing And Debugging</title>
            <author>Zed A. Shaw</author>
            <link>http://sheddingbikes.com/posts/1275728846.html</link>
            <guid>http://sheddingbikes.com/posts/1275728846.html</guid>
            <pubDate>Sat, 5 Jun 2010 01:58:09 -0700</pubDate>
            <description>
                &lt;p&gt;I&#39;m going to give you some rules now that you know &lt;code&gt;if-statements&lt;/code&gt;,
&lt;code&gt;for-loops&lt;/code&gt;, and &lt;code&gt;while-loops&lt;/code&gt; that will keep you out of trouble.  I&#39;m
also going to give you some tips on debugging so that you can figure out
problems with your program.  Finally, you&#39;re going to design a similar
little game as in the last exercise but with a slight twist.&lt;/p&gt;

&lt;h1&gt;Rules For If-Statements&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;Every &lt;code&gt;if-statement&lt;/code&gt; must have an &lt;code&gt;else&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;If this &lt;code&gt;else&lt;/code&gt; should never be run, because it doesn&#39;t
make sense, then you must use a &lt;code&gt;die&lt;/code&gt; function in the &lt;code&gt;else&lt;/code&gt; that
prints out an error message and exits, just like we did in
the last exercise.  This will find &lt;em&gt;many&lt;/em&gt; errors.&lt;/li&gt;
&lt;li&gt;Never nest &lt;code&gt;if-statements&lt;/code&gt; more than 2 deep and always try
to do them 1 deep.  This means if you put an &lt;code&gt;if&lt;/code&gt; in an &lt;code&gt;if&lt;/code&gt; 
then you should be looking to move that second &lt;code&gt;if&lt;/code&gt; into
another function.&lt;/li&gt;
&lt;li&gt;Treat &lt;code&gt;if-statements&lt;/code&gt; like paragraphs, where each &lt;code&gt;if,elif,else&lt;/code&gt;
grouping is like a set of sentences.  Put blank lines before and
after them.&lt;/li&gt;
&lt;li&gt;Your boolean tests should be simple.  If they are complex, move 
their calculations to variables earlier in your function and use
a good name for the variable.&lt;/li&gt;
&lt;/ol&gt;

            </description>
        </item>
    
        <item>
            <title>Round 23: Open Minded</title>
            <author></author>
            <link>http://www.fretwar.com/round/23</link>
            <guid>http://www.fretwar.com/round/23</guid>
            <pubDate>2010-06-05 06:39:40.075017</pubDate>
            <description>
                &lt;blockquote&gt;
  &lt;p&gt;Play only in the open position.&lt;/p&gt;
  
  &lt;p&gt;Come up with a nasty, gritty song using only the open position. Play no
  higher than the 5th fret (some say open stops at 4th, but I found that
  too limiting). Use alternate tuning, whammy, tap, anything.&lt;/p&gt;
  
  &lt;p&gt;Thatâs it, develop a riff and then solo over it but go no higher than
  the 5th fret.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You can check out what David did in &lt;a href=&#34;http://fretwar.com/static/data/player/255/round/255/2010/05/17/023331/&#34;&gt;his round submission&lt;/a&gt;
as a sample of what to do.  Remember it&#39;s not really an entire song in
the open position, just come up with a good part of it that way.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>No subject necessary</title>
            <author>onitake@gmail.com</author>
            <link>http://oppugn.us/posts/1276871478.html</link>
            <guid>http://oppugn.us/posts/1276871478.html</guid>
            <pubDate>Fri, 04 Jun 2010 17:55:57 +0200</pubDate>
            <description>
                &lt;p&gt;Oh yeah, and while we&#39;re at it, it should take its other bosom buddy apple along.&lt;/p&gt;

&lt;p&gt;Your rant is justified, but apple has become as bad, arrogant, selfish, greedy, etc.
as adobe, ms, the riaa, the mpaa, the wipo, or who else.&lt;/p&gt;

&lt;p&gt;Flash sucks orc balls - but that&#39;s no reason to fuck off users by patronising them
about flash support. If they want it, they should have it. If they don&#39;t, they can
have it turned off. By not providing ANY fucking means to use it (save except maybe
for a half-working gnash port for jailbreakers), apple fucks users harder into the
posterior than adobe by publishing a completely fucked up &#34;rich content platform&#34;.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Oh come on</title>
            <author>Maximilian Herkender</author>
            <link>http://oppugn.us/posts/1276871803.html</link>
            <guid>http://oppugn.us/posts/1276871803.html</guid>
            <pubDate>Thu, 3 Jun 2010 15:56:18 -0700</pubDate>
            <description>
                &lt;p&gt;&lt;a href=&#34;http://blogs.adobe.com/penguin.swf/2010/01/solving_different_problems.html&#34;&gt;As for the slow video thing.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Flash Cookies are there because normal cookies suck, they&#39;re adding
similar stuff in HTML5 for that very reason. Don&#39;t panic they&#39;re
limited to 100k unless you specifically grant more space. Chrome&#39;s
&#34;Clear data&#34; dialog has a link to a url to help you manage them too,
why don&#39;t other browsers do that I don&#39;t know.&lt;/p&gt;

&lt;p&gt;As for the broken HTTP status thing. &lt;a href=&#34;http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/events/HTTPStatusEvent.html#status&#34;&gt;I don&#39;t know what you&#39;re talking about.&lt;/a&gt;&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Fuck Flash In The Fucking Neck With Barbed Wire Coated In Arsenic</title>
            <author>Zed A. Shaw</author>
            <link>http://oppugn.us/posts/1275555292.html</link>
            <guid>http://oppugn.us/posts/1275555292.html</guid>
            <pubDate>Thu, 3 Jun 2010 01:46:16 -0700</pubDate>
            <description>
                &lt;p&gt;Just in case it&#39;s not clear, I absolutely positively hope that Flash is
totally wiped out and that it takes all of Adobe and their bosom buddy
Microsoft with it down into the dark depths of Cthulhu&#39;s anus where
things that die are dead for so long that even death is now dead and
they are out of my fucking site.&lt;/p&gt;

&lt;p&gt;Why? Because for the very last time, I am finally sick of
&lt;a href=&#34;http://hulu.com&#34;&gt;Hulu&lt;/a&gt; playing video like it&#39;s a covered in molasses.
Of course my more technically oriented friends will think that makes me
a moron. It works great for them on their Neckbeard 9000 Triple Quad
Dual X Neon Nvidia NIOPIATE computer with SSDs in RAID-26 configuration.&lt;/p&gt;

&lt;p&gt;Nope, this is on a Mac, or Linux, or Windows and on some reasonable
hardware.  1.6GHZ CPU with a decent Nvidia card designed to show HD
video.  In fact, I can play &lt;em&gt;perfect&lt;/em&gt; video from Netflix on both my Mac
and my Windows PC with no problems.   Just watched &#34;Up&#34; and it looked
fantastic from Netflix.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>LPTHW: Ordinal, and Cardinal Numbers</title>
            <author>Zed A. Shaw</author>
            <link>http://sheddingbikes.com/posts/1275551929.html</link>
            <guid>http://sheddingbikes.com/posts/1275551929.html</guid>
            <pubDate>Thu, 3 Jun 2010 00:50:43 -0700</pubDate>
            <description>
                &lt;h1&gt;Exercise 34: Accessing Elements Of Lists&lt;/h1&gt;

&lt;p&gt;Lists are pretty useful, but unless you can get at the things in them
they aren&#39;t all that good.  You can already go through the elements of a
list in order, but what if you want say, the 5th element?  You need to
know how to access the elements of a list.  Here&#39;s how you would access
the &lt;em&gt;first&lt;/em&gt; element of a list:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;
    animals = [&#39;bear&#39;, &#39;tiger&#39;, &#39;penguin&#39;, &#39;zeebra&#39;]
    bear = animals[0]
&lt;/code&gt;&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Why you should study Computer Science, a rebuttal</title>
            <author>Tinco Andringa</author>
            <link>http://sheddingbikes.com/posts/1276872429.html</link>
            <guid>http://sheddingbikes.com/posts/1276872429.html</guid>
            <pubDate>Mon, 31 May 2010 06:56:34 +0200</pubDate>
            <description>
                &lt;p&gt;Let me start off by saying that I don&#39;t think universities are a
better place for learning culture than any other location with bright
and interesting people. If you have time and interest you can learn as
much as you want about any aspect of the collective human knowledge no
matter what your daily occupancy is. If you really want to learn as
much of the breadth and depth of the great human achievements as you
can then work very hard for a few years and after that go travel
around the world! Take an e-book reader with you with all the popular
scientists and philosophers, poets and artists. If you think going to
a university will just automatically teach you these things you are
wrong. If you are lazy and you don&#39;t like to read or learn about
culture, all you will learn at a university is what it is like to sit
on your ass all day playing video games, and hang in a bar all night
getting drunk as fuck. It will end eventually with either you dropping
out or with you aging a bit, manning up and doing what it takes to
actually get that degree.&lt;/p&gt;

&lt;p&gt;So why would you go to a university and study computer science if it
has no added cultural value? The answer is simple. Because you&#39;re
interested in Computer Science. You&#39;ve learned how to program at high
school. You can make websites for shops or businesses. You could make
them back-ends or optimize their data entry applications. You can use
some abstract languages like PHP or Ruby, or even Java or C#. Or
perhaps you&#39;re the kind of guy that works in C or C++, and you
contribute patches to drivers and software you use on your linux
operating system. These things are nice, and being able to do them
will land you a nice job, but that is not enough for you. You might
want to know what it takes to make a user interface that allows any
person to use a device irrespective of complexity. You might want to
know what it takes to design an operating system from the ground up.
You might be interested in how to rigorously proof that a
multithreaded application that monitors and controls a nuclear reactor
is correct beyond a shadow of a doubt.&lt;/p&gt;

&lt;p&gt;Do they teach you how to be a better programmer at a university? Yes
and no, and probably not more than you would learn at a decent
employer. A proper university will introduce you to some high level
language, like Java and to test driven development using something
like JUnit. The reason many universities chose Java for their
introductory programming courses is not because they want to prepare
you for &#39;the industry&#39; or whatever organization might be giving them
money. It&#39;s because java is a very strict and explicit language and
that makes it an easy tool for explaining the concepts they are trying
to teach. This is why software engineering courses might require you
to use Java. Operating systems courses might require you to use c/c++
and functional programming courses might be in Haskell or whatever the
professor thinks is appropriate. There is perhaps some truth in Zed
Shaw&#39;s statement that you might be lucky if they teach you more than
one language. In a computer organization course I followed the teacher
explained how computer memory worked and then gave an assignment in C
without a full introduction to the complicated art of C programming.
He just assumed that you would be able to program in C after you had
learned Java and heard about how memory access works. This is because
languages are just tools. It is more about what and how you implement
than in which language you do it, or using what process. (Although
there is a branch of computer science that focuses on the development
process, if you&#39;re interested in that!).&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Go To University, Not For CS</title>
            <author>Zed A. Shaw</author>
            <link>http://sheddingbikes.com/posts/1275258018.html</link>
            <guid>http://sheddingbikes.com/posts/1275258018.html</guid>
            <pubDate>Sun, 30 May 2010 15:12:03 -0700</pubDate>
            <description>
                &lt;p&gt;They&#39;re told, &#34;If you can already code you won&#39;t learn anything in
university you couldn&#39;t learn in a full time job.&#34;&lt;/p&gt;

&lt;p&gt;So the young programmer, who&#39;s parents probably demand that they go to
school and study so as not to be a loser, wonders why bother?  All they
want to do is code.  They could skip those annoying four years of
learning and just get down to doing it like a true professional.  Right
now.  That&#39;s what everyone else says.&lt;/p&gt;

&lt;p&gt;Sadly, I have to agree.  If you go to a university and you can already
code you probably won&#39;t learn much about programming.  Chances are
you&#39;ll end up going to some crappy Java school that&#39;s just now realizing
standardizing on one language controlled by a corporation that had no
clue how to actually turn a profit was a bad idea.  For the next 4 to 10
years I think most university CS departments are going to be horribly
behind, not just for the usual reasons of being out of touch with the
current practices, but because they bet the wad on the wrong horse
entirely.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Round 22: Hank's Mixolydian Madness</title>
            <author></author>
            <link>http://www.fretwar.com/round/22</link>
            <guid>http://www.fretwar.com/round/22</guid>
            <pubDate>2010-05-30 23:58:24.750118</pubDate>
            <description>
                &lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;http://fretwar.com/static/data/player/39/round/255/2010/05/17/012629&#34;&gt;Low Hanging Fruit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://fretwar.com/static/data/player/255/round/255/2010/05/17/023331&#34;&gt;Open Minded&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://fretwar.com/static/data/player/1/round/255/2010/05/18/095721&#34;&gt;Riffs or Transcribe&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://fretwar.com/static/data/player/40/round/255/2010/05/17/132008&#34;&gt;Slide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://fretwar.com/static/data/player/255/round/255/2010/05/17/033623&#34;&gt;Six Layer Finger Take&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://fretwar.com/static/data/player/1/round/255/2010/05/18/093543&#34;&gt;Simple Major Pentatonic Over Two Keys&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://fretwar.com/static/data/player/1/round/255/2010/05/18/094552&#34;&gt;Alter Chords For Pentatonic Goodness&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That&#39;s the initial order, and we&#39;ll say the winner of the next round can
change the order, remove one, or add one to the list.&lt;/p&gt;

&lt;p&gt;Without further ado, here&#39;s &lt;a href=&#34;http://fretwar.com/player/39&#34;&gt;Hank&#39;s&lt;/a&gt; round.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Announcing MulletDB (Formerly NoNoSQL)</title>
            <author>Zed A. Shaw</author>
            <link>http://sheddingbikes.com/posts/1274762986.html</link>
            <guid>http://sheddingbikes.com/posts/1274762986.html</guid>
            <pubDate>Mon, 24 May 2010 21:41:48 -0700</pubDate>
            <description>
                &lt;p&gt;You can &lt;a href=&#34;http://mulletdb.com&#34;&gt;check it out&lt;/a&gt; in it&#39;s initial setup, which is just a
&lt;a href=&#34;http://fossil-scm.org/index.html/doc/tip/www/index.wiki&#34;&gt;Fossil&lt;/a&gt; repo I
put up for collaborating.  It&#39;s still a work in progress, but it works
pretty well and has the features I need to get started on other stuff.&lt;/p&gt;

&lt;p&gt;You&#39;ll notice MulletDB is &lt;a href=&#34;http://www.gnu.org/licenses/agpl-3.0.html&#34;&gt;AGPL&lt;/a&gt;
and it&#39;s also written in C++ with Python APIs.  I may release the Python
driver as MIT licensed later when it&#39;s actually stable.&lt;/p&gt;

&lt;p&gt;So far it can do the following:&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>The Valley Mullet</title>
            <author>Zed A. Shaw</author>
            <link>http://oppugn.us/posts/1274663044.html</link>
            <guid>http://oppugn.us/posts/1274663044.html</guid>
            <pubDate>Sun, 23 May 2010 17:56:16 -0700</pubDate>
            <description>
                &lt;p&gt;-- The Mullet Song, Mingo Fishtrap
&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;Every culture has a mullet.  Some hideous fashion disaster that&#39;s
accepted by everyone as just, well, the way a dude appears if he wants
to be taken seriously, but still rock out.  When you ask a southern man
why he wears a mullet, his response is:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Bidness in front, partay in back.&lt;/p&gt;
&lt;/blockquote&gt;

            </description>
        </item>
    
        <item>
            <title>Facebook: Die Like AOL Already</title>
            <author>Brian Shumate</author>
            <link>http://oppugn.us/posts/1276871673.html</link>
            <guid>http://oppugn.us/posts/1276871673.html</guid>
            <pubDate>Sat, 22 May 2010 16:36:34 -0400</pubDate>
            <description>
                &lt;p&gt;While I&#39;d like to think that none of that crap applies to me, I&#39;d be remiss to overlook some interesting and rarely discussed issues around this whole social networking privacy snafu in the first place.&lt;/p&gt;

&lt;p&gt;You see, I don&#39;t use Facebook.&lt;/p&gt;

&lt;p&gt;I have never used Facebook, and I will never use Facebook.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Lamson 1.0 Released, BSD and GPL Licensed</title>
            <author>Zed A. Shaw</author>
            <link>http://sheddingbikes.com/posts/1274557940.html</link>
            <guid>http://sheddingbikes.com/posts/1274557940.html</guid>
            <pubDate>Sat, 22 May 2010 12:44:11 -0700</pubDate>
            <description>
                &lt;p&gt;This release has a few minor bug fixes and has a hard dependency on
python-daemon 1.5.5.  It turns out the new python-daemon package has a
broken dependency on lockfile 0.9, which isn&#39;t available through the
usual package installers.  Also there&#39;s a few platforms that seem to
explode from weird code in lockfile (complaining about metaclasses).&lt;/p&gt;

&lt;p&gt;When you upgrade to Lamson 1.0, if you have a problem make sure to zap
any install of python-daemon and lockfile from your system first.
Hopefully you&#39;ve got a virtual env setup so this is easier.&lt;/p&gt;

&lt;h2&gt;About Python And The GPLv3&lt;/h2&gt;

            </description>
        </item>
    
        <item>
            <title>You Shall Know The 20% By Their Lack Of Works</title>
            <author>Zed A. Shaw</author>
            <link>http://oppugn.us/posts/1274143375.html</link>
            <guid>http://oppugn.us/posts/1274143375.html</guid>
            <pubDate>Mon, 17 May 2010 17:32:51 -0700</pubDate>
            <description>
                &lt;p&gt;I know, you probably read that sentence and thought, &#34;Well shit Zed,
that&#39;s what you do asshole.&#34;  You&#39;re right, but I restrict my ranty
words to assholes I feel are hurting other people, and I can take it as
good as I get it.  You got something to say?  You think I fucking suck?
Rock on, go ahead and say it.&lt;/p&gt;

&lt;p&gt;But, you better fucking know your shit, &#39;cause I sure as hell do.&lt;/p&gt;

&lt;p&gt;Let&#39;s take an example of a troll from today named &lt;a href=&#34;http://blog.chris-alex-thomas.com/&#34;&gt;Chris Alex Thomas&lt;/a&gt;
who decided to pathetically attempt trolling me today.  At first I thought, &#34;Oh a
worthy opponent, very interesting.&#34;  Then as I read his tweets:&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>114 Lines Of Python For A NoNoSQL API</title>
            <author>Zed A. Shaw</author>
            <link>http://sheddingbikes.com/posts/1273940948.html</link>
            <guid>http://sheddingbikes.com/posts/1273940948.html</guid>
            <pubDate>Sat, 15 May 2010 09:21:25 -0700</pubDate>
            <description>
                &lt;p&gt;Of course this will need to expand as I implement things like better
robustness, better error reporting, and a tighter better defined
protocol for NoNoSQL.  I&#39;m also planning on adding the ability to
interact with NoNoSQL in an async model, where you blast out requests
and collect them later if you like.&lt;/p&gt;

&lt;p&gt;But, if I&#39;m going to make it useful I need to use it on a project, so
I&#39;ve decided to try using it on &lt;a href=&#34;http://crapmania.com&#34;&gt;Crapmania&lt;/a&gt;.
Hopefully by keeping to this API and using a good unit test suite I can
later swap it out if NoNoSQL proves too difficult to use in practice.
I&#39;m anticipating though that it&#39;ll be very useful for the kind of
application crapmania ends up being.&lt;/p&gt;

&lt;h1&gt;Crapmania First Design&lt;/h1&gt;

            </description>
        </item>
    
        <item>
            <title>Announcing NoNoSQL</title>
            <author>Zed A. Shaw</author>
            <link>http://sheddingbikes.com/posts/1273859940.html</link>
            <guid>http://sheddingbikes.com/posts/1273859940.html</guid>
            <pubDate>Fri, 14 May 2010 10:51:22 -0700</pubDate>
            <description>
                &lt;p&gt;I&#39;m calling it &lt;a href=&#34;http://zedshaw.com:8080/home&#34;&gt;NoNoSQL&lt;/a&gt; for lack of a
better name.  If it gets more serious then I&#39;ll pick something else.
The man part of the joke is that it&#39;s a &#34;NoSQL&#34; server, but it has SQL
in it, but you don&#39;t use SQL to do the SQL.  Let me explain.&lt;/p&gt;

&lt;p&gt;What I did was combine &lt;a href=&#34;http://www.zeromq.org/&#34;&gt;0mq&lt;/a&gt; with
&lt;a href=&#34;http://www.sqlite.org/&#34;&gt;sqlite3&lt;/a&gt;, &lt;a href=&#34;http://1978th.net/tokyocabinet/&#34;&gt;tokyo cabinet&lt;/a&gt;,
and finally, the filesystem, to create a server that lets you do all 
four at once using the 0mq scalability and speed building blocks.  In
theory this thing should be dead easy to scale out, shard, cluster,
whatever you need to do.  Right now of course it doesn&#39;t but the
potential is there.&lt;/p&gt;

&lt;p&gt;However, I took things one step further by making most everything you
send and receive JSON.  When you build a SQL query, it&#39;s just a JSON
abbreviated format:&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Round 21: You Write The Next Round</title>
            <author></author>
            <link>http://www.fretwar.com/round/21</link>
            <guid>http://www.fretwar.com/round/21</guid>
            <pubDate>2010-05-10 15:42:42.110099</pubDate>
            <description>
                &lt;ol&gt;
&lt;li&gt;Think up an idea for a round.  Maybe it&#39;s a genre, a specific odd
key+mode mix, anything you think would be challenging but not too hard.&lt;/li&gt;
&lt;li&gt;Now, play your own round and get a good recorded submission to &#34;beta
test&#34; it.&lt;/li&gt;
&lt;li&gt;Send it in like normal as if it&#39;s a submission.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Everyone will then rate these &#34;proposed rounds&#34; based on whether they&#39;d
like to play them as well as if the recorded submission is any good.
We&#39;ll then take the winner and all of us will do it for the next round.&lt;/p&gt;

&lt;h1&gt;Tips On Writing A Good Round&lt;/h1&gt;

            </description>
        </item>
    
        <item>
            <title>Flash Developers: lrn2fuckingprogramkthxbai</title>
            <author>Paul Davis</author>
            <link>http://oppugn.us/posts/1276871573.html</link>
            <guid>http://oppugn.us/posts/1276871573.html</guid>
            <pubDate>Tue, 4 May 2010 01:26:44 -0400</pubDate>
            <description>
                &lt;p&gt;There have already been reports of automated analysis of AppStore submissions
from November 2008 for private API usage [3]. The infamous Flash-to-iPhone
packager works by compiling ActionScript to native ARM assembly [4]. This would
quite assuredly break static analysis.&lt;/p&gt;

&lt;p&gt;iPhone OS 4.0 now includes various API&#39;s for background processing. Assuming
[5-6] are correct this is based on Grand Central Dispatch [7]. Given that
applications are now allowed this freedom, it would make sense that the static
analysis tests are going to be more stringent.&lt;/p&gt;

&lt;p&gt;Who wants to bet against the idea that the new 3.3.1 isn&#39;t a lawyer&#39;s attempt
at phrasing engineering terminology for what is testable?&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Round 20: Back To Basics</title>
            <author></author>
            <link>http://www.fretwar.com/round/20</link>
            <guid>http://www.fretwar.com/round/20</guid>
            <pubDate>2010-05-03 15:24:00.856818</pubDate>
            <description>
                &lt;p&gt;Let&#39;s say you can use effects but keep it minimal.  In fact, if you can
get the sounds of the room into the submission then that&#39;d be
interesting.  Also try to keep it to just one take with a minimum of
editing.&lt;/p&gt;

&lt;p&gt;Those are just suggestions.  Most important thing is just do it with one
guitar.&lt;/p&gt;

&lt;h1&gt;Ideas For Inspiration&lt;/h1&gt;

            </description>
        </item>
    
        <item>
            <title>Learn Python The Hard Way Version 0.2 Released</title>
            <author>Zed A. Shaw</author>
            <link>http://sheddingbikes.com/posts/1272519204.html</link>
            <guid>http://sheddingbikes.com/posts/1272519204.html</guid>
            <pubDate>Wed, 28 Apr 2010 22:25:18 -0700</pubDate>
            <description>
                &lt;p&gt;This release you can get &lt;a href=&#34;http://learnpythonthehardway.org/static/LearnPythonTheHardWay.pdf&#34;&gt;the PDF&lt;/a&gt; 
from &lt;a href=&#34;http://learnpythonthehardway.com/&#34;&gt;http://learnpythonthehardway.com/&lt;/a&gt; 
and I&#39;ve close quite a few &lt;a href=&#34;http://learnpythonthehardway.com/reportlist&#34;&gt;tickets&lt;/a&gt;
but keep putting them in.&lt;/p&gt;

&lt;p&gt;Here&#39;s the big list of things I&#39;ve fixed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Officially changed the &#39;#&#39; character from pound to octothorpe.&lt;/li&gt;
&lt;li&gt;Cleaned up a ton of little edits and fixes (thanks folks!).&lt;/li&gt;
&lt;li&gt;Finally got the exercise numbering and other number straight.&lt;/li&gt;
&lt;li&gt;Wrote a placeholder for exercise 27 where I start to introduce logic.&lt;/li&gt;
&lt;li&gt;Got the exercises to bring the reader to where they&#39;re finally reading and writing files.&lt;/li&gt;
&lt;li&gt;Created the book&#39;s project web site using &lt;a href=&#34;http://fossil-scm.org&#34;&gt;fossil&lt;/a&gt; to host it.&lt;/li&gt;
&lt;li&gt;Declared the book free to distribute as long as you don&#39;t charge for it or alter it.&lt;/li&gt;
&lt;/ul&gt;

            </description>
        </item>
    
        <item>
            <title>Learn Python The Hard Way Site Is Live</title>
            <author>Zed A. Shaw</author>
            <link>http://sheddingbikes.com/posts/1272383101.html</link>
            <guid>http://sheddingbikes.com/posts/1272383101.html</guid>
            <pubDate>Tue, 27 Apr 2010 08:37:05 -0700</pubDate>
            <description>
                &lt;p&gt;&lt;a href=&#34;http://learnpythonthehardway.org/static/LearnPythonTheHardWay.pdf&#34;&gt;http://learnpythonthehardway.org/static/LearnPythonTheHardWay.pdf&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Which I update frequently.  The site also supports the following for
people interested in contributing:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;It&#39;s a full &lt;a href=&#34;http://fossil-scm.org&#34;&gt;fossil&lt;/a&gt; repository, so that means you can grab the whole site for yourself, including all the sphinx code.  No license decided yet so just assume I own Copyright and you can redistribute for non-commercial purposes.&lt;/li&gt;
&lt;li&gt;There&#39;s a &lt;a href=&#34;http://learnpythonthehardway.org/wiki&#34;&gt;wiki&lt;/a&gt; where you can write a proposed exercise if you think of one.  Make sure it&#39;s good in case someone comes along on accident and doesn&#39;t get that the wiki is only a testing ground.&lt;/li&gt;
&lt;li&gt;You can enter in &lt;a href=&#34;http://learnpythonthehardway.org/tickets&#34;&gt;tickets&lt;/a&gt; if you find problems in the book.&lt;/li&gt;
&lt;/ol&gt;

            </description>
        </item>
    
        <item>
            <title>I Put Up A Quick Fossil For PTHW</title>
            <author>Zed A. Shaw</author>
            <link>http://sheddingbikes.com/posts/1272300719.html</link>
            <guid>http://sheddingbikes.com/posts/1272300719.html</guid>
            <pubDate>Mon, 26 Apr 2010 09:44:37 -0700</pubDate>
            <description>
                &lt;p&gt;You can go to:&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;http://zedshaw.com:8080/home&#34;&gt;http://zedshaw.com:8080/home&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For now and after logging in as anonymous you should be able to edit the
&lt;a href=&#34;http://zedshaw.com:8080/wiki?name=Proposed+Exercises&#34;&gt;Proposed Exercises&lt;/a&gt; wiki
page.  Make sure you read the &lt;a href=&#34;http://zedshaw.com:8080/home&#34;&gt;home page&lt;/a&gt;
and the &lt;a href=&#34;http://zedshaw.com:8080/wiki?name=Example+Exercise&#34;&gt;Example Exercise&lt;/a&gt;
to get an idea of what it&#39;s all about.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Round 19: Goin' To The Movies</title>
            <author></author>
            <link>http://www.fretwar.com/round/19</link>
            <guid>http://www.fretwar.com/round/19</guid>
            <pubDate>2010-04-26 19:26:48.841328</pubDate>
            <description>
                &lt;p&gt;It&#39;s simply this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Take a favorite movie theme you know or want to learn.&lt;/li&gt;
&lt;li&gt;Do your rendition of it.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Let&#39;s hope we don&#39;t get sued!&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Decent Free Beginner Python Books</title>
            <author>Zed A. Shaw</author>
            <link>http://sheddingbikes.com/posts/1272216358.html</link>
            <guid>http://sheddingbikes.com/posts/1272216358.html</guid>
            <pubDate>Sun, 25 Apr 2010 10:17:46 -0700</pubDate>
            <description>
                &lt;p&gt;I really quickly wanted to get the word out about two books that
are so far looking to be great beginner Python books.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href=&#34;http://www.greenteapress.com/thinkpython/&#34;&gt;How To Think Like A Computer Scientist&lt;/a&gt; is actually used as the curriculum at a few universities in the US and maybe in other locations.  Despite the title it is actually good introduction to the language and to programming.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.swaroopch.com/notes/Python&#34;&gt;A Byte Of Python&lt;/a&gt; is also free and has been translated to [a huge number of languages](http://www.swaroopch.com/notes/Python_en:Translations and also seems to a good first book.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;My plan is to mention these two books as next steps after my book, as
well as the &lt;a href=&#34;http://www.djangobook.com/&#34;&gt;Django Book&lt;/a&gt; for after they
finish one of those two.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>An Attempt At A Book Teaching Beginner Python</title>
            <author>Zed A. Shaw</author>
            <link>http://sheddingbikes.com/posts/1272132621.html</link>
            <guid>http://sheddingbikes.com/posts/1272132621.html</guid>
            <pubDate>Sat, 24 Apr 2010 11:00:02 -0700</pubDate>
            <description>
                &lt;ol&gt;
&lt;li&gt;There&#39;s a bunch of exercises.&lt;/li&gt;
&lt;li&gt;Each exercise is 1 or 2 pages.&lt;/li&gt;
&lt;li&gt;There&#39;s only a little bit of prose.&lt;/li&gt;
&lt;li&gt;You do each exercise exactly, then move on.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It&#39;s a simple concept, with the idea that a big part of music is
learning to do things with your instrument, and that&#39;s best accomplished
by fairly repetitive progressively difficult exercises.&lt;/p&gt;

&lt;p&gt;There&#39;s a few books that do this for other languages, like the wonderful
&lt;a href=&#34;http://www.amazon.com/gp/product/026256100X?ie=UTF8&amp;tag=giofneyo-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=026256100X&#34;&gt;Little Schemer&lt;/a&gt;,
&lt;a href=&#34;http://www.amazon.com/gp/product/026256100X?ie=UTF8&amp;tag=giofneyo-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=026256100X&#34;&gt;Seasoned Scheme&lt;/a&gt;,
&lt;a href=&#34;http://www.amazon.com/gp/product/0262562146?ie=UTF8&amp;tag=giofneyo-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0262562146&#34;&gt;Reasoned Schemer&lt;/a&gt;
series.  I think those books have the right idea, but again I didn&#39;t
like the format.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>How To Backpedal And Boost Like A Pro</title>
            <author>Zed A. Shaw</author>
            <link>http://oppugn.us/posts/1272078502.html</link>
            <guid>http://oppugn.us/posts/1272078502.html</guid>
            <pubDate>Fri, 23 Apr 2010 20:01:09 -0700</pubDate>
            <description>
                &lt;p&gt;Now on with the show.&lt;/p&gt;

&lt;p&gt;I find it funny that some folks have tried to say I&#39;m too hard on Mark
Pilgrim, despite the fact he&#39;s &lt;a href=&#34;http://diveintomark.org/archives/2009/04/21/fuck-the-foundries&#34;&gt;just as&lt;/a&gt;
outspoken and &lt;a href=&#34;http://diveintomark.org/archives/2007/04/16/dhh-translation&#34;&gt;ranty cursy&lt;/a&gt;
as me.  I mean, double standards much?  Dude is a Class-A jerk who&#39;s
attacked people in the past, and I have yet to run into too many people
who think the guy is that great.&lt;/p&gt;

&lt;p&gt;In a way, I kinda like that, like a rant brother in arms.   But he&#39;s
seriously got some thick rose colored glasses on when it comes to his
own value and the quality of his writing.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Dive Into Python Must Die</title>
            <author>Zed A. Shaw</author>
            <link>http://oppugn.us/posts/1272050135.html</link>
            <guid>http://oppugn.us/posts/1272050135.html</guid>
            <pubDate>Fri, 23 Apr 2010 12:08:03 -0700</pubDate>
            <description>
                &lt;blockquote&gt;
  &lt;p&gt;09:42 @diveintomark @zedshaw Completely rewrite the first 3
  chapters of a book I haven&#39;t touched in 6 years? Yeah, I&#39;ll get right on that.&lt;/p&gt;

  &lt;p&gt;11:32 @diveintomark @zedshaw you sure do have a lot of opinions. You should start a blog!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is his response to me saying that he should remove ODBC from his
book.  Yes, OH DEE BEE CEE.  He has a goddamned book that purports to
teach people programming that &lt;em&gt;still&lt;/em&gt;, in 2010, references a piece of
crap technology from the 90&#39;s.  Yes, he &lt;em&gt;actually&lt;/em&gt; used that technology
to teach Python in the &lt;em&gt;beginning&lt;/em&gt; of his book six years ago.  Even back
then that was a stupid fucking decision.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Sysadmins considered harmful</title>
            <author>Michael Lambert</author>
            <link>http://oppugn.us/posts/1272126405.html</link>
            <guid>http://oppugn.us/posts/1272126405.html</guid>
            <pubDate>Thu, 22 Apr 2010 13:58:00 -0500</pubDate>
            <description>
                &lt;p&gt;Its worth noting that the Puppet project was founded by a sysadmin and that 
the primary audience for the software has always been other admins, who aren&#39;t 
all as myopic and territorial as the cliche of the BOFH would have us believe. 
I&#39;ve known some devs who could qualify as Unix experts, had read all of the 
relevant RFCs and needed very little help from folks like me. I&#39;ve met many 
more, however, who didn&#39;t have the time or inclination to learn the 
intricacies of configuring Sendmail and would rather have someone else do it. 
Not everyone can be a programming or operations expert and even fewer can do 
both.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Goodbye BOFH, Hello Cloud</title>
            <author>Zed A. Shaw</author>
            <link>http://oppugn.us/posts/1271781380.html</link>
            <guid>http://oppugn.us/posts/1271781380.html</guid>
            <pubDate>Tue, 20 Apr 2010 09:27:13 -0700</pubDate>
            <description>
                &lt;p&gt;However, I absolutely &lt;em&gt;love&lt;/em&gt; the idea of the cloud.  You know why?
Because it means the death of the
&lt;a href=&#34;http://www.theregister.co.uk/odds/bofh/&#34;&gt;Bastard Operator From Hell&lt;/a&gt; once and for all.  The
days of that entrenched system administrator who does nothing more than
hoard knowledge in order to keep his tiny little kingdom of power
managing a few machines in some half-assed manual ssh-poking manner are
over.&lt;/p&gt;

&lt;p&gt;We all know this guy and absolutely hate him.  He actually doesn&#39;t do
shit until his fucking little house of cobbled together perl script
cards collapses.  Then he&#39;s running around in a panic, sshing into boxes
&lt;em&gt;manually&lt;/em&gt;, hacking away at configs &lt;em&gt;guessing&lt;/em&gt; at what might be wrong,
and barely getting things up and running again with no plan for
preventing it in the future.&lt;/p&gt;

&lt;p&gt;Each machine is different from the next.  Nothing is documented.
There&#39;s no password database.  None of the configuration files are under
version control.  Automated deployments?  Hahahahaahahahaha.  Oh he
doesn&#39;t fucking trust &#34;automation&#34;.  Says it causes too many errors
(unlike his fat fingers).&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>My Love/Hate With Music Gear</title>
            <author>Zed A. Shaw</author>
            <link>http://gear.fm/posts/1271530157.html</link>
            <guid>http://gear.fm/posts/1271530157.html</guid>
            <pubDate>Sat, 17 Apr 2010 11:41:40 -0700</pubDate>
            <description>
                &lt;p&gt;For me, I don&#39;t make any money off this, and would rather just write
about things I love to use and the few pieces of tech I think nobody
should buy.  It fits into my general interest in technology and how
people use it to express themselves.&lt;/p&gt;

&lt;p&gt;Another theme of this blog will be expressing my love/hate relationship
with technology.  When it comes to programming as my profession I mostly
love technology and usually only encounter frustration and difficulty
due to other technologists inability to think past their own
experiences.  In fact, I&#39;d say &lt;em&gt;all&lt;/em&gt; of my frustration with technology
is from other people creating junk I&#39;m forced to work with and not with
technology in general.&lt;/p&gt;

&lt;p&gt;When I code, all my frustration is with other people I&#39;m forced to deal
with who could care less about anyone but themselves.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>The Idea Behind My Latest Invention</title>
            <author>Zed A. Shaw</author>
            <link>http://sheddingbikes.com/posts/1271439199.html</link>
            <guid>http://sheddingbikes.com/posts/1271439199.html</guid>
            <pubDate>Fri, 16 Apr 2010 10:23:32 -0700</pubDate>
            <description>
                &lt;p&gt;Once a year I like to change up my blog and online writing style.  I
find that the Internet is impermanent and fluid, but too often people
keep their blogs exactly the same for decades.  I&#39;m not just talking the
design but the writing style, topics, and how it&#39;s themed.  In general I
tend to stick to rants and thoughtful pieces, but lately I&#39;ve been
posting music on &lt;a href=&#34;http://fretwar.com&#34;&gt;Fret War&lt;/a&gt; and wanted to roll that
in.&lt;/p&gt;

&lt;p&gt;Herein lies the problem:  these three types of expression don&#39;t go
together.  The music is mostly guitar music with some oddball theme that
probably only interests musicians, not coders.  Fret War is also a
strange concept of a &#34;guitar competition&#34; so even guitarists might find
it weird.  Posting my music to zedshaw.com wouldn&#39;t fit.&lt;/p&gt;

&lt;p&gt;Then there&#39;s the problem of the rants vs. the essays.  I&#39;m known as the
rant guy, for very good reasons.  But, I also like to write more
thoughtful less ranty pieces that take me much longer to compose.  Those
essays were getting drowned out by the fun of the rants.  The rants are
totally like candy for programmers, but the essays are like their
veggies.  People just don&#39;t like eating candy and veggies at the same
time.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>The LMSD "Soap Opera" And AT&T</title>
            <author>Zed A. Shaw</author>
            <link>http://oppugn.us/posts/1271434788.html</link>
            <guid>http://oppugn.us/posts/1271434788.html</guid>
            <pubDate>Fri, 16 Apr 2010 09:08:11 -0700</pubDate>
            <description>
                &lt;p&gt;Reading the case so far, I&#39;m constantly wondering why the hell nobody is
in prison yet?  Let me put this in perspective by explaining it this
way:&lt;/p&gt;

&lt;p&gt;Imagine that you read a news article where I was caught with the
following:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Chat logs from underage boys and girls on my laptop.&lt;/li&gt;
&lt;li&gt;Photos of underage boys and girls sleeping, eating, who knows what on my laptop.&lt;/li&gt;
&lt;li&gt;Software installed on their laptops without their knowledge or consent.&lt;/li&gt;
&lt;li&gt;A trail of email where I said I loved it and shared them with other freaks.&lt;/li&gt;
&lt;/ol&gt;

            </description>
        </item>
    
        <item>
            <title>Something To Ponder</title>
            <author>Zed A. Shaw</author>
            <link>http://oppugn.us/posts/1271240827.html</link>
            <guid>http://oppugn.us/posts/1271240827.html</guid>
            <pubDate>Wed, 14 Apr 2010 03:19:59 -0700</pubDate>
            <description>
                &lt;p&gt;The idea is simply this statement:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Programming languages are nothing more than a ponzi scheme.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Looking at the history of programming languages over the last 15-20
years we see a succession of languages that become dominant and then get
wiped out by a more popular language.  That&#39;s a given and not
necessarily part of the ponzi scheme I&#39;m talking about, but more just
how technology works.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Hilarious (apologies to Arial Meadow Stallings)</title>
            <author>Zed Shaw</author>
            <link>http://oppugn.us/posts/1271436125.html</link>
            <guid>http://oppugn.us/posts/1271436125.html</guid>
            <pubDate>Tue, 13 Apr 2010 14:09:24 -0700</pubDate>
            <description>
                &lt;blockquote&gt;
  &lt;p&gt;I can&#39;t believe you&#39;re debating if I&#39;m a real person when a web search shows
  I&#39;ve been all over the web for 15 years, have published a book, been on
  national television, etc etc etc x 500 bla bla bla? Hilarious!&lt;/p&gt;

  &lt;p&gt;I left Microsoft last year, which likely explains why Microspotting.com is
  down. It&#39;s all ancient history to me at this point, but I&#39;m *still *not sure
  how a site that said on the homepage that it was run by someone who worked
  for Microsoft could be seen as astroturfing. But whatever: it&#39;s flattering
  that a year later, you&#39;re still freaking out about my work blog.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;Apologies&lt;/h2&gt;

            </description>
        </item>
    
        <item>
            <title>Would the real Ariel (Meadow) Stallings please stand up?</title>
            <author>Richard Lehane</author>
            <link>http://oppugn.us/posts/1271436184.html</link>
            <guid>http://oppugn.us/posts/1271436184.html</guid>
            <pubDate>Tue, 13 Apr 2010 14:28:35 +0200</pubDate>
            <description>
                &lt;p&gt;Love the hate, but in my book good &#39;writing&#39; also includes some basic
research and a little spell check. If you had devoted more than 2
hours to this exercise in MS-bashing you might have discovered that
&#39;microspotting&#39; isn&#39;t some johnny-come-lately, faceless marketing
exercise but a fairly long running (c.2007) blog by Microsoft&#39;s
internal marketing staff. You might have destroyed microspotting.com
but its predecessor lives on at http://microspotting.spaces.live.com.
And the font is spelled &#39;Arial&#39;. &#39;Ariel M Stallings&#39; is indeed flesh
and blood. I know this because my wife obsesses over her other blog,
http://offbeatbride.com. You could have easily discovered this
yourself with a little google, e.g. try her home page
http://arielmeadow.com.&lt;/p&gt;

&lt;p&gt;Is it legitimate for Microsoft to attempt to humanise their image with
genuine posts about staff members? Or must they accept the image &lt;em&gt;you&lt;/em&gt;
have of them as a clunky but hardcore coding shop for big business? I
have no special love for Microsoft but in this case I have a little
sympathy: the reason they have to try sites like microspotting in the
first place is to counteract the paranoid hatred epitomised by your
parody site.&lt;/p&gt;

&lt;p&gt;In order to remain competitive, Microsoft has to recruit beyond the
narrow band of socially isolated geeks keen to work on new programming
languages and build new OSs. They need the odd &#39;Ariel M Stallings&#39; or
two, and maybe even some ruby fanbois. So lets call this for what it
was, not a righteous take-down of a &#39;big mega marketing firm&#39; but an
expression of Zed Shaw&#39;s dislike for the new social media kids on the
block. They might not be able to mind-meld with iPhone OS using their
impressive C, but they can at least write.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>What One Man With $15 And 2 Hours Can Do</title>
            <author>Zed A. Shaw</author>
            <link>http://oppugn.us/posts/1271140244.html</link>
            <guid>http://oppugn.us/posts/1271140244.html</guid>
            <pubDate>Mon, 12 Apr 2010 23:23:28 -0700</pubDate>
            <description>
                &lt;p&gt;&lt;img src=&#34;http://oppugn.us/images/ariel_m_stallings.png&#34; alt=&#34;Oh look, A real person&#34; /&gt;&lt;/p&gt;

&lt;p&gt;The story goes like this.  I was bored one day so I turn on my computer
and go to &lt;a href=&#34;http://news.ycombinator.com&#34;&gt;hacker news&lt;/a&gt; to check out what&#39;s
going on.  Right away I see on the front page some story about some
recruiting site being done by Microsoft called &#34;Microspotting&#34;.&lt;/p&gt;

&lt;p&gt;Now, for years I&#39;ve kind of felt sorry for Microsoft.  They&#39;re perceived
as being bumbling idiots in the tech world but honestly compared to many
of their competitors they probably produce more interesting and better
tech.  For example, what OS has Google created?  From scratch? Multiple
times?  What programming languages has Google created?  What virtual
machine did they create?  How many hardware platforms runs that OS they
actually didn&#39;t make?  How many applications run on that OS they didn&#39;t
make?&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Round 18: Locker Room Bad Breath Funk</title>
            <author></author>
            <link>http://www.fretwar.com/round/18</link>
            <guid>http://www.fretwar.com/round/18</guid>
            <pubDate>2010-04-13 01:36:16.942763</pubDate>
            <description>
                &lt;p&gt;You see in Funk, the guitar is a drum.  It&#39;s just a damn hihat, and is
sooooo boring.  wakka-wakka-wakka-wakka.  It&#39;s like Fozzy Bear.  Sure
it&#39;s fun, and without the guitar funk just seems kinda flat, but I&#39;m
sure there&#39;s a way to make it more interesting.&lt;/p&gt;

&lt;p&gt;This is where you come in, your job is to &#34;funk up&#34; something else.
Using only a guitar and your favorite style, find a way to make it
funky.  Maybe you love blues, so do a funky blues.  Maybe you&#39;re into
jazz so pull out some funky Herbie Hancock minimalism.  Maybe you&#39;ve got
a jones for neo classical metal then find that funk angle.&lt;/p&gt;

&lt;p&gt;Extra points for putting funk where it don&#39;t belong.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>How Apple Really Screwed Up With 3.3.1</title>
            <author>Zed A. Shaw</author>
            <link>http://sheddingbikes.com/posts/1271015736.html</link>
            <guid>http://sheddingbikes.com/posts/1271015736.html</guid>
            <pubDate>Sun, 11 Apr 2010 12:48:45 -0700</pubDate>
            <description>
                &lt;p&gt;First, here&#39;s the section once again so you can review:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;3.3.1  Applications may only use Documented APIs in the manner
  prescribed by Apple and must not use or call any private APIs.
  Applications must be originally written in Objective-C, C, C++, or
  JavaScript as executed by the iPhone OS WebKit engine, and only code
  written in C, C++, and Objective-C may compile and directly link
  against the Documented APIs (e.g., Applications that link to
  Documented APIs through an intermediary translation or compatibility
  layer or tool are prohibited)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;With the key part being that software needs to be &#34;originally&#34; written
in one of the mentioned languages.  It&#39;s this word &#34;originally&#34; that has
caused all the problems, and I guess is actually theoretically
impossible to enforce technically.  I&#39;m actually thinking that Apple
will probably strike this word from the license by the end of the week,
but not for any particular business reason.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Nerd Sniping Is Fun!</title>
            <author>Zed A. Shaw</author>
            <link>http://oppugn.us/posts/1271011451.html</link>
            <guid>http://oppugn.us/posts/1271011451.html</guid>
            <pubDate>Sun, 11 Apr 2010 11:35:30 -0700</pubDate>
            <description>
                &lt;p&gt;As much as programmers &lt;em&gt;love&lt;/em&gt; to think they walk around life like the
perfectly logical Colonel Sanders from the Matrix, they&#39;re really
more like &lt;a href=&#34;http://en.wikipedia.org/wiki/Runaround&#34;&gt;Robot SPD-13&lt;/a&gt;.  Their
insistence that they&#39;re so logical is so far from the truth that they
end up just running around in circles never actually making any complete
cohesive conclusions.&lt;/p&gt;

&lt;p&gt;But, most importantly, this insistence on logical thought makes most
programmers &lt;em&gt;completely&lt;/em&gt; oblivious to the tricks of rhetoric and to any
form of satire or subtext.  To them any factual error, no matter how
funny or hyperbolic, is inexcusable.  Simply toss a few difficult to
prove factual errors inside a rant about Steve Jobs being an evil super
genius with a cat and they will focus on the error like a
&lt;a href=&#34;http://en.wikipedia.org/wiki/VALIS&#34;&gt;pink laser&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;These are the same kind of guys who go see &#34;Hot Tub Time Machine&#34; and
complain that the physics are totally wrong.  &#34;There&#39;s no way that time
machine would work.  The quantum dynamics of the force reduction drive
would fail if it were immersed in water like that! (snort)&#34;  To them,
the ridiculous and idiotic is not funny, it&#39;s simply an annoying fuzz
filter on their incredibly boring, serious, and conservative lives that
they probably absolutely hate.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>I'll Not Rant Here</title>
            <author>Zed A. Shaw</author>
            <link>http://sheddingbikes.com/posts/1270922657.html</link>
            <guid>http://sheddingbikes.com/posts/1270922657.html</guid>
            <pubDate>Sat, 10 Apr 2010 10:57:18 -0700</pubDate>
            <description>
                &lt;p&gt;The rules here are to not have any cursing, and to keep it clean.  This
of course doesn&#39;t mean it&#39;ll all be puppy dogs and rainbows because a
&lt;em&gt;huge&lt;/em&gt; part of programmer culture is disagreeing with the way things
currently are done.  But at sheddingbikes.com this disagreement will be
measured and well thought out, not rants for the sake of poking fun at
people and whipping the internet froth.&lt;/p&gt;

&lt;p&gt;Just like oppugn.us you can post to sheddingbikes.com and if your post
is well written then you&#39;ll be included in the roll.  Your full name
from your email address (the &#34;Joe Frank&#34; part) will be shown unless you
don&#39;t set your name then your email address gets shown.&lt;/p&gt;

&lt;p&gt;You&#39;ll also notice there are no comments on this blog.  If you have
something to say, write it as a post and put some effort into it.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Grow Up</title>
            <author>David Moore</author>
            <link>http://oppugn.us/posts/1271006566.html</link>
            <guid>http://oppugn.us/posts/1271006566.html</guid>
            <pubDate>Sat, 10 Apr 2010 12:07:05 -0500</pubDate>
            <description>
                &lt;p&gt;First its factually inaccurate. I&#39;m running Ubuntu 9.04 and Snow Leopard 
on my Mac. Guess which one is ready to go for Ruby Development? Ubuntu&#39;s 
installation is easy, but its still an installation using aptitude. If 
Jobs hates Ruby so much or other loosely typed languages, why does the 
Snow Leo OS come ready for PHP/MySQL. No configuration on that 
assemblage either.&lt;/p&gt;

&lt;p&gt;My first language was C, second PHP, third Java, and now I&#39;m learning 
Python. This one or the other nonsense is dumb. Different languages 
accomplish different things. If I want to do something fast I&#39;m all for 
PHP. If I want lightening speed C or Python. If I want neat elegant 
cross platform code then Java it is.&lt;/p&gt;

&lt;p&gt;The great advantage to some of these languages like Ruby is that 
different types of people can get into the programming game. Aesthetics 
have a big impact on usability. Usability is what you want for the most 
important person in all programming projects: The end user. So cheer on 
with your elitist bullshit but their are plenty of hard core coders that 
are making some pretty excellent stuff with easy languages. Face it, the 
dominance of socially isolated C programmers is past. People who 
understand users are now in the game and its a good thing.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Re the Ruby Fanbois</title>
            <author>Jeff Dickey</author>
            <link>http://oppugn.us/posts/1270915562.html</link>
            <guid>http://oppugn.us/posts/1270915562.html</guid>
            <pubDate>Sat, 10 Apr 2010 21:34:54 +0800</pubDate>
            <description>
                &lt;p&gt;I agree with 99% of everything you say here. People who think they can
program without understanding (at a fairly fundamental level) How Things
Actually Work Under The Hood are just the kind of people who drive around
mindlessly, without any understanding of mechanics or physics.  (How much
room do you need to brake in before you hit that group of kids crossing the
street? In the rain?)&lt;/p&gt;

&lt;p&gt;Valgrind, in particular, is almost something that should be automatically
invoked by the compiler. Anything more complex than &#34;hello, omniverse&#34; can
break in ways that are hard to find in inverse proportion to your command of
such tools. (BoundsChecker, back in the day, saved my career. At least
twice.)&lt;/p&gt;

&lt;p&gt;However, the swipe at agile development is something I do take strong issue
with. There are good TDD frameworks for C as other languages (I use CuTest
myself http://cutest.sourceforge.net/). Just as no serious project these
days operates without some SCM tool, and every serious programmer knows how
to use a debugger and at least one diagnostic tool (like Valgrind), in the
very near future, every serious developer will at least make sure his code
is fully covered by tests, if not managed under a full
continuous-integration system entirely.  The single biggest improvement in
my productivity in the last 30 years has come about when I know that any
changes I make that break anything are guaranteed to not keep that breakage
hidden. Your mileage may vary, but I seriously doubt by much.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Steve Jobs Says, "Fuck You Ruby Fanbois"</title>
            <author>Zed A. Shaw</author>
            <link>http://oppugn.us/posts/1270855147.html</link>
            <guid>http://oppugn.us/posts/1270855147.html</guid>
            <pubDate>Fri, 9 Apr 2010 16:12:13 -0700</pubDate>
            <description>
                &lt;p&gt;Yes, you have to worry about memory management and buffer overflows, but
if you have valgrind you&#39;re set.  Valgrind is awesome because it detects
most memory errors fairly flawlessly, assuming you&#39;re not an asshole who
codes retarded C tricks.  Valgrind hates tricks.  In a way coding C with
valgrind forces you to do it right.&lt;/p&gt;

&lt;p&gt;And honestly C isn&#39;t that hard, it&#39;s just that people who are used to
shitting out whatever is in their head into a text file have a hard time
with it.  To code in C you have to know what you&#39;re doing and you have
to know how the computer works.  Sure, that&#39;s a pain in the ass, but did
you ever think that &lt;em&gt;maybe&lt;/em&gt; that&#39;s a good thing.&lt;/p&gt;

&lt;p&gt;I firmly believe that learning C as your backup language is a great way
to make you better in every other language you use.  I wouldn&#39;t want to
do a web application in it, but fuck yeah I&#39;d do another web server in
it.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Round 17: Shibumi</title>
            <author></author>
            <link>http://www.fretwar.com/round/17</link>
            <guid>http://www.fretwar.com/round/17</guid>
            <pubDate>2010-04-05 23:30:07.157833</pubDate>
            <description>
                &lt;p&gt;What you&#39;re going for is just a guitar.  That&#39;s it.  No drum tracks, no
effects, just what you can get from a guitar, amp, and your natural room
acoustics.  This will be a good one to practice recording, and also just
simply making a nice song with just the guitar.&lt;/p&gt;

&lt;p&gt;There&#39;s no other restrictions, except it&#39;s just a guitar.  Chord
melodies, a full solo, mixes of chords and solos, whatever works as a
good simple song.&lt;/p&gt;

&lt;h1&gt;Recording Advice&lt;/h1&gt;

            </description>
        </item>
    
        <item>
            <title>On Morality</title>
            <author>Ahsanul Haque</author>
            <link>http://oppugn.us/posts/1270337124.html</link>
            <guid>http://oppugn.us/posts/1270337124.html</guid>
            <pubDate>Fri, 02 Apr 2010 22:30:32 +0700</pubDate>
            <description>
                &lt;p&gt;One could argue that a moral framework is an absolute necessity for a
functioning human society, but don&#39;t let that though fool you for a
second. Moral rights and wrongs don&#39;t only differ from society to
society, but they change over time. The most important aspect however,
is how morality changes with power. &lt;/p&gt;

&lt;p&gt;To elaborate on this relationship, we need to see what motivates and
influences human actions. One factor that influences actions is how
favorable the consequences of that action turn out to be. Are they
optimal? Are they optimal only to the human entity causing the action?
Are they optimal to entities directly or indirectly related to the human
entity causing that action? So we see that some people think only of
themselves, and some people think about people surrounding them, the
environment and so on. Between these extremes lay people with mixed
emotions. &lt;/p&gt;

&lt;p&gt;A second factor that&#39;s more important, is whether that human entity
making a decision favors order versus chaos. Someone who decides to do
the right thing, isn&#39;t doing it simply because it is right, but because
they believe that by producing more order, they are decreasing the
consumption of chaos; in other words, they prefer order because it
assures them order. A person who refrains from threatening random people
with a knife does so because it reduces the probability that someone
else will do the same to them. In an economic sense, you can think of
these people as risk-adverse. Similarly, there are people who tend
towards chaos. The magic of the unknown thrills them. Not knowing the
outcome of their actions influence their decisions. Like a risk-loving
person playing a gamble, chaos influences the actions of a chaos-loving
person.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Writing Is More Powerful Than Your Tech Dumbshit</title>
            <author>Zed A. Shaw</author>
            <link>http://oppugn.us/posts/1270220085.html</link>
            <guid>http://oppugn.us/posts/1270220085.html</guid>
            <pubDate>Fri, 2 Apr 2010 07:47:23 -0700</pubDate>
            <description>
                &lt;p&gt;You see, a problem most nerds have is that they think words are useless.
It&#39;s actions that matter.  Don&#39;t just complain about something, go out
and &lt;em&gt;fix it&lt;/em&gt;.  Complaining does nothing.  Writing, words, humor, are all
pointless because society means nothing and social norms are nothing but
a stupid obstacle to truly &lt;em&gt;getting shit done!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Then, why the fuck are you ranting about it?  Could it be, and bear with
me here, that words actually are pretty damn important?  Words have
built societies, destroyed societies, founded countries, built nuclear
weapons of chaos, inspired space travel, assassinated heads of state,
and got lovers to make babies.  Words are powerful, and when well
written and transmitted through some form of communication technology,
can have massive impact.&lt;/p&gt;

&lt;p&gt;In fact, the US was founded by a damn rant.  A bunch of pissed off white
dudes who wanted their tea without taxes got riled up and said &#34;FUCK YOU
BITCH!&#34;  That rant convinced citizens to fight a war against an
incredibly well trained military force and &lt;em&gt;win&lt;/em&gt;.  An entire very
successful country was established and proved that a government run by
the citizens could work.  Most people don&#39;t get this, but at the time
nobody in the world except Voltaire actually thought that peasants could
run jack shit.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Quit your bitching</title>
            <author>Benjamin Kudria</author>
            <link>http://oppugn.us/posts/1270214847.html</link>
            <guid>http://oppugn.us/posts/1270214847.html</guid>
            <pubDate>Fri, 2 Apr 2010 00:24:27 -0700</pubDate>
            <description>
                &lt;p&gt;The instant you point out that you&#39;re aware of the problem, but
unwilling to fix it, I file you in my personal mental &#34;giant fucking
dumbass&#34; bin. If you&#39;ve just spent half a page describing something
that gets your panties in a bunch, and then throw up your metaphorical
hands and say &#34;nothing is going to change, woe is me!&#34; then you&#39;re a
fucking useless drain on humanity productivity, and you deserve all
the misery you endure.&lt;/p&gt;

&lt;p&gt;Here&#39;s a hint - if you&#39;ve got an issue with something, think about how
to fix it. I mean, come on, this is third-grade stuff. Examine your
assumptions of how things should be and see where you&#39;ve gone wrong.
If there is a legitimate problem, and you&#39;re not just making shit up,
consider putting a modicum of fucking thought into changing
circumstances so your little world is a little fucking brighter.&lt;/p&gt;

&lt;p&gt;Until you&#39;re willing to act instead of just bitching, save us all some
attention and just shut the fuck up and stew on it some more.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Get Your Fucking Feet Off The Table</title>
            <author>Zed A. Shaw</author>
            <link>http://oppugn.us/posts/1270132724.html</link>
            <guid>http://oppugn.us/posts/1270132724.html</guid>
            <pubDate>Thu, 1 Apr 2010 07:30:36 -0700</pubDate>
            <description>
                &lt;p&gt;It&#39;s a common theme around SF.  You&#39;ll dodge a monstrous brown baby on
the ground and think, &#34;How the hell did some homeless dude pound out a
steamer right in the middle of the sidewalk before I even got up for
work?&#34;  It&#39;s amazing the amount of literal crap you have to watch out
for in San Francisco.  But, it&#39;s also fairly believable considering the
high number of meth-head freaks walking around at any hour of the day
and night.&lt;/p&gt;

&lt;p&gt;It&#39;s pretty nasty, but it stays on the ground and maybe the bottom of my
shoes.  I take my shoes off when I go in my house, so everything&#39;s
alright by me.  Dodge some turds, make sure I don&#39;t walk around on my
carpet with my shoes, and I&#39;m safe.&lt;/p&gt;

&lt;p&gt;That is, until I go to work and have to tolerate dudes
&lt;em&gt;putting their feet on every piece of furniture in the office&lt;/em&gt;.  I&#39;m not
kidding either.  It&#39;s like some of these guys just had hip surgery and
need to keep everything below their belly button elevated or they&#39;ll
have a prolapsed anus.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Shed 9: A Fun Ear Training Exercise</title>
            <author></author>
            <link>http://www.fretwar.com/static/data/shed/2010/04/01/024142</link>
            <guid>http://www.fretwar.com/static/data/shed/2010/04/01/024142</guid>
            <pubDate>2010-04-01 02:41:42.143126</pubDate>
            <description>
                &lt;p&gt;First off, what this one exercise does is train several musical things
at once:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Singing a particular note within key.&lt;/li&gt;
&lt;li&gt;Hearing that note, in they key and playing it on the guitar.&lt;/li&gt;
&lt;li&gt;Being in key on the guitar.&lt;/li&gt;
&lt;li&gt;Playing a scale and hearing all the roots your playing.&lt;/li&gt;
&lt;li&gt;Learning the cycle of 4ths and hearing changes that way.&lt;/li&gt;
&lt;li&gt;Finally, being able to do all of this without looking at your guitar.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It sounds like quite a lot, but it&#39;s a fairly simple exercise that&#39;s
just pretty hard to do at first, but then you get good at it later.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>The First Rant</title>
            <author>Zed A. Shaw</author>
            <link>http://oppugn.us/posts/1270018322.html</link>
            <guid>http://oppugn.us/posts/1270018322.html</guid>
            <pubDate>Tue, 30 Mar 2010 23:14:01 -0700</pubDate>
            <description>
                &lt;p&gt;The rants can be on just about anything, and could be responses to my
own, but there&#39;s one simple rule:&lt;/p&gt;

&lt;p&gt;NO THREATS OF VIOLENCE TO HUMANS.&lt;/p&gt;

&lt;p&gt;Of course they also need to be well written, funny, clever, and just
generally good, but the only thing I&#39;ll restrict is threatening to hurt
humans.  Seems you can say mostly anything you want as long as you don&#39;t
do that.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Round 16: Two Keys And A Bit Of Odd Meter</title>
            <author></author>
            <link>http://www.fretwar.com/round/16</link>
            <guid>http://www.fretwar.com/round/16</guid>
            <pubDate>2010-03-29 19:07:52.640019</pubDate>
            <description>
                &lt;p&gt;What you&#39;ll be doing is using chords to link two keys together so that
you play Ionian in one key, and then Lydian in the next key.  I&#39;ll
suggest a few example chord changes, a song structure, and then also
talk about odd meters for the optional challenge.&lt;/p&gt;

&lt;h1&gt;The Challenge&lt;/h1&gt;

&lt;p&gt;Ionian and Lydian are very close modes, with only one note different
(the sharp 4).  This means you can&#39;t really just combine the two modes,
since nobody could really hear the difference.  Instead, you have to
change keys in the song, purposefully going from Ionian in one key to
Lydian in another.  There&#39;s a few ways you can do this, which I&#39;ll get
into in the lesson section.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Shed 8: Memorizing Triads And Fourths</title>
            <author></author>
            <link>http://www.fretwar.com/static/data/shed/2010/03/25/201923</link>
            <guid>http://www.fretwar.com/static/data/shed/2010/03/25/201923</guid>
            <pubDate>2010-03-25 20:19:23.943606</pubDate>
            <description>
                &lt;p&gt;The way I&#39;m going to show you how to memorize this is a little
different from how most musicians are taught.  That&#39;s because I&#39;m a
programmer, so I try to find easier ways to memorize the few things I
need to know.  Rather than memorize a ton of useless information, I look
for a few patterns that and mnemonics that help you memorize the
information and use it.&lt;/p&gt;

&lt;h1&gt;Cycle Of Fourths&lt;/h1&gt;

&lt;p&gt;First, let&#39;s do the cycle of fourths since that&#39;s the easiest.  What&#39;s
meant by the &#34;cycle of fourths&#34; is you pick a root note C, that&#39;s the
key you&#39;re in.  Then you pick the 4th note in that scale, and move to
the next key F.  From F you pick the 4th note and move to that key and
you&#39;re in Bb.  For example, if you were to have this chord progression:&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Round 15: Lydian Mode For Greater Good</title>
            <author></author>
            <link>http://www.fretwar.com/round/15</link>
            <guid>http://www.fretwar.com/round/15</guid>
            <pubDate>2010-03-22 15:30:51.888905</pubDate>
            <description>
                &lt;p&gt;Included in this round is a copy of the
&lt;a href=&#34;/static/data/round/2010/03/22/153051/media/US_Navy_Basic_Music.pdf&#34;&gt;US Navy Basic Music Manual&lt;/a&gt; 
which is an excellent free manual that covers a wide range of
practical music theory.  I&#39;ll be using their way of describing 
scales and modes since it&#39;s simple to understand, but if you 
have your own way then go for it.&lt;/p&gt;

&lt;h1&gt;The Challenge&lt;/h1&gt;

&lt;p&gt;For this round we are looking to get you into using the Lydian mode
where you&#39;d normally use the Ionian mode.  Your challenge is to craft
another simple 3 or 4 chord progression that lets you play the Lydian
mode and either emphasize the sharp 4 note (F# in a C Lydian mode) or
simply craft a regular major mode progression and play Lydian on it
anyway.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Round 14: In Ionian And Three Chords</title>
            <author></author>
            <link>http://www.fretwar.com/round/14</link>
            <guid>http://www.fretwar.com/round/14</guid>
            <pubDate>2010-03-16 14:39:47.407702</pubDate>
            <description>
                &lt;h1&gt;The Challenge&lt;/h1&gt;

&lt;p&gt;Take the Ionian mode (the major scale) and any three chords from a chosen
key and craft your song around this setup.  Obviously don&#39;t play the
scale in order like when you practice.  Instead base your melody and
soloing on the major scale over the chords you&#39;ve chosen.&lt;/p&gt;

&lt;p&gt;For extra points, try to do it in one of the following styles:&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Round 13: It's Rock, Not Metal</title>
            <author></author>
            <link>http://www.fretwar.com/round/13</link>
            <guid>http://www.fretwar.com/round/13</guid>
            <pubDate>2010-03-09 18:48:20.598513</pubDate>
            <description>
                &lt;p&gt;Now, I know some of you are going to go crazy and bust out your
screaming distorting and your best Randy Rhodes tapping solo goodness,
but I said &lt;em&gt;Rock&lt;/em&gt;, not Metal.&lt;/p&gt;

&lt;p&gt;We&#39;re talking AC/DC, Chuck Berry, Rolling Stones, Black Crowes, Cream.
The classics that focus on a few chords played against a driving beat
with that darker smoother distortion.  The kind of music that destroyed
the world in the &#39;60s.&lt;/p&gt;

&lt;p&gt;And we&#39;ll do this one in G.  Seems to be lots of great songs are in G.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Round 12: Let's Get The Show Back On In Style</title>
            <author></author>
            <link>http://www.fretwar.com/round/12</link>
            <guid>http://www.fretwar.com/round/12</guid>
            <pubDate>2010-03-01 08:53:20.075114</pubDate>
            <description>
                &lt;p&gt;What kind of guitar is it you ask?  It is a G&amp;L; ASAT Classic S.  Not
many of them made.  It sounds exactly the way I want it to sound.  It&#39;s
first guitar that doesn&#39;t make my hands feel like raw meat after hours
of playing.  I now play just this guitar, all day, all night.  It is
lovely.&lt;/p&gt;

&lt;p&gt;However, Fret War must go on, and it must come back in style.  The Caleb
experiment, while fun for a few, seems to have driven off some folks.
What we need is something simple.  Something fun.  What we need my
friends is:&lt;/p&gt;

&lt;h2&gt;An A Major Blues&lt;/h2&gt;

            </description>
        </item>
    
        <item>
            <title>Shed 7: Chromatic Exercise</title>
            <author></author>
            <link>http://www.fretwar.com/static/data/shed/2010/02/04/001559</link>
            <guid>http://www.fretwar.com/static/data/shed/2010/02/04/001559</guid>
            <pubDate>2010-02-04 00:15:59.052513</pubDate>
            <description>
                &lt;p&gt;Make sure to take the progression as high up the fretboard as you can
and also closer to the neck, to ensure your accuracy and speed are
consistent. Start the metronome at 80 BPM and play a couple of times
until you get used to it. Then increase the metronome speed by 10 BPM
and play again. Repeat the process until you can play accurately at
around 200 BPM, but make sure you don&#39;t rush it. &lt;/p&gt;

&lt;p&gt;Also, these type of chromatic runs tend to put a lot of pressure on your
fretting fingers. Make sure to warm up before starting the exercise. If
you reach a certain BPM that is too fast for you, stop and go back to a
slower BPM. Don&#39;t increase speed until you&#39;re 100% superawesome at your
current speed.&lt;/p&gt;

&lt;p&gt;Also, these are the kind of licks that easy to learn, hard to play very
accurately, but great to impress a crowd with. :)&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Shed 6: Motivational post where I play Mr.Expert</title>
            <author></author>
            <link>http://www.fretwar.com/static/data/shed/2010/02/03/225433</link>
            <guid>http://www.fretwar.com/static/data/shed/2010/02/03/225433</guid>
            <pubDate>2010-02-03 22:54:33.538586</pubDate>
            <description>
                &lt;p&gt;How one deals with thoughts of discouragement, demotivation and giving
up, is what separates a strong musician from a weak one. There are
literally a billion reasons one could come up with for lacking
motivation. Life, economic realities, bad breakups, disabilities,
addiction and so on. But in my opinion, as long as you&#39;re still in good
health, all those billion reasons have more than a billion solutions.&lt;/p&gt;

&lt;p&gt;Just like hacking code, every solution in real life has multiple
solutions. Sure, every solution may not be efficient, but the efficiency
of solutions comes from experience. The important thing to realize is
that if you have a problem, you can fix it. Have a lot going on in life?
Cut down on the number of hours you play, but don&#39;t give up. Bad
breakup? Stop moping around and starting rocking out. Can&#39;t afford
better equipment? Take up a second job. Only you can fix your problems.
And if you quit before even looking for solutions, then the only reason
you&#39;re giving up music is you.&lt;/p&gt;

&lt;p&gt;Personal problems aside, a major factor that might influence in giving
up is lack of recognition. Sure, you can play music for playing music,
because it makes you happy. But let&#39;s face it, musicians want
appreciation and people want great music. It&#39;s a two-way relationship.
If this was the 60s and you gave up solely because you weren&#39;t popular
enough, then I might cut you a little slack. But in this day and age,
that is merely an excuse musicians use to cover up for their lack of
ability. Nobody knows your band? Well, buy some cheap shared hosting and
a domain and put together a little page for your fans. Register a
goddamn MySpace page if you can&#39;t afford hosting. Make a Facebook page.
Add a hundred million people as friends and make them listen to your
music. &lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Round 11: Caleb Vs. The Wizard Zed: Guitar Duel Choose Your Own Adventure</title>
            <author></author>
            <link>http://www.fretwar.com/round/11</link>
            <guid>http://www.fretwar.com/round/11</guid>
            <pubDate>2010-02-02 16:13:19.884615</pubDate>
            <description>
                &lt;p&gt;What we want to do is make a &#34;perpetual guitar duel&#34;. The theme will be
Caleb battling the Wizard Zed in a blues style. Imagine Caleb has
entered the Wizard&#39;s chambers and killed nearly everyone in his path.
Now him and Zed fight to the death.&lt;/p&gt;

&lt;p&gt;What we&#39;re shooting for here is a good consistent set of &#34;clips&#34; taken
from a guitar duel you create. I&#39;ll then piece them all together after
the round and do one really long guitar duel.&lt;/p&gt;

&lt;p&gt;To make it work we need to do a bit more editing on the submission than
before. Here&#39;s how you&#39;ll do it:&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Round 10: Gimme Some Soft Soul</title>
            <author></author>
            <link>http://www.fretwar.com/round/10</link>
            <guid>http://www.fretwar.com/round/10</guid>
            <pubDate>2010-01-25 10:25:20.271993</pubDate>
            <description>
                &lt;p&gt;One thing we haven&#39;t done is Soul.  Stax Records. Otis Redding.  Isaac
Hayes.  We can even throw in some Motown with Marvin Gaye, James
Jamerson.  You could even pick up some newer Soul/Pop like Joss Stone,
or Corinne Bailey Rae. &lt;/p&gt;

&lt;p&gt;The challenge in this round will be doing an original song in the soul
style, but working out the melody with a guitar.  No singing.  Sing with
your guitar.&lt;/p&gt;

&lt;p&gt;Here&#39;s the parameters for this round:&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Round 9: The Epic Battles Of Caleb: Ch 4,5,6</title>
            <author></author>
            <link>http://www.fretwar.com/round/9</link>
            <guid>http://www.fretwar.com/round/9</guid>
            <pubDate>2010-01-19 08:34:13.219253</pubDate>
            <description>
                &lt;p&gt;&lt;em&gt;NOTE:&lt;/em&gt; I&#39;m going to implement multiple submissions better so that each
submission is its own thing, similar to forum posts.  Wait for that
before you submit to this Round.&lt;/p&gt;

&lt;h1&gt;Chapter 4: The Wizard Zed&lt;/h1&gt;

&lt;p&gt;The evil wizard Zed appears one day in the Royal court to steal princess
Telem. Zed made a deal with King Theo that he failed to honor and Zed
wants his payment back. The deal was King Theo&#39;s enemies would fall if
Zed was given Telem as his own. King Theo refused so Zed decides to take
her.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Round 8: The Epic Battles Of Caleb: Ch. 3-5</title>
            <author></author>
            <link>http://www.fretwar.com/round/8</link>
            <guid>http://www.fretwar.com/round/8</guid>
            <pubDate>2010-01-14 03:19:37.636974</pubDate>
            <description>
                &lt;h1&gt;Chapter 3: The King&#39;s Death Dealer In Love&lt;/h1&gt;

&lt;p&gt;He returns to the kingdom a decorated hero but he can&#39;t wash the stench
of blood from his fists. His powerful body is even more contorted, as he
discovered in his battles that it hardens further the more he fights.&lt;/p&gt;

&lt;p&gt;His return home is more of a retirement than anything.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Round 7: The Epic Battles Of A Killer Named Caleb</title>
            <author></author>
            <link>http://www.fretwar.com/round/7</link>
            <guid>http://www.fretwar.com/round/7</guid>
            <pubDate>2009-12-31 09:15:50.118356</pubDate>
            <description>
                &lt;p&gt;Here&#39;s chapters 1-4 of the story, with an explanation of how this round
will work after.&lt;/p&gt;

&lt;h1&gt;Chapter 1: A Train Station Coin Locker&lt;/h1&gt;

&lt;p&gt;Our hero is born into the land an ugly mutant and abandoned at a train
station by his desperate parents, stuffed into a coin locker.  A nun
finds him, and takes him to be raised at an orphanage.  He is given the
name Caleb.  He grows up an orphan, ugly, and not very smart, but he has
a terrible gift the nuns try to hide from him.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Show 10: Site Updates</title>
            <author></author>
            <link>http://www.fretwar.com/static/data/show/2009/12/27/002954</link>
            <guid>http://www.fretwar.com/static/data/show/2009/12/27/002954</guid>
            <pubDate>2009-12-27 00:29:54.889463</pubDate>
            <description>
                &lt;ul&gt;
&lt;li&gt;You can now go to &lt;a href=&#34;/gear&#34;&gt;gear&lt;/a&gt; and see a display of the pictures
people have posted of their gear.  &lt;/li&gt;
&lt;li&gt;Player&#39;s gear is now shown on their player page so you can see what
they use when they play Fret War.&lt;/li&gt;
&lt;li&gt;You can now comment on &lt;a href=&#34;/round/latest&#34;&gt;rounds&lt;/a&gt; just like you can on submissions.&lt;/li&gt;
&lt;li&gt;You can also comment on &lt;a href=&#34;/shed&#34;&gt;shed&lt;/a&gt; and &lt;a href=&#34;/show&#34;&gt;show&lt;/a&gt; posts too.&lt;/li&gt;
&lt;li&gt;All your posts are formatted now with some simple formatting.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Try out the comments for shows on this one and shoot me any suggestions
you have about the new changes.  Next up is a better Winnnars display
and index page.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Round 6: The Locusts of Locrian</title>
            <author></author>
            <link>http://www.fretwar.com/round/6</link>
            <guid>http://www.fretwar.com/round/6</guid>
            <pubDate>2009-12-21 09:12:29.923104</pubDate>
            <description>
                &lt;p&gt;In Round 6 we&#39;ll explore Locrian.  Your task is to come up with
something that uses the Locrian mode, and if you can maybe even the
Super Locrian (or Altered Scale).  The goal is to stretch your musical
tastes to something you may not really know how to use.  To find a use
for this odd dangling thumb of a mode.&lt;/p&gt;

&lt;p&gt;To get you started, here&#39;s some basic information about the Locrian and
Super Locrian scales.&lt;/p&gt;

&lt;h1&gt;Locrian&lt;/h1&gt;

            </description>
        </item>
    
        <item>
            <title>A Few Updates To Librelist</title>
            <author></author>
            <link>http://librelist.com/blog/2009-12-12.html</link>
            <guid>http://librelist.com/blog/2009-12-12.html</guid>
            <pubDate>Sun, 13 Dec 2009 00:11:55 GMT</pubDate>
            <description>
                &lt;p&gt; &lt;p&gt;I&amp;#8217;ve started working the &lt;a href=&#34;http://support.librelist.com/rptview?rn=2&#34;&gt;ticket queue&lt;/a&gt; and managed to get out a few
little annoying things that people wanted or that were missing.  I&amp;#8217;m still going to be doing
deploys today in my attempt to get things cleaned up further, but so far I&amp;#8217;ve done the following:&lt;/p&gt;

&lt;p&gt;&lt;pre class=&#34;code&#34;&gt;
=== 2009-12-13 ===
01:47:47 [3356e9d42c] &lt;em&gt;CURRENT&lt;/em&gt; Stop altering the email addresses in the
         archives. (user: zedshaw tags: trunk)
01:40:30 [d7211e427a] The mailing list name is now added to the subject if not
         there already. (user: zedshaw tags: trunk)
01:29:33 [39d5ddc37b] New site layout done and pushed. (user: zedshaw tags:
         trunk)
=== 2009-12-12 ===
23:36:37 [cc081005a1] Added the librelist website code. (user: zedshaw tags:
         trunk)
=== 2009-12-01 ===
04:34:15 [0b6a443b36] Initial commit after moving from lamson project. (user:
         zedshaw tags: trunk)
04:32:14 [37f03800c8] initial empty check-in (user: zedshaw tags: trunk)
&lt;/pre&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;http://librelist.com/blog/2009-12-12.html&#34;&gt;Read more...&lt;/a&gt;&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Librelist Is Now Fully Functional</title>
            <author></author>
            <link>http://librelist.com/blog/2009-07-19.html</link>
            <guid>http://librelist.com/blog/2009-07-19.html</guid>
            <pubDate>Sat, 12 Dec 2009 17:05:26 GMT</pubDate>
            <description>
                &lt;p&gt; &lt;p&gt;Alright, I managed to get all of the basic features going for librelist.com
early.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;ul&amp;gt;
    &amp;lt;li&amp;gt;Bounce detection is working great, but still needs more real world beatings.&amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;When you subscribe, if the list doesn&amp;amp;#8217;t exist, it sends you some possible similar existing ones, just in case you spelled it wrong.&amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;There&amp;amp;#8217;s now web archives (very basic) at &amp;lt;a href=&#34;http://librelist.com/browser/&#34;&amp;gt;/browser/&amp;lt;/a&amp;gt; that you can browse.&amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;You can get the archives via rsync too, but don&amp;amp;#8217;t be a jerkwad about this.  Find a path you want and then do &amp;lt;code&amp;gt;rsync -azv librelist.com::archives/PATH&amp;lt;/code&amp;gt; and you&amp;amp;#8217;ll get a maildir.&amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;Emails in the archive are stripped of most useless headers and the sender&amp;amp;#8217;s name is cleaned up a bit.  It&amp;amp;#8217;s not fool-proof, but then again you are sending your address on the internets to a public list, so I hope you are wearing protection.&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;&amp;lt;/p&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href=&#34;http://librelist.com/blog/2009-07-19.html&#34;&gt;Read more...&lt;/a&gt;&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Site Launched</title>
            <author></author>
            <link>http://librelist.com/blog/2009-07-17.html</link>
            <guid>http://librelist.com/blog/2009-07-17.html</guid>
            <pubDate>Sat, 12 Dec 2009 17:02:13 GMT</pubDate>
            <description>
                &lt;p&gt; &lt;p&gt;&lt;a href=&#34;http://librelist.com/&#34;&gt;Librelist.com&lt;/a&gt; is the third &lt;a href=&#34;http://lamsonproject.org/&#34;&gt;Lamson
Project&lt;/a&gt; sample created to show off what
Lamson can do.  It is a fully functioning mailing list system with
advanced spam blocking and bounce handling.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;p&amp;gt;If you want to play with it, send an email to
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href=&#34;mailto:test.list@librelist.com&#34;&gt;test.list@librelist.com&lt;/a&gt; and you&amp;#8217;ll be
able to test it out with a bunch of other folks.&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;http://librelist.com/blog/2009-07-17.html&#34;&gt;Read more...&lt;/a&gt;&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Round 5: Going Country(ish)</title>
            <author></author>
            <link>http://www.fretwar.com/round/5</link>
            <guid>http://www.fretwar.com/round/5</guid>
            <pubDate>2009-12-08 17:47:50.424662</pubDate>
            <description>
                &lt;p&gt;For Round 5, you have to submit something from the south of the US.
That could be Country, New Country, Blues, Bluegrass, Southern Rock,
Rockabilly, anything from south of the Mason-Dixon line at 39o 43&#39;
19.92216&#34; N.&lt;/p&gt;

&lt;p&gt;Hell, if you stretch this you could do Psychobilly.  You could do Salsa!
You could do Tejano!  Blues Rock!  Blues-grass-rock-psychobilly!&lt;/p&gt;

&lt;p&gt;The goal in this round is to get as close to the genre you&#39;ve chosen as
possible without violating copyright.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Show 9: Fixes Today: Replies And Password Reset</title>
            <author></author>
            <link>http://www.fretwar.com/static/data/show/2009/12/07/032700</link>
            <guid>http://www.fretwar.com/static/data/show/2009/12/07/032700</guid>
            <pubDate>2009-12-07 03:27:00.797090</pubDate>
            <description>
                &lt;p&gt;In the process I fixed a whole bunch of other bugs, but the two most
important features are password reset and replies to comments.&lt;/p&gt;

&lt;p&gt;Password reset is described &lt;a href=&#34;http://fretwar.com/c/player_forgot.html&#34;&gt;here&lt;/a&gt;
and accessible from the login forms.&lt;/p&gt;

&lt;p&gt;Replies are simple, there&#39;s a reply link on each comment and you write
what you wanna say.  Eventually we&#39;ll enable the &#34;douche flag&#34;.  Here&#39;s
a screenshot:&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Shed 5: Learning Those Weird Round 4 Chords</title>
            <author></author>
            <link>http://www.fretwar.com/static/data/shed/2009/11/30/173300</link>
            <guid>http://www.fretwar.com/static/data/shed/2009/11/30/173300</guid>
            <pubDate>2009-11-30 17:33:04.699397</pubDate>
            <description>
                &lt;p&gt;Learning to play complicated chords requires taking two chords you are having trouble with, and
playing them one after another up and down the neck of the guitar.  Imagine we have these two
pairs of chords:&lt;/p&gt;

&lt;pre&gt;
|: Gmaj7 Gmaj6 | Am7 Am6 :|
&lt;/pre&gt;

&lt;p&gt;And we&#39;re going to play the following forms of these four chords:&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Round 4: Four A Blues For You</title>
            <author></author>
            <link>http://www.fretwar.com/round/4</link>
            <guid>http://www.fretwar.com/round/4</guid>
            <pubDate>2009-11-30 08:18:12.707873</pubDate>
            <description>
                &lt;ul&gt;
&lt;li&gt;At least three or four weird chords.&lt;/li&gt;
&lt;li&gt;How to replace common chords with more complex ones.&lt;/li&gt;
&lt;li&gt;Ways to alter a basic blues into more involved structures.&lt;/li&gt;
&lt;li&gt;Some Jazz chord theory.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;However, we don&#39;t want to blast your brain quite yet.  First you need to
get started with just &#34;a blues&#34;.  Four of them actually.&lt;/p&gt;

&lt;h1&gt;Beginner To Advanced&lt;/h1&gt;

            </description>
        </item>
    
        <item>
            <title>Show 8: Fret War Back Online, Test Please</title>
            <author></author>
            <link>http://www.fretwar.com/static/data/show/2009/11/28/200502</link>
            <guid>http://www.fretwar.com/static/data/show/2009/11/28/200502</guid>
            <pubDate>2009-11-28 20:05:02.488108</pubDate>
            <description>
                &lt;p&gt;There are possible problems with the winnars, and with submissions, so
if you haven&#39;t done a submission and it fails, then please let us know.&lt;/p&gt;

&lt;p&gt;Also, if you have confirmation/signup problems then we need to know
that.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Show 7: Round 3 and Fret Show on Holiday Schedule</title>
            <author></author>
            <link>http://www.fretwar.com/static/data/show/2009/11/24/181211</link>
            <guid>http://www.fretwar.com/static/data/show/2009/11/24/181211</guid>
            <pubDate>2009-11-24 18:12:14</pubDate>
            <description>
                &lt;p&gt;Therefore, let&#39;s say Round 3 is a &#34;holiday scheduled&#34; round, where it
lasts two weeks, and we&#39;ll pick things up like normal on Sunday Nov
29th at Midnight.&lt;/p&gt;

&lt;p&gt;At that time all the regular rules apply, get your submission in, rate
them all, then I do the show.&lt;/p&gt;

&lt;p&gt;At the suggestion of Chad, I&#39;m going to give everyone time to rate the
submissions before doing the show and then the round.&lt;/p&gt;

            </description>
        </item>
    
        <item>
            <title>Show 6: Big Site Updates Based On Player Feedback</title>
            <author></author>
            <link>http://www.fretwar.com/static/data/show/2009/11/22/185920</link>
            <guid>http://www.fretwar.com/static/data/show/2009/11/22/185920</guid>
            <pubDate>2009-11-22 18:59:20</pubDate>
            <description>
                &lt;p&gt;Just a quick announce telling everyone about the major site updates I
did for round 3.  I&#39;ve been sick this last week, which is why you
haven&#39;t heard much from me.  I managed to get better in time to run
Round 3 and implement suggested changes from everyone:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Flowplayer is now all over the place so you can play round and submissions easily.&lt;/li&gt;
&lt;li&gt;Everything is now singular pages, no more fake tabs going on.&lt;/li&gt;
&lt;li&gt;Rounds have a player that plays all the submissions so far along with the submitter&#39;s picture while it&#39;s playing.&lt;/li&gt;
&lt;li&gt;Winnars page has a month&#39;s worth of past rounds, with links to the
rounds and links to start rating rounds, and links to each submission.&lt;/li&gt;
&lt;li&gt;Way better &#34;blind taste-test&#34; rating workflow.  From the round, just click &#34;Start listening to and rating submissions&#34; under the player and you&#39;ll be able to walk through all of the ones you haven&#39;t heard yet, rate them very fast, view comments after you rate them, and move on to the next one.&lt;/li&gt;
&lt;li&gt;Submission pages have flowplayer to play the submission, are more compact, and show either a login, a short rating/comment form, or the comments so far in a compact way.&lt;/li&gt;
&lt;li&gt;You can easily view past submissions you&#39;re interested in by just hitting the /winnars and clicking on their titles.&lt;/li&gt;
&lt;li&gt;If you just want to hear the round &#34;album style&#34; then use the player on the round.  Try it with round 2.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Alright, now I&#39;m gonna write some shed posts on doing a good recording,
funk, and using fretwar.  Let me know if you hit bugs in the above
changes.&lt;/p&gt;

            </description>
        </item>
    

    </channel>
</rss>