<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7602886877359920483</id><updated>2012-02-03T00:10:24.709-08:00</updated><category term='ruby'/><category term='?'/><category term='monkeys'/><category term='bitscribe'/><category term='design patterns'/><category term='javascript'/><category term='ai'/><category term='movies'/><category term='blizzards'/><category term='perl'/><category term='joshua bloch'/><category term='legos'/><category term='irb'/><category term='os x'/><category term='scaling'/><category term='merb'/><category term='y combinator'/><category term='quicksilver'/><category term='quantum'/><category term='exploding pigs'/><category term='software development'/><category term='mark-jason dominus'/><category term='elves'/><category term='iphone'/><category term='affiliate'/><category term='screencasts'/><category term='burning man'/><category term='enterprise'/><category term='james gray'/><category term='rails'/><category term='haskell'/><category term='ruby-talk in the house y0'/><category term='mooooooooooooo'/><category term='hahaha'/><category term='seaside'/><category term='xp'/><category term='usability'/><category term='dj'/><category term='greatness'/><category term='zed shaw'/><category term='social engineering'/><category term='shell scripting'/><category term='java'/><category term='refactoring'/><category term='spiderman'/><category term='ajax'/><category term='politics'/><category term='smalltalk'/><category term='sci-fi'/><category term='music'/><category term='robots'/><category term='lisp'/><category term='textmate'/><category term='bayesian classifiers'/><category term='shoe'/><category term='lambda'/><category term='api design'/><category term='acts_as_ferret'/><category term='los angeles'/><category term='microsoft == cobol'/><category term='mvc'/><category term='paul graham'/><category term='ui'/><category term='rspec'/><category term='auto_complete_for'/><category term='languages'/><category term='marketing'/><category term='design'/><category term='mp3'/><category term='balls'/><category term='fizzbuzz'/><category term='procs'/><category term='glenn vanderburg'/><category term='clay shirky'/><category term='google'/><title type='text'>Giles Bowkett</title><subtitle type='html'>ninja power number cruncher</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://gilesbowkett.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default?start-index=101&amp;max-results=100'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>1971</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-6096965641749692314</id><published>2012-02-02T14:42:00.000-08:00</published><updated>2012-02-02T14:42:34.950-08:00</updated><title type='text'>New Videos Brewing</title><content type='html'>&lt;img src="http://s3.amazonaws.com/giles/teaser_pix_020212/code.jpg"&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/teaser_pix_020212/midi_monitor.jpg"&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/teaser_pix_020212/highlighted.jpg"&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/teaser_pix_020212/jubilant.jpg"&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/teaser_pix_020212/midi_moog.jpg"&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/teaser_pix_020212/split.jpg"&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-6096965641749692314?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/6096965641749692314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/6096965641749692314'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2012/02/new-videos-brewing.html' title='New Videos Brewing'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-6806166697004010341</id><published>2012-01-31T09:47:00.000-08:00</published><updated>2012-02-02T15:48:51.020-08:00</updated><title type='text'>What If It Isn't Facebook?</title><content type='html'>A bit of squiggly "journalism" which appears to promote a finance newsletter offers a defense for Facebook's ginormous $85-100B pre-IPO valuation:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sfgate.com/cgi-bin/article.cgi?f=/g/a/2012/01/30/businessinsiderfacebook-valuation-2.DTL" style="font-style: italic;"&gt;The basic reasoning behind Facebook's valuation goes something like this: every new technology cycle is dominated by one company, and that company usually ends up being worth around $200 billion. Microsoft dominated the PC era, and Google dominated the search era. Facebook is going to dominate the social era, and therefore it's going to be worth $200 billion some day. Discount that to today and $100 billion looks like a steal.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It's widely considered a foregone conclusion that A) the era which follows Google's traffic era is the social era, and B) Facebook will dominate it. The details are kind of flawed:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sfgate.com/cgi-bin/article.cgi?f=/g/a/2012/01/30/businessinsiderfacebook-valuation-2.DTL" style="font-style: italic;"&gt;Facebook is becoming one of the biggest sources and referrers of traffic on the internet—and on the internet traffic is money. The reason why Google became the most valuable and feared internet company was because most of the traffic on the internet came from Google.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This analysis tries to have its cake and eat it too. Facebook will be king, because the Google era will end soon; and Facebook will be king, because by the metrics which defined the previous era, it's almost as good as Google. But how awesome is Google, if you measure it by the number of cardboard boxes containing disks containing software that it has shipped to Circuit City? The whole point of a new era is that the old metrics don't apply. This "Facebook will be king" mania is all over the Web, and everywhere you find it, you see this same obvious oversight.&lt;br /&gt;&lt;br /&gt;If you read &lt;a href="http://daringfireball.net/"&gt;Daring Fireball&lt;/a&gt;, you know that Apple criticism is all over the Web as well, along with perpetual reports that the stock's price is about to fall -- reports which almost never come true. In fact, those reports differ so wildly from reality that &lt;a href="http://bullishcross.com/apple-the-most-undervalued-large-cap-stock-in-america/"&gt;Andy Zaky claims Apple's the most undervalued large cap stock in the country&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bullishcross.com/apple-the-most-undervalued-large-cap-stock-in-america/" style="font-style: italic;"&gt;it is now an incontestable FACT that Apple is the most undervalued and underappreciated large-cap growth company in America. The stock trades at an extremely depressed valuation that Wall Street isn’t taking seriously (8.25 Forward P/E Ratio), the company’s growth continues to outpace every large cap company on the entire S&amp;P 500, and the company’s growth rate percentage – defying all laws of gravity – continues to accelerate without any sign of abating...&lt;br /&gt;&lt;br /&gt;There seems to be an ever-present sentiment-war being waged against Apple as it is constantly hit from all sides in a very concerted way. And this is not something new. It’s been going on for years with Apple. With the recent passing of Steve Jobs, it has only gotten much much worse. I’m here to try and balance the scales a little by reminding everyone about the simple truth concerning Apple. While the company’s earnings have absolutely skyrocketed since 2008, to the dismay of investors and to the delight of Business Insider, the stock has gone nowhere.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can track the "sentiment-war," aka incomprehensible excessive negativity in Apple media coverage, on Daring Fireball if you want -- there's definitely more than enough evidence -- but let's just compare two excerpts here. First, from Andy Zaky's piece:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bullishcross.com/apple-the-most-undervalued-large-cap-stock-in-america/" style="font-style: italic;"&gt;In just four years, Apple’s earnings have grown 600% to $27.68, and its revenue skyrocketed 341% to $108.2 billion.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Second, from the Facebook post:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sfgate.com/cgi-bin/article.cgi?f=/g/a/2012/01/30/businessinsiderfacebook-valuation-2.DTL" style="font-style: italic;"&gt;The basic reasoning behind Facebook's valuation goes something like this: every new technology cycle is dominated by one company, and that company usually ends up being worth around $200 billion.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Apple made $13B last fiscal quarter; that's over a billion dollars per week. This trend would not have to continue for a very long time in order for Apple to be considered a $200B company. What's funny about Silicon Valley is that even if Apple passes $200B, continues to operate as the primary distribution system for the global music industry, &lt;b&gt;&lt;i&gt;and&lt;/b&gt;&lt;/i&gt; successfully leverages its fantastic Apple TV product and iTunes movie/TV downloads to replace film and TV distribution as well, Silicon Valley will probably still be yapping about the Facebook era replacing the Google era.&lt;br /&gt;&lt;br /&gt;While Apple will probably still be making money.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-6806166697004010341?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/6806166697004010341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/6806166697004010341'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2012/01/what-if-it-isnt-facebook.html' title='What If It Isn&apos;t Facebook?'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-6383173372885217033</id><published>2012-01-30T22:34:00.001-08:00</published><updated>2012-01-30T22:34:42.029-08:00</updated><title type='text'>Flying People In New York</title><content type='html'>Three people-shaped remote control planes create the illusion of humans in flight.&lt;br /&gt;&lt;br /&gt;&lt;iframe width="640" height="360" src="http://www.youtube.com/embed/dcDN409ZBv4" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-6383173372885217033?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/6383173372885217033'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/6383173372885217033'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2012/01/flying-people-in-new-york.html' title='Flying People In New York'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/dcDN409ZBv4/default.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-6666642367632835166</id><published>2012-01-30T19:54:00.000-08:00</published><updated>2012-01-30T19:55:37.922-08:00</updated><title type='text'>Awesome FluentConf Talk Proposal</title><content type='html'>&lt;a href="http://fluentconf.com/fluent2012"&gt;Fluent&lt;/a&gt; is an O'Reilly conf, and it's at almost the same time as &lt;a href="http://backboneconf.com/"&gt;BackboneConf&lt;/a&gt;, but you should still give it a shot! First, &lt;a href="http://peterc.org/"&gt;Peter Cooper&lt;/a&gt;'s one of the organizers, and second, this is one of the talk proposals:&lt;br /&gt;&lt;br /&gt;&lt;iframe width="640" height="480" src="http://www.youtube.com/embed/TaUyxQYtR30" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;I think it's going to be good.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-6666642367632835166?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/6666642367632835166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/6666642367632835166'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2012/01/awesome-fluentconf-talk-proposal.html' title='Awesome FluentConf Talk Proposal'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/TaUyxQYtR30/default.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-7518837600800040391</id><published>2012-01-30T09:36:00.000-08:00</published><updated>2012-01-30T09:37:22.098-08:00</updated><title type='text'>Can You Dig It?</title><content type='html'>&lt;a href="http://www.thesun.co.uk/sol/homepage/news/4095372/Twitter-news-US-bars-friends-over-Twitter-joke.html" style="font-style: italic;"&gt;Agents even checked the pair's cases for [SHOVELS] and suspected that Emily was to act as "lookout" while Leigh raided the film beauty's tomb.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-7518837600800040391?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/7518837600800040391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/7518837600800040391'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2012/01/can-you-dig-it.html' title='Can You Dig It?'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-1631802303600654417</id><published>2012-01-24T14:23:00.000-08:00</published><updated>2012-01-24T18:39:32.641-08:00</updated><title type='text'>I'm Totally Against Killing Hollywood</title><content type='html'>I've worked in Hollywood, and Y Combinator made me laugh. They've got great companies under their belt, and I even know some of the founders they've helped make wealthy, but Hacker News devolved into farce, even more so than usual, following Paul Graham's request for startups to kill Hollywood.&lt;br /&gt;&lt;br /&gt;While the move represents terrific social media marketing on Y Combinator's part, and reflects an admirable committment to the hacker community and to the idea of solving problems with new businesses, the announcement featured weak logic, unexamined assumptions, and a total obliviousness to the realities of filmmaking. &lt;a href="http://news.ycombinator.com/item?id=3497224"&gt;Some members of the Hacker News community fixed the filmmaking ignorance part of the equation&lt;/a&gt; in the ensuing discussion of the piece, and subsequent discussions of related links, but &lt;a href="http://blog.rsbrown.net/2012/01/my-idea-to-kill-hollywood.html"&gt;most made the problem worse&lt;/a&gt;, and none did anything to repair the impaired reasoning and unfounded assumptions. The site's silly, half-baked discussions provided such hilarious, nonsensical entertainment that I immediately turned off my iPad and went to a theater so I could instead watch a beautiful woman dressed entirely in skintight black leather shoot the ever-living fuck out of some werewolves.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/fuck_yeah_beckinsale_012412/11773001-underworld-awakening-poster.jpg"&gt;&lt;br /&gt;&lt;br /&gt;It was awesome. When &lt;a href="http://www.rottentomatoes.com/m/underworld_awakening/"&gt;only 27% of critics on Rotten Tomatoes like a movie, but 80% of the audience does&lt;/a&gt;, you know you're in for a terrific evening's demented idiocy. It was also nice to follow one form of demented idiocy with another. In some ways, the only difference between Underworld: Awakening and Hacker News is that the Underworld series can recognize its own silliness and enjoy it. The other difference, of course, would be the beautiful woman in skintight black leather shooting the ever-living fuck out of some werewolves. I think it's obvious Hacker News would be better if it had that element.&lt;br /&gt;&lt;br /&gt;Although there are definitely merits to Y Combinator's request, the most obvious implementation of the request would be to travel backwards in time and invest in YouTube and Netflix. Since that implementation requires the existence of such phenomenal tech it would make any VC wet their pants, let's look into less naive implementations. To do that, unfortunately, we have to look at the request in detail, and the devil is in the details.&lt;br /&gt;&lt;br /&gt;Paul Graham starts out with a bold and unexplained assertion:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ycombinator.com/rfs9.html" style="font-style: italic;"&gt;Hollywood appears to have peaked.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Considering that Hollywood nearly single-handedly destroyed the Internet, this is kind of like saying Darth Vader has peaked. You could get away with saying that if you just blew up the Death Star, and I imagine a lot of people felt that way after defeating SOPA, but the question is whether SOPA was in fact the Death Star. I don't think so. &lt;a href="http://www.techdirt.com/articles/20120120/14472117492/mpaa-directly-publicly-threatens-politicians-who-arent-corrupt-enough-to-stay-bought.shtml"&gt;I think their Death Star is Chris Dodd, who boldly threatened to stop giving Congresspeople money if they continued failing to pass the laws he demanded and, apparently, paid for&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.techdirt.com/articles/20120120/14472117492/mpaa-directly-publicly-threatens-politicians-who-arent-corrupt-enough-to-stay-bought.shtml" style="font-style: italic;"&gt;Those who count on quote 'Hollywood' for support need to understand that this industry is watching very carefully who's going to stand up for them when their job is at stake. Don't ask me to write a check for you when you think your job is at risk and then don't pay any attention to me when my job is at stake&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Chris Dodd is one hell of a Death Star. He survived numerous ethics committee investigations while in Congress, &lt;a href="http://en.wikipedia.org/wiki/Chris_Dodd#Post-senatorial_career"&gt;swore never to become a lobbyist after leaving office, but became a very well-paid lobbyist for the MPAA immediately after leaving office&lt;/a&gt;, and &lt;a href="http://en.wikipedia.org/wiki/Chris_Dodd#Controversies"&gt;boasts a history of corruption and graft which is almost legendary&lt;/a&gt;, and which also appears to be family tradition. &lt;a href="http://en.wikipedia.org/wiki/Thomas_J._Dodd#Senate_censure_and_loss_of_office"&gt;His father Thomas Dodd was one of the only Senators in the 20th Century to be censured and removed from office&lt;/a&gt;, and that happened because of ethics violations.&lt;br /&gt;&lt;br /&gt;I think that Death Star is still locked and fucking loaded. Despite the naked corruption in Dodd's statement, Federal law enforcement agencies are not going after him for bribery, or racketeering, or money laundering -- despite &lt;a href="http://informationweek.com/news/security/client/232500305"&gt;filing charges of bribery and money laundering against the file-sharing web site Megaupload&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://informationweek.com/news/security/client/232500305" style="font-style: italic;"&gt;The Justice Department's tactics, including accusing a file-sharing website of racketeering, money laundering, in addition to copyright violations, has some U.S. legal experts asking whether the case would stand up in court. "These actions, more suitable to the type of steps that the government takes against an organized-crime enterprise dedicated to murder, theft, and racketeering, are astonishing," said Jeff Ifrah, an attorney who co-chairs the American Bar Association's criminal justice section and committee on white collar crime, via phone...&lt;br /&gt;&lt;br /&gt;...the government's racketeering charge--typically only used for mob cases involving drugs or gambling--suggests to Ifrah that prosecutors are overreaching. "The allegations here are very similar to the allegations that were made in the YouTube case," in which Viacom accused the video-sharing site of hosting almost 160,000 unauthorized pieces of content, he said. "Certainly no one accused YouTube of having mob-like activities."&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I'm not even going to go into the fucked-up-ed-ness of racketeering and money laundering charges against Megaupload when there aren't racketeering or money laundering charges for the banks following the 2008 financial crisis. I bring this up purely to point out that "Hollywood appears to have peaked" is a bolder statement than Paul Graham gave himself credit for making, a controversial idea to address in detail rather than to gloss over in passing.&lt;br /&gt;&lt;br /&gt;He finally substantiates it a little further down:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ycombinator.com/rfs9.html" style="font-style: italic;"&gt;SOPA brought it to our attention that Hollywood is dying. They must be dying if they're resorting to such tactics. If movies and TV were growing rapidly, that growth would take up all their attention. When a striker is fouled in the penalty area, he doesn't stop as long as he still has control of the ball; it's only when he's beaten that he turns to appeal to the ref. SOPA shows Hollywood is beaten.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If evidence of political corruption, racketeering, and attempts to control the marketplace through government activity reveal dying industries, then real estate is a dying industry too, as well as high finance and numerous others. Considering how pervasive political corruption is in the United States today, almost every single industry in the American economy is dying by Paul Graham's reasoning, except for those few industries which are so new that legislation does not yet exist for them. Agriculture has been dying, by this metric, for at least a hundred years.&lt;br /&gt;&lt;br /&gt;Speaking of historical perspective, the Catholic Church experienced a period of extraordinary corruption more than five hundred years ago, during which time popes waged wars, had mistresses, and in some cases even died from sexual exhaustion in the beds of married women. Logically, if political corruption and government thuggery are hallmarks of dying institutions, the Catholic Church must be a historical relic that ceased to exist shortly after this period. However, it kept going another 500 years, and in fact still seems to be around. Not only that, it built nearly every hospital and orphanage in Europe in a period which followed after its apex of corruption. There's a good chance that when humanity colonizes Mars, there's going to be a Martian archdiocese. This is just one of countless examples of an institution which failed to collapse under the weight of its own corruption.&lt;br /&gt;&lt;br /&gt;Graham's argument doesn't just operate in defiance of historical precedent, but also in defiance of easily obtainable facts. Studios are seeing tremendous growth today; even though American audiences are shrinking, audiences worldwide are booming. Globalization has been very, very good to Hollywood. Many movies don't even premiere in the United States any more. And as for history, the studios have &lt;b&gt;&lt;i&gt;always&lt;/b&gt;&lt;/i&gt; been brutally dominant, cynically exploitative, and extremely corrupt, and, despite Graham's argument, were so even during their periods of greatest growth. Why else would writers and actors have unions?&lt;br /&gt;&lt;br /&gt;(Tangent: One of the bizarre ironies of the way geeks seem to see Hollywood is that you can frequently see the same people who disparage the studios for their abuse of capital and the political process also disparaging actors and writers for belonging to unions. I can understand the first part of this -- the idea that using power and money like a sword makes you a dickhead -- but it's an utter mystery to me how people get from there to the conclusion that carrying around a big iron shield makes you a fool. The argument seems to be that unions are bureaucratic, but guess what? Big iron shields are heavy and clunky. They still beat getting stabbed.)&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/fuck_yeah_beckinsale_012412/strike-nov20-2.jpg"&gt;&lt;br /&gt;&lt;br /&gt;Anyway, this all started with Paul Graham's first sentence, "Hollywood appears to have peaked." That is, at best, debatable. Let's look at sentence number two:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ycombinator.com/rfs9.html" style="font-style: italic;"&gt;If [Hollywood] were an ordinary industry (film cameras, say, or typewriters), it could look forward to a couple decades of peaceful decline.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It's a little odd to see this &lt;a href="http://www.guardian.co.uk/business/2012/jan/19/kodak-files-for-bankruptcy"&gt;only days after Kodak files for bankruptcy&lt;/a&gt;. Film cameras have actually seen a pretty rapid and intense decline.&lt;br /&gt;&lt;br /&gt;Anyway, I'm not going to do any more line-by-line bullshit detection here, because it would take way too long, and because I think you have to take it with a grain of salt whenever Silicon Valley claims it's about to kill Hollywood. I first heard that in 1995 or so, in the pages of &lt;i&gt;Wired&lt;/i&gt; magazine, and I have a feeling we'll all still be hearing it in 2025 and 2035 as well.&lt;br /&gt;&lt;br /&gt;I lived in San Francisco during the late 90s, and during that time, I was acutely aware of a perceived rivalry between San Francisco and Los Angeles -- but when I moved to Los Angeles in 2007, I discovered that nobody in LA had ever even heard of this rivalry. An acute one-sided rivalry is not a rivalry at all; it's just a sad case of jealousy. I think Y Combinator's presence in Silicon Valley, although obviously advantageous for many other reasons, may have tainted its perception of Hollywood in the same way.&lt;br /&gt;&lt;br /&gt;Y Combinator and Paul Graham both actually do pretty awesome things from time to time, and I think the general idea of technology transforming Hollywood, and changing its power structure, is absolutely worth thinking about. I've worked for companies in this space, and although I can't reveal any details, I can say that filmmakers and storytellers make a lot of fucking money on YouTube these days without any participation in what Paul Graham means by "Hollywood" (he appears to be referring only to studios and distributors, as opposed to creative talent or production crews). I can also say that there's plenty of creative talent which was absolutely on the right side of the fight against SOPA -- for example, actors &lt;a href="https://twitter.com/#!/hitRECordJoe/status/159817207193411584"&gt;Joseph Gordon-Levitt&lt;/a&gt; and &lt;a href="https://twitter.com/#!/rosariodawson/status/160074027975720960"&gt;Rosario Dawson&lt;/a&gt;, and &lt;a href="https://twitter.com/#!/johnaugust/status/161522548440440832"&gt;screenwriter John August&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/fuck_yeah_beckinsale_012412/joe.jpg"&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/fuck_yeah_beckinsale_012412/dawson.jpg"&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/fuck_yeah_beckinsale_012412/august.jpg"&gt;&lt;br /&gt;&lt;br /&gt;These are just randomly selected Hollywood creatives who I follow on Twitter. There are plenty more who feel the same way.&lt;br /&gt;&lt;br /&gt;The Y Combinator announcement does contain one remaining piece of what is, I am sure, entirely accidental bullshit, which I do want to attack:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ycombinator.com/rfs9.html" style="font-style: italic;"&gt;at this level, technological progress is probably predetermined...&lt;br /&gt;&lt;br /&gt;Whatever people are going to do for fun in 20 years is probably predetermined. Winning is more a matter of discovering it than making it happen. In this respect at least, you can't push history off its course.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It's hard to understand this argument without A) believing in God and B) believing God favors Paul Graham. I'm British, so I don't discuss my religious beliefs in public, but I would like to point out that Graham does not furnish any particular reason for his faith in destiny or the chosen course of history.&lt;br /&gt;&lt;br /&gt;I'd especially like to highlight this sentence:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Winning is more a matter of discovering [whatever people are going to do for fun in 20 years] than making it happen.&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Let's see what Steve Jobs thinks about that:&lt;br /&gt;&lt;br /&gt;&lt;iframe width="640" height="360" src="http://www.youtube.com/embed/UvEiSa6_EPA" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;This contrast is actually really easy to understand. Steve Jobs built Apple around creating cool stuff, while Paul Graham built Y Combinator around finding other people who were probably going to build cool stuff whether or not he came along. So Steve Jobs believed that winning was about making the future happen, and Paul Graham believes it's about finding the future before it happens. I'm not trying to shit all over Paul Graham here, I know people who've done well in Y Combinator startups and I wish him the best, but I think his question is just lame. He asked the startup and hacker communities what the predetermined answer to Hollywood will be; Steve Jobs would ask what future we want to create. That's just a much cooler question.&lt;br /&gt;&lt;br /&gt;Personally, I am a programmer, an actor, and a musician. I want to write code, make music, and make movies, so the future I want to create is a future in which I do those things. In the past I've made most of my money from programming and a little bit from making videos and selling them on my blog. Although I didn't even realize it at the time, I was technically, while making a living selling videos on my blog, &lt;b&gt;a working filmmaker&lt;/b&gt;, in the same sense that &lt;a href="http://peepcode.com"&gt;Geoffrey Grosenbach&lt;/a&gt;, &lt;a href="https://www.destroyallsoftware.com/"&gt;Gary Bernhardt&lt;/a&gt;, and &lt;a href="http://railscasts.com/pro"&gt;Ryan Bates&lt;/a&gt; are all technically working filmmakers.&lt;br /&gt;&lt;br /&gt;I liked that. It was cool! So the immediate future I'm working to create is one where I make my living by making and selling videos about how to make music by writing code. I've built a terrific new video along these lines and am in the process of creating more. Hollywood represents no threat to me, helped me learn the skills to make this possible, and presents terrific opportunities for me in all three of these interests. The long-term future I'm working to create involves seizing those other opportunities. Hollywood's a great place to be for this.&lt;br /&gt;&lt;br /&gt;I don't need or want Hollywood to die. As an actor, I got a part in a web series the other day; my friend who's producing and writing it hopes to sell it to Hollywood, and I hope he succeeds. I also know we can put it on YouTube and potentially see it succeed with or without Hollywood's involvement. At the same time, I'm lucky enough to know filmmakers and actors who are doing awesome things in Hollywood, and I want them to keep on doing that. There's certainly corruption and dickheadishness at the top end of Hollywood's money and power pyramids, but that wouldn't be a problem at all if we didn't have such a corrupt lawmaking process in the United States. If we're going to kill anything, let's kill the lobbying industry and replace it with a morally defensible process we don't have to be ashamed of whenever we talk to people who live in functioning democracies.&lt;br /&gt;&lt;br /&gt;Y Combinator's anger makes sense, but their target is the wrong target, and I could have spotted the holes in their strategic analysis back when I was twelve.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-1631802303600654417?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/1631802303600654417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/1631802303600654417'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2012/01/im-totally-against-killing-hollywood.html' title='I&apos;m Totally Against Killing Hollywood'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/UvEiSa6_EPA/default.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-603462657206675208</id><published>2012-01-22T10:19:00.000-08:00</published><updated>2012-01-22T10:58:27.875-08:00</updated><title type='text'>Let's End Lamar Smith's Political Career</title><content type='html'>&lt;b&gt;&lt;i&gt;Update:&lt;/b&gt;&lt;/i&gt; &lt;a href="http://www.reddit.com/r/politics/comments/nylx0/a_megalist_of_congressmen_facing_2012_reelection/"&gt;Reddit is way ahead of me&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ycombinator.com/rfs9.html"&gt;Y Combinator is right to be mad, but wrong about the target&lt;/a&gt;. SOPA sponsor Lamar Smith is back with an amendment to a child pornography bill (and who would object to that?) which would require ISPs to track your every move online for 18 months:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.slashgear.com/sopa-sponsor-has-another-internet-bill-that-records-you-247-20210264/" style="font-style: italic;"&gt;Each time you use a credit card, each time you read your bank statement, all of your IP information and your search history will be required by your ISP to be stored for 18 months at all times...&lt;br /&gt;&lt;br /&gt;While it was legal for the government to issue a subpoena for the viewing of the information they speak about here before, it was not part of the law that internet service providers capture or retain that information at any point. In effect, while before the authorities would need to first find a reason for you to need to be watched to get the ISP to start collecting information from you, that information will already exist on file, effectively meaning you’re being watched and recorded even if you’ve done nothing wrong...&lt;br /&gt;&lt;br /&gt;This bill needs to be stopped, and if I might go one better, Lamar Smith needs to be stopped, for the good of the internet and YOUR privacy.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Lamar_S._Smith#Tenure"&gt;Smith also attempted to expand the DMCA in 2006&lt;/a&gt;, again pushing for new wiretapping privileges for police. It's a question whether this guy is trying harder to destroy the Internet or &lt;a href="http://en.wikipedia.org/wiki/Fourth_Amendment_to_the_United_States_Constitution"&gt;the Fourth Amendment&lt;/a&gt;, but imagine how awesome it would be if that was just an academic question about a guy who didn't have a career in politics any more.&lt;br /&gt;&lt;br /&gt;The bad news is &lt;a href="http://en.wikipedia.org/wiki/Lamar_S._Smith#U.S._House_of_Representatives"&gt;he's been in office since 1987&lt;/a&gt; and has won his most recent elections with &lt;a href="http://en.wikipedia.org/wiki/Lamar_S._Smith#Elections"&gt;crushing victories&lt;/a&gt;. The good news is he's a Republican, and SOPA is wildly anti-business; the other bad news is it may be tough to make that stick, because it's only obvious to the technologically literate. Fortunately, he also he has motivated, successful enemies on his home turf; &lt;a href="http://en.wikipedia.org/wiki/United_States_House_of_Representatives_elections_in_Texas,_2008#District_21"&gt;his district includes parts of staunchly Democratic Austin&lt;/a&gt;, and that's because &lt;a href="http://en.wikipedia.org/wiki/Texas%27_21st_congressional_district#2006_election"&gt; the Supreme Court ordered his Congressional district redrawn after the League of United Latin American Citizens won a gerrymandering lawsuit against then-governor Rick Perry&lt;/a&gt;. This probably also means he's extremely corrupt, but it's hard to imagine SOPA coming from anybody who wasn't extremely corrupt in the first place.&lt;br /&gt;&lt;br /&gt;Let's all form a political action committee called the Coalition To Defend The Internet From Ignorant, Corrupt Assholes and get contributions from every millionaire in Silicon Valley so we can deep-six this guy so completely "Lamar Smith" becomes a synonym for "no career in politics ever again."&lt;br /&gt;&lt;br /&gt;We can use a two-pronged attack; fund Lamar Smith's Republican competitors, and find ways that they can show how pro-Hollywood and anti-business SOPA was (Republicans hate Hollywood), while at the same time also funding his liberal opponents. A Democratic victory in Smith's district is unlikely, but his Democratic opponents probably hate him enough to make some noise, and I think it's extremely likely that Texas is full of younger Republicans who would love to take his place. There's got to be at least one who understands the Internet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-603462657206675208?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/603462657206675208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/603462657206675208'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2012/01/lets-end-lamar-smiths-political-career.html' title='Let&apos;s End Lamar Smith&apos;s Political Career'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-6434313146489718191</id><published>2012-01-20T13:30:00.000-08:00</published><updated>2012-01-20T13:39:22.303-08:00</updated><title type='text'>Clyde: Rebuilding Archaeopteryx in CoffeeScript (And Fuck Hacking Fuck Yeah Hacking)</title><content type='html'>I'm creating videos for a new business I'm launching soon, a business along the lines of &lt;a href="http://peepcode.com/"&gt;PeepCode&lt;/a&gt;, &lt;a href="https://www.destroyallsoftware.com/screencasts"&gt;Destroy All Software&lt;/a&gt;, and &lt;a href="http://railscasts.com/pro"&gt;Railscasts Pro&lt;/a&gt;. This week I made one which explains the absolute basics of how to make music with Node.js.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/fuck_no_012012/video.jpg"&gt;&lt;br /&gt;&lt;br /&gt;Some time last year I made plans with Manning to put out a book on how to hack music via programming languages, but I cancelled the project because I just didn't enjoy the traditional publishing process. I'm creating videos instead now. The first is in post-production; I'm adding a bunch of animation and simple effects to make it very, very easy to understand, and also easy to follow whether you're on an iPad, an iPhone, a computer, or an Apple TV (or similar). The next videos in this series will be a video on how to write a drum machine using well-tested CoffeeScript, and another which explains how to imbue your drum machine with probability matrix intelligence. I'll be rebuilding Archaeopteryx in CoffeeScript.&lt;br /&gt;&lt;br /&gt;I'm calling my Archaeopteryx clone Clyde, after the great drummer &lt;a href="http://en.wikipedia.org/wiki/Clyde_Stubblefield"&gt;Clyde Stubblefield&lt;/a&gt; -- known worldwide to fans of funk and hip-hop as the "Funky Drummer" from James Brown's track of the same name, believed to be the world's most sampled record -- because Archaeopteryx turned out to be a really complicated name for most people to pronounce. Clyde is a much easier name to remember.&lt;br /&gt;&lt;br /&gt;Some people also found the code in Archaeopteryx confusing. This is because I built it without tests, to my eternal shame, and also because I didn't really understand what I needed the code to do until I had built it. I'm happy to say that so far, the code for Clyde is more succinct, and much easier to understand, than the code for the original Archaeopteryx. This is partly because of the excellent open source ecology around CoffeeScript and JavaScript, including some terrific TDD/BDD options.&lt;br /&gt;&lt;br /&gt;After the rebuild is complete, I'll follow up with a video (or short series) where I build a Backbone application around the code. It &lt;i&gt;won't&lt;/i&gt; be a web page which autogenerates sound. Instead, this application will combine Backbone's excellent, simple MVC with Clyde's breakbeat-generating engine to output original sheet music. I actually got the idea for this one because I'm learning the drums and I needed more varied breakbeats to practice with; this solves that problem, and also gives me a good way to teach how to use Backbone.&lt;br /&gt;&lt;br /&gt;It's important to have complex examples, I think, because as I build this stuff, my videos are going to explain serious techniques that anybody who works with these technologies will need to master -- things like package management, TDD, and namespacing. The goal here is not just entertainment. The goal is to enhance education by making it more fun.&lt;br /&gt;&lt;br /&gt;Studies have found that the Daily Show incorporates more information than "real" news shows, and that people who watch it end up better informed than watchers of "real" news shows.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/fuck_no_012012/daily_show.jpg"&gt;&lt;br /&gt;&lt;br /&gt;My personal theory is that this happens because people learn more effectively when they're having fun. If you're familiar with Kathy Sierra's &lt;i&gt;Head First&lt;/i&gt; series of books, you know there's a lot of research out there which validates this.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/fuck_no_012012/head.jpg"&gt;&lt;br /&gt;&lt;br /&gt;Because of this, I have some plans for later videos which will turn out utterly &lt;b&gt;&lt;i&gt;amazing&lt;/b&gt;&lt;/i&gt; if they work, but for now I'm hard at work creating more videos, so stay tuned.&lt;br /&gt;&lt;br /&gt;Also, a note about the name.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://gilesbowkett.blogspot.com/2012/01/coming-soon-fuck-yeah-hacking-com.html"&gt;I had planned to call my new business Fuck Yeah Hacking&lt;/a&gt;, but &lt;a href="http://twitter.theinfo.org/160163936946225153#id160267536879980544"&gt;on Twitter, LA Rubyist Judson Lester pointed out&lt;/a&gt; that this is very similar to Zed Shaw's &lt;a href="http://programming-motherfucker.com/" style="font-style: italic;"&gt;Programming, Motherfucker&lt;/a&gt;. In fact, it's too similar. People have already asked me once or twice if I was just a pseudonym for Zed Shaw, or vice versa. We are in fact different people.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/fuck_no_012012/zed.jpg"&gt;&lt;br /&gt;&lt;br /&gt;I hadn't intended it like this, but "Fuck Yeah Hacking" was actually a pretty derivative name. The attitude rips off Zed, and the naming convention comes from Tumblr, where there are a staggering number of &lt;i&gt;fuckyeah[whatever].tumblr.com&lt;/i&gt; tumblogs, including &lt;a href="http://fuckyeahwolves.tumblr.com/"&gt;fuck yeah wolves&lt;/a&gt;, &lt;a href="http://fuckyeahalexiskrauss.tumblr.com/"&gt;fuck yeah alexis krauss&lt;/a&gt;, and &lt;a href="http://fuckyeahbowties.tumblr.com/"&gt;fuck yeah bowties&lt;/a&gt;. It's basically an entire genre. That makes Fuck Yeah Hacking doubly derivative, and that's just weak.&lt;br /&gt;&lt;br /&gt;So it's gone.&lt;br /&gt;&lt;br /&gt;Here's an ad for the first video, which deconstructs an excellent CSS3 animation. It's still got "Fuck Yeah Hacking" in the name, but I'm too busy to fix it right now.&lt;br /&gt;&lt;br /&gt;&lt;iframe width="640" height="360" src="http://www.youtube.com/embed/n71I79MoHHA" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;This one's good, but the next one's going to be awesome.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-6434313146489718191?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/6434313146489718191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/6434313146489718191'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2012/01/clyde-rebuilding-archaeopteryx-in.html' title='Clyde: Rebuilding Archaeopteryx in CoffeeScript (And Fuck Hacking Fuck Yeah Hacking)'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/n71I79MoHHA/default.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-4842103666903361563</id><published>2012-01-16T14:28:00.000-08:00</published><updated>2012-01-16T14:31:53.744-08:00</updated><title type='text'>New Sleigh Bells: Comeback Kid</title><content type='html'>&lt;img src="http://s3.amazonaws.com/giles/bells_011612/sleigh452.jpg"&gt;&lt;br /&gt;&lt;br /&gt;&lt;object height="81" width="100%"&gt;&lt;param name="movie" value="https://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F33106352&amp;show_comments=&amp;color=&amp;g=1&amp;theme_color="&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed allowscriptaccess="always" height="81" src="https://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F33106352&amp;show_comments=&amp;color=&amp;g=1&amp;theme_color=" type="application/x-shockwave-flash" width="100%"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;span&gt;&lt;a href="http://soundcloud.com/sleighbells/comeback-kid"&gt;Comeback Kid&lt;/a&gt; by &lt;a href="http://soundcloud.com/sleighbells"&gt;Sleigh Bells&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;via &lt;a href="http://kickkicksnare.com/2012/01/16/sleigh-bells-comeback-kid/"&gt;kick kick snare&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-4842103666903361563?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/4842103666903361563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/4842103666903361563'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2012/01/new-sleigh-bells-comeback-kid.html' title='New Sleigh Bells: Comeback Kid'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-8267258554719581845</id><published>2012-01-13T16:42:00.000-08:00</published><updated>2012-01-13T20:24:23.930-08:00</updated><title type='text'>Coming Soon: Fuck Yeah Hacking (.com)</title><content type='html'>&lt;img src="http://s3.amazonaws.com/giles/fuckyeah_011312/mystery.gif"&gt;&lt;br /&gt;&lt;br /&gt;Fuck Yeah Hacking (.com) is my new business. Just like in 2010, I'll be making videos and selling them, but this time around they're going to be mostly technical content. I say mostly because I think I'm going to throw in some videos on how to &lt;a href="http://createdigitalmusic.com/2011/04/making-music-with-free-and-open-source-software-top-picks-from-red-hat-dave-phillips/"&gt;make music with open source software&lt;/a&gt; and/or your iPad, just to keep things interesting.&lt;br /&gt;&lt;br /&gt;I have the Twitter account, the Gmail address, and the domain, but the site itself isn't set up yet. I've finished the first video; it's going to be a bit raw, but I'm happy with the content, and the next one should be amazeballs. Because the site isn't ready yet, you can't actually buy the video, but I'll release it soon, and in the meantime, you can check out an ad/trailer for it right here:&lt;br /&gt;&lt;br /&gt;&lt;iframe width="640" height="360" src="http://www.youtube.com/embed/n71I79MoHHA" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 0.7em;"&gt;If you're wondering, the video's coy about the naughty words because YouTube sometimes makes you log in to view "potentially offensive" content. No point making people log in just to watch my ad.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-8267258554719581845?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/8267258554719581845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/8267258554719581845'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2012/01/coming-soon-fuck-yeah-hacking-com.html' title='Coming Soon: Fuck Yeah Hacking (.com)'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/n71I79MoHHA/default.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-6130580374511398257</id><published>2012-01-12T09:02:00.001-08:00</published><updated>2012-01-12T09:02:47.800-08:00</updated><title type='text'>"Well designed code is easy to test."</title><content type='html'>&lt;a href="http://chrismdp.github.com/2011/10/your-tests-are-lying-to-you/" style="font-style: italic;"&gt;As a rule of thumb, anytime I get over about two or three lines of setup code for testing a method, I normally take a step back and ask myself if this method is doing too much.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-6130580374511398257?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/6130580374511398257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/6130580374511398257'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2012/01/well-designed-code-is-easy-to-test.html' title='&quot;Well designed code is easy to test.&quot;'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-5941950555225785310</id><published>2012-01-05T13:01:00.000-08:00</published><updated>2012-01-05T13:05:03.284-08:00</updated><title type='text'>How To Set An Alarm Clock</title><content type='html'>It's lunchtime, and I want to get up at 6am tomorrow. The obvious way to handle this is to set my alarm for 6am, but the smart way is to set it for 9pm, and remember that when the alarm rings, it's time to wind things down and get ready to go to sleep.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-5941950555225785310?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/5941950555225785310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/5941950555225785310'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2012/01/how-to-set-alarm-clock.html' title='How To Set An Alarm Clock'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-2159891197863836050</id><published>2012-01-05T10:33:00.000-08:00</published><updated>2012-01-05T10:34:28.579-08:00</updated><title type='text'>Bassnectar Explains: What Is Dubstep?</title><content type='html'>&lt;iframe width="640" height="360" src="http://www.youtube.com/embed/V7qnG5rBfO0" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;via &lt;a href="http://createdigitalmusic.com/2012/01/bassnectar-on-beat-structure-edm-and-dubstep-illustrated-class-is-in-session/"&gt;create digital music&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-2159891197863836050?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/2159891197863836050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/2159891197863836050'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2012/01/bassnectar-explains-what-is-dubstep.html' title='Bassnectar Explains: What Is Dubstep?'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/V7qnG5rBfO0/default.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-4176366729496054286</id><published>2012-01-04T18:33:00.000-08:00</published><updated>2012-01-04T18:43:50.940-08:00</updated><title type='text'>Japan Wins At Being Awesome, Again</title><content type='html'>&lt;a href="http://boingboing.net/2012/01/04/quantum-levitation-realizes-hu.html"&gt;In case you were somehow wondering &lt;b&gt;&lt;i&gt;why&lt;/b&gt;&lt;/i&gt; successful research into quantum levitation might be awesome, Japanese quantum levitation researchers have put together a demo based on the 90s video game &lt;i&gt;Wipeout&lt;/i&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/baby_got_an_atom_bomb_0101412/a_22_megaton.jpg"&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Here is a short footage on our recent work on quantum levitation. We were inspired by the game Wipe'out to do our work. With this new technology, we hope to revolutionize the world of motor transport; Maybe in a near future we could assist to a real Wipe'out race.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe width="640" height="360" src="http://www.youtube.com/embed/Zqmdv5iyIOY?hd=1" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;There is no evidence, however, that Baby has yet got an atom bomb.&lt;br /&gt;&lt;br /&gt;&lt;iframe width="640" height="480" src="http://www.youtube.com/embed/11Nq6PzY0xA" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-4176366729496054286?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/4176366729496054286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/4176366729496054286'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2012/01/japan-wins-at-being-awesome-again.html' title='Japan Wins At Being Awesome, Again'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/Zqmdv5iyIOY/default.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-1056653897032299997</id><published>2012-01-03T21:00:00.001-08:00</published><updated>2012-01-03T21:03:54.313-08:00</updated><title type='text'>Request: Australian Ruby Conference, November</title><content type='html'>It will enable me to save a lot on my taxes if I also go to &lt;a href="http://www.eclipse2012.com/"&gt;the Eclipse festival in north Queensland&lt;/a&gt; to watch the total eclipse of the sun (which no doubt heralds Mayan doom).&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/sfe_010311/1264349089_fc8ca09f95.jpg"&gt;&lt;br /&gt;&lt;br /&gt;I'll be checking &lt;a href="http://lanyrd.com/places/australia/"&gt;Lanyrd&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-1056653897032299997?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/1056653897032299997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/1056653897032299997'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2012/01/request-australian-ruby-conference.html' title='Request: Australian Ruby Conference, November'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-4204849833058628151</id><published>2012-01-03T15:58:00.001-08:00</published><updated>2012-01-03T16:23:29.786-08:00</updated><title type='text'>A Simple Defense Of Vertu</title><content type='html'>&lt;a href="http://boingboing.net/2012/01/02/behold-vertus-200-usb-cabl.html"&gt;BoingBoing&lt;/a&gt; and &lt;a href="http://daringfireball.net/2011/12/seeing_it"&gt;Daring Fireball&lt;/a&gt; both have been making fun of Vertu recently. Vertu's a company which sells horrible crappy phones at incredible prices, often by encrusting them with diamonds. I first became aware of Vertu a while before this, through &lt;a href="http://robbreport.com/" style="font-style: italic;"&gt;The Robb Report&lt;/a&gt;, a magazine for the ultra-rich.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/sfe_010311/GalaxyMotor2.JPG"&gt;&lt;br /&gt;&lt;br /&gt;I read it not because I'm in the market for a new yacht, but because &lt;a href="https://www.amazon.com/dp/193253167X/ref=as_li_ss_til?tag=gilebowk-20&amp;camp=0&amp;creative=0&amp;linkCode=as4&amp;creativeASIN=193253167X&amp;adid=15BQ7ASHNYKPT76PFTXS&amp;"&gt;a great writer on entrepreneurialism&lt;/a&gt; recommends subscribing to it so you can get used to the sheer incredible amount of money that you can charge very wealthy people for very simple things. In related news, I was just in Santa Fe, New Mexico, for the holidays, where you can easily find a set of &lt;a href="http://www.cutleryofsantafe.com/inlaid_steak.html"&gt;kitchen knives with inlaid turquoise for over $2,000 -- despite the fact that they cost the store $250 at the absolute most&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/sfe_010311/2steakjs1_300.jpg"&gt;&lt;br /&gt;&lt;br /&gt;Vertu's products are utter crap, and only a stupid person, a person with terrible taste and no concern for money &lt;b&gt;&lt;i&gt;at all&lt;/b&gt;&lt;/i&gt;, or a person in a ridiculous hurry would ever buy them -- but I can't criticize their business model. Their business model is simple: &lt;a href="http://news.ycombinator.com/item?id=3420203"&gt;charge the highest price possible&lt;/a&gt;. I wouldn't buy any of their products if I was richer than Warren Buffet, but I can still see that their business operates on a very sound fundamental principle.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/sfe_010311/top-10-most-expensive-phone-in-the-world-Motorola-v220-special-edition.jpg"&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://daringfireball.net/linked/2012/01/03/warhole-coke"&gt;At Daring Fireball, John Gruber invokes a Warhol quote as the best explanation of why Vertu's ridiculous&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;What’s great about this country is that America started the tradition where the richest consumers buy essentially the same things as the poorest. You can be watching TV and see Coca-Cola, and you know that the President drinks Coke, Liz Taylor drinks Coke, and just think, you can drink Coke, too. A Coke is a Coke and no amount of money can get you a better Coke than the one the bum on the corner is drinking. All the Cokes are the same and all the Cokes are good. Liz Taylor knows it, the President knows it, the bum knows it, and you know it.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;He's absolutely right, but that's no reason not to charge people as much money as they're willing to pay. If you go to the store to buy something, and the money you're paying with is money you got in a silly manner, they don't tell you to come back when you have some less ridiculous money. They just give you what you're buying and tell you to have a nice day. And if some idiot wants to pay you $100 for a $1 Coke, even though they know about the $1 Coke, go ahead and let them. It's their choice.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-4204849833058628151?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/4204849833058628151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/4204849833058628151'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2012/01/simple-defense-of-vertu.html' title='A Simple Defense Of Vertu'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-3684351852183953320</id><published>2012-01-03T15:33:00.001-08:00</published><updated>2012-01-03T15:35:35.544-08:00</updated><title type='text'>If You Don't Dig My Non-Tech Content...</title><content type='html'>...then take heart. I've got a new domain for tech content only. I'm still working out my plan, but I believe I'll probably cross-post tech posts to both that new domain (once it's set up) and this site, so that people who want to read it all can read it all, and people who only want to read the tech stuff can only read the tech stuff. I may do this with my music content too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-3684351852183953320?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/3684351852183953320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/3684351852183953320'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2012/01/if-you-dont-dig-my-non-tech-content.html' title='If You Don&apos;t Dig My Non-Tech Content...'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-4069430167510729623</id><published>2012-01-03T07:40:00.002-08:00</published><updated>2012-01-03T07:41:03.008-08:00</updated><title type='text'>Chris Hedges: "Brace Yourself. The American Empire Is Over &amp; The Descent Is Going To Be Horrifying"</title><content type='html'>&lt;iframe width="640" height="480" src="http://www.youtube.com/embed/7zotYU21qcU" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-4069430167510729623?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/4069430167510729623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/4069430167510729623'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2012/01/chris-hedges-brace-yourself-american.html' title='Chris Hedges: &quot;Brace Yourself. The American Empire Is Over &amp; The Descent Is Going To Be Horrifying&quot;'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/7zotYU21qcU/default.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-9086242077052076928</id><published>2012-01-01T14:26:00.000-08:00</published><updated>2012-01-01T14:42:01.622-08:00</updated><title type='text'>A Little Hacked-Together Music Sketch</title><content type='html'>The other night I set up two new synthesizers in what is becoming my tiny home studio. One new synth was actually a used synth, specifically a late 90s Access Virus (original series), while the other was genuinely new, a Moog Slim Phatty. I wanted to make some music with both but my recording setup wasn't ready yet, so I resorted to GarageBand on the iPad via an Alesis I/O Dock.&lt;br /&gt;&lt;br /&gt;I started out with &lt;a href="http://s3.amazonaws.com/giles/sketch_120411/keeping.mp3"&gt;this beat&lt;/a&gt;, which I did a few weeks ago in Reason. It's actually using a riff based on &lt;a href="http://www.weallwantsomeone.org/2011/06/27/mp3-class-actress-keep-you/"&gt;"Keep You," by Class Actress&lt;/a&gt;; I really like this song and am planning to do a &lt;a href="http://www.npr.org/templates/story/story.php?storyId=125783271"&gt;bona fide, licensed cover version&lt;/a&gt; soon, for which the Reason beat was an experimental sketch. Anyway, I replaced the Reason synths with hardware synths in &lt;a href="http://s3.amazonaws.com/giles/sketch_122911/hacky.mp3"&gt;this version&lt;/a&gt;. I think the Reason version actually sounds better, but that's no big shock really, because the goal of the hardware-enhanced version was just to do a proof of concept.&lt;br /&gt;&lt;br /&gt;Here's how I did it.&lt;br /&gt;&lt;br /&gt;&lt;iframe width="640" height="360" src="http://www.youtube.com/embed/HlZSorz70mE?hd=1" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;I'm planning serious studio upgrades, but I'm also planning to launch some new video products (to say the least), so all things in due time, etc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-9086242077052076928?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/9086242077052076928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/9086242077052076928'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2012/01/little-hacked-together-music-sketch.html' title='A Little Hacked-Together Music Sketch'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/HlZSorz70mE/default.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-1603049099967958574</id><published>2011-12-28T19:59:00.000-08:00</published><updated>2012-01-02T15:03:15.412-08:00</updated><title type='text'>JavaScript Is Not A Language</title><content type='html'>&lt;a href="https://twitter.com/#!/lsegal/status/152158065733541888"&gt;&lt;img src="http://s3.amazonaws.com/giles/js_122811/foobar.gif"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Recently people presented arguments &lt;a href="http://www.codethinked.com/a-case-for-using-coffeescript"&gt;for&lt;/a&gt; and &lt;a href="http://ryanflorence.com/2011/2012/case-against-coffeescript/"&gt;against&lt;/a&gt; using CoffeeScript. I felt the argument against was pointless and obviously wrong, but I couldn't figure out why, and I thought the counterargument for was kind of toothless and irrelevant. I've figured out the real issue.&lt;br /&gt;&lt;br /&gt;The real argument for CoffeeScript is that JavaScript is not really a language.&lt;br /&gt;&lt;br /&gt;Years ago I read something which explained, in my opinion, why Lisp has never achieved the mainstream adoption its passionate advocates believe it deserves. &lt;a href="http://halyph.blogspot.com/2011/02/lisp-balkanization.html"&gt;Lisp projects experience a degree of balkanization&lt;/a&gt; because everything is left wide open; you can use more than one object-oriented paradigm (potentially even at the same time), you write your own this, you write your own that, you write your own everything.&lt;br /&gt;&lt;br /&gt;At Canada on Rails in 2006, somebody asked DHH why Rails didn't have a to-do list generator, and he said it was the wrong level of abstraction; to-do lists are always application-specific enough that any generator worth a damn would be as complicated as Rails itself, and probably as many lines of code. It's not something you can solve at that level of generality.&lt;br /&gt;&lt;br /&gt;Lisp fails to recognize this, and rather than being a language, it is an abstract syntax tree manipulation system. An abstract syntax tree manipulation system is something every language needs and is built on, but it is not a language, any more than a skeleton is a person. Programmers who say Lisp is better than any other programming language are really saying that they prefer manipulating the abstract syntax tree directly vs. using somebody else's user interface for the same task, which is all a programming language ultimately is.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://javascript.crockford.com/javascript.html"&gt;JavaScript is a Lisp with hideous syntax&lt;/a&gt;. Not surprisingly, it sees similar balkanization. Consider writing modular code. Do you use &lt;a href="http://www.commonjs.org/"&gt;CommonJS&lt;/a&gt;, &lt;a href="http://requirejs.org/"&gt;require.js&lt;/a&gt;, or something else? The question is idiotic; it should be answered at the language level. Do you choose which modular code-sharing system to support when you sit down to write your module? If you have three different solutions for writing modular code, you can't write modular code.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://xkcd.com/927/"&gt;&lt;img src="http://s3.amazonaws.com/giles/js_122811/standards.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I use CoffeeScript for the same reason I use Ruby. Manipulating the abstract syntax tree directly is way more fun, but insufficiently pragmatic.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Update:&lt;/b&gt;&lt;/i&gt; I realize this blog post gets a bit idiotic with regard to technical details, and I've seen some Lisp fanatics ranting about what appear to be many entirely legitimate objections to the "JavaScript is a Lisp" meme, but I think my basic point here is pretty much dead on. Writing CoffeeScript just feels like using a language in a way that writing JavaScript just doesn't -- and I was doing drag-and-drop widgets before even Prototype existed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-1603049099967958574?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/1603049099967958574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/1603049099967958574'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/12/javascript-is-not-language.html' title='JavaScript Is Not A Language'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-3284690899248796437</id><published>2011-12-26T19:36:00.000-08:00</published><updated>2011-12-26T19:38:08.194-08:00</updated><title type='text'>Happy Holidays And All That</title><content type='html'>&lt;a href="http://boingboing.net/2011/12/24/portal-xmas-tree.html"&gt;&lt;img src="http://s3.amazonaws.com/giles/xmas_122611/U1KoD.jpg"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-3284690899248796437?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/3284690899248796437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/3284690899248796437'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/12/happy-holidays-and-all-that.html' title='Happy Holidays And All That'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-2878231769436620713</id><published>2011-12-14T10:01:00.000-08:00</published><updated>2011-12-14T10:06:15.712-08:00</updated><title type='text'>Comedian Louis CK Abandons Traditional Entertainment Industry Business Model, Makes Bucketloads</title><content type='html'>&lt;a href="https://buy.louisck.net/statement" style="font-style: italic;"&gt;The experiment was: if I put out a brand new standup special at a drastically low price ($5) and make it as easy as possible to buy, download and enjoy, free of any restrictions, will everyone just go and steal it? Will they pay for it? And how much money can be made by an individual in this manner?&lt;br /&gt;&lt;br /&gt;...this was a premium video production, shot with six cameras over two performances at the Beacon Theater, which is a high-priced elite Manhattan venue. I directed this video myself and the production of the video cost around $170,000.&lt;br /&gt;&lt;br /&gt;The development of the website, which needed to be a very robust, reliable and carefully constructed website, was around $32,000...&lt;br /&gt;&lt;br /&gt;The show went on sale at noon on Saturday, December 10th. 12 hours later, we had over 50,000 purchases and had earned $250,000, breaking even on the cost of production and website. As of Today, we've sold over 110,000 copies for a total of over $500,000. Minus some money for PayPal charges etc, I have a profit around $200,000 (after taxes $75.58). This is less than I would have been paid by a large company to simply perform the show and let them sell it to you, but they would have charged you about $20 for the video. They would have given you an encrypted and regionally restricted video of limited value, and they would have owned your private information for their own use. They would have withheld international availability indefinitely.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;(PS: when he says&lt;br /&gt;&lt;br /&gt;&lt;i&gt;I want to thank Caspar and Giles at Version Industries, who created the website.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;that is in fact a different Giles.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-2878231769436620713?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/2878231769436620713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/2878231769436620713'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/12/comedian-louis-ck-abandons-traditional.html' title='Comedian Louis CK Abandons Traditional Entertainment Industry Business Model, Makes Bucketloads'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-8163334815380222750</id><published>2011-12-13T19:19:00.000-08:00</published><updated>2011-12-13T19:22:37.520-08:00</updated><title type='text'>Pixels Made Of Flammable Gas</title><content type='html'>&lt;iframe width="640" height="480" src="http://www.youtube.com/embed/Y4Q4tirAOmU" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://gizmodo.com/5867689/this-pyro-board-display-uses-tiny-flames-as-pixels"&gt;via gizmodo&lt;/a&gt;. project originates with &lt;a href="http://phys.au.dk/formidling/fysikshow-aarhus/"&gt;the Danish MIT&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-8163334815380222750?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/8163334815380222750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/8163334815380222750'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/12/pixels-made-of-flammable-gas.html' title='Pixels Made Of Flammable Gas'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/Y4Q4tirAOmU/default.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-1729497900300392153</id><published>2011-12-13T18:27:00.000-08:00</published><updated>2011-12-13T18:36:57.108-08:00</updated><title type='text'>Seriously Awesome Live Drumming D&amp;B</title><content type='html'>&lt;iframe width="640" height="360" src="http://www.youtube.com/embed/IrB1CDU2hFY?hd=1" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;And this is just a tech demo! The drummer here is &lt;a href="http://www.michaelschack.com/"&gt;Michael Shack&lt;/a&gt;, who's working on the &lt;a href="http://netskymusic.com/"&gt;Netsky&lt;/a&gt; tour.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-1729497900300392153?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/1729497900300392153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/1729497900300392153'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/12/seriously-awesome-live-drumming-d.html' title='Seriously Awesome Live Drumming D&amp;B'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/IrB1CDU2hFY/default.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-5604730942074840905</id><published>2011-12-11T15:25:00.000-08:00</published><updated>2012-01-11T09:58:53.966-08:00</updated><title type='text'>CNN LED Ticker Tape Hacked?</title><content type='html'>Here in Los Angeles, CNN has a skyscraper -- I think it's their headquarters -- in Hollywood, at Sunset and Cahuenga. The ground floor showcases several big TVs running CNN, as well as a big LED "ticker tape" display running a constant stream of headlines and short, one-sentence stories.&lt;br /&gt;&lt;br /&gt;I went by there yesterday on my way home from somewhere and saw the following two messages:&lt;br /&gt;&lt;br /&gt;"GOP proves they do not care about consumers"&lt;br /&gt;&lt;br /&gt;"It's sometimes a good idea to turn off the television if the news pushes your blood pressure beyond acceptable levels."&lt;br /&gt;&lt;br /&gt;Either CNN got hacked in LA last night, or they've made a major change in editorial direction.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-5604730942074840905?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/5604730942074840905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/5604730942074840905'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/12/cnn-led-ticker-tape-hacked.html' title='CNN LED Ticker Tape Hacked?'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-6118328104251529401</id><published>2011-12-07T15:27:00.000-08:00</published><updated>2011-12-07T15:38:54.409-08:00</updated><title type='text'>Firefox Vibrator API</title><content type='html'>I learned from &lt;a href="http://html5weekly.com/"&gt;HTML5 Weekly&lt;/a&gt; that &lt;a href="http://www.internetnews.com/blog/skerner/firefox-11-vibrator-api.html"&gt;Firefox has&lt;/a&gt; a &lt;a href="http://johnhammink.blogspot.com/2011/11/lets-have-look-at-some-recently-landed.html"&gt;new Vibrator API&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/vibrator_120711/dildodog.jpg"&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-6118328104251529401?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/6118328104251529401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/6118328104251529401'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/12/firefox-vibrator-api.html' title='Firefox Vibrator API'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-8679542539151037582</id><published>2011-12-06T16:22:00.000-08:00</published><updated>2011-12-06T16:28:41.770-08:00</updated><title type='text'>Fuck Yeah, Browser Sticky Pads</title><content type='html'>&lt;a href="http://www.uistencils.com/collections/frontpage/products/browser-sticky-pad"&gt;&lt;img src="http://s3.amazonaws.com/giles/fuckyeah_120611/browser-sticky-1.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The Post-It Note will always be, for me, an icon of the "why didn't I think of that?" kind of brilliance that (like Rails) represents something which everybody needed -- and which anybody could have created -- a long, long time before the inventor actually made it happen. Thus, this product is noteworthy (heh) not just because if you know what it's for, you want one, guaranteed, but also because this is a Post-It Note type "why didn't I think of that?" product made out of actual Post-It Notes, making it &lt;b&gt;&lt;i&gt;a recursive Post-It Note&lt;/i&gt;&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.uistencils.com/collections/frontpage/products/browser-sticky-pad"&gt;Go, UI Stencils, go!&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-8679542539151037582?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/8679542539151037582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/8679542539151037582'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/12/fuck-yeah-browser-sticky-pads.html' title='Fuck Yeah, Browser Sticky Pads'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-3965220234432181236</id><published>2011-12-05T14:18:00.001-08:00</published><updated>2011-12-05T17:13:52.694-08:00</updated><title type='text'>Why Is CSS Not Object-Oriented?</title><content type='html'>There's a brilliant but unreadable book called &lt;a href="https://www.amazon.com/dp/1590598040/ref=as_li_ss_til?tag=gilebowk-20&amp;camp=0&amp;creative=0&amp;linkCode=as4&amp;creativeASIN=1590598040&amp;adid=0JFV5SJMAXWATE5JJCEM&amp;" style="font-style: italic;"&gt;Pro CSS And HTML Design Patterns&lt;/a&gt; which attempts to analyze CSS and HTML and isolate design patterns, like &lt;a href="https://www.amazon.com/dp/0201633612/ref=as_li_ss_til?tag=gilebowk-20&amp;camp=0&amp;creative=0&amp;linkCode=as4&amp;creativeASIN=0201633612&amp;adid=18N37QDE2RYYDY8E0S6J&amp;"&gt;the OOP classic&lt;/a&gt;. It fails and it succeeds. The author does identify commonalities and unifying principles within CSS, but these don't really qualify as "design patterns" as they don't have cohesive characteristics or nameable identities. In OO design, it's easy to understand what the Singleton pattern represents -- it's a single thing, instead of one of many. Nothing so comprehensible exists in this book.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/kss_120511/pro-css-html-design-patterns.jpg"&gt;&lt;br /&gt;&lt;br /&gt;I highly recommend this book, but as a mountain to climb, not as a silver bullet. The attempt to treat CSS and HTML like object-oriented software fails, because the DOM is just one massive object whose design cannot be changed, and CSS is not object-oriented at all. It is an incredibly coarse, brittle query language combined with an unimaginably complex set of decorating notations. Object-oriented CSS would be awesome, but faces tough questions. Which is the fundamental unit of CSS: a rule? a cohesive visual element on the page? the DOM tree a rule applies to?&lt;br /&gt;&lt;br /&gt;CSS maps a tree of style rules to a tree of DOM objects. These mappings falter and frustrate, because mapping a tree to another tree is no task for human minds -- it's the whole reason compilers were invented -- but they also represent a tremendous improvement over the pre-CSS model, wherein a tag conveyed both styling and semantics.&lt;br /&gt;&lt;br /&gt;This suggests an evolution, in which CSS compilers should ultimately exist, and indeed, some already do -- e.g., Front Page and Dreamweaver -- but they suck beyond belief, and the open source avenues to this destination are still very young.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://warpspire.com/posts/kss/"&gt;Kyle Neath created a cool project called KSS&lt;/a&gt; which addresses the confusion CSS always creates. It's a simple and powerful system for documenting CSS. I think it's a step in the right direction, like Sass, but I also think that the world will be a much better place when we finally get CSS compilers built for grownups -- by which I mean people who could write the output code themselves, but have better things to do, like the intended user base for Rails generators or CoffeeScript.&lt;br /&gt;&lt;br /&gt;KSS uses cohesive visual elements on the page as its idea of the fundamental unit of CSS:&lt;br /&gt;&lt;br /&gt;&lt;a href="https://github.com/kneath/kss/blob/master/SPEC.md" style="font-style: italic;"&gt;You should document a rule declaration when the rule can accurately describe a visual UI element in the styleguide. Each element should have one documentation block describing that particular UI element's various states.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;That sounds &lt;b&gt;&lt;i&gt;very&lt;/b&gt;&lt;/i&gt; object-oriented to me. The end result looks like this:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/kss_120511/styleguide-thumb.png"&gt;&lt;br /&gt;&lt;br /&gt;In keeping with this philosophy, KSS allows you to document an implicit object hierarchy with your section numbering:&lt;br /&gt;&lt;br /&gt;&lt;a href="https://github.com/kneath/kss/blob/master/SPEC.md" style="font-style: italic;"&gt;KSS documentation is hierarchical in nature — any documentation blocks at [any point within the] styleguide hierarchy apply to the documentation blocks [beneath] that level. This means that documentation for 2.1 applies to documentation for 2.1.3.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For instance, you can cover "Buttons" in section 2.1, "Login Buttons" in section 2.1.1, and "Navigation Buttons" in section 2.1.2. &lt;br /&gt;&lt;br /&gt;I plan to retrofit an old project with KSS in the next few days, firstly to get a better feel for it and secondly because I'm very curious if it helps me uncover an implicit object hierarchy which is already there in the code. I'll blog about it some more if I find out anything interesting.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-3965220234432181236?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/3965220234432181236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/3965220234432181236'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/12/why-is-css-not-object-oriented.html' title='Why Is CSS Not Object-Oriented?'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-8719883655835816428</id><published>2011-12-03T20:43:00.000-08:00</published><updated>2011-12-03T20:43:53.583-08:00</updated><title type='text'>My Plan For Uncollapse: Drums</title><content type='html'>&lt;iframe width="640" height="360" src="http://www.youtube.com/embed/K2N3MpWWbXA" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;span style="font-size: 0.7em; font-style: italic;"&gt;Me drumming. I just bought these so I'm still new at this.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In the final months of 2009, I blogged a giant ironic rant against blogging called &lt;a href="http://gilesbowkett.blogspot.com/2009/12/blogs-are-godless-communist-bullshit.html"&gt;Blogs Are Godless Communist Bullshit&lt;/a&gt; (the title being a &lt;a href="http://www.penny-arcade.com/comic/2008/1/16/"&gt;Penny Arcade reference&lt;/a&gt;). In it, I announced I had finished ranting about Hacker News -- &lt;a href="http://gilesbowkett.blogspot.com/2011/11/why-i-cant-rant-about-hacker-news-as.html"&gt;how I wish that had proved true&lt;/a&gt; -- and was ready instead to flood the world with information products and coaching services.&lt;br /&gt;&lt;br /&gt;That part proved completely true. At the very tail end of 2009 and through most of 2010, the only thing I did for a living was sell videos and coaching services on my blog (and a little bit of affiliate marketing here and there). It worked beautifully. All my life I've wanted to work for myself. But after a while, it didn't work so well, and then it didn't work at all.&lt;br /&gt;&lt;br /&gt;Part of the collapse was easy to explain. The quality of my work slipped. People stopped buying my stuff because my stuff stopped being awesome. My stuff stopped being awesome because I stopped being motivated to make awesome stuff.&lt;br /&gt;&lt;br /&gt;But it wasn't just that the quality of my material slipped. I also eased up on my sales of stuff which people already wanted and which people were already telling each other was awesome. I even stopped doing dumb affiliate marketing things which worked whether the quality was good or not. And pretty soon I had to go and get a job just like anybody else.&lt;br /&gt;&lt;br /&gt;What happened?&lt;br /&gt;&lt;br /&gt;Until very recently I've blamed my &lt;a href="http://en.wikipedia.org/wiki/Cannabis_in_California#Medical_marijuana"&gt;"medical" marijuana card&lt;/a&gt; and the unpleasant social isolation of working from home on your own projects -- and these certainly didn't help -- but now I have a new theory, because I've noticed something. Right around the beginning of 2010, I started a new acting class. This past summer, I stopped taking that class, and gradually, ever since then, many things in my life have gotten better.&lt;br /&gt;&lt;br /&gt;I started making real money again, I fixed up my apartment a little, I bought two prints by &lt;a href="http://instagr.am/p/VOL20/"&gt;Takashi&lt;/a&gt; &lt;a href="http://instagr.am/p/XNALq/"&gt;Murakami&lt;/a&gt; and a MIDI drum set -- things I've wanted for decades -- and most importantly of all, I started eating well again.&lt;br /&gt;&lt;br /&gt;Eating well is life or death for me. I have severe heart disease, which already posed a serious threat to my life by the time I was 33, so in 2009 I transformed the way I eat, taking on a very unusual, very strict, nutrient-dense vegan diet, which dropped my cholesterol by 100 points in two months -- an improvement which normally takes people ten years -- and also brought my weight down by 82 pounds within six months. I kept that weight off for a year, but by mid-2010 I had started eating meat, bread, and oils again, and today I only weigh about 10 pounds less than I did in 2008. That's very dangerous for me. It's not cool at all. From mid-2010 onward, I gained weight, and the weight gain finally slowed when I started eating right again, which happened shortly after I left this acting class.&lt;br /&gt;&lt;br /&gt;So I'm wondering what the deal was with this class. It didn't seem that bad at the time. In fact, I worked hard and felt I was doing well.&lt;br /&gt;&lt;br /&gt;Different acting coaches pursue a wide range of strategies and subscribe to a wide variety of philosophies. This is intrinsic, because acting is an extremely subjective art form. To be fair to my acting coach, she warned us often that her class was a bit like the opposite of therapy. Her technique in some ways resembled finding the weakest elements of your own psychology and stressing those weak elements to see what would break.&lt;br /&gt;&lt;br /&gt;My audience is mostly programmers. If more actors read this blog I would definitely use different terms. I'm not naming the acting coach in question here, not just because I think it would be very undignified and wildly inappropriate, but also because, if you are an actor, you want to understand that what I just said about her technique is a wild overgeneralization made for the purpose of communicating to people who are mostly not actors. (If you &lt;i&gt;are&lt;/i&gt; an actor, we're talking about a somewhat dark variation on Meisner, although that also is an overgeneralization.) Anyway, there's definitely enough truth in the generalization to get my point across; this coach's technique involved emotional and psychological risk.&lt;br /&gt;&lt;br /&gt;This approach to acting is not the one I would recommend today, or at least not the primary one. &lt;a href="http://www.amazon.com/Book-Acting-Improvisation-Professional-Television/dp/1879505606"&gt;My favorite acting training is Stephen Book's curriculum&lt;/a&gt;, because it uses &lt;a href="http://en.wikipedia.org/wiki/Practice_(learning_method)#Deliberate_practice"&gt;deliberate practice&lt;/a&gt; in the purest sense, and my second favorite is Ivana Chubbuck's studio, because although I don't entirely agree with her philosophy, the work ethic and discipline she cultivates are phenomenal, making it an incredibly focused, purposeful, and energetic place to study.&lt;br /&gt;&lt;br /&gt;However, although the class I'm talking about here -- the one I left this summer -- ran somewhat counter to my own philosophies, I took it because I saw good acting in the class and because it pushed me and challenged me to develop my immediacy and sincerity as an actor. I'm glad I did that, and in fact I would even do it all over again, but given how many things in my life have started to improve since I left, I can't shake the suspicion that I paid a pretty hefty price for it.&lt;br /&gt;&lt;br /&gt;A stark contrast with Ivana Chubbuck's studio illuminates the power of &lt;a href="http://www.nytimes.com/2009/09/13/magazine/13contagion-t.html?pagewanted=all"&gt;peer pressure effects&lt;/a&gt;. A couple years ago, I stopped taking classes at Ivana Chubbuck Studio after maybe a year of studying there, and I immediately published seven new open source projects in one month because the discipline and work ethic which her studio fosters still had a lot of momentum inside me. I was used to running at a frenetic pace in an actor hamster wheel, so when I switched my attention back to writing code, I did it at the same breakneck pace. After I had been away for a while, the peer pressure effect wore off, but if I look at these classes in terms of their side effects, the psychologically risky class looks very destructive, while the Chubbuck classes look very beneficial.&lt;br /&gt;&lt;br /&gt;Unfortunately, I can't actually say for sure how they affected my acting, because I have videos from one class but not the other; because of the inherent subjectivity of the art form; and because I still have &lt;a href="http://www.imdb.com/name/nm2974957/"&gt;virtually no career to speak of as an actor&lt;/a&gt;. (I have plans for that in 2012, but that's material for another blog post, or more likely a whole ongoing series.) It would make a simpler story if I were to say that the psychologically risky class gave me crappy training, but it didn't. Both classes I'm describing here were excellent.&lt;br /&gt;&lt;br /&gt;Anyway, with respect to the collapse of my entrepreneurial independence and vegan diet, I've been wanting to blog about how I'm going to get back on track ever since I started going off track, but I held off because I really had no idea what the answer would be, and &lt;a href="http://www.amazon.com/Good-Strategy-Bad-Difference-Matters/dp/0307886239"&gt;there's no sense making a prescription before you've got a diagnosis&lt;/a&gt;. Now that I've been away from that class for a little while, however, everything's starting to improve, which means I have a diagnosis and can formulate a prescription.&lt;br /&gt;&lt;br /&gt;The most important difference is I'm done with that psychologically risky acting class. I plan to use Stephen Book's work to create a system of deliberate practice for myself, and I plan to return to Ivana Chubbuck's studio for the beneficial side effects. Also, since social media's been very useful for me in the past, my deliberate practice system for acting will probably involve posting videos on a regular schedule. I did something similar for music a couple years ago; it worked very well and is probably coming back in the very near future also.&lt;br /&gt;&lt;br /&gt;However, this is not precisely a plan for getting back on track per se, because I haven't gotten into the business side of things yet, and because there are two elements of my &lt;i&gt;successes&lt;/i&gt; in 2010 which I don't want to repeat, although I'm completely happy with them in context.&lt;br /&gt;&lt;br /&gt;The first is that I got a bit obnoxious with social media marketing. A few years ago, my blog used to very often be the number one link on Hacker News or Reddit (more accurately, the programming subreddit). In all that time, I never once submitted links to my own blog to either one of those sites, or asked anybody to upvote anything. But in 2010 I made money when people clicked my links, and it changed my approach. I became quite sales-y online as a result. I probably will bring some of that back, but not quite so much of it.&lt;br /&gt;&lt;br /&gt;The second aspect I won't be resurrecting is &lt;b&gt;&lt;i&gt;deliberate flimsiness&lt;/b&gt;&lt;/i&gt;. &lt;a href="http://gilesbowkett.blogspot.com/2009/12/no-new-languages-in-2010-new-businesses.html"&gt;For 2010, I set out to launch a new mini-business every month&lt;/a&gt;. I didn't hit that target, not even close, but it was a useful goal all the same, because, in the process of chasing it, I created minimal practical implementations of several different business models, and many of them worked out all right. This was a pretty deliberate thing, and the whole time, I prioritized practical exploration of new business models over contuining the momentum of existing successes. &lt;a href="http://unicornfree.com/2011/success-the-boring-way/"&gt;This is a terrible way to run a business&lt;/a&gt;, but it's a great way to rapidly learn and explore several different business models, which is exactly what I wanted to do, and exactly what I did. I can now say I'm pretty comfortable building a variety of very small businesses.&lt;br /&gt;&lt;br /&gt;Which I plan to do in 2012. But it won't be a new business every month; it might not even be a new product every month. Similar to the monthly "build a new business" experiment, &lt;a href="http://gilesbowkett.blogspot.com/2008/12/no-new-language-in-2009-new-habits.html"&gt;in 2009, I set out to build a new mini-app every month&lt;/a&gt;. Again, I only shipped mini-apps &lt;i&gt;some&lt;/i&gt; months, but it helped me develop the habit of shipping things, which was the real goal. Both years, these "new X every month" things were deliberate practice exercises to hone my ability to launch apps and make money on the Internet. But I didn't do one in 2011, and in 2012, it's a pretty safe bet that I'll stick by the things I create, if they make me money. You can't say "a new app every month" unless you free yourself from the responsibility of &lt;i&gt;maintaining&lt;/i&gt; those miniapps, and the same is true for businesses, but "a new business every month" is actually a much less useful business goal than "start making money and continue making money."&lt;br /&gt;&lt;br /&gt;You may wonder where the acting went in all this business stuff. It remains a priority. My acting, and my music, go in the morning; code and entrepreneurship go in the afternoon. I've been reading Cal Newport's blog and books, and &lt;a href="http://calnewport.com/blog/2011/11/11/if-youre-busy-youre-doing-something-wrong-the-surprisingly-relaxed-lives-of-elite-achievers/"&gt;regularly scheduled sessions of intense focus&lt;/a&gt; are a major theme. Variation is inevitable, especially if I ever get off my butt and start going to auditions, but systems are a must.&lt;br /&gt;&lt;br /&gt;Music and acting go in the morning for three reasons: first, some research I read somewhere indicates that morning sessions of deliberate practice are slightly more effective, on average, than afternoon sessions. Second, if I set myself a strict schedule, I'm more likely to meet that strict schedule if "drums at 9am" is my first task every day. (In fact, this morning, I had gotten in a good half-hour of hard work on the drums by 7am.) Third, it's a simple way to affirm my priorities. I enjoy writing code, and I'm grateful to be good at it in a decimated economy where it's basically the only profitable business still remaining, but I'm determined to do some professional-level work in both acting &lt;i&gt;and&lt;/i&gt; music in 2012.&lt;br /&gt;&lt;br /&gt;My music deliberate practice so far consists only of drums. I bought a MIDI drum kit a few weeks ago, and began doing deliberate practice on the drums every morning at around 9 or 10 am. The minimum time's been a half-hour and the max an hour. I work on timing, velocity, and coordination, and a small assortment of simple beats. I may blog more about that later.&lt;br /&gt;&lt;br /&gt;I'm using this habit to bring back my &lt;a href="http://gilesbowkett.blogspot.com/2010/02/calendar-win-rapid-course-correction.html"&gt;habit&lt;/a&gt; &lt;a href="http://gilesbowkett.blogspot.com/2009/11/time-management-two-pics-two-books-one.html"&gt;calendar&lt;/a&gt; system, but I haven't begun tracking the habits yet. The habit calendar worked beautifully in 2009 and the first half of 2010, but fell apart like everything else in the fall of 2010. When I was on top of the world with my habit calendar, I had four different calendars tracking many different habits on both daily and weekly cycles. When people asked me how they could do the same thing, I advised them &lt;b&gt;&lt;i&gt;not&lt;/b&gt;&lt;/i&gt; to leap in with a system of that complexity, but instead to choose &lt;i&gt;just one thing&lt;/i&gt; they could seriously commit to doing every day. I've been holding off on even starting my calendar system back up again at all, because I wanted to be sure that drumming could serve that purpose, but I'm satisfied now that it can.&lt;br /&gt;&lt;br /&gt;This is, in fact, how I got started with the calendar system initially -- by using it to track my faithfulness to my goal of &lt;a href="http://twitter.com/djgoatboy"&gt;creating and tweeting one new mp3 every single day in 2009&lt;/a&gt;. I believe that also may come back, but my primary goal with the daily habits thing is to re-establish a bedrock daily habit which is firm enough to serve as the foundation for an entire habit calendar. I'm also likely to layer on an acting daily practice piece soon, but again, that's enough for an entire blog post (or series) of its own.&lt;br /&gt;&lt;br /&gt;One more thing about the drums, though. Somewhere in a New Mexico storage unit, I have a dusty pair of drumsticks and a &lt;a href="http://www.rolandus.com/products/productdetails.php?ProductId=479"&gt;digital practice pad&lt;/a&gt;, which I used years ago to practice drum rudiments, e.g., &lt;a href="http://en.wikipedia.org/wiki/Drum_rudiment#Diddle_rudiments"&gt;paradiddles&lt;/a&gt;. Obviously, spending that time on the basics back then made it easier for me to pick up the drums these past few weeks. But I bought them for another reason. At the time, I had just read the book &lt;a href="https://www.amazon.com/dp/0061339202/ref=as_li_ss_til?tag=gilebowk-20&amp;camp=0&amp;creative=0&amp;linkCode=as4&amp;creativeASIN=0061339202&amp;adid=0SXCREB0N9NST6ST4NFW&amp;"&gt;&lt;i&gt;Flow&lt;/i&gt;, by Mihaly Csikszentmihalyi&lt;/a&gt;, which resulted from his research into happy people and what they have in common.&lt;br /&gt;&lt;br /&gt;The basic lesson of &lt;i&gt;Flow&lt;/i&gt; is that happiness is a nearly inevitable consequence when you frequently perform some action which requires intense concentration, and which rewards that concentration with gradual progress according to objective, measurable results. (It's one of the reasons TDD makes developers happy.) A very, very wide range of activities qualifies; I chose learning drum rudiments. I had in fact been wrestling with depression not long before this happened, and although that was basically over anyway when the drum rudiments thing began, I do believe I became a happier person afterwards.&lt;br /&gt;&lt;br /&gt;This is why drumming becomes the bedrock habit. Not only is being a happy person a pretty logical goal in its own right, but when I look back on this acting class and the effect it appears to have had on me, it worries me a bit. Suffering for your art is lame, and in my case it doesn't even make sense. I can write code, &lt;a href="http://gilesbowkett.blogspot.com/2011/12/tech-trance-track-shifting-bells.html"&gt;I can make music&lt;/a&gt;, and I can DJ. I could have plenty of money and a very fun life without all this acting stuff, and when an art form consists, to some degree, of your own psychology -- which is certainly how this particular mode of acting worked -- you're looking at risks so intense that operating without a risk mitigation strategy would be ludicrous. In future, I plan to use different acting techniques, ones which minimize psychological risk and maximize the benefits of deliberate practice, but under the circumstances, in the context of the risks acting can involve, I think it's very wise to have a psychological insurance policy.&lt;br /&gt;&lt;br /&gt;Perhaps even more importantly, the isolation factor I mentioned earlier -- working from home, on your own products, which you create and market single-handedly -- can have a tremendous negative effect on your discipline. It's just so easy to give yourself "another five minutes" to play video games. But being your own boss means you have to be disciplined.&lt;br /&gt;&lt;br /&gt;It's even possible that this, and not the psychological risk-taking, was the real downside of that acting class I took. This acting coach permitted very lax discipline. At Ivana Chubbuck's studio, if you're five minutes late, you're locked out of the building. No kidding, no fucking around. You can finally get in when the class takes a break, but that might not be until a full hour after your five-minute-late arrival. This other class frequently started late, I think once as much as an hour late. I got away with not memorizing my lines at that class, which, at Chubbuck, would probably have gotten me disemboweled with a ninja sword.&lt;br /&gt;&lt;br /&gt;Correlation is not causation, of course, but my troubles began about six months into the class and started resolving themselves about a month after I left it -- and both my main trouble spots derived from discipline fail. My first problem was lapsing in my extremely strict vegan diet, and my second problem was smoking weed on a Tuesday at 2pm when I should have been making new products, marketing the ones I already had, and automating as much of the business as possible. In either case, discipline fail.&lt;br /&gt;&lt;br /&gt;I think acting coaches who forego discipline may not be doing their students any favors. Peer pressure effects are powerful; I was in there for 6 hours at a time, multiple days per week; and it's possible this environment cost me my business. Even if that &lt;i&gt;isn't&lt;/i&gt; the case -- and it might not be -- discipline is crucial for performing artists of every stripe, and something I personally prefer in an acting coach and/or class.&lt;br /&gt;&lt;br /&gt;Wherever the blame lies, being a solo entrepreneur requires discipline, so my options are basically cultivate much better discipline, go back to working for other people, or hire some disciplined employees. I would love to be in a position to hire employees someday, but I'm not right now, I hear they're not easy to find anyway, and I want to work for myself in 2012 like I did in 2010. Musical instruments are a terrific and time-honored way to cultivate discipline, so that's what I'm going to do.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/drums_111811/insta.jpg"&gt;&lt;br /&gt;&lt;br /&gt;Plus, drums are just &lt;a href="http://oglaf.com/labyrinth/"&gt;awesome&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-8719883655835816428?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/8719883655835816428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/8719883655835816428'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/12/my-plan-for-uncollapse-drums.html' title='My Plan For Uncollapse: Drums'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/K2N3MpWWbXA/default.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-862959958016112208</id><published>2011-12-03T16:57:00.000-08:00</published><updated>2011-12-03T17:41:26.174-08:00</updated><title type='text'>Four Books On Drumming</title><content type='html'>I got four books on drumming which I'm pretty excited about: two on fundamental skills and techniques, two on the specific types of music I'm most interested in. &lt;a href="http://www.amazon.com/Stick-Control-George-Lawrence-Stone/dp/1892764040" style="font-style: italic;"&gt;Stick Control&lt;/a&gt; seems to be a time-honored classic on snare drum rudiments, and &lt;a href="http://www.amazon.com/Mastering-Tables-Time-David-Stanoch/dp/0739064371/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1322960373&amp;sr=1-1" style="font-style: italic;"&gt;Mastering The Tables Of Time&lt;/a&gt; had a terrific review:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;the buzz is strong inside drum circles that this book is the "Stick Control" of the future, so I took the plunge and indeed, it was a revelation!&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Meanwhile, &lt;a href="http://www.amazon.com/Jungle-Drum-Bass-Applying-Electronic/dp/0757990258" style="font-style: italic;"&gt;Jungle/Drum &amp; Bass For The Acoustic Drum Set&lt;/a&gt; addresses the specific rhythms of my favorite form of electronic music, and &lt;a href="http://www.amazon.com/Breakbeat-Bible-Mike-Adamo/dp/1423496337" style="font-style: italic;"&gt;The Breakbeat Bible&lt;/a&gt; aims at a comprehensive overview of breakbeats, including hip-hop, soul, drum &amp; bass, acid breaks, and even a chapter on dubstep. Both these books falter a little bit -- one of them calls &lt;a href="http://www.youtube.com/watch?v=x8u7MNG-ug8"&gt;Goldie&lt;/a&gt; "DJ Goldie" and the other calls him "Goldi" -- but both feature transcriptions of real, credible work from people like &lt;a href="http://www.youtube.com/watch?v=myZU2DZoD9w"&gt;Caspa&lt;/a&gt;, &lt;a href="http://www.youtube.com/watch?v=i2DMmgn8IB4"&gt;Rusko&lt;/a&gt;, &lt;a href="http://www.youtube.com/watch?v=bYHE4HtWgTM"&gt;PFM&lt;/a&gt; and &lt;a href="http://www.youtube.com/watch?v=ixL_jmGRDXY"&gt;Origin Unknown&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-862959958016112208?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/862959958016112208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/862959958016112208'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/12/four-books-on-drumming.html' title='Four Books On Drumming'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-8832081937477830348</id><published>2011-12-02T17:03:00.000-08:00</published><updated>2011-12-02T17:25:09.194-08:00</updated><title type='text'>Tech-Trance Track: Shifting Bells</title><content type='html'>I &lt;a href="http://twitter.com/#!/djgoatboy/status/110040275996508161"&gt;tweeted this&lt;/a&gt; when I first created it, on September 1st of this year, but I want to blog a few notes about it. A &lt;a href="http://www.amazon.com/Unlocking-Groove-Musical-Electronic-Profiles/dp/0253218047"&gt;book&lt;/a&gt; by &lt;a href="http://www.music.northwestern.edu/faculty/profiles/mark-butler.html"&gt;Mark&lt;/a&gt; &lt;a href="http://www.americanacademy.de/home/fellows/current-fellows/person///mark_butler/266/detail/"&gt;Butler&lt;/a&gt; prompted me to put together an experiment in shifting grooves back and forth across the beat. The rest of the track formed around that experiment.&lt;br /&gt;&lt;br /&gt;To explain, Butler's book (&lt;a href="http://www.amazon.com/Dance-Music-Manual-Second-techniques/dp/0240521072"&gt;among others&lt;/a&gt;) explains how the juxtaposition of groove and meter forms a major element in techno. (In &lt;a href="http://en.wikipedia.org/wiki/Techno"&gt;the precise sense of the term&lt;/a&gt;.) Say you have the same rhythm, which mechanically repeats a hundred times, but in some repetitions lands ahead of the beat, in some repetitions lands behind the beat, and in very few repetitions actually lands on the beat. Some techno works by taking repetitive elements like that, stacking them in layers, and then moving them back and forth across the beat at various speeds, so that although every groove repeats with inhuman mechanical precision, the aggregate groove composed of all the stacked layers never repeats itself &lt;b&gt;&lt;i&gt;exactly&lt;/b&gt;&lt;/i&gt; and the variations therein give the machine sounds &lt;a href="http://createdigitalmusic.com/2011/11/what-really-makes-rhythms-human-new-research-investigates-perception-preference-tech/"&gt;an ultimately human feel&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Butler is a professor of music theory and his book's pretty deep. In &lt;a href="http://s3.amazonaws.com/giles/djgoatboy_080711/tek_morphs.mp3"&gt;this track&lt;/a&gt;, I actually only use that approach for one part, because I after I got started, I kind of got distracted and made something else out of it. I didn't achieve the textured forest of metric juxtapositions Butler describes in his book, but I like the way it sounds anyway. If you listen to the bells, they shift throughout the track both in terms of their texture and in terms of their timing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-8832081937477830348?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/8832081937477830348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/8832081937477830348'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/12/tech-trance-track-shifting-bells.html' title='Tech-Trance Track: Shifting Bells'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-4900900603832272937</id><published>2011-11-30T22:06:00.001-08:00</published><updated>2011-11-30T22:10:16.627-08:00</updated><title type='text'>Ruby DMX</title><content type='html'>&lt;a href="https://github.com/heisters/rdmx"&gt;This code&lt;/a&gt; can probably control &lt;a href="http://www.sweetwater.com/store/detail/Revo4/"&gt;this device&lt;/a&gt; over &lt;a href="http://www.amazon.com/Chauvet-Xpress-100-XPRESS/dp/B003HD4VAM"&gt;this wire&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-4900900603832272937?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/4900900603832272937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/4900900603832272937'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/11/ruby-dmx.html' title='Ruby DMX'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-7692951591831253849</id><published>2011-11-30T16:58:00.000-08:00</published><updated>2011-11-30T17:00:18.601-08:00</updated><title type='text'>Disco Invasion</title><content type='html'>&lt;iframe src="http://player.vimeo.com/video/30533362?title=0&amp;amp;byline=0&amp;amp;portrait=0" width="601" height="338" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;via &lt;a href="http://createdigitalmotion.com/2011/10/epic-space-invader-audiovisual-installation-a-profile-in-madmapping/"&gt;create digital motion&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-7692951591831253849?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/7692951591831253849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/7692951591831253849'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/11/disco-invasion.html' title='Disco Invasion'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-7273195224375881822</id><published>2011-11-21T14:36:00.000-08:00</published><updated>2011-11-21T14:39:42.052-08:00</updated><title type='text'>Exciting Control Surfaces via Create Digital Music</title><content type='html'>&lt;iframe src="http://player.vimeo.com/video/32096487?title=0&amp;amp;byline=0&amp;amp;portrait=0&amp;amp;color=C06838" width="640" height="360" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://createdigitalmusic.com/2011/11/subcycle-insanely-futuristic-3d-music-interface-reaches-new-levels-of-pattern-and-sound/"&gt;subcycle&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe frameborder="0" height="410px" src="http://www.kickstarter.com/projects/kmi/quneo-multi-touch-open-source-midi-and-usb-pad-con/widget/video.html" width="480px"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://createdigitalmusic.com/2011/11/quneo-trades-tablets-for-discrete-pressure-sensitive-colorful-sensors-in-crowd-sourced-touch-project/"&gt;quneo&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-7273195224375881822?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/7273195224375881822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/7273195224375881822'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/11/exciting-control-surfaces-via-create.html' title='Exciting Control Surfaces via Create Digital Music'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-6756224309936820722</id><published>2011-11-21T08:39:00.000-08:00</published><updated>2011-11-21T08:44:33.829-08:00</updated><title type='text'>Imitation Is The Sincerest Form Of Flattery</title><content type='html'>This sure looks mighty familiar:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://hackernewspaper.com/"&gt;&lt;img src="http://s3.amazonaws.com/giles/flatterer_112111/ipad.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;...because I created it first:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://hacker-newspaper.gilesb.com/"&gt;&lt;img src="http://s3.amazonaws.com/giles/newspaper_041309/headlines.gif"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://gilesbowkett.blogspot.com/2009/04/miniapp-hacker-newspaper.html"&gt;I created it in 2009&lt;/a&gt;. &lt;a href="http://mashable.com/2010/12/01/improve-hacker-news-ui/"&gt;It got a mention on Mashable&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you feel so inclined, please &lt;a href="http://news.ycombinator.com/item?id=3261361"&gt;comment on the thread at Hacker News&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-6756224309936820722?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/6756224309936820722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/6756224309936820722'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/11/imitation-is-sincerest-form-of-flattery.html' title='Imitation Is The Sincerest Form Of Flattery'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-4595053209828520005</id><published>2011-11-20T23:39:00.000-08:00</published><updated>2011-11-20T23:41:07.453-08:00</updated><title type='text'>Icelandic 99% Internet Revolution Exaggerated</title><content type='html'>The post I linked to a few days ago concerning Iceland's "jail the bankers" hero status &lt;a href="http://grapevine.is/Features/ReadArticle/A-Deconstruction-of-Icelands-Ongoing-Revolution"&gt;contained numerous errors&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-4595053209828520005?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/4595053209828520005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/4595053209828520005'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/11/icelandic-99-internet-revolution.html' title='Icelandic 99% Internet Revolution Exaggerated'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-2876454410965100403</id><published>2011-11-19T22:27:00.000-08:00</published><updated>2011-11-19T22:29:00.014-08:00</updated><title type='text'>Shepard Fairey Remixes His Own "Hope" Poster</title><content type='html'>&lt;a href="http://blogs.laweekly.com/informer/2011/11/shepard_fairey_designs_occupy.php"&gt;&lt;img src="http://s3.amazonaws.com/giles/hope_111911/update.gif"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-2876454410965100403?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/2876454410965100403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/2876454410965100403'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/11/shepard-fairey-remixes-his-own-hope.html' title='Shepard Fairey Remixes His Own &quot;Hope&quot; Poster'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-1481499808551797649</id><published>2011-11-19T17:09:00.000-08:00</published><updated>2011-11-19T17:10:23.686-08:00</updated><title type='text'>Take The UC Davis Police Customer Satisfaction Survey!</title><content type='html'>&lt;a href="http://police.ucdavis.edu/other/customer-satisfaction-survey"&gt;&lt;img src="http://s3.amazonaws.com/giles/satisfaction_111911/service.gif"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-1481499808551797649?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/1481499808551797649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/1481499808551797649'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/11/take-uc-davis-police-customer.html' title='Take The UC Davis Police Customer Satisfaction Survey!'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-5685894847757331284</id><published>2011-11-19T11:13:00.001-08:00</published><updated>2011-11-20T23:38:59.288-08:00</updated><title type='text'>Iceland Prosecutes Bankers, Drafts New Constitution On Internet, News Media Ignores Whole Thing</title><content type='html'>&lt;b&gt;&lt;i&gt;Update:&lt;/b&gt;&lt;/i&gt; &lt;a href="http://grapevine.is/Features/ReadArticle/A-Deconstruction-of-Icelands-Ongoing-Revolution"&gt;Icelandic publication cites numerous errors&lt;/a&gt; in the story I linked to here.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bellacaledonia.org.uk/2011/08/25/why-iceland-shold-be-in-the-news-but-is-not/" style="font-style: italic;"&gt;Americans may remember that at the start of the 2008 financial crisis, Iceland literally went bankrupt. The reasons were mentioned only in passing, and since then, this little-known member of the European Union fell back into oblivion...&lt;br /&gt;&lt;br /&gt;Five years of a pure neo-liberal regime had made Iceland, (population 320 thousand, no army), one of the richest countries in the world. In 2003 all the country’s banks were privatized... In 2003 Iceland’s debt was equal to 200 times its GNP, but in 2007, it was 900 percent. The 2008 world financial crisis was the coup de grace. The three main Icelandic banks, Landbanki, Kapthing and Glitnir, went belly up and were nationalized, while the Kroner lost 85% of its value with respect to the Euro. At the end of the year Iceland declared bankruptcy...&lt;br /&gt;&lt;br /&gt;Protests and riots continued, eventually forcing the government to resign. Elections were brought forward to April 2009, resulting in a left-wing coalition which condemned the neoliberal economic system, but immediately gave in to its demands that Iceland pay off a total of three and a half million Euros. This required each Icelandic citizen to pay 100 Euros a month (or about $130) for fifteen years, at 5.5% interest, to pay off a debt incurred by private parties vis a vis other private parties. It was the straw that broke the reindeer’s back.&lt;br /&gt;&lt;br /&gt;What happened next was extraordinary. The belief that citizens had to pay for the mistakes of a financial monopoly, that an entire nation must be taxed to pay off private debts was shattered... The Head of State, Olafur Ragnar Grimsson, refused to ratify the law that would have made Iceland’s citizens responsible for its bankers’ debts, and accepted calls for a referendum...&lt;br /&gt;&lt;br /&gt;As Grimsson said: “We were told that if we refused the international community’s conditions, we would become the Cuba of the North. But if we had accepted, we would have become the Haiti of the North.”&lt;br /&gt;&lt;br /&gt;In the March 2010 referendum, 93% voted against repayment of the debt... &lt;b&gt;With the support of a furious citizenry, the government launched civil and penal investigations into those responsible for the financial crisis. Interpol put out an international arrest warrant for the ex-president of Kaupthing, Sigurdur Einarsson, as the other bankers implicated in the crash fled the country...&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;But Icelanders didn’t stop there: they decided to draft a new constitution that would free the country from the exaggerated power of international finance and virtual money... &lt;b&gt;This document was not the work of a handful of politicians, but was written on the internet&lt;/b&gt;. The constituent’s meetings are streamed on-line, and citizens can send their comments and suggestions, witnessing the document as it takes shape.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-5685894847757331284?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/5685894847757331284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/5685894847757331284'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/11/iceland-prosecutes-bankers-drafts-new.html' title='Iceland Prosecutes Bankers, Drafts New Constitution On Internet, News Media Ignores Whole Thing'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-5655002431337057819</id><published>2011-11-18T19:11:00.001-08:00</published><updated>2011-11-22T15:55:07.326-08:00</updated><title type='text'>Thought Experiment: Live Drumming Happycore</title><content type='html'>Here's a musical experiment which simply should not ever happen, and my plan for making it happen.&lt;br /&gt;&lt;br /&gt;Happycore (aka UK hardcore) is a rave music subgenre which takes the cheesiest sounds of original late 80s / early 90s rave music and amps it up to around 200 beats per minute. It sounds like this:&lt;br /&gt;&lt;br /&gt;&lt;iframe width="640" height="480" src="http://www.youtube.com/embed/2vm7pATtv3g" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;It is easily the least respected form of music on earth.&lt;br /&gt;&lt;br /&gt;What would it take to perform happycore live, using a digital drumset? This song would make a great example:&lt;br /&gt;&lt;br /&gt;&lt;iframe width="640" height="480" src="http://www.youtube.com/embed/72WxCSwBjl0" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;The first thing you need to do is reverse the usual layout of kick and snare. Digital drums allow you to connect any sample to any drum trigger. Here's a cheesy explanation from the 1980s, when the technology was first invented:&lt;br /&gt;&lt;br /&gt;&lt;iframe width="640" height="480" src="http://www.youtube.com/embed/ZS5X_fv_8LE" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;I think it's the technology which powered the synth sounds at the climax of this incredible classic drum solo by Neal Peart of Rush:&lt;br /&gt;&lt;br /&gt;&lt;iframe width="640" height="480" src="http://www.youtube.com/embed/5TlsezUbXq0" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;And I know it's the tech which enabled Rick Allen, drummer for Def Leppard, to remap a ton of drum sounds to various pedals after he lost his entire left arm in a street racing accident.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Rick_Allen_(drummer)#Accident_and_recovery" style="font-style: italic;"&gt;Allen sat down with some engineers and started to design a drum set to assist Allen's drumming... he could still play some drum rhythms with one hand, using his left foot (typically for hi-hat pedals in common drumsets), to play the snare drum... they designed an electronic kit Allen could play using only one arm.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As you can see, it worked out just fine:&lt;br /&gt;&lt;br /&gt;&lt;iframe width="640" height="480" src="http://www.youtube.com/embed/AQ4xwmZ6zi4" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Anyway, context over. Back to the thought experiment. Again, this is the song to copy, in live-drumming format:&lt;br /&gt;&lt;br /&gt;&lt;iframe width="640" height="480" src="http://www.youtube.com/embed/72WxCSwBjl0" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;I've chosen this song because it has no lyrics, only a vocal sample, which means recreating the samples would be a lot less work; and because, even for happycore, this is a track with no artistic merit &lt;b&gt;&lt;i&gt;at all&lt;/b&gt;&lt;/i&gt;. (You could argue that it's an ironic satire on the raver stereotype, but it'd be an uphill battle.) But taking the artistic aspect out of the equation makes it really easy to approach this as a purely technical exercise. Happycore might be cheesy and awful, but performing it live with MIDI drums is a real technical challenge, especially for a dude who just bought his drums maybe a week or two ago.&lt;br /&gt;&lt;br /&gt;Step one, as I said, is to switch the usual mapping, where a kick pedal powers the bass drum (also known as a kick drum, for obvious reasons) and you hit the snare with your right hand. It's just easier the other way around, especially for me, as I'm working with a cheap drum kit which would probably fall over, or fall apart, if I hit the kick pedal four to the floor at 200 beats per minute.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/drums_111811/insta.jpg"&gt;&lt;br /&gt;&lt;br /&gt;Step two is to actually make an unusual "bass drum" sample. I think the bassline in this song only ever plays one note, and always plays it right after the bass drum. So you make your "bass drum" sample by actually recording a bass drum and a bass note which occurs an instant after the drum. You could throw the open hi-hat on top of that bass note for the same reason.&lt;br /&gt;&lt;br /&gt;For the other drum sounds, you have two options. Your first option is to simply place samples on the other drums. You could put the main melody on a tom, the &lt;a href="http://en.wikipedia.org/wiki/Synthesizer#Synth_pad"&gt;pad&lt;/a&gt; on a crash cymbal, etc., and go from there. The tricky part there is you'd have to get your drumming timing &lt;b&gt;&lt;i&gt;exactly&lt;/b&gt;&lt;/i&gt; right, because working with melodic elements as samples means cutting them up in very precise lengths.&lt;br /&gt;&lt;br /&gt;Your other option is to cheat a little and set the non-percussion elements up in Ableton Live as loops, and then go into Ableton's MIDI mapping. Find out the MIDI note and channel for the bass drum sample on the actual snare drum, or at least, on the digital drum which is set up in the snare drum's traditional position. That is to say, figure out which MIDI note gets triggered, on which MIDI channel, when you hit the snare "drum." On my crappy V-Drums Lite setup, that's channel 10 and note 38. Then set Ableton Live to receive tap tempo on that MIDI channel and note number. (This is trivial to do; Ableton permits nearly any MIDI signal to control nearly any element of its interface.) Now every time you hit the snare to trigger the bass drum, you're also triggering tap tempo, which will keep your Ableton loops in synch with your drumming.&lt;br /&gt;&lt;br /&gt;I should emphasize that this is a thought experiment, and I can't guarantee it's going to happen.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(&lt;i&gt;Update&lt;/i&gt;: OK actually when I say happycore has no artistic merit at all, I'm kinda being a hipster dickhead. There's singing and melodies and &lt;a href="http://www.youtube.com/watch?v=S1LIQUQgM-c&amp;feature=related"&gt;substantial production skills&lt;/a&gt; involved.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-5655002431337057819?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/5655002431337057819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/5655002431337057819'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/11/thought-experiment-live-drumming.html' title='Thought Experiment: Live Drumming Happycore'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/2vm7pATtv3g/default.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-5394040397698161949</id><published>2011-11-17T21:59:00.001-08:00</published><updated>2011-11-17T22:07:49.614-08:00</updated><title type='text'>Robot Journalism Will Be Here Very Soon</title><content type='html'>&lt;a href="http://thelede.blogs.nytimes.com/2011/11/17/drone-journalism-arrives/" style="font-style: italic;"&gt;Now that cellphone cameras have turned every protester with a Twitter account or a YouTube channel into a potential multimedia journalist, police officers in several American cities appear to be having trouble distinguishing between activists and reporters.&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;All of which makes it a good time to report that a Polish firm called RoboKopter scored something of a coup last week when it demonstrated that its miniature flying drone was capable of recording spectacular aerial views of a chaotic protest in Warsaw.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe width="640" height="360" src="http://www.youtube.com/embed/dce0XV4kwTM" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;I've been expecting this for a while. It's going to be an incredible pain in the ass here in Los Angeles, where paparazzi are a serious problem (frequent reckless driving in order to get pictures, etc). Kind of awesome in some other ways, though. The NYPD closed airspace above Occupy Wall Street, preventing news helicopters from capturing any footage; this was actually illegal, or at least improper, as NYPD has no airspace jurisdiction.&lt;br /&gt;&lt;br /&gt;However, the real criticism should be reserved for journalists who complied with an invalid "order," specifically CBS. You have to wonder if that would have played out differently if any news organization with an interest in a story could get its hands on a thousand-dollar (or less) helicopter/camera robot. But you won't have to wonder long, because it's only a few years away.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-5394040397698161949?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/5394040397698161949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/5394040397698161949'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/11/robot-journalism-will-be-here-very-soon.html' title='Robot Journalism Will Be Here Very Soon'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/dce0XV4kwTM/default.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-2263096375671516739</id><published>2011-11-17T18:25:00.000-08:00</published><updated>2011-11-17T18:29:12.263-08:00</updated><title type='text'>Occupy Wall Street: Projected Light Graffiti</title><content type='html'>&lt;img src="http://s3.amazonaws.com/giles/ows_111711/99.jpg"&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/ows_111711/winning.jpg"&gt;&lt;br /&gt;&lt;br /&gt;via &lt;a href="https://twitter.com/#!/jsmooth995/status/137338730485788672"&gt;jay smooth&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-2263096375671516739?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/2263096375671516739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/2263096375671516739'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/11/occupy-wall-street-projected-light.html' title='Occupy Wall Street: Projected Light Graffiti'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-5499566052477629695</id><published>2011-11-17T11:28:00.000-08:00</published><updated>2011-11-17T11:35:37.935-08:00</updated><title type='text'>HN Comment Thread Worth Reading</title><content type='html'>Well, &lt;a href="http://news.ycombinator.com/item?id=3244229"&gt;worth skimming, at least&lt;/a&gt;. In response to a &lt;a href="http://alexmaccaw.co.uk/posts/async_ui"&gt;blog post on aysnchronous Web UIs&lt;/a&gt; by the creator of Spine and, years ago, Juggernaut. (Just as Spine is basically an alternate implementation of Backbone, Juggernaut was basically an alternate implementation of the Comet solution which DHH showed at Canada on Rails in 2006 but did not open source.)&lt;br /&gt;&lt;br /&gt;Backbone creator Jeremy Ashkenas made the most worthwhile comment in my opinion:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Nice post. I'd like to briefly respond to the bit about the difference between Spine, which generates pseudo-GUIDs for models created on the client, later overwriting them if the server responds with a real id; and Backbone, which has a "cid" (client ID) for every model regardless of the canonical server ID.&lt;br /&gt;&lt;br /&gt;The reason why Backbone provides a persistent client id for the duration of every application session is so that if you need to reference model ids in your generated HTML, you always have something to hang your hat on. If I have '&amp;lt;article data-cid="c530"&amp;gt;' ... I can always look up that article, regardless of if the Ajax request to create it on the server has finished or not. With Spine's approach: '&amp;lt;article data-id="D6FD9261-A603-43F7-A1B2-5879E8C7926B"&amp;gt;' ... I'm not sure if that id is a real one, or if it's temporary, and can't be used to communicate with the server.&lt;br /&gt;&lt;br /&gt;Optimistically (asynchronously, in Alex's terms) doing client-side model logic is tricky enough in the first place, without having to worry about creating an association based off a model's temporary id. I think that having a clear line between a client-only ID and the model's canonical ID is a nice distinction to have.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Favorite links include a &lt;a href="http://vimeo.com/30976192"&gt;Spine on Rails demo video&lt;/a&gt; which has some nice convenience advantages over anything I've seen with Backbone (although I think Backbone is the way to go generally) and a set of &lt;a href="http://pastebin.com/rEZhXv1z"&gt;pros and cons for Backbone&lt;/a&gt; which is insightful despite being slightly out of date.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-5499566052477629695?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/5499566052477629695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/5499566052477629695'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/11/hn-comment-thread-worth-reading.html' title='HN Comment Thread Worth Reading'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-4898615042718245260</id><published>2011-11-17T11:20:00.000-08:00</published><updated>2011-11-17T11:22:34.164-08:00</updated><title type='text'>Roland V-Drums (Lite) Triggering Korg iElectribe on iPad 2 via Alesis IO|Dock</title><content type='html'>&lt;b&gt;Simple Demo&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe width="640" height="360" src="http://www.youtube.com/embed/D5CjKmiZ-sI" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The Setup&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe width="640" height="360" src="http://www.youtube.com/embed/wgMEsug1fNw?hd=1" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-4898615042718245260?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/4898615042718245260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/4898615042718245260'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/11/roland-v-drums-lite-triggering-korg.html' title='Roland V-Drums (Lite) Triggering Korg iElectribe on iPad 2 via Alesis IO|Dock'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/D5CjKmiZ-sI/default.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-5984533970297142899</id><published>2011-11-16T14:20:00.000-08:00</published><updated>2011-11-16T14:44:01.318-08:00</updated><title type='text'>Using Reason Fixes Roland V-Drums Lite Crappy Kick Pedal</title><content type='html'>Just a quick note, I picked up the cheapest Roland V-Drums unit out there. I want a fancier option and can afford it, but I have a kind of harsh rule about musical instruments, which is that you get the cheapest thing that can possibly work and upgrade only if you actually make good music with it. This is probably perverse of me, and has certainly had some nasty consequences with the V-Drums. The kick pedal is crappy beyond words and frequently makes the entire drum set shake, which results in misfires, but the whole reason I'm blogging about it at all is because the solution is easy. You use Reason for your drum sounds instead of the Roland "brain," which is pretty crappy. Just plug a MIDI cable into it and you're good. In Reason, it's really easy to set a velocity minimum on an individual sample in the NN-XT sampler. The purpose of this is velocity windows, and you'll use this if you want to play a different snare sample when you hit the drum hard versus when you hit the drum softly. (It's really an if, not a when.) But what's cool is the kick pedal misfires all occur at low velocity, so just set your kick sample velocity floor a little higher than normal, and you're good to go.&lt;br /&gt;&lt;br /&gt;(Velocity windows are also a useful way to train yourself to accurately modulate how hard you hit the drum. Assign completely different sounds to the top end of the velocity range and the bottom. Then do triplets and make sure you get the high end sound on the 1 and the low end sound on the 2 and the 3.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-5984533970297142899?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/5984533970297142899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/5984533970297142899'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/11/using-reason-fixes-roland-v-drums-lite.html' title='Using Reason Fixes Roland V-Drums Lite Crappy Kick Pedal'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-5165828470194845009</id><published>2011-11-15T08:50:00.000-08:00</published><updated>2011-11-20T21:33:57.311-08:00</updated><title type='text'>Beats And Peaces</title><content type='html'>The other day, a lot of people passed around &lt;a href="http://www.nytimes.com/2011/11/13/opinion/sunday/the-entrepreneurial-generation.html?_r=4&amp;ref=opinion&amp;pagewanted=all"&gt;&lt;i&gt;The Entrepreneurial Generation&lt;/i&gt;, a &lt;i&gt;New York Times&lt;/i&gt; story on entrepreneurialism as youth culture&lt;/a&gt;, but I had a hard time reading it. It starts out reasonably enough:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Ever since I moved three years ago to Portland, Ore., that hotbed of all things hipster, I’ve been trying to get a handle on today’s youth culture. The style is easy enough to describe — the skinny pants, the retro hats, the wall-to-wall tattoos. But style is superficial. The question is, what’s underneath? What idea of life? What stance with respect to the world?&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;But it all goes to shit as early as the fourth paragraph:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;The punks were all about rage, their social program nihilistic anarchy. “Get pissed,” Johnny Rotten sang. “Destroy.” &lt;b&gt;Hip-hop, punk’s younger brother, was all about rage and nihilism, too, at least until it turned to a vision of individual aggrandizement.&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;I couldn't disagree more.&lt;br /&gt;&lt;br /&gt;Consider the book &lt;i&gt;Bomb The Suburbs&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Bomb_the_Suburbs"&gt;&lt;img src="http://s3.amazonaws.com/giles/peaces_111511/bomb.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;An angry, nihilistic title if you ever saw one, right? Except "bomb" means "paint" in graffiti parlance, the author, Upski, is a graffiti artist, and the main argument of his book is that artists in the city should expand their artistic purview into new cultural environments to prevent &lt;a href="http://www.thebigsort.com/"&gt;the de facto re-segregation of America&lt;/a&gt;. This is a book which blurs the line between hippie and hip-hop as well as De La Soul or Digable Planets did.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=E3kgjzUsDeg"&gt;&lt;img src="http://s3.amazonaws.com/giles/peaces_111511/De-La-Soul-3-Feet-High-And-Rising-1989.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In &lt;i&gt;Bomb The Suburbs&lt;/i&gt;, Upski tells how his friends from the toughest neighborhoods in Chicago feared a neighborhood even tougher, one he'd never even heard of. He asked his toughest friends about it, bone fide gun-toting thugs, and they told him not to go there ever, because it was a scary place, even to them. But he said to them, look, here I am, a white kid from the suburbs, hanging out in one of the most dangerous neighborhoods in Chicago, and all my suburb friends and family told me to never come &lt;i&gt;here&lt;/i&gt;. So he ignores the advice of his tough-guy friends and goes to this legendary neighborhood, and finds the entire place given over to wilderness. He sees deer, and long grass grown tall enough to hide them, where buildings and sidewalks used to be, with the Chicago skyline visible all around in 360 degree panaroma. It's a stark moment of beauty and irony in a cheap self-published book which also contains throwaway remarks about the sheer number of people Upski met who told him that hip-hop had saved their lives.&lt;br /&gt;&lt;br /&gt;Feast your eyes on the rage and nihilism on display here:&lt;br /&gt;&lt;br /&gt;&lt;iframe width="640" height="480" src="http://www.youtube.com/embed/LRptW2IYh4Q" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;This is KRS-ONE telling the story of how using visualization helped him lift himself from homeless man to world-famous rapper.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;"Right back here, in 1980, I was homeless. I was sleeping right here. You don't realize how real this show is to me right now... While everybody else was down on Flatbush Avenue... people were walking around here aimless, nothing to do. I was over at the Brooklyn Public Library, right there... I'm not saying this for any credit to me. I'm trying to tell the young ones here tonight, and some of the adults: every night before you go to sleep, see your future. See your future. Take five minutes before you go to sleep... I used to be in that band shell right there, me and a couple other guys, sleeping... I used to say, one day, we gonna rock this park... This is so crazy, because I'm in my dreams right now. You can't even imagine what I'm going through up here. Follow your purpose, even if it seems impossible. If you know what your purpose is, you know what the universe's purpose is for you. What seems impossible to everyone else will be possible be for you."&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;To quote the NYT article again:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Hip-hop, punk’s younger brother, was all about rage and nihilism, too, at least until it turned to a vision of individual aggrandizement.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;I give the guy credit for remarking on the historical link between hip-hop and punk. That link is tiny, but interesting and often overlooked. Other than that, though, the man has no idea what he's talking about. &lt;a href="http://en.wikipedia.org/wiki/Izzo_(H.O.V.A.)"&gt;Check out these lyrics from Jay-Z, written at a time when he absolutely had no need for more fame or glory in the world of hip-hop&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;I do this for my culture&lt;br /&gt;To show them what a nigga looks like&lt;br /&gt;When a nigga in a Rollster&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;A "Rollster" is a Rolls-Royce. The video shows pictures of smiling black children when he says these words. A translation:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;I do this for my people&lt;br /&gt;Including, for instance, these children I am showing you right now&lt;br /&gt;To show them what a black person looks like&lt;br /&gt;When a black person's in a Rolls-Royce&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Rage, nihilism, and personal aggrandizement? Really? Nothing else in the equation there?&lt;br /&gt;&lt;br /&gt;&lt;iframe width="640" height="360" src="http://www.youtube.com/embed/kh4gck89uj0" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;The Entrepreneurial Generation&lt;/i&gt; gets even worse in the next paragraph:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;As for the slackers of the late ’80s and early ’90s (Generation X, grunge music, the fiction of David Foster Wallace), their affect ran to apathy and angst, a sense of aimlessness and pointlessness. Whatever. That they had no social vision was precisely what their social vision was: a defensive withdrawal from all commitment as inherently phony.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Reminds me of some hip-hop, namely &lt;a href="http://www.youtube.com/watch?v=JhqyZeUlE8U"&gt;"Sure Shot" by the Beastie Boys&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;You say I'm twenty-something and I should be slacking&lt;br /&gt;But I'm working harder than ever and you can call it macking&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;That was Mike D calling bullshit on the "slacker" meme when it was current. How something like that even survived to 2011 is a mystery, but I think you get my point. Anybody who sets out to investigate something they call "youth culture" by skipping past Jay-Z with some brisk, dismissive condescension, but approaching David Foster Wallace as gospel, is not going to be a reliable source of information. Our unreliable source of information shares with us that he used to teach at Yale, which is a great school but also the same place which graduated George W. Bush -- making it an unreliable source of graduates -- and proceeds to pontificate:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Today’s ideal social form is not the commune or the movement or even the individual creator as such; it’s the small business. Every artistic or moral aspiration -- music, food, good works, what have you -- is expressed in those terms...&lt;br /&gt;&lt;br /&gt;Forty years ago, even 20 years ago, a young person’s first thought, or even second or third thought, was certainly not to start a business. That was selling out — an idea that has rather tellingly disappeared from our vocabulary. Where did it come from, this change? Less Reaganism, as a former student suggested to me, than Clintonism — the heroic age of dot-com entrepreneurship that emerged during the Millennials’ childhood and youth. Add a distrust of large organizations, including government, as well as the sense, a legacy of the last decade, that it’s every man for himself.&lt;br /&gt;&lt;br /&gt;Because this isn’t only them. The small business is the idealized social form of our time. Our culture hero is not the artist or reformer, not the saint or scientist, but the entrepreneur. (Think of Steve Jobs, our new deity.) Autonomy, adventure, imagination: entrepreneurship comprehends all this and more for us. The characteristic art form of our age may be the business plan.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Let's get this straight. Occupy Wall Street is happening right now in New York. The authorities decided to shut it down at 2am on a Monday night with no press allowed anywhere near the event. And &lt;i&gt;The New York Times&lt;/i&gt; brings us an article about how the only thing that young people think is cool any more is starting a business, how they all distrust the government, and how they all feel that it's every man for himself.&lt;br /&gt;&lt;br /&gt;Really?&lt;br /&gt;&lt;br /&gt;Our Yale professor rambles on:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;unlike those of previous youth cultures, the hipster ethos contains no element of rebellion, rejection or dissent&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Really?&lt;br /&gt;&lt;br /&gt;&lt;iframe width="640" height="360" src="http://www.youtube.com/embed/bytMNoKNeRA" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;span style="font-size: 0.7em;"&gt;Tear gas at Occupy Oakland.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;There's something to this article, in that entrepreneurship can be a very positive force, and it is at least accurate that young people respect entrepreneurs today more than young people did in the 1960s. Other than that, however, the stink of horseshit on this one is so strong it could incinerate every last little hair in your nostrils from six miles away.&lt;br /&gt;&lt;br /&gt;One assumption this guy never exposes to analysis: &lt;i&gt;only one youth culture exists at a time&lt;/i&gt;. But before we question that one, let's get to the more basic assumption: &lt;i&gt;youth cultures exist&lt;/i&gt;. What the fuck is a youth culture? Does &lt;i&gt;anybody&lt;/i&gt;, besides magazine writers, seriously believe that Nirvana led a generation anywhere, or spoke for every person of a certain age range, whether black or white, gay or straight, conservative or liberal, rich or poor? The unfathomable diversity and complexity of a group made up of every single American born from X Year to Y Year, from the woods of Maine to the deserts of Arizona, is a lot to pin on the shoulders of a reasonably good band that made one strong album. I suspect the term "youth culture" is a myth journalists tell us about the Sixties, a phrase cooked up in the aftermath of that hectic decade to explain away its strident politics, because everything I can recall people using the term "youth culture" to describe was, in my opinion, a subculture organized around music and fashion, not age group. When I was a raver, one of my DJ friends was forty years old. In 2011, hippies still exist.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/peaces_111511/daaaaaaaaaaaaamn.jpg"&gt;&lt;br /&gt;&lt;span style="font-size: 0.7em;"&gt;And they are gooooooooood-looking.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-5165828470194845009?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/5165828470194845009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/5165828470194845009'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/11/beats-and-peaces.html' title='Beats And Peaces'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/LRptW2IYh4Q/default.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-3421826444604548365</id><published>2011-11-11T16:03:00.000-08:00</published><updated>2011-11-11T18:09:42.426-08:00</updated><title type='text'>Pinboard Popular, Based On Hacker Newspaper</title><content type='html'>&lt;a href="http://pbp.chrissterritt.com/"&gt;Chris Sterritt built a Hacker Newspaper-alike for Pinboard. Pretty awesome!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Also, a post on &lt;a href="http://blog.chrissterritt.com/2011/11/09/pinboard-popular-pages-is-live/"&gt;why he did it&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-3421826444604548365?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/3421826444604548365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/3421826444604548365'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/11/pinboard-popular-based-on-hacker.html' title='Pinboard Popular, Based On Hacker Newspaper'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-383551264086764006</id><published>2011-11-10T20:32:00.000-08:00</published><updated>2011-11-10T20:32:57.250-08:00</updated><title type='text'>Why I Can't Rant About Hacker News As Much As I Used To</title><content type='html'>The other day I disappointed myself by writing about some bullshit I read on Hacker News. Then I disappointed Peter Cooper by tweeting that I had ranted about bullshit I read on Hacker News. Apparently Peter had hoped for a rant about BS on HN in general, and felt let down when he discovered a rant which only addressed what was, in perspective, only one tiny sliver out of the vast range of available bullshit on Hacker News to rant about.&lt;br /&gt;&lt;br /&gt;My heart goes out to Peter. The disappointment was undoubtedly shattering. I imagine it must have been like being invited to tour the universe and seeing only one single meteor. So I would truly be thrilled if I could now present a gigantic, frothing rant about all the inanity and uselessness on Hacker News, but I can't. I just don't have it in me.&lt;br /&gt;&lt;br /&gt;Today I saw an artwork on eBay. I own a version of this artwork, and the asking price was $30,000. I checked into it and saw it had sold at auction at Christie's of London for £16,000, and I became very excited until I realized that the artwork on auction, both at Christie's and on eBay, was actually a much rarer &lt;i&gt;edition&lt;/i&gt; of the artwork I own, which meant that the artwork I actually own is not worth $30,000, and probably not even close to it. However, I take it as a good sign for my art investment skills, especially since I had a similar experience a couple years ago, when a piece I had nearly bought for $350 five years earlier reached a going price of $18,000.&lt;br /&gt;&lt;br /&gt;Why is this relevant? Because if I had bought the rarer edition of the artwork I saw today, or the $350 piece back when it was $350, I would have seen an absolutely incredible profit, better percentage-wise than most Y Combinator companies; and buying art is frankly a more interesting way to earn that profit than what most Y Combinator companies do; and nothing on Hacker News would have taught me a thing about it.&lt;br /&gt;&lt;br /&gt;In 2010 I launched a bunch of mini-business experiments, mostly for the hell of it, and rapidly became an independent entrepreneur. Although these businesses later faltered, and I had to return to coding for hire, all that horseshit on Hacker News about how incredibly difficult it is to launch a successful business proved utterly false. In fact, the only reason my businesses petered out is that they were so absurdly easy that I got cocky, and bored, and went off to a California doctor to get a medical marijuana card. Then I lost track of time, and then I was like, "oh crap, I guess I have to work again."&lt;br /&gt;&lt;br /&gt;The lesson here: a good content business will succeed unless you get stoned and stay stoned for weeks. Did you need Hacker News to figure that out? I admit to feeling like a complete idiot about it, but it wouldn't get any upvotes, and it wouldn't prompt any comments, because it's &lt;b&gt;&lt;i&gt;obvious as fuck&lt;/b&gt;&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;Another thing which is obvious as fuck is that there are a lot of ways to make money on the Internet that don't require struggling, or being nervous, or pitching to venture capitalists, or hoping that Paul Graham will like you enough to give you some money, or even learning &lt;i&gt;anything&lt;/i&gt; new or cutting-edge or otherwise geek-glamorous. Like any other magazine, there's a whole &lt;i&gt;identity&lt;/i&gt; that Hacker News caters to and indeed sells. Hacker News, and the majority of its audience, is more concerned with defining, reinforcing, and most of all &lt;b&gt;&lt;i&gt;selling that identity&lt;/b&gt;&lt;/i&gt; than it is with any topic which is actually relevant to entrepreneurs on the Internet.&lt;br /&gt;&lt;br /&gt;Consider the &lt;a href="http://gilesbowkett.blogspot.com/2011/11/fuck-these-idiots.html"&gt;recent&lt;/a&gt; &lt;a href="http://zachholman.com/posts/swearing/"&gt;debate&lt;/a&gt; about swearing, which I am embarrassed to admit I weighed in on. This is basically &lt;i&gt;GQ&lt;/i&gt; for Silicon Valley; let's have a lengthy discussion on etiquette in the greater tech community. It reminds me of a scene in the terrific, lunatic action comic &lt;i&gt;Cowboy Ninja Viking&lt;/i&gt;, where the title character -- who suffers from an unusually badass case of multiple personality disorder -- asks a friend for a favor, offering his undying gratitude in return, and his friend asks, in reference to said aforementioned undying gratitude: "Can I fuck that?" and then asks for a girl's phone number instead.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/spiders_110611/cnj.jpg"&gt;&lt;br /&gt;&lt;br /&gt;You can't have sexual intercourse with an abstract concept, and in the same way, nobody's ever going to make a fucking penny arguing over whether or not some dude swears too much, too little, or just the right amount, like Goldilocks And The Three Fucking Bears, because there's no money there. It's just horseshit. It has no useful purpose at all -- unless you're in need of an identity, and you want to buy what Hacker News is selling. In that case, you might want to read about etiquette, just like you would in &lt;i&gt;GQ&lt;/i&gt; or &lt;i&gt;Esquire&lt;/i&gt; or &lt;i&gt;Cosmofuckingpolitan&lt;/i&gt;. "How should I talk? What clothes should I wear?"&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/spiders_110611/cosmo_aug09_02.JPG"&gt;&lt;br /&gt;&lt;br /&gt;But even then, it's a stretch, because the person who raised the issue, Scott Hanselman, is a guy who works for a huge corporation, has a conventional-minded cubicle farm audience, promotes languages which are mediocre at best, and has fuck all to do with entrepreneurship, startups, or cutting-edge technology. If Hacker News were about what Hacker News claims to be about, Scott Fucking Hanselman would never even read it. He wouldn't even know it exists.&lt;br /&gt;&lt;br /&gt;The identity Hacker News sells is at best only relevant to &lt;i&gt;part&lt;/i&gt; of my life, because I'm also an actor and a musician. My dream in terms of acting technique is to be able to treat identity like a set of clothes. I'm also a pretty damn well-trained hypnotist, and from time to time I even think of starting up a hypnosis business. This is relevant A) because the hypnotist perspective on identity is that identity is a construct you can rebuild at any time and B) because it's a completely valid alternate route to financial independence. Because I believe in doing my homework, I've read &lt;i&gt;The Millionaire Next Door&lt;/i&gt;, and I know that all of the material goals of the VC startup entrepreneur can be reached much more reliably owning a simple, conventional business. I've also read Dan Kennedy, so I know how to launch an information business from scratch.&lt;br /&gt;&lt;br /&gt;So Hacker News is only useful for me insofar as it gives me useful information about new technology and building a business, but I can only use it as a source of information on either of those topics with the help of serious automated filtering. My &lt;a href="http://hacker-newspaper.gilesb.com/"&gt;Hacker Newspaper&lt;/a&gt; &lt;a href="http://gilesbowkett.blogspot.com/2009/04/miniapp-hacker-newspaper.html"&gt;mashup&lt;/a&gt; is much faster and &lt;a href="http://gilesbowkett.blogspot.com/2010/06/google-research-validates-hacker.html"&gt;more legible&lt;/a&gt; than the real HN site. It obscures HN's frequently inane comment threads, automatically shitcans any and all links to TechCrunch or Zed Shaw, and prioritizes links typographically, which makes it a nice power tool for highly opinionated scanning. I also use &lt;a href="http://defunkt.io/dotjs/"&gt;dotjs&lt;/a&gt; for a secondary level of &lt;a href="https://github.com/gilesbowkett/dotjsfiles/blob/master/news.ycombinator.com.js"&gt;legibility fixes&lt;/a&gt; for the rare occasions when I do read a Hacker News comment thread. Even with all that customization, Hacker News really makes me work for the &lt;b&gt;&lt;i&gt;very&lt;/b&gt;&lt;/i&gt; few, &lt;b&gt;&lt;i&gt;very&lt;/b&gt;&lt;/i&gt; rare &lt;a href="http://blog.pinboard.in/2011/11/the_social_graph_is_neither/"&gt;fantastic reads&lt;/a&gt; that it does occasionally yield up.&lt;br /&gt;&lt;br /&gt;I get much, much better tech news from Twitter, and as for entrepreneurial info, Hacker News is about making money and being an entrepreneur in the same way that Ayn Rand's novels are about making money and being an entrepreneur -- in the sense that they both use that outward subject matter to launch almost entirely unrelated discussions. Nobody who plans to build a real business with real profit potential ever needs to give a fuck at any point in their lives, &lt;b&gt;&lt;i&gt;ever&lt;/b&gt;&lt;/i&gt;, about whether Google is going to win its "war" with Facebook, or vice versa, or Apple's "war" with Android, or whichever other imaginary game of "my dad could beat up your dad" these idiots happen to be playing on any particular day. You have to be pretty blind to psychology not to see what's going on with all these very young guys on Hacker News. They're fresh out of college -- a few of them are still in high school -- and they want VC funding and Paul Graham's attention because they think success is all about winning the approval of an older male mentor who's got more wealth and prestige.&lt;br /&gt;&lt;br /&gt;It's for boys, not men.&lt;br /&gt;&lt;br /&gt;And I can't rant about the signal/noise ratio, either, because &lt;a href="http://gilesbowkett.blogspot.com/2008/05/summon-monsters-open-door-heal-or-die.html"&gt;the signal/noise ratio problem for Hacker News, Digg, Reddit, etc., is in my very firm opinion a solved problem of behavioral economics. The answer is simple: those sites will always decay and inevitably suck. The "karma" economies they create systematically grant upvote "wealth" to people who do nothing but waste time on those sites, and the non-competitive nature of these "karma" economics means that there is no way to leverage wisdom-of-crowd effects, which means that you get groupthink instead. Hacker News is guaranteed to suck ass in the same way that computer hardware performance is guaranteed to continue improving, and for the same fundamental reasons&lt;/a&gt;. If you don't understand my argument that sites based on "karma" economies are doomed to signal/noise ratio degradation, then you need to read James Surowiecki and Dan Ariely and then click that giant link I just made of almost the entire preceding paragraph.&lt;br /&gt;&lt;br /&gt;I suppose I have managed to get some good ranting in after all, but the only real problem with Hacker News is my habit of reading it. I could in fact solve that problem for myself entirely just by killing my mashup -- I just can't handle the site without it -- but I get periodic tweets and emails from people who use it too, so I'm kind of proud of it, and it's nice to have users who like what you've built.&lt;br /&gt;&lt;br /&gt;I know that it's much, much easier to replace a habit than to break it, so I put some work into building a Twitter Newspaper to replace Hacker Newspaper for myself, but I dropped the project because I got bored of it. I may return to that project, but I can't guarantee it. Hacker News is still useful enough for now, and I've got a bunch of other things I want to do.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-383551264086764006?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/383551264086764006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/383551264086764006'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/11/why-i-cant-rant-about-hacker-news-as.html' title='Why I Can&apos;t Rant About Hacker News As Much As I Used To'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-7547316987224939869</id><published>2011-11-09T10:20:00.001-08:00</published><updated>2011-11-17T14:36:44.700-08:00</updated><title type='text'>Drums And Ideas</title><content type='html'>Got a drum set recently. Just a little one. Been watching a lot of videos on YouTube to get some ideas.&lt;br /&gt;&lt;br /&gt;&lt;iframe width="640" height="480" src="http://www.youtube.com/embed/eCtGNX9JHOE" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe width="640" height="360" src="http://www.youtube.com/embed/xPcoM7BIDZ4?hd=1" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe width="640" height="360" src="http://www.youtube.com/embed/toGnc64f0Q8?hd=1" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe width="640" height="360" src="http://www.youtube.com/embed/WtQfqKOxwOI?hd=1" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe width="640" height="360" src="http://www.youtube.com/embed/OgsZE56lMgA?hd=1" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe width="640" height="480" src="http://www.youtube.com/embed/V8mlSWWZ9zQ" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe width="640" height="480" src="http://www.youtube.com/embed/RkJz0OAowdk" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-7547316987224939869?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/7547316987224939869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/7547316987224939869'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/11/drums-and-ideas.html' title='Drums And Ideas'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/eCtGNX9JHOE/default.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-164857726086986407</id><published>2011-11-08T16:40:00.000-08:00</published><updated>2011-11-08T21:06:28.404-08:00</updated><title type='text'>Fuck These Idiots</title><content type='html'>&lt;a href="http://www.hanselman.com/blog/ProfanityDoesntWork.aspx"&gt;A Microsoft employee named Scott Hanselman recently took up the gauntlet of an issue the Rails community settled in 2006&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;I was perusing the Interwebs yesterday and stumbled on a new article from Zach Holman called Don't Give Your Users Shit Work. I was a little taken aback by the swear word in the title. I clicked around Zach's site, and found his Talks area and clicked on A Documentation Talk and the second slide dropped the F-bomb. Wow, really? I said to myself, is this how to connect with someone who is trying to learn about a technology?&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;There's hundreds of thousands of perfectly cromulent words to use that aren't the Seven Dirty Words. Or even just the two words that evoke scatology or copulation. At least use some colorful metaphors or create a new turn of phrase. Shakespeare managed, thou frothy tickle-brained popinjay. Zounds.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;When you hear that a Microsoft employee was telling DHH and a GitHub employee how they should talk, you might laugh it off with a thought like "fuck that shit." But let me expound a little further. Scott Hanselman's employment status with Microsoft doesn't just invalidate his opinion because I fucking hate Microsoft. Scott Hanselman's employment status with Microsoft also invalidates his opinion because that employer of his is very relevant.&lt;br /&gt;&lt;br /&gt;The more likely your users are to say "fuck this shit" when confronted with the products of your effort, the less likely you are to want to hear the words "fuck" or "shit." How many Microsoft endeavors can you think of for which "fuck this shit" is the only appropriate response?&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/hanselman_110611/clippy.jpg"&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-size: 0.7em"&gt;For instance, fuck this shit.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Pretty much everything Microsoft has ever done, with the exception of the XBox, has been awful. &lt;a href="http://www.dissentmagazine.org/article/?article=3781"&gt;Even Bill Gates's charitable efforts may be doing more harm than good&lt;/a&gt;. Is it really a surprise that a guy objects to hearing words like "horseshit" when he works for the single largest and most productive horseshit factory in the history of the world?&lt;br /&gt;&lt;br /&gt;I'm ashamed of myself for spending time on this nonsense, but I just want to point out two things: first, I put this in draft mode with no expectation of ever finishing it, because I figured I would find better things to do. Second, I didn't find anything better to do, but that's because I've got a terrible cold right now, and my brain shuts down when that happens, rendering it useless for anything except the most trivial tasks, such as tying my shoelaces and spotting bullshit on &lt;a href="http://hacker-newspaper.gilesb.com/"&gt;Hacker News&lt;/a&gt; -- where &lt;a href="http://wekeroad.com/2011/11/08/some-people-not-have-way"&gt;Rob Conery came at the same topic with a very, very minor variation&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;According to this guy:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Zach's heard a lot about his slides. I've been thinking a lot about writing this post but as with most things, Hanselman beat me to it. It might look like I'm "piling on" - but my take is different than Scott's. I'm not opposed out of principle, I just think Zach is more talented - A whole lot more talented. It's a bit of a shame to resort to Grunting Monkey Tricks when you're clearly a whole lot more clever...&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;However, his take is &lt;b&gt;&lt;i&gt;not&lt;/b&gt;&lt;/i&gt; all that different. Scott Hanselman gives Zach Holman plenty of credit for his intelligence, and does it without the cloying, paternalistic tone here.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/spiders_110611/son-i-am-disappoint1re2.jpg"&gt;&lt;br /&gt;&lt;br /&gt;Conery continues:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;I'm not offended at the presence of the F-bomb, I'm offended that someone with his talent takes the easy way out.&lt;br /&gt;&lt;br /&gt;Making your point with profanity is what the general population uses as punctuation to emphasize a point. It's conversational punctual shorthand.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Obviously, there is nothing either punctual or tardy about the conversational shorthand here -- that's just garden-variety incoherence -- and you might interpret Conery's use of the term "general population" to indicate an aversion to gutter speech, the unworthy dialect of the unwashed masses and the filthy poors, but the undisguised and unrepentant upper-class bias comes from a throwaway remark. His main point is that profanity offers an "easy way out." He imagines Holman's goal to be shock.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;You know you need to hit it within the first 3 slides. But how? This isn't Terminator and there's no dramatic music behind your slides (though yes, I did that once... but it was at the end). How do you pull this off?&lt;br /&gt;&lt;br /&gt;Your skill as a presenter and story-teller are now under serious strain. You're prepping your talk - do you take a chance? A Risk? Do you GO BIG? Or play it safe?&lt;br /&gt;&lt;br /&gt;I know! I'll make my point, and insert the word "Fuck" somewhere!&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Conery continues throughout his post playing the role of Good Dad, assuring Little Baby Zach that he doesn't need to swear at people to impress them.&lt;br /&gt;&lt;br /&gt;The problem with his pitiful logic is that &lt;b&gt;&lt;i&gt;only people who are shocked by profanity ever assume that somebody who uses profanity is doing it for shock value&lt;/b&gt;&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;There are in fact &lt;i&gt;other&lt;/i&gt; ways to use profanity. One way in which people use profanity is as an indicator that &lt;i&gt;nothing is going to be censored&lt;/i&gt;, which implies that &lt;i&gt;people are going to be up-front and honest&lt;/i&gt;. That's actually an &lt;i&gt;excellent&lt;/i&gt; tone to establish in a presentation.&lt;br /&gt;&lt;br /&gt;This guy is projecting, and he continues with it later on:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;A Good Presentation Is Hard&lt;br /&gt;&lt;br /&gt;If you've never given one, well you will at some point. Nerves tighten your throat and your voice raises an octave or two, you fight to maintain good posture so your breath comes evenly and you don't hyperventilate. You struggle to make eye-contact and, as you try to remember all of these tips you forget what you're trying to say.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;What happens to his argument if Zach wasn't nervous? It &lt;b&gt;&lt;i&gt;disappears&lt;/b&gt;&lt;/i&gt;. I'm not even saying the guy wasn't nervous. Who knows? But I want to point out that this argument completely collapses without that assumption, and Conery's done nothing to shore it up. I don't mind seeing an argument built around an assumption as long as the assumption is acknowledged, but he should have investigated the assumption, or sought some proof of its accuracy. All we know for a fact here is that he got scared at least once and he thinks everybody else does too, every single time.&lt;br /&gt;&lt;br /&gt;The next bit deserves just a moment of rebuttal:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;It's flat obvious when watching someone who's thrown, and it's uncomfortable. It moves into "sad" territory when the speaker resorts to gimmicks like inserting cat pictures, LOL-speak, and yes, F-bombs. It's sad because we've seen it before and you're better than that.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Yep, "you're better than that."&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/spiders_110611/son-i-am-disappoint.jpg"&gt;&lt;br /&gt;&lt;br /&gt;Here's an Internet meme pic. Is it here because I'm afraid of what my readers will do unless they see an Internet meme? Or does it serve as ironic juxtaposition against a tone of disappointed authority which would be creepy were it not flat-out silly? Seriously, where does this guy's unexplained and probably undeserved tone of authority come from? How does he know what Zach Holman is or is not capable of? Does he know something about this guy which we don't? Does he have spy cameras in his home or something?&lt;br /&gt;&lt;br /&gt;Does this picture distract you from my argument, or hammer it home? That picture isn't distracting. This picture is distracting:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/spiders_110611/srslywtf.jpg"&gt;&lt;br /&gt;&lt;br /&gt;But that Yoda picture is completely legit. And so is Holman's swearing.&lt;br /&gt;&lt;br /&gt;The phrase "Don't make your users do shit work" emphasizes the fact that shit work is not work people enjoy. I don't know what Rob Conery does for a living, but I know for a fact that Scott Hanselman works for Microsoft, and &lt;b&gt;&lt;i&gt;nobody&lt;/b&gt;&lt;/i&gt; who works for Microsoft has heard the words "Don't make your users do shit work" often enough, or had the unpleasantness of that shit work emphasized enough. Zach Holman's swearing was not a shock-factor distraction, but a completely valid emphasis used by a grown man who is old enough to choose his own words and probably doesn't need a fake Internet daddy telling him he can do better. The fact that all these Internet dipshits are trying to tell him what to say is just ridiculous.&lt;br /&gt;&lt;br /&gt;He probably doesn't need me to defend him, either, and hell, even if he did, he's not paying me. I want to emphasize again that the only reason I even got into this conversation was because I've got a terrible cold and my brain's running too slowly to be any use for real thought. But destroying Rob Conery's weak logic does not take a great deal of thought, and it's marginally more entertaining than downloading bad spy movies I don't have the attention span for right now anyway.&lt;br /&gt;&lt;br /&gt;Anyway, Hanselman's argument amounts to a cost/benefit analysis:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;swearing decreases your reach and offers little benefit in return. Swearing is guaranteed to reduce the size of your potential audience.... you take no chances of offending by not swearing, but you guarantee to offend someone if you do.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;It's a valid point, but it's only an &lt;i&gt;important&lt;/i&gt; point if your aim is quantity over quality. You don't necessarily want everybody in the world to read your blog. Some people are idiots. And Conery's argument, frankly, consists of nothing more than calling Zach Holman a pussy. I would much rather read a guy who swears while delivering a message about not being a dick -- for instance, "don't give your users shit work" -- than one who uses polite language to say something which is not only rude but completely illogical (for instance, "Zach Holman swears in his presentations because he's too pussy to get through stage fright any other way, and this somehow pertains to his use of the word 'shit' in a blog post title somehow even though stage fright is not relevant in that context oh shit that made no sense I better make some condescending noises about Zach being better than this").&lt;br /&gt;&lt;br /&gt;These guys are full of shit.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-164857726086986407?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/164857726086986407'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/164857726086986407'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/11/fuck-these-idiots.html' title='Fuck These Idiots'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-69832556012990610</id><published>2011-11-06T20:53:00.001-08:00</published><updated>2011-11-06T20:53:57.495-08:00</updated><title type='text'>Peaceful Photographer Dude Suddenly Shot</title><content type='html'>&lt;iframe width="640" height="480" src="http://www.youtube.com/embed/I0pX9LeE-g8" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;While filming a police line at Occupy Oakland after midnight on Nov. 3 following the Nov. 2 general strike, an officer opens fire and shoots me with a rubber bullet. I was standing well back. There was no violence or confrontations of any kind underway. At 0:31 seconds you can see a tall officer in the front raise his weapon and then fire. This is the full clip of the incident.&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-69832556012990610?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/69832556012990610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/69832556012990610'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/11/peaceful-photographer-dude-suddenly.html' title='Peaceful Photographer Dude Suddenly Shot'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/I0pX9LeE-g8/default.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-3511705311143509998</id><published>2011-11-06T20:00:00.001-08:00</published><updated>2011-11-06T20:04:23.581-08:00</updated><title type='text'>Kitty City And Hydraulic Spiderbots</title><content type='html'>&lt;a href="http://boingboing.net/2011/11/06/3d-printed-exploratory-spiders.html"&gt;&lt;img src="http://s3.amazonaws.com/giles/spiders_110611/rn11_fo1_g_hightech-spider.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe width="640" height="360" src="http://www.youtube.com/embed/jX3iLfcMDCw" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;(via &lt;a href="http://boingboing.net/2011/11/05/welcome-to-kitty-city-new-video-from-cyriak.html"&gt;boing&lt;/a&gt; &lt;a href="http://boingboing.net/2011/11/06/3d-printed-exploratory-spiders.html"&gt;boing&lt;/a&gt;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-3511705311143509998?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/3511705311143509998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/3511705311143509998'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/11/kitty-city-and-hydraulic-spiderbots.html' title='Kitty City And Hydraulic Spiderbots'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/jX3iLfcMDCw/default.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-7039208825251677743</id><published>2011-11-04T14:14:00.000-07:00</published><updated>2011-11-04T14:16:55.048-07:00</updated><title type='text'>Ticket Available For Keeping It Realtime</title><content type='html'>Way too sick to travel. &lt;a href="mailto:gilesb@gmail.com"&gt;Email me&lt;/a&gt; if you want it.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://krtconf.com/"&gt;Looks like a great conf&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-7039208825251677743?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/7039208825251677743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/7039208825251677743'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/11/ticket-available-for-keeping-it.html' title='Ticket Available For Keeping It Realtime'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-316307451004934388</id><published>2011-11-01T11:44:00.000-07:00</published><updated>2011-11-01T12:02:50.677-07:00</updated><title type='text'>Fuck Stallman</title><content type='html'>&lt;a href="http://scripting.com/stories/2011/10/31/whyIStandUpForStallman.html"&gt;Dave Winer&lt;/a&gt; made a mistake:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;I was so shaken to see Kottke ridicule Stallman on his blog for, of all things, liking parrots!&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://raganwald.posterous.com/i-also-stand-up-for-stallman"&gt;Raganwald&lt;/a&gt; compounded it:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;This is bigger than Mr. Stallman, and it's bigger than me. It's about who WE are and what kind of world we want our children to live in.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;It sure as hell isn't.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://scripting.com/stories/2011/10/31/whyIStandUpForStallman.html"&gt;Anil Dash&lt;/a&gt; corrected them:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;I do agree that parts of some online communities can act like bullies, but I think the document everyone's responded to *is* the document of a bully. It's someone who has an enormous amount of power, and many devoted followers, using that power to cow conference organizers and academics into submission to an arbitrary set of whims&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;That's in the comments on Winer's post. Winer closed the comments soon after, saying:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Update: This piece is getting a lot of traffic and the comments have turned ugly, so I turned them off.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Mine was one of the ugly comments that Winer moderated into oblivion. I'll paraphrase it here:&lt;br /&gt;&lt;br /&gt;Nobody is going after Richard Stallman &lt;b&gt;&lt;i&gt;solely&lt;/b&gt;&lt;/i&gt; because his rider is the document of an extremely weird, eccentric dude. People are going after Richard Stallman's weirdness and eccentricities because he earned an epic shit-ton of public hatred with his equally hateful screed against Steve Jobs, published on the day Steve Jobs left the world. Everybody in the world of open source (which, &lt;i&gt;unlike&lt;/i&gt; GNU/FSF, is worth a damn) already knew that Stallman had absolutely disgusting personal habits:&lt;br /&gt;&lt;br /&gt;&lt;iframe width="480" height="360" src="http://www.youtube.com/embed/I25UeVXrEHQ" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;What people learned when Steve Jobs passed away was that Richard Stallman's personal ethics are every bit as disgusting as his personal habits. That's not a good thing in a guy who mostly does talks on how to be ethical. Pissing on the memory of a great man who just died a sad, premature, and very probably painful death is also not a good way to cultivate good will, and the developer community had tolerated Stallman's utterly bizarre personal issues because of his elder statesman status in the open source world.&lt;br /&gt;&lt;br /&gt;"Utterly bizarre personal issues" is, if anything, wildly generous. &lt;b&gt;&lt;i&gt;The man eats shit that he finds between his own toes.&lt;/b&gt;&lt;/i&gt; I just hope it was a Cheeto he had stepped on earlier, and not an edible foot fungus of some kind. &lt;b&gt;&lt;i&gt;That is not just eccentric; that is a seriously fucked up thing to do which easily qualifies as a serious mental health issue.&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Stallman doesn't just deserve the ridicule he's getting; he &lt;i&gt;desperately needs it&lt;/i&gt;. A man that fucked up should be getting psychiatric care. He earned some measure of respect from the open source community, but he pissed it away by pissing on the memory of the greatest creator of technology products the world has ever seen -- or, at the very least, the greatest we've seen since Edison and Tesla. Even if you disagree with my praise for Steve Jobs, and I'm absolutely willing to concede it's a matter of taste and opinion, showing respect for the dead is a simple matter of common human decency.&lt;br /&gt;&lt;br /&gt;Stallman is at best suffering from serious mental illness and at worst a zealot with no respect for basic human decency. Either way, he is very, very overdue for a loss in public status. Fuck that piece of shit.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-316307451004934388?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/316307451004934388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/316307451004934388'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/11/fuck-stallman.html' title='Fuck Stallman'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/I25UeVXrEHQ/default.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-7603137562647188067</id><published>2011-10-28T13:09:00.000-07:00</published><updated>2011-10-28T13:11:01.093-07:00</updated><title type='text'>Upgrade from password gem to 1password</title><content type='html'>In 2008 I wrote a &lt;a href="http://gilesbowkett.blogspot.com/2008/02/sudo-gem-install-password.html"&gt;password gem&lt;/a&gt;, but today I use &lt;a href="https://agilebits.com/onepassword"&gt;1password&lt;/a&gt;, so I wrote a &lt;a href="https://github.com/gilesbowkett/1password-Importer"&gt;simple 1password importer shell script&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-7603137562647188067?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/7603137562647188067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/7603137562647188067'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/10/upgrade-from-password-gem-to-1password.html' title='Upgrade from password gem to 1password'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-6790526103114975313</id><published>2011-10-24T12:16:00.003-07:00</published><updated>2011-10-24T12:16:55.195-07:00</updated><title type='text'>Silicon Valley Human Rights Conference</title><content type='html'>&lt;a href="https://www.rightscon.org/"&gt;Unfortunately I only just found out about this, but I'm really pleased to hear it exists&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-6790526103114975313?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/6790526103114975313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/6790526103114975313'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/10/silicon-valley-human-rights-conference.html' title='Silicon Valley Human Rights Conference'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-9002735662672449944</id><published>2011-10-24T11:49:00.001-07:00</published><updated>2011-10-24T11:50:37.960-07:00</updated><title type='text'>Environmentalists Knit Sweaters For Penguins</title><content type='html'>After a catastrophic New Zealand oil spill started killing a terrible number of blue penguins, activists responded with ludicrous style and aplomb.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://thinkprogress.org/green/2011/10/19/347540/penguin-sweaters/"&gt;&lt;img src="http://s3.amazonaws.com/giles/penguins_102411/penguin_jumpers.jpg"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-9002735662672449944?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/9002735662672449944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/9002735662672449944'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/10/environmentalists-knit-sweaters-for.html' title='Environmentalists Knit Sweaters For Penguins'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-4105854896744100707</id><published>2011-10-22T15:22:00.000-07:00</published><updated>2011-10-22T15:40:55.182-07:00</updated><title type='text'>Two Notes About Game Of Thrones</title><content type='html'>I've been reading the &lt;i&gt;Song Of Ice And Fire&lt;/i&gt; series. It's so grim, brutal, and full of sex (occasionally for erotic effect, but usually for shock and horror) that it reminds me of &lt;i&gt;Caligula&lt;/i&gt;, but unlike &lt;i&gt;Caligula&lt;/i&gt; I'm enjoying the story. Two brief notes about the series:&lt;br /&gt;&lt;br /&gt;First, I'd bet a lot of money its author, George RR Martin, read the &lt;i&gt;Assassin&lt;/i&gt; series by Robin Hobb. Both feature a scheming queen unworthy of her king, whose violent, psychopathic, sadistic child becomes the next king, despite having no valid claim to the kingship. Both feature zombies and Vikings, and the ruins of a much greater ancient empire. Hobb's series takes place in a land called the Five Duchies; Martin's setting is called the Seven Kingdoms. Each series features protagonists who share a psychic bond with a wolf, and dragons who, in times past, fought in service to the king, but have since disappeared from the world. Both series give attention to the role of bastards in the medieval-like societies of their settings. Both series have castles filled with secret passageways, unsavory characters who lurk in those passages doing terrible things for the good of their respective kingdoms -- or for their own advantage -- and marriages of political expediency.&lt;br /&gt;&lt;br /&gt;In short, I think Martin read Hobb's series and decided to do his own version.&lt;br /&gt;&lt;br /&gt;This is not such a bad thing. I sometimes think the same thing about the relationship between &lt;i&gt;Inception&lt;/i&gt; and &lt;i&gt;The Matrix&lt;/i&gt; -- that maybe Christopher Nolan saw &lt;i&gt;The Matrix&lt;/i&gt; and decided to make his own artistic answer to it. In fact I like to think of &lt;i&gt;Inception&lt;/i&gt; as the sequel that &lt;i&gt;The Matrix&lt;/i&gt; always deserved but never got.&lt;br /&gt;&lt;br /&gt;One reason I think this whole phenomenon of an artistic answer to a previous work is totally cool is because Martin's remake expands on the scope of Hobb's original to a degree which is so extraordinarily detailed, and realized in such depth and detail, that it makes JRR Tolkien look like a lazy stoner who never did his homework. Which brings me to the second note. If somebody came to me and said, "I need to learn Rails, what should I do?", I would tell them that they could do worse than to build an application which allowed the user to document the world of &lt;i&gt;A Song Of Ice And Fire&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;The series keeps track of a staggering number of noble families, each with very detailed family trees. Each family has its own heraldry, castles, counties, warriors both noble and common, and feuds both recent and ancient. Every member of those families has their own distinct characteristics, including sexual history, style of clothing, favorite food, names, nicknames, and distinct reputations at local, regional, and in some cases even global levels. Regions have gods, customs, dialects, and even &lt;b&gt;&lt;i&gt;hairstyles&lt;/i&gt;&lt;/b&gt;, for fuck's sake. It came to me that developing a plain vanilla Rails app to track all that shit would be a great exercise in object-oriented design when I asked myself what George RR Martin's writing space must look like. I hope it features outlines, graphs, timelines, maps, and family trees all over every wall, but the thought that terrifies me is that maybe, just maybe, he keeps the whole damn thing in his head.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-4105854896744100707?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/4105854896744100707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/4105854896744100707'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/10/two-notes-about-game-of-thrones.html' title='Two Notes About Game Of Thrones'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-2961164741120716360</id><published>2011-10-21T10:16:00.000-07:00</published><updated>2011-10-21T10:17:33.627-07:00</updated><title type='text'>Code And Beats: NYC Party</title><content type='html'>&lt;a href="http://codeandbeats.com/"&gt;Enigmatic web site&lt;/a&gt; says only:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;A handful of hardcore coders from the city's hottest startups will work in the center of a pounding dance floor to a musical journey of electro beats.&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-2961164741120716360?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/2961164741120716360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/2961164741120716360'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/10/code-and-beats-nyc-party.html' title='Code And Beats: NYC Party'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-2117999332740310984</id><published>2011-10-21T09:46:00.001-07:00</published><updated>2011-10-21T10:09:12.317-07:00</updated><title type='text'>Jasmine-Node: Identify Failing Spec</title><content type='html'>I love &lt;a href="https://github.com/mhevery/jasmine-node"&gt;jasmine-node&lt;/a&gt; for command-line JavaScript specs, but there's one thing I hate about it: its failure messages. The usual error output is complete line noise. No indication what spec failed, no indication of even which &lt;b&gt;&lt;i&gt;file&lt;/b&gt;&lt;/i&gt; the spec which failed lives in. Here's how you find that out.&lt;br /&gt;&lt;br /&gt;I'm going to set this up as a command-line option and send a pull request later, assuming I remember, but for now, open up &lt;code&gt;node_modules/jasmine-node/lib/jasmine-node/index.js&lt;/code&gt;. Add one line right here:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/pregunta_100811/jasmine.jpg"&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Edit:&lt;/b&gt;&lt;/i&gt; yeah, ok, fuck. Actually that didn't work. You can at least run it file-by-file, using bash and &lt;a href="https://github.com/mhevery/jasmine-node/pull/47"&gt;the &lt;code&gt;-m&lt;/code&gt; command-line flag&lt;/a&gt;, but the regex in &lt;code&gt;-m&lt;/code&gt; is pretty freaking primitive and literal. For instance, to run &lt;code&gt;foo_spec.coffee&lt;/code&gt; individually, I just did:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;node_modules/jasmine-node/bin/jasmine-node -m foo_ --coffee spec/javascripts/node/&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;That underscore in &lt;code&gt;foo_&lt;/code&gt; is not a typo!&lt;br /&gt;&lt;br /&gt;If you don't see a followup blog post where I explain how I fixed this, please bug me about it on Twitter. It's a good project and these are easy fixes. By the way, the reason I have &lt;code&gt;spec/javascripts/node&lt;/code&gt; is because I also have &lt;code&gt;spec/javascripts/browser&lt;/code&gt;. Although I like &lt;a href="https://github.com/tmpvar/jsdom"&gt;jsdom&lt;/a&gt;, for Backbone views, I'm running regular Jasmine in the browser, because browsers are notoriously twitchy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-2117999332740310984?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/2117999332740310984'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/2117999332740310984'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/10/jasmine-node-identify-failing-spec.html' title='Jasmine-Node: Identify Failing Spec'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-9139336016499957564</id><published>2011-10-21T09:08:00.000-07:00</published><updated>2011-10-21T09:30:28.600-07:00</updated><title type='text'>Side Projects: The Lamborghini Miura</title><content type='html'>This is (or maybe was) DHH's Lamborghini (&lt;a href="http://www.flickr.com/photos/symmetricalism/2860363997/"&gt;photo by symmetricalism&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/lamborghini_103009/dhh.jpg"&gt;&lt;br /&gt;&lt;br /&gt;Most Rails developers know DHH extracted Rails from an application he was building. It may even have been a side project. What many people do not know is the core design of DHH's Lamborghini started as a side project too, about 40 years ago.&lt;br /&gt;&lt;br /&gt;From the September issue of &lt;i&gt;Robb Report&lt;/i&gt;:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;The Miura, the first viable mid-engine sports car, might be Lamborghini's most celebrated model, for both its mechanical and aesthetic attributes, but company founder Ferruccio Lamborghini did not initially champion the automobile. Knowing that their boss planned for the then newly-formed marque to produce refined grand tourers instead of race-ready sports cars, the engineers initially developed what would become the Miura in their spare time.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/miura_102111/1973_lamborghini_miura-pic-4504.jpeg"&gt;&lt;br /&gt;&lt;br /&gt;Wikipedia has more:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Lamborghini_Miura#Development" style="font-style: italic; text-decoration: none;"&gt;The car is widely considered to have begun the trend of high performance, two-seater, mid-engined sports cars. At launch, it was the fastest production road car available.&lt;br /&gt;&lt;br /&gt;The Miura was originally conceived by Lamborghini's engineering team, who designed the car in their spare time against the wishes of company founder Ferruccio Lamborghini, who showed a preference towards producing powerful yet sedate grand touring cars, rather than the racecar-derived machines produced by local rival Ferrari. When its rolling chassis was presented at the 1965 Turin auto show, and the prototype P400 debuted at the 1966 Geneva show, the car received a stellar reception from showgoers and motoring press alike, who were impressed by Marcelo Gandini's sleek styling as well as the car's revolutionary design.&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;During 1965, Lamborghini's three top engineers, Gian Paolo Dallara, Paolo Stanzani, and Bob Wallace put their own time into the development of a prototype car known as the P400. The engineers envisioned a road car with racing pedigree; a car which could win on the track and be driven on the road by enthusiasts. The three men worked on the car's design at night, hoping to sway Lamborghini from the opinion that such a vehicle would be too expensive and would distract from the company's focus. When finally brought aboard, Lamborghini allowed his engineers to go ahead, deciding that the P400 was a potential marketing tool, if nothing more.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The &lt;i&gt;Robb Report&lt;/i&gt; story also mentions that the Miura featured brilliant and original engineering. It debuted:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;at the 1965 Turin auto show. Though the car lacked a body, showgoers still placed orders for it.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/miura_102111/1965_Turin_Salon_Miura_Chassis_-1.jpg"&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-9139336016499957564?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/9139336016499957564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/9139336016499957564'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/10/side-projects-lamborghini-miura.html' title='Side Projects: The Lamborghini Miura'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-6241894679730355907</id><published>2011-10-02T14:05:00.001-07:00</published><updated>2011-10-02T14:08:41.496-07:00</updated><title type='text'>I Had A Problem And I Decided To Use Regular Expressions...</title><content type='html'>Now I have zero problems, because I'm not an idiot.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://www.amazon.com/dp/0596528124/ref=as_li_ss_til?tag=gilebowk-20&amp;camp=213381&amp;creative=390973&amp;linkCode=as4&amp;creativeASIN=0596528124&amp;adid=1JAG3H7XDF1QG4GQ20WF&amp;"&gt;&lt;img src="http://s3.amazonaws.com/giles/regex_080211/mastering-regular-expressions-cover-scan.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Seriously, regex is its own category of programming language. It's worth learning but like anything else you do have to learn it in order to use it. The problem most people have with regular expressions is not that regexes are in any way more difficult or strange than any other type of programming problem, but simply that most people do not bother to do their homework.&lt;br /&gt;&lt;br /&gt;So do your fucking homework.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-6241894679730355907?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/6241894679730355907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/6241894679730355907'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/10/i-had-problem-and-i-decided-to-use.html' title='I Had A Problem And I Decided To Use Regular Expressions...'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-4919976780346898333</id><published>2011-09-29T13:05:00.000-07:00</published><updated>2011-09-29T13:07:51.418-07:00</updated><title type='text'>EXACTLY</title><content type='html'>&lt;a href="http://zachholman.com/posts/scaling-github-employees/" style="font-style: italic;"&gt;GitHub [automates] tedious — and important — tasks. There’s a very strong culture of building mini-apps and Hubot scripts if it helps with automation.&lt;br /&gt;&lt;br /&gt;There’s two reasons for why we push hard on this. The first is most obvious: you’re letting a scripted process save you time so you can focus on doing real work. &lt;b&gt;The second is more subtle: AUTOMATION REDUCES INSTITUTIONAL KNOWLEDGE&lt;/b&gt;. Institutional knowledge leads to a minority group inside of the company retaining answers. That forces new employees to bother those few in order to make impactful changes. It becomes a very verbal, synchronous process&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-4919976780346898333?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/4919976780346898333'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/4919976780346898333'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/09/exactly.html' title='EXACTLY'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-5017049896759063417</id><published>2011-09-26T21:20:00.001-07:00</published><updated>2011-09-26T21:23:45.371-07:00</updated><title type='text'>A Point Of Order</title><content type='html'>&lt;a href="http://radar.oreilly.com/2011/07/what-is-html5.html"&gt;An interesting thing about HTML5&lt;/a&gt; veers off its rails quite quickly:&lt;br /&gt;&lt;br /&gt;Speaking of the 90s, Brett McLaughlin says:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Back in the ancient days, when electronica was cool and not called "house music" &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;First, the term "house music" predates the term "electronica" by &lt;i&gt;over a decade&lt;/i&gt;, much nearer to &lt;i&gt;two&lt;/i&gt; decades.&lt;br /&gt;&lt;br /&gt;Second, the term "electronica" was &lt;b&gt;&lt;i&gt;never&lt;/b&gt;&lt;/i&gt; cool. MTV and &lt;i&gt;Spin&lt;/i&gt; magazine invented it; it never had anything to do with where the music came from.&lt;br /&gt;&lt;br /&gt;I hope this guy knows more about HTML5 than he does about music, but I'm not finishing his post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-5017049896759063417?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/5017049896759063417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/5017049896759063417'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/09/point-of-order.html' title='A Point Of Order'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-6511048402933310858</id><published>2011-09-05T11:19:00.000-07:00</published><updated>2011-09-05T11:23:34.087-07:00</updated><title type='text'>Why Republicans Are Insane</title><content type='html'>This is the best thing I have ever read on the Republican Party on the Web. It is one of my favorites ever in all media after &lt;i&gt;The Wrecking Crew&lt;/i&gt;, &lt;i&gt;The Daily Show&lt;/i&gt;, and &lt;i&gt;The Big Sort&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.truth-out.org/goodbye-all-reflections-gop-operative-who-left-cult/1314907779" style="font-style: italic;"&gt;It should have been evident to clear-eyed observers that the Republican Party is becoming less and less like a traditional political party in a representative democracy and becoming more like an apocalyptic cult, or one of the intensely ideological authoritarian parties of 20th century Europe. This trend has several implications, none of them pleasant.&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;The GOP cult of Ayn Rand is both revealing and mystifying. On the one hand, Rand's tough guy, every-man-for-himself posturing is a natural fit because it puts a philosophical gloss on the latent sociopathy so prevalent among the hard right. On the other, Rand exclaimed at every opportunity that she was a militant atheist who felt nothing but contempt for Christianity. Apparently, the ignorance of most fundamentalist "values voters" means that GOP candidates who enthuse over Rand at the same time they thump their Bibles never have to explain this stark contradiction.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-6511048402933310858?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/6511048402933310858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/6511048402933310858'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/09/why-republicans-are-insane.html' title='Why Republicans Are Insane'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-3548178635856636967</id><published>2011-09-04T09:08:00.000-07:00</published><updated>2011-09-04T09:29:31.569-07:00</updated><title type='text'>Madison RubyConf In A Nutshell</title><content type='html'>People have asked me if Madison RubyConf was a good conference. This is easy to answer.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/madison_090411//stolen_penguin.jpg"&gt;&lt;br /&gt;&lt;br /&gt;I am wearing a penguin.&lt;br /&gt;&lt;br /&gt;It is a &lt;i&gt;stolen&lt;/i&gt; penguin.&lt;br /&gt;&lt;br /&gt;In addition to stealing and wearing a penguin, I heard great talks, I enjoyed giving my own talk, I learned a bunch, &lt;a href="http://soundcloud.com/robsanheim"&gt;Rob Sanheim schooled me with his DJ skills&lt;/a&gt;, I got a ton of awesome research material for my music projects from Randall Thomas of EngineYard -- who's done some awesome music hacking of his own, and &lt;a href="http://sdruby.org/podcast/79"&gt;has the background to actually understand the stats end of AI and machine learning&lt;/a&gt;, where I kinda flounder and make shit up -- and everyone had a great time.&lt;br /&gt;&lt;br /&gt;I would say the only downside was the clever restaurant employee who stole my penguin back when I wasn't looking. I'll give her credit, though, because I never even saw her coming. I don't know if she just had a natural talent for it, or if she developed the skills because people steal those penguins all the time, but she was like a penguin repo man ninja.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-3548178635856636967?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/3548178635856636967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/3548178635856636967'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/09/madison-rubyconf-in-nutshell.html' title='Madison RubyConf In A Nutshell'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-8418781832442555547</id><published>2011-08-28T09:39:00.001-07:00</published><updated>2011-08-28T10:04:30.939-07:00</updated><title type='text'>A Question For Serious Sci-Fi</title><content type='html'>I've found sci-fi pretty dull since William Gibson stopped writing any. Gibson took the point of view that things were changing so quickly that near-term sci-fi goes out of date before it's published, and far-term sci-fi lacks sufficient constraints to ever hope for relevance, context, or predictive accuracy. I'm paraphrasing, and may be putting words in Gibson's mouth, but this is at least my general impression of his reasons; and I've seen similar concerns voiced elsewhere.&lt;br /&gt;&lt;br /&gt;Anyway, I recently read &lt;a href="http://www.amazon.com/Sex-Dawn-Prehistoric-Origins-Sexuality/dp/0061707805" style="font-style: italic;"&gt;Sex At Dawn&lt;/a&gt;, an examination of sex from the standpoint of evolutionary biology, and vice versa, which revisits, revises, and categorically obliterates the usual stereotypes of human sexuality as understood from the standpoint of evolutionary biology, and in the process completely discredits the pickup artist clichés of alpha males and "&lt;a href="http://en.wikipedia.org/wiki/Mystery_(pickup_artist)"&gt;displaying higher value&lt;/a&gt;." From the standpoint of evolutionary biology, monogamy and marriage are &lt;b&gt;&lt;i&gt;very&lt;/b&gt;&lt;/i&gt; recent and unusual phenomena which run counter to the fundamentals of human sexuality.&lt;br /&gt;&lt;br /&gt;This is a great question for science fiction to take on. There are at least two very interesting interpretations, both potential goldmines of controversy. Monogamous marriage developed alongside agriculture as a way to manage the effects of reproduction on economies. The first controversial interpretation is that monogamy is a destructive maladaptation, &lt;a href="http://en.wikipedia.org/wiki/The_China_Study_(book)"&gt;like agriculturally derived diets&lt;/a&gt;. The second controversial interpretation is that monogamy is a powerful &lt;i&gt;technology&lt;/i&gt; which, in supporting the economics of the agricultural era, enabled humans to take over the world and become the planet's dominant species.&lt;br /&gt;&lt;br /&gt;Obviously, both interpretations may be correct, and yet one brands monogamy a harmful thing, while the other names it a hero.&lt;br /&gt;&lt;br /&gt;The non-monogamous mating patterns of tribal hunter-gatherer societies also pose very interesting questions because of the &lt;a href="http://www.amazon.com/Snow-Crash-Bantam-Spectra-Book/dp/0553380958" style="font-style: italic;"&gt;Snow Crash&lt;/a&gt; prediction that post-industrial society fragments and becomes tribal. If such a process is already underway, one would expect some decay in the institutions of monogamy in the world today, and of course anecdotal evidence for this is easy to find, most obviously in the history of the 1960s and 1970s and the very high divorce rate.&lt;br /&gt;&lt;br /&gt;However, it seems overbold to call post-industrial society &lt;i&gt;truly&lt;/i&gt; tribal, as it is not and will not be possible without education, technology, and many other systems not native to the tribal model and probably not sustainable under it. Therefore you have this very interesting dynamic of society becoming more tribal-ish but never really tribal per se, and this interesting conflict of monogamy the destructive maladaptation versus monogamy the world-changing innovation. The potential for controversy, complication, and pure human drama here is absolutely immense, as you already know if you've ever made the immensely time-consuming mistake of asking a polyamorist to describe their relationships in detail.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-8418781832442555547?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/8418781832442555547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/8418781832442555547'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/08/question-for-serious-sci-fi.html' title='A Question For Serious Sci-Fi'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-2433866781165257387</id><published>2011-08-27T11:26:00.000-07:00</published><updated>2011-09-04T09:32:40.431-07:00</updated><title type='text'>TDD In JavaScript: No Excuses</title><content type='html'>Madison RubyConf was awesome, but listening to the testing panel outraged me beyond words. I frothed at the mouth and nearly had an aneurysm right there in my chair. It sent me loony in the noggin and left me wondering how many guys on that panel were huffing glue right before they got on stage. Somebody said that testing was an insurance policy, and this madness went uncorrected - despite the fact that test-driven &lt;b&gt;&lt;i&gt;DESIGN&lt;/b&gt;&lt;/i&gt; is obviously about design - and when the subject of testing JavaScript came up, the consensus was &lt;b&gt;&lt;i&gt;NOT TO FREAKING DO IT&lt;/b&gt;&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;Names will go un-named to protect the guilty, but I later cornered one of these lunatic miscreants on a rooftop while inebriated, and I have to give him credit, because the distinguished if utterly mistaken gentleman handled my vehement, drunken correction with grace and aplomb. So kudos there.&lt;br /&gt;&lt;br /&gt;Nonetheless, if you're not writing your JavaScript TDD, you're out of your fucking mind. It's just so fucking EASY, and it's such a quirky language with so many pitfalls. Writing JavaScript without tests is like having sex without a condom, except worse, because it's the wiggiest language out there, and it can turn on you at any second, so it's more like having sex with a rabid orangutang without a condom during the act or a taser to subdue it afterwards so you can make your escape. Look, just write fucking tests when you write fucking JavaScript, OK? Seriously, what the fuck.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/whoops_040911/zomgwtf.jpg"&gt;&lt;br /&gt;&lt;br /&gt;Here's a quick video showing how easy it is. The video uses CoffeeScript but everything in it translates very, very easily and directly into JavaScript; all you do is add punctuation. By the way, I wrote a lot of the code and the tests in this video &lt;i&gt;while sitting in the audience of this testing talk&lt;/i&gt;. It's so easy you can do it without even fully paying attention to it because you're also busy listening to somebody tell you how allegedly impossible it is.&lt;br /&gt;&lt;br /&gt;&lt;iframe width="640" height="390" src="http://www.youtube.com/embed/RZYa_4QDRvI" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Aneurysms aside, Madison RubyConf really was one of the best conferences I've been to. I definitely recommend checking it out.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Update:&lt;/b&gt;&lt;/i&gt; Bryan Liles was on the testing panel, and he reminded me on Twitter that he did in fact say to test JavaScript.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-2433866781165257387?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/2433866781165257387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/2433866781165257387'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/08/tdd-in-javascript-no-excuses.html' title='TDD In JavaScript: No Excuses'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/RZYa_4QDRvI/default.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-490953535309312531</id><published>2011-08-25T10:16:00.000-07:00</published><updated>2011-08-25T10:19:38.989-07:00</updated><title type='text'>Time Management Videos Relaunch Delayed</title><content type='html'>Yes, it's funny - like when a psychic cancels an event "due to unforseen circumstances." But I'm delaying the relaunch of my time management videos, because I came down with a pretty nasty cold after Madison RubyConf and have been sleeping it off ever since. More news soon, I hope.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-490953535309312531?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/490953535309312531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/490953535309312531'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/08/time-management-videos-relaunch-delayed.html' title='Time Management Videos Relaunch Delayed'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-5704759949564529074</id><published>2011-08-17T10:16:00.000-07:00</published><updated>2011-08-17T10:20:19.560-07:00</updated><title type='text'>50 For 50</title><content type='html'>It's her 50th birthday, so &lt;a href="http://50for50.us/"&gt;Colleen Wainwright is raising $50,000&lt;/a&gt; for &lt;a href="http://www.writegirl.org/"&gt;her favorite charity&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I've donated - you should too! Colleen gave me a terrific interview for my short-lived podcast &lt;a href="http://hollywoodgrit.blogspot.com/" style="font-style: italic;"&gt;Hollywood Grit&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-5704759949564529074?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/5704759949564529074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/5704759949564529074'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/08/50-for-50.html' title='50 For 50'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-212714924758745061</id><published>2011-08-17T09:58:00.001-07:00</published><updated>2011-08-17T10:00:23.472-07:00</updated><title type='text'>Video Download Setup Semi-Fixed</title><content type='html'>Been getting emails from people trying to buy my resumés video. &lt;a href="http://gilesgoatboy.fetchapp.com/sell/amomewek"&gt;The buying segment is fixed here&lt;/a&gt;. The download segment I'm handling manually for now.&lt;br /&gt;&lt;br /&gt;Sorry for any inconvenience! Unexpected demand is a good problem to have, but I probably won't have time to fix this fully until next week, after I get back from Madison RubyConf.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-212714924758745061?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/212714924758745061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/212714924758745061'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/08/video-download-setup-semi-fixed.html' title='Video Download Setup Semi-Fixed'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-613048354025482095</id><published>2011-08-16T08:26:00.000-07:00</published><updated>2011-08-16T10:51:09.740-07:00</updated><title type='text'>Programmer Resumes Video: Fantastic Testimonial</title><content type='html'>&lt;i&gt;Giles - had to shoot you an email because your resume video helped me in a big, big way.  I recently landed a dream Ruby job (with an amazing startup) as a direct result of what you taught me in your video.  I doubt my old resume would have even made it past the screener.&lt;br /&gt;&lt;br /&gt;Before your video, I blasted my resume out everywhere and it was ignored with great vigor - in spite of my strong skill set.  (Your skills don't mean jack if you can't get people to read your resume.)&lt;br /&gt;&lt;br /&gt;Of course, I was doing it the way we're all taught: just list your jobs and education, then sprinkle some "power verbs" on top.  FAIL. &lt;br /&gt;&lt;br /&gt;As I discovered, there is only one "insider's way" to do a tech resume...but lots of so-very-wrong noob ways that don't work.  All the stuff you read in books is outdated or wrong for our industry.  I know because I wasted a lot of time with them.&lt;br /&gt;&lt;br /&gt;Once I learned the "what goes first / what goes last" in your resume video, the door really blew open for me.  Same skills, one little tweak and everything changed.  Now instead of me doing all the chasing...now I'm the one pursued.  (I joke with my wife that sending out my new resume is "chumming the water".)  Soooo sweet to get responses back within the hour.  And they all say the same thing: "Chris, your resume looks great.  When can we get you in to talk?"&lt;br /&gt;&lt;br /&gt;Only one criticism: It would be better if you chunked the content into quick chapters, instead of one long video.  You covered a lot of ground and it might make it easier to absorb.  But that's minor.  Point is, your information really works.  Not ten years ago, not in theory.  It works now.&lt;br /&gt;&lt;br /&gt;So, thanks!&lt;br /&gt;&lt;br /&gt;Chris Whamond&lt;br /&gt;&lt;br /&gt;PS - I was really skeptical when I ordered this video.  So if you are someone considering it, think about this: If Giles' video helps launch you into a better career making more money with greater job satisfaction...what's that worth to you over the next year?  Or over the next five or ten years?  The return on your investment here could be huge.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;For sale &lt;a href="http://gilesbowkett.blogspot.com/2010/06/new-video-on-programmer-resumes.html"&gt;individually&lt;/a&gt; and as part of a &lt;a href="http://gilesbowkett.blogspot.com/2010/03/programmers-what-to-do-if-you-get-fired.html"&gt;bundle&lt;/a&gt;.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-613048354025482095?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/613048354025482095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/613048354025482095'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/08/programmer-resumes-video-fantastic.html' title='Programmer Resumes Video: Fantastic Testimonial'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-4918801715052240973</id><published>2011-08-15T12:36:00.000-07:00</published><updated>2011-08-15T12:37:20.928-07:00</updated><title type='text'>Historical Intriguification</title><content type='html'>&lt;a href="http://www.cockos.com/jesusonic/"&gt;&lt;img src="http://s3.amazonaws.com/giles/history_081511/jesusonic_win32_099.gif"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-4918801715052240973?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/4918801715052240973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/4918801715052240973'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/08/historical-intriguification.html' title='Historical Intriguification'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-3001883242404611423</id><published>2011-08-12T11:15:00.000-07:00</published><updated>2011-08-12T11:22:38.428-07:00</updated><title type='text'>Hyper-Concentration Of Wealth In USA Produces Centrally-Planned Economy Effects</title><content type='html'>&lt;a href="http://globalguerrillas.typepad.com/globalguerrillas/2011/07/journal-central-planning-and-the-fall-of-the-us-empire.html" style="font-style: italic;"&gt;The only way to manage an economy as complex as this is to allow massively parallel decision making...&lt;br /&gt;&lt;br /&gt;Of course, the misallocation due to centralized decision making wasn't supposed to be a vulnerability of the West.  To allocate resources in our economy, we had a conceptually more efficient mechanism: markets.  Markets are supposed to be a mechanism that allows massively parallel decision making...&lt;br /&gt;&lt;br /&gt;Central planning took over the decision making process in the US, both through the growth of government and through an unparalleled concentration of wealth...&lt;br /&gt;&lt;br /&gt;The concentration of wealth is now in so few hands and is so extreme in degree, that the combined liquid financial power of all of those not in this small group is inconsequential to determining the direction of the economy.   As a result, we now have the equivalent of centralized planning in global marketplaces.  A few thousand extremely wealthy people making decisions on the allocation of our collective wealth.  The result was inevitable:  gross misallocation across all facets of the private economy.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-3001883242404611423?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/3001883242404611423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/3001883242404611423'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/08/hyper-concentration-of-wealth-in-usa.html' title='Hyper-Concentration Of Wealth In USA Produces Centrally-Planned Economy Effects'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-7661063737361682481</id><published>2011-08-12T10:58:00.001-07:00</published><updated>2011-08-12T10:58:31.563-07:00</updated><title type='text'>Inane Video Shenanigans: Madison RubyConf Preview</title><content type='html'>&lt;iframe width="640" height="390" src="http://www.youtube.com/embed/Qg1DQv-A-kQ" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-7661063737361682481?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/7661063737361682481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/7661063737361682481'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/08/inane-video-shenanigans-madison.html' title='Inane Video Shenanigans: Madison RubyConf Preview'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/Qg1DQv-A-kQ/default.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-5266349119710835888</id><published>2011-08-09T14:06:00.000-07:00</published><updated>2011-08-09T14:11:46.235-07:00</updated><title type='text'>Multi-Track Rails Music App via SoundCloud API</title><content type='html'>&lt;a href="http://sessian.com/1"&gt;Sessian&lt;/a&gt; allows you to use your browser like a mixer, with an important caveat: the tracks can only be soloed or muted, not volume-adjusted, as far as I can tell. Still, turning your web browser into a primitive mixer is a neat accomplishment and a sign of things to come. &lt;a href="http://www.railsdeveloper.net/2011/04/soundcloud-powered-multi-track-app/"&gt;The developer, Chris Whamond, goes into a little detail on his site&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Before coming to Rails, Chris also did a bunch of interesting direct marketing work, and was kind enough to do an interview with me last year, which is unfortunately sort of trapped on a semi-fragile hard drive. I'm going to upgrade my old box to an SSD drive, maybe two, and I'm hoping to blog Chris's interview once I get things cleaned up a bit.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-5266349119710835888?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/5266349119710835888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/5266349119710835888'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/08/multi-track-rails-music-app-via.html' title='Multi-Track Rails Music App via SoundCloud API'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-6189362871054178778</id><published>2011-08-07T18:20:00.001-07:00</published><updated>2011-08-07T18:48:02.850-07:00</updated><title type='text'>Browser Exclusivity</title><content type='html'>Here's something I've never seen anybody do, but I imagine it would work: sell refusal to support IE6 not as a technical decision but as a marketing one - &lt;b&gt;&lt;i&gt;a mark of exclusivity&lt;/b&gt;&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;Consider this solid-gold iPhone case:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/luxury_080711/expensive-iphone-case-gng.jpg"&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://most-expensive.net/luxury-iphone-cases"&gt;It sells for $100,000.&lt;/a&gt; A cheap plastic case probably does a better job of protecting your iPhone. But a cheap plastic case does a much worse job of broadcasting your wealth to everybody around you, which is what this iPhone case is for.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://basicinstructions.net/basic-instructions/2011/8/2/how-to-care-for-your-smartphone.html"&gt;&lt;img border=0 src="http://s3.amazonaws.com/giles/luxury_080711/basic.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Telling regular people to upgrade their browser is like saying they need to manually modify what they consider to be the dangerous, mystical internals of their computer. Most people don't upgrade, they just buy new machines. But if you say, look, your computer has to be at least this new to use our web site, you're speaking in a language of money, class, and social status, which is a language everybody understands.&lt;br /&gt;&lt;br /&gt;I'm absolutely not saying this is the way things should be, but &lt;a href="http://gilesbowkett.blogspot.com/2007/03/business-case-for-firefox.html"&gt;anything which gets web developers out of supporting Internet Explorer is worth a shot&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-6189362871054178778?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/6189362871054178778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/6189362871054178778'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/08/browser-exclusivity.html' title='Browser Exclusivity'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-5365802826595861150</id><published>2011-08-07T10:16:00.000-07:00</published><updated>2011-08-07T10:21:11.446-07:00</updated><title type='text'>GroupOn Equated To Madoff</title><content type='html'>&lt;a href="http://www.glgroup.com/News/Groupon-is-the-next-Madoff-except-big-iBanks-helped-it-rob-investors-54999.html" style="font-style: italic;"&gt;irrational valuations for a company whose seeming goal is to make its original founders and investors money while leaving "the next sucker" holding the bag. &lt;br /&gt;&lt;br /&gt;Note that original investors have cashed out more than $800 million, instead of using the money for operations... note the stories from the field already coming in - for example, about Groupon selling half a million dollars worth of salon services for a salon that was not even set up yet.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-5365802826595861150?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/5365802826595861150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/5365802826595861150'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/08/groupon-equated-to-madoff.html' title='GroupOn Equated To Madoff'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-4557373533726216874</id><published>2011-08-06T12:58:00.000-07:00</published><updated>2011-08-06T13:05:12.479-07:00</updated><title type='text'>Great Web Comic: Girl Genius</title><content type='html'>From a hilarious world ruled by mad scientists, which should look all too familiar if you're a programmer.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/girlgenius_080611/engineering_meeting.jpg"&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/girlgenius_080611/winch.jpg"&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/girlgenius_080611/making_coffee.jpg"&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/girlgenius_080611/do.jpg"&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/girlgenius_080611/releasing_lightning.jpg"&gt;&lt;br /&gt;&lt;br /&gt;I recommend &lt;a href="http://www.girlgeniusonline.com/comic.php?date=20021104"&gt;starting at the beginning&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-4557373533726216874?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/4557373533726216874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/4557373533726216874'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/08/great-web-comic-girl-genius.html' title='Great Web Comic: Girl Genius'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-7514311375509566484</id><published>2011-08-06T10:16:00.000-07:00</published><updated>2011-08-07T08:07:39.718-07:00</updated><title type='text'>TOLDJA! Unnecessary Registration Costs Businesses Money</title><content type='html'>BoingBoing, in 2011:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://boingboing.net/2011/08/05/300-million-button-making-customers-create-logins-to-buy-cost-etailer-300myear.html"&gt;The fastest way to alienate... customers and scare away [their] money is to make [them] establish a relationship with you before [they] can make a purchase.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;we did an analysis of the retailer's database, only to discover 45% of all customers had multiple registrations in the system, some as many as 10. We also analyzed how many people requested passwords, to find out it reached about 160,000 per day. 75% of these people never tried to complete the purchase once requested.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Me, in 2008:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://gilesbowkett.blogspot.com/2008/01/control-is-business-disadvantage.html"&gt;Control is a business disadvantage&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-7514311375509566484?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/7514311375509566484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/7514311375509566484'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/08/toldja-unnecessary-registration-costs.html' title='TOLDJA! Unnecessary Registration Costs Businesses Money'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-7413285994847143549</id><published>2011-08-01T16:51:00.000-07:00</published><updated>2011-08-01T17:32:54.618-07:00</updated><title type='text'>ActiveRecord Minus The Record Part</title><content type='html'>Today &lt;a href="http://solnic.eu/2011/08/01/making-activerecord-models-thin.html"&gt;an ActiveRecord discussion&lt;/a&gt; revisited an issue &lt;a href="http://jamesgolick.com/2010/3/14/crazy-heretical-and-awesome-the-way-i-write-rails-apps.html"&gt;raised about a year ago&lt;/a&gt;. The short version: ActiveRecord models which contain all your application's domain modelling become bloated and a total pain in the ass to test, refactor, and/or read.&lt;br /&gt;&lt;br /&gt;A year ago, James Golick said:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;The truth is that in a simple application, obese persistence objects might never hurt. It's when things get a little more complicated than CRUD operations that these things start to pile up and become pain points. That's why so many Rails plugins seem to get you 80% of the way there, like immediately, but then wind up taking forever to get that extra 20%.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;My favorite comment in today's discussion echoed this thought:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;I think this all depends solely on the complexity of the app you are building.&lt;br /&gt;&lt;br /&gt;If you're building a small website, even proper MVC might be overkill and things like Sinatra + Sequel might be the best solution.&lt;br /&gt;&lt;br /&gt;If you're building a medium sized app, the Rails approach of thin controller / thick model will be just right.&lt;br /&gt;&lt;br /&gt;If you're building an enterprise information system, you might need that three-tier architecture with presentation / business logic / persistence layers separation and maybe even other Java world practices.&lt;br /&gt;&lt;br /&gt;Don't over-engineer, don't under-engineer. Make it just right for the thing you are building.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Factoring an ActiveRecord persistence strategy (either &lt;a href="http://martinfowler.com/eaaCatalog/"&gt;the design pattern, or the Rails gem&lt;/a&gt;) out of the centerpiece of your object model makes a lot of sense once you pass some threshold of scale. In this instance by "scale" I mean code base size but also possibly traffic. The argument for code base size is hopefully obvious, and certainly covered in the blog posts I've already linked to and quoted.&lt;br /&gt;&lt;br /&gt;With enough traffic, strong arguments mount for slicing your persistence up. You might read from read-optimized databases while writing to a central write-optimized one (since most web apps do a lot more reading than writing) or handle most persistence through SQL while shunting a small subset off to NoSQL alternatives. It gets ridiculous managing multiple persistence solutions within an object which exists to model your business logic. A line or two of ridiculous, I can handle - I've written ActiveRecord models which snuck in calls to Redis pub/sub on the side - but go much further beyond that and the argument for separate objects becomes rock-solid.&lt;br /&gt;&lt;br /&gt;In this sense, the traffic-motivated split is really just a code-size-motivated split with a specific reason for code size growing, and obviously where a general code-motivated split can depend on the overall size of your model code, a traffic-motivated one would depend on the size and complexity of your persistence code.&lt;br /&gt;&lt;br /&gt;I don't think there's really any debate here at all, except for one crucial question: where do you mark the threshold? How do you decide when your code needs this split? Although you can certainly perform various measurements to guide this decision, I think this is a judgement call, and pretty much impossible to decide ahead of time. I've worked on sites which I knew for a fact would see gazillions of pageviews from the first day of launch, whether their larger business goals succeeded or failed. For a site like that, I would absolutely start by factoring ActiveRecord out into a service like James does. For more typical Rails sites, I'd start with ActiveRecord and move it out of the picture only when necessary. In my opinion this kind of split is crucial if you hope to scale a Rails site, but optional for most smaller projects.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-7413285994847143549?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/7413285994847143549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/7413285994847143549'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/08/activerecord-minus-record-part.html' title='ActiveRecord Minus The Record Part'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-9176500595058341375</id><published>2011-08-01T09:26:00.000-07:00</published><updated>2011-08-01T10:42:57.039-07:00</updated><title type='text'>Disruptive Wealth Creation Happens Disruptively</title><content type='html'>In my opinion, there's a little bit of foolishness here, but it's mostly dead on:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.digital-dd.com/the-growth-of-the-internet-and-the-happy-recession/" style="font-style: italic;"&gt;Most popular web-based businesses are deflationary. They substitute expensive forms of content consumption for cheap ones, they make it logistically easier to deliver discounts to people who will respond to them, and they create numerous financially cheap forms of social status. As more activity moves on to the web, the main effect on the economy will be broadly lower prices and less need for employment.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A related note: tech and biz journalism assumes that all forms of new technology give birth to gigantic corporations. However, what about technologies which are so fundamentally disruptive that they obviate corporate structures? Look at Y Combinator and taco trucks.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/kogi_080111/kogi.jpg"&gt;&lt;br /&gt;&lt;br /&gt;Y Combinator swoops and scoops venture capital by starting companies with much, much less money. The Internet made this possible, venture capital was slow to adapt, and Y Combinator nabbed it. Cities had taco trucks for a long time before the Internet, but &lt;a href="http://www.sporkmedia.com/?p=847"&gt;Twitter made them fashionable&lt;/a&gt;. You don't actually need a physical location to launch a successful restaurant; you only need a long line of people eager to eat your food. (Quote from lafoodie.com: "&lt;a href="http://www.la-foodie.com/barbecue/kogi-bbq-jack-in-the-box/"&gt;Is a Kogi BBQ taco worth an hour's wait? Yes.&lt;/a&gt;")&lt;br /&gt;&lt;br /&gt;In either case, the web made a winner out of a smaller company with more immediate, less expensive goals. For business, the web is a fat-trimmer more than anything. Combine that with the aforementioned (or actually aforequoted) blog post's notes on web economics:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.digital-dd.com/the-growth-of-the-internet-and-the-happy-recession/" style="font-style: italic;"&gt;The web makes entertainment cheaper...&lt;br /&gt;&lt;br /&gt;The web makes it easier to access non-traditional employees at much lower salaries...&lt;br /&gt;&lt;br /&gt;The web offers cheap social status: In the long term, this may have a bigger effect than the web merely making digitizable products cheaper. Social status games drive a huge amount of economic activity...&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Internet companies have higher revenue per employee, which can be restated to note that they need fewer employees to get a given level of revenue&lt;/b&gt;.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;(My emphasis.)&lt;br /&gt;&lt;br /&gt;The blog post I'm responding to here is a bit over-optimistic in my opinion. Consider an unbalanced situation: 10% unemployment or more for the technologically illiterate, and annoying recruiters everywhere begging to hire anyone with high levels of technological literacy. At my favorite local café, the baristas have Etsy stores, but I don't think they're pulling in six figures. Disruptive economic phenomena disrupt economies.&lt;br /&gt;&lt;br /&gt;This employment imbalance may be a short-term fluke, but it may persist until education re-orients to accomodate the modern requirement for technological literacy. Either way, it presents both enormous risks and enormous opportunities. I like to think that the end result will be more democratic, since social media and related technologies disaggregate corporate structures and make smaller businesses possible.&lt;br /&gt;&lt;br /&gt;At the same time, however, the web's fueled a lot of new aggregation. Amazon's eaten Borders, and for some people I know, it's also replaced Target, IKEA, Staples, Home Depot, and entire shopping districts. Facebook represents the most audacious virtual land grab in history - an attempt, ultimately, to charge people rent for their own names - and for myself personally, Apple's iOS and TV have replaced HBO, AMC, Showtime, NBC, ABC, CBS, Fox, Comedy Central, Tower Music, Amoeba Records, etc., etc., etc. Pretty much every company in entertainment distribution which made money from me in the past has lost me to Apple.&lt;br /&gt;&lt;br /&gt;But again:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.digital-dd.com/the-growth-of-the-internet-and-the-happy-recession/" style="font-style: italic;"&gt;Most popular web-based businesses are deflationary. They substitute expensive forms of content consumption for cheap ones...&lt;br /&gt;&lt;br /&gt;The web makes entertainment cheaper...&lt;br /&gt;&lt;br /&gt;Internet companies have higher revenue per employee, which can be restated to note that they need fewer employees to get a given level of revenue.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In the case of Apple vs the entire pre-Internet entertainment distribution industry, they also need fewer employees to deliver superior value at a lower price point. &lt;a href="http://tvbythenumbers.zap2it.com/2009/04/16/average-monthly-cable-bill-is-71-according-to-study/16887/"&gt;The average US monthly cable bill is $71 according to one study&lt;/a&gt;; I pay $8 per month to Netflix and $15 every two weeks to Apple for &lt;i&gt;The Daily Show&lt;/i&gt; and that's pretty much it. In return I get content I can take anywhere I go. I can't tell you the number of times I've used iOS devices to watch movies or TV on a plane or a bus, or in a hotel or on a friend's sofa while on a trip somewhere my cable TV access wouldn't have followed me.&lt;br /&gt;&lt;br /&gt;(I do go on occasional binges which quirk those numbers - I think I watched the entire first season of &lt;i&gt;True Blood&lt;/i&gt; inside a single 24-hour period - but amortize the $20 to $40 I paid for that on iTunes across the several &lt;i&gt;months&lt;/i&gt; it would have taken me under the pre-Internet model. Then compare it to the pre-Internet model's requirement that I watch on somebody's else schedule instead of my own &lt;b&gt;&lt;i&gt;and&lt;/i&gt;&lt;/b&gt; subscribe to unnecessary "channels" broadcasting loads of additional crap I don't want. It's still an easy win.)&lt;br /&gt;&lt;br /&gt;Anyway, long story short, &lt;a href="http://www.digital-dd.com/the-growth-of-the-internet-and-the-happy-recession/" style="font-style: italic;"&gt;most popular web-based businesses are deflationary&lt;/a&gt;. It's a crucial insight.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-9176500595058341375?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/9176500595058341375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/9176500595058341375'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/08/disruptive-wealth-creation-happens.html' title='Disruptive Wealth Creation Happens Disruptively'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-7559673859136868543</id><published>2011-07-30T14:15:00.001-07:00</published><updated>2011-07-30T14:19:38.767-07:00</updated><title type='text'>Video: LA RubyConf Talk Up</title><content type='html'>&lt;a href="http://confreaks.net/videos/485-larubyconf2011-easy-node-js-apps-with-lisp"&gt;&lt;b&gt;&lt;i&gt;Easy Node.js Apps With Lisp&lt;/b&gt;&lt;/i&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The talk analyzes hip-hop lyrics to explain why Lisp's parentheses are awesome.&lt;br /&gt;&lt;br /&gt;Big thanks to Confreaks, especially since I kept them busy by hopping all over the stage(s).&lt;br /&gt;&lt;br /&gt;Talk description:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://confreaks.net/videos/485-larubyconf2011-easy-node-js-apps-with-lisp" style="font-style: italic;"&gt;Lisp is a programming language which allows you to manipulate its abstract syntax tree directly. The popular quote about every other language being a partial implementation of Lisp is not just snark; all programming languages use an abstract syntax tree, so Lisp is literally and mathematically either equal to, or a superset of, every other programming language. However, if you've wanted to build anything actually useful with Lisp, you've historically been in the position of having no vibrant, powerful open source community to draw on. Not many people enjoyed this tradeoff, but fortunately, it is no longer the case. Sibilant is a Lisp written on top of Node.js, a new server-side JavaScript library for writing servers. Node has an active open source community, and it runs on the lightning-fast V8 JavaScript interpreter (written and supported by Google). Thanks to V8, Node, and Sibilant, it is now trivially easy to write web servers, command-line utilities, and applications (server-side, client-side, or both) in a fast, well-supported Lisp. This talk will show you how.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-7559673859136868543?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/7559673859136868543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/7559673859136868543'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/07/video-la-rubyconf-talk-up.html' title='Video: LA RubyConf Talk Up'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-6557965208816410459</id><published>2011-07-28T15:57:00.000-07:00</published><updated>2011-08-01T10:46:58.129-07:00</updated><title type='text'>Wheatley: Semi-Automated JavaScript Refactoring</title><content type='html'>Incomplete, and I hope to refactor it (ironically enough), but kind of awesome. &lt;br /&gt;&lt;br /&gt;&lt;pre&gt;it "can do an ultra-simple refactor, namely creating a wrapper function" do&lt;br /&gt;  @code = &amp;lt;&amp;lt;-CODE&lt;br /&gt;console.log("foo");&lt;br /&gt;CODE&lt;br /&gt;  @refactored = &amp;lt;&amp;lt;-REFACTORED&lt;br /&gt;function asdf(qwerty) {&lt;br /&gt;  console.log(qwerty);&lt;br /&gt;}&lt;br /&gt;asdf("foo");&lt;br /&gt;REFACTORED&lt;br /&gt;  Wheatley.create_wrapper_function(@code).should == @refactored&lt;br /&gt;end&lt;/pre&gt;&lt;br /&gt;Extensive documentation on GitHub.&lt;br /&gt;&lt;a href="https://github.com/gilesbowkett/wheatley" style="font-style: italic;"&gt;&lt;h2&gt;Features&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Wrap function definitions in wrapper functions&lt;/li&gt;&lt;li&gt;Identify similar JavaScript code blocks&lt;/li&gt; &lt;li&gt;Calculate similarity percentage between any two code blocks&lt;/li&gt; &lt;li&gt;Compare code blocks to see how many specific tokens they differ by&lt;/li&gt; &lt;li&gt;Extract the variant tokens by which similar code blocks differ&lt;/li&gt; &lt;li&gt;Extract a literal from a simple function&lt;/li&gt; &lt;li&gt;Create function calls&lt;/li&gt; &lt;li&gt;Create wrapper functions&lt;/li&gt; &lt;li&gt;Perform simplistic proof-of-concept refactoring&lt;/li&gt; &lt;/ul&gt;&lt;/a&gt;&lt;br /&gt;Named after the dumb AI from &lt;i&gt;Portal 2&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;&lt;iframe width="640" height="390" src="http://www.youtube.com/embed/rWVGupqvCL8?hd=1" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-6557965208816410459?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/6557965208816410459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/6557965208816410459'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/07/wheatley-semi-automated-javascript.html' title='Wheatley: Semi-Automated JavaScript Refactoring'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/rWVGupqvCL8/default.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-4483004623881624238</id><published>2011-07-27T01:37:00.000-07:00</published><updated>2011-07-27T01:56:37.080-07:00</updated><title type='text'>Daily Bitcoin Exchange Rate Miniapp</title><content type='html'>You can't do this for Bitcoin yet:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/btc_072611/google.jpg"&gt;&lt;br /&gt;&lt;br /&gt;Until tonight, your best bets were &lt;a href="http://bitcoincharts.com"&gt;bitcoincharts.com&lt;/a&gt; and the painful cognitive overhead of its UI, or &lt;a href="http://mtgox.com"&gt;Mt Gox&lt;/a&gt; and the painful cognitive overhead of its UI.&lt;br /&gt;&lt;br /&gt;Here's a temporary solution:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/btc_072611/gilesb.jpg"&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://btcusd.gilesb.com/"&gt;http://btcusd.gilesb.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://github.com/gilesbowkett/btcusd"&gt;https://github.com/gilesbowkett/btcusd&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The site updates daily via &lt;code&gt;cron&lt;/code&gt;. Pull requests are very welcome. I'm especially hoping to add some nice CSS and a command-line calculator interface like Google's.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;At the risk of stating the obvious, btcusd.gilesb.com does not constitute financial advice. Absolutely no guarantees are made regarding the usefulness, accuracy, or freshness of the data. The miniapp functions purely as a convenience for busy people who are curious enough to keep an eye on Bitcoin but not serious enough to pour their entire life savings into it.&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-4483004623881624238?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/4483004623881624238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/4483004623881624238'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/07/daily-bitcoin-exchange-rate-miniapp.html' title='Daily Bitcoin Exchange Rate Miniapp'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-3553845921128191311</id><published>2011-07-25T19:30:00.002-07:00</published><updated>2011-07-26T16:25:11.339-07:00</updated><title type='text'>Automated Refactoring Is *A* Future</title><content type='html'>As opposed to &lt;i&gt;the&lt;/i&gt; future. You may only see it today in research projects, but consider: there are plenty of COBOL projects still running today. Now imagine it's the year 2350. Who do you think maintains &lt;b&gt;&lt;i&gt;ultra&lt;/b&gt;&lt;/i&gt;-legacy code?&lt;br /&gt;&lt;br /&gt;In a fortunate coincidence, &lt;a href="http://epr.adaptive.cs.unm.edu/about.html"&gt;Hacker News featured an academic automated refactoring project today&lt;/a&gt;, and I began repackaging &lt;a href="http://gilesbowkett.blogspot.com/2010/12/automated-refactoring-this-spec-passes.html"&gt;a moderately successful automated refactoring research project of my own&lt;/a&gt; (which I had hoped to make into a business) for public consumption as open source.&lt;br /&gt;&lt;br /&gt;It's just barely clean enough to release, but I'm going to take a little longer to make it something I can be more proud of. So, stay tuned.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Edit&lt;/i&gt;: Related:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.josephwilk.net/cucumber/mining-cucumber-features.html"&gt;data mining cucumber features&lt;/a&gt;&lt;br /&gt;&lt;a href="http://gilesbowkett.blogspot.com/2010/12/automated-refactoring-this-spec-passes.html"&gt;automated refactoring: this spec passes&lt;/a&gt;&lt;br /&gt;&lt;a href="http://gilesbowkett.blogspot.com/2010/11/current-projects-twitter-newspaper.html"&gt;current projects: twitter newspaper and automated refactoring&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-3553845921128191311?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/3553845921128191311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/3553845921128191311'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/07/automated-refactoring-is-future.html' title='Automated Refactoring Is *A* Future'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-8088373717211658033</id><published>2011-07-22T17:31:00.000-07:00</published><updated>2011-07-22T18:06:17.799-07:00</updated><title type='text'>Career Exploration: Work For Free Rather Than Lowering Your Rate</title><content type='html'>Long-time readers of this blog know that I'm a very experienced programmer and a very inexperienced actor. I have three times taken on Rails projects in the entertainment industry at a discounted rate in order to get my foot in the water - maybe two and a half times, depending on your definitions. Two companies with very firm entertainment industry roots, and one which you might call half entertainment and half Silicon Valley.&lt;br /&gt;&lt;br /&gt;Anyway, at the two companies with really strong roots, the discounted rate fell much, much lower than my normal rate. In both cases, I took on side projects - additional clients and my own business projects - to generate additional income, and had to, in order to pay my bills. In one case, the side projects paid more than four times as much as the entertainment industry project.&lt;br /&gt;&lt;br /&gt;I got the idea to make this sacrifice from a period when I was researching career changes. I don't recall the specific books or articles, but the reasoning was that you leverage your existing skills to get a foot in the door. To some extent, that works. I learned a lot about the entertainment industry and met amazing people - but each project ended badly. The half entertainment/half tech company paid a rate nearer to my normal rate, and didn't end as badly as the pure entertainment industry projects, but it still didn't go as smoothly as it should have.&lt;br /&gt;&lt;br /&gt;This was very disappointing.&lt;br /&gt;&lt;br /&gt;I read a great thing online once, about why lawyers should do pro bono work rather than lowering their fee, in instances where they want to help people who can't afford them. ("Pro bono" means "for the good" in Latin and is an idiom lawyers use to indicate work done for free.) I'm going to say this reasoning applies to my entertainment industry experiments as well.&lt;br /&gt;&lt;br /&gt;The reasoning goes like this: people will not compare your discounted rate to your real rate. Instead they'll compare it to the rate they hoped to pay. In some cases, they may even suspect you of making up a completely false "real rate" to use as a bargaining chip.&lt;br /&gt;&lt;br /&gt;The experience of lowering your rate to get your foot in the door in some new industry carries with it all the disadvantages of being overqualified. If you're curious enough about a new industry to consider making this sacrifice, it is much, much wiser to instead tell people your normal rate, and if they say they can't afford it, offer a small amount of your time for free on a regular basis. A small team with a novice programmer will get more work done (and better work) if that novice programmer can run his or her thoughts and code by a more experienced programmer for feedback from time to time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-8088373717211658033?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/8088373717211658033'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/8088373717211658033'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/07/career-exploration-work-for-free-rather.html' title='Career Exploration: Work For Free Rather Than Lowering Your Rate'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-8863632352412238392</id><published>2011-07-20T11:38:00.000-07:00</published><updated>2011-07-20T11:43:39.727-07:00</updated><title type='text'>A Good Reason To Read The Pirate's Dilemma And McMafia</title><content type='html'>&lt;a href="http://bits.blogs.nytimes.com/2011/07/20/the-rise-of-the-fake-apple-store/?smid=tw-nytimesbits&amp;seid=auto" style="font-style: italic;"&gt;Apple has to contend with a new genre of copycats, those who are actually replicating Apple Store retail locations and setting up shop around the world.&lt;br /&gt;&lt;br /&gt;I saw one of these stores late last year when I took a trip to Quito, Ecuador. Although the store promoted itself as a genuine Apple location, it was clearly fake. The store design and employees were clearly out of character.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.amazon.com/Pirates-Dilemma-Culture-Reinventing-Capitalism/dp/1416532188"&gt;&lt;img src="http://s3.amazonaws.com/giles/this_was_a_known_bug_072011/piratesdilemmapaperback.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.amazon.com/McMafia-Journey-Through-Criminal-Underworld/dp/1400044111"&gt;&lt;img src="http://s3.amazonaws.com/giles/this_was_a_known_bug_072011/mcmafia.jpg"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-8863632352412238392?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/8863632352412238392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/8863632352412238392'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/07/good-reason-to-read-pirates-dilemma-and.html' title='A Good Reason To Read &lt;i&gt;The Pirate&apos;s Dilemma&lt;/i&gt; And &lt;i&gt;McMafia&lt;/i&gt;'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-1715961815834469976</id><published>2011-07-19T17:40:00.001-07:00</published><updated>2011-07-19T18:15:11.923-07:00</updated><title type='text'>The $40 Table Of Contents</title><content type='html'>I badgered thoughtbot on Twitter the other day about their &lt;a href="http://workshops.thoughtbot.com/backbone-js-on-rails"&gt;new book on Backbone.js&lt;/a&gt;. Full disclosure: I did the music for &lt;a href="http://peepcode.com/products/backbone-js"&gt;the PeepCode video on Backbone&lt;/a&gt;, which is obviously a competing product. But I'm really looking forward to this Backbone book and I can't wait to read it, so I was frustrated when I asked thoughtbot how much material they had so far, because they told me all they had was the table of contents.&lt;br /&gt;&lt;br /&gt;This led to some snark about $40 being &lt;a href="http://instantrimshot.com/"&gt;a lot for a table of contents&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;What's ironic about this is that I have a table of contents which I could charge $1000 for in good conscience. In fact it's barely even a table of contents, it's almost just a list, but I wrote it down during a conversation I had with &lt;a href="http://jamesgolick.com/"&gt;James Golick&lt;/a&gt;. James runs a web site which sees staggering traffic and handles it gracefully. We were talking about putting together a video series on scaling Rails applications.&lt;br /&gt;&lt;br /&gt;Say you're an entrepreneur and you want to tell venture capitalists that you'll be able to scale a Rails app. You're about to go into a meeting which could net you millions in investment. You have every other piece of the puzzle, but you face concerns about scalability. That one little issue is all that stands between you and millions in cash. Under those circumstances, how much money is that list worth to you? The answer is literally millions of dollars, so $1000 for that little table of contents would be an incredible bargain.&lt;br /&gt;&lt;br /&gt;What you're selling there is not the piece of paper or the PDF, and it's not even the information either format contains. You're really selling the opportunity to reap millions in investment (in this example).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;The pricing of information products should reflect their value&lt;/b&gt;&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;Go to Amazon or a physical bookstore and run a little test. Find some tech books written by industry stars who unquestionably know exactly what they're talking about. Then find some utterly useless tech books filled with horseshit and documentation copy/paste. Compare the prices of the books in each category.&lt;br /&gt;&lt;br /&gt;Tech books are not priced by value.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-1715961815834469976?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/1715961815834469976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/1715961815834469976'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/07/40-table-of-contents.html' title='The $40 Table Of Contents'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-489305175838957434</id><published>2011-07-18T11:32:00.001-07:00</published><updated>2011-07-18T11:45:22.046-07:00</updated><title type='text'>Hacker Newspaper Bans Marco Arment</title><content type='html'>Brief note to those of you who use &lt;a href="http://hacker-newspaper.gilesb.com/"&gt;Hacker Newspaper&lt;/a&gt;: I'm finding the complaint/useful ratio in &lt;a href="http://www.marco.org/2011/07/18/twitter-spam"&gt;marco.org&lt;/a&gt; too low.&lt;br /&gt;&lt;br /&gt;It could probably be easy to customize these filters on a per-user basis, by the way, and I may do so in future.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-489305175838957434?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/489305175838957434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/489305175838957434'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/07/hacker-newspaper-bans-marco-arment.html' title='Hacker Newspaper Bans Marco Arment'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-527506563935141687</id><published>2011-07-17T09:21:00.000-07:00</published><updated>2011-07-17T09:24:43.021-07:00</updated><title type='text'>Capo Is Absolutely Fantastic</title><content type='html'>&lt;a href="http://supermegaultragroovy.com/products/Capo/"&gt;Capo&lt;/a&gt; is an OS X music analysis app which musicians can use to &lt;b&gt;&lt;i&gt;very&lt;/b&gt;&lt;/i&gt; rapidly figure out melodies, chord progressions, and bass lines from mp3s. I went to the web site, watched a couple demo videos, downloaded the demo, and had extracted a melody all in a matter of minutes. The videos use guitar rock for the examples but I analyzed dubstep with it. The app assumes you're using a guitar, and while my background in (very basic) guitar made it easier to use, I don't own a guitar these days and that didn't slow me down at all.&lt;br /&gt;&lt;br /&gt;I cannot recommend this app highly enough. Words do not exist suitable to capture and contain its magnificence.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-527506563935141687?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/527506563935141687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/527506563935141687'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/07/capo-is-absolutely-fantastic.html' title='Capo Is Absolutely Fantastic'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-6996004249899868127</id><published>2011-07-14T11:38:00.000-07:00</published><updated>2011-07-14T11:41:46.078-07:00</updated><title type='text'>Mira: Viddler v2 API Gem Which Actually Works</title><content type='html'>&lt;a href="https://github.com/gilesbowkett/mira" style="font-style: italic;"&gt;Mira is a minimal Viddler client. I named it Mira because I had just created another gem with a Spanish name (buscando_el_viento) and I figured I might as well keep the momentum going. "Mira" in Spanish means "look."&lt;br /&gt;&lt;br /&gt;I created Mira because the official Viddler gem viddler-ruby didn't work out of the box, and fixing whatever was wrong with it seemed like a lot more work than just writing my own.&lt;br /&gt;&lt;br /&gt;Mira supports only a tiny subset of the Viddler API's functionality - namely the ability to upload a video, and the ability to obtain an existing video's Flash video player embed code.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;gem install mira&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-6996004249899868127?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/6996004249899868127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/6996004249899868127'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/07/mira-viddler-v2-api-gem-which-actually.html' title='Mira: Viddler v2 API Gem Which Actually Works'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-4559703141733611865</id><published>2011-07-13T10:12:00.000-07:00</published><updated>2011-07-13T19:17:28.839-07:00</updated><title type='text'>Buscando El Viento: PostgreSQL Search Migrations Gem</title><content type='html'>&lt;a href="https://github.com/gilesbowkett/BuscandoElViento" style="font-style: italic;"&gt;buscando el viento is a search migrations gem for PostgreSQL and Rails 3. It enables full-text searching by automating the process of creating appropriate migrations, and is largely based on Xavier Shay's PeepCode video on Postgres.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I created this because I needed it. &lt;a href="http://gilesbowkett.blogspot.com/2011/07/error-must-be-owner-of-language-plpgsql.html"&gt;PostgreSQL is powerful but obtuse, in my opinion.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This gem makes some blithely cavalier assumptions about indexing and search vectors, so please use with caution. PostgreSQL boffins, please do contribute to this; it currently lacks much-needed &lt;code&gt;setweight()&lt;/code&gt; support, and comes from a guy who's pretty new to Postgres.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;gem install buscando_el_viento&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-4559703141733611865?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/4559703141733611865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/4559703141733611865'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/07/buscando-el-viento-postgresql-search.html' title='Buscando El Viento: PostgreSQL Search Migrations Gem'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-5039513510813636070</id><published>2011-07-12T22:30:00.001-07:00</published><updated>2011-07-12T22:31:34.145-07:00</updated><title type='text'>Star Wars Lamborghini</title><content type='html'>People usually see awesome and pathetic as polar opposites, so it's always interesting to see things that hit a very high degree of both awesome and pathetic simultaneously. A bit like quantum physicists seeing a particle exist in multiple places at the same time.&lt;br /&gt;&lt;br /&gt;&lt;iframe width="640" height="390" src="http://www.youtube.com/embed/XTqA5YMVzl8?hd=1" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-5039513510813636070?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/5039513510813636070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/5039513510813636070'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/07/star-wars-lamborghini.html' title='Star Wars Lamborghini'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/XTqA5YMVzl8/default.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-7607296935194308473</id><published>2011-07-11T19:39:00.001-07:00</published><updated>2011-07-11T19:40:18.332-07:00</updated><title type='text'>Oooo Eeee Ooeeeooe Woooaaaaaooeeee</title><content type='html'>&lt;iframe src="http://player.vimeo.com/video/18888136?title=0&amp;amp;byline=0&amp;amp;portrait=0" width="601" height="338" frameborder="0"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.boingboing.net/2011/07/11/surreal-architectura.html" style="font-style: italic;"&gt;"interactive architectural mapping" on a former theater in Lyon, France last year. The sounds of the audience controlled the visuals projected onto the building's façade.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-7607296935194308473?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/7607296935194308473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/7607296935194308473'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/07/oooo-eeee-ooeeeooe-woooaaaaaooeeee.html' title='Oooo Eeee Ooeeeooe Woooaaaaaooeeee'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-6795793646823591282</id><published>2011-07-11T17:28:00.000-07:00</published><updated>2011-07-13T10:16:39.798-07:00</updated><title type='text'>ERROR: must be owner of language plpgsql</title><content type='html'>&lt;b&gt;&lt;i&gt;Update&lt;/b&gt;&lt;/i&gt;: &lt;a href="http://gilesbowkett.blogspot.com/2011/07/buscando-el-viento-postgresql-search.html"&gt;I created a gem to make PostgreSQL a bit easier to use with Rails&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;In my opinion, this error message constitutes definitive proof that PostgreSQL hates America, murders babies, supports terrorism, and worships Satan. I have paid leather-clad dominatrices in London thousands of British pounds to whip me and humiliate me, and not one of them ever came close to the anguish inflicted by this horseshit error message and the documentation which "supports" it.&lt;br /&gt;&lt;br /&gt;(If you are a lawyer for PostgreSQL, please be advised that this is only my opinion. If you are a police officer on a vice squad, particularly in the United Kingdom, please be advised that I may be exaggerating. If you are a developer for PostgreSQL, please be advised that the Pope Himself has assured me you will burn in Hell for all eternity for writing this error message, and that Satan Himself has personally apologized to me that Hell Itself does not hold torments sufficient to punish you for what you've done.)&lt;br /&gt;&lt;br /&gt;&lt;iframe width="640" height="510" src="http://www.youtube.com/embed/Dj8xB8jKG94" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Fortunately, the solution is easy:&lt;br /&gt;&lt;br /&gt;&lt;code&gt; ↪  psql template1&lt;br /&gt;template1=# alter role my_user_name with superuser;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;You may wonder what the hell &lt;code&gt;template1&lt;/code&gt; is. Fear not! It represents systemwide settings, so naming it after view-formatting variables could not have been more logical. Absolutely could not. No way on earth could any more logical name have been found, anywhere in all the lexicons of every human language.&lt;br /&gt;&lt;br /&gt;To be fair, "template" can carry broader meanings, but even then, naming a template "template" is like naming a variable "variable." Anybody who does that to their users does not have their users' joy at the forefront of their list of priorities. &lt;br /&gt;&lt;br /&gt;Anyway. Yes. A perfect fix. And by perfect I mean extremely imperfect. Switching your user to superuser means you don't have to spend three hours on it just to use your dev box, but if you deployed this way, you'd get hacked in seconds. In seriousness, PostgreSQL rocks, but it's not without its limitations. Based on &lt;a href="http://peepcode.com/products/postgresql"&gt;the excellent PeepCode on Postgres&lt;/a&gt;, I hacked together (copy/pasted, really) a very, very simple implementation of full-text search.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;  def self.search_description(query)&lt;br /&gt;    conditions = &lt;&lt;-EOS&lt;br /&gt;      to_tsvector('english', description) @@ plainto_tsquery('english', ?)&lt;br /&gt;    EOS&lt;br /&gt;    where(conditions, query)&lt;br /&gt;  end&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The repetition of "english" frustrates me as a DRY-crazed Rails dev, but what's more worrisome here is how Postgres handles stemming. &lt;a href="http://en.wikipedia.org/wiki/Stemming"&gt;Stemming uses basic natural language processing to recognize (for example) that the terms "stem," "stemming," and "stemmed" are all related&lt;/a&gt;. It's very useful for "fuzzy" searching, but useless for exact matches, so sometimes you want to turn it off.&lt;br /&gt;&lt;br /&gt;Here's what the code looks like with stemming on:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;to_tsvector("english"...&lt;br /&gt;to_tsvector("default"...&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Of course, if you use "default," PostgreSQL uses an English dictionary, because English is the default for "default." And "english." If somebody who worked for me wrote an API like that, I wouldn't just fire them, I'd probably throw them out of a window and set them on fire. (Hopefully in the opposite order, but not necessarily.) But it gets even worse. Here's what it looks like with stemming off:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;to_tsvector("simple"...&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;So the opposite of "simple" is "default." Here I have a fundamental philosophical disagreement with the Postgres devs, because I believe defaults should be simple, yet I have to applaud their honesty, because, to be fair, in the context of Postgres, it is indeed pretty logical to define "simple" as the opposite of "default." Points for consistency at least.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-6795793646823591282?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/6795793646823591282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/6795793646823591282'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/07/error-must-be-owner-of-language-plpgsql.html' title='ERROR: must be owner of language plpgsql'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/Dj8xB8jKG94/default.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-1238829592595422153</id><published>2011-07-11T13:57:00.001-07:00</published><updated>2011-07-11T15:52:03.453-07:00</updated><title type='text'>Spare Mac Mini: What To Do?</title><content type='html'>I bought a 2001 Mac Mini last year, partly because I wanted to &lt;a href="http://gizmodo.com/035712/mac-mini-vw-gti-install"&gt;install it in my car&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/vw_071111/mac_mini_gti_tuner.jpg"&gt;&lt;br /&gt;&lt;br /&gt;Now, however, I don't actually have a car. I don't want to use the Mini as a media center, because I have an Apple TV. I'm currently using it as a monitor stand. It seems a terrible waste. I'd love to make it a brain for a robot hexapod, but that requires more time than I really have.&lt;br /&gt;&lt;br /&gt;&lt;object width="640" height="390"&gt;&lt;param name="movie" value="http://www.youtube.com/v/C_NoxhOf4ko&amp;hl=en_US&amp;feature=player_embedded&amp;version=3"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/C_NoxhOf4ko&amp;hl=en_US&amp;feature=player_embedded&amp;version=3" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="390"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;If worse comes to worst, of course, I'll just donate it to a school or something and bask in the warm glow of good karma. Beyond that, the best idea I have at the moment is dedicated hardware for Archaeopteryx. I can probably set it up to launch with all the necessary software configured and running from boot, so that a monitor isn't necessary, but even then your choice of soundbank is limited without using a monitor, keyboard, and trackpad (or trackball). Other options include some kind of semi-autonomous art installation or home automation.&lt;br /&gt;&lt;br /&gt;Get your tweet on if you have any notions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-1238829592595422153?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/1238829592595422153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/1238829592595422153'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/07/spare-mac-mini-what-to-do.html' title='Spare Mac Mini: What To Do?'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-3396848659635048912</id><published>2011-07-08T21:28:00.001-07:00</published><updated>2011-07-08T21:28:42.295-07:00</updated><title type='text'>iPad MIDI In: Trivially Easy</title><content type='html'>&lt;iframe width="640" height="390" src="http://www.youtube.com/embed/tyVffYhAkcM" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Literally just bought it, pulled it out of the box, and plugged it in.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-3396848659635048912?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/3396848659635048912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/3396848659635048912'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/07/ipad-midi-in-trivially-easy.html' title='iPad MIDI In: Trivially Easy'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/tyVffYhAkcM/default.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-9175926420694928977</id><published>2011-07-08T15:31:00.000-07:00</published><updated>2011-07-08T15:32:44.035-07:00</updated><title type='text'>Diamond: Live-Coding Ruby Arpeggiator</title><content type='html'>&lt;iframe src="http://player.vimeo.com/video/25983971?title=0&amp;amp;byline=0&amp;amp;portrait=0" width="600" height="375" frameborder="0"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://tx81z.blogspot.com/2011/07/diamond-midi-arpeggiator-in-ruby.html"&gt;Lots more info&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-9175926420694928977?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/9175926420694928977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/9175926420694928977'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/07/diamond-live-coding-ruby-arpeggiator.html' title='Diamond: Live-Coding Ruby Arpeggiator'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7602886877359920483.post-4720718084264087901</id><published>2011-07-07T12:24:00.000-07:00</published><updated>2011-07-08T09:41:32.108-07:00</updated><title type='text'>Yet Another dotjs Hack: Fixing GitHub's Graph Links</title><content type='html'>There's something about GitHub's UI which I've always found counter-intuitive. They have this handy, awesome &lt;a href="https://github.com/blog/621-bye-bye-flash-network-graph-is-now-canvas"&gt;network graph&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/graph_070611/network.jpg"&gt;&lt;br /&gt;&lt;br /&gt;However, if you look for it under "Graphs," you won't find it.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/graph_070611/whereisit.jpg"&gt;&lt;br /&gt;&lt;br /&gt;You have to remember, when you look at the UI, that "Graphs" actually means "every graph except the network graph." I never remember that, and honestly, I think GitHub &lt;a href="http://www.amazon.com/Think-Common-Sense-Approach-Usability/dp/0789723107"&gt;made a mistake&lt;/a&gt; here.&lt;br /&gt;&lt;br /&gt;With &lt;a href="http://defunkt.io/dotjs"&gt;dotjs&lt;/a&gt;, it's easy to fix.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/graph_070611/ahhhok.jpg"&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://github.com/gilesbowkett/dotjsfiles/blob/master/github.com.js"&gt;Here's the code&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.amazonaws.com/giles/graph_070611/code.jpg"&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7602886877359920483-4720718084264087901?l=gilesbowkett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/4720718084264087901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7602886877359920483/posts/default/4720718084264087901'/><link rel='alternate' type='text/html' href='http://gilesbowkett.blogspot.com/2011/07/yet-another-dotjs-hack-fixing-githubs.html' title='Yet Another dotjs Hack: Fixing GitHub&apos;s Graph Links'/><author><name>Giles Bowkett</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_x3wLagbRIiQ/SFLyVL9Mx3I/AAAAAAAAAA0/jfa-iCuEvnI/S220/me+twitter+twitter+twitter.jpg'/></author></entry></feed>
