Monday, February 22, 2010

Coaching Program: Prices Raising Friday 2/26

Prices for my career consulting program are going up on Friday, Feb 26th. I'll also be launching something new soon.

Coding Horror Proves That Good Is Good Enough

I'm a fan of the marketer and business writer Dan Kennedy. One of his rules is "Good is good enough." To see an example, check out Jeff Atwood's latest post on Coding Horror.

The blog post itself is reasonable enough. The important part is just one tiny sentence fragment:

I am stunned, but not entirely surprised

This is of course ABSOLULTELY IMPOSSIBLE. It's like saying, "I was as surprised as is humanly possible, but I wasn't entirely surprised." Or, "I was terrified to the point of near insanity, but I wasn't afraid at all." I would expect that kind of thing from a random sentence generator, but it's kind of disgusting seeing it come from a human being. Atwood's writing is full of this kind of casual disregard for basic semantics, a blatant inattention to the meaning of the words he uses. But it doesn't matter in one respect: his blog is still a very successful blog.

This is a prime example of Kennedy's rule. "Good is good enough" means that if you do everything necessary to succeed, you'll succeed, and perfectionism is not actually necessary. If you combine mediocre writing with a diligent daily schedule and a reasonably interesting selection of topics, you can have a very successful blog. In this post, for example, Atwood fails at words, but he gets his point across anyway, and it's a point worth thinking about. It's not great, but it's good, and good is good enough.

This is why I launched my career coaching program before I had any system in place to manage it, with less marketing build-up than I should have had, less scheduling support, less market research, and no automated e-mail handling at all. A person who loved good business organization would freak out at my haphazard "system" the way a person who loves good sentence organization freaks out when attempting to digest Atwood's muddled "thoughts", but Atwood's blog does really well, and my coaching program is ramen profitable and keeping me afloat without a 9 to 5. "Good is good enough" is really just another way to say "YAGNI."

Sunday, February 21, 2010

TonidoPlug: Innovative Web App Marketing

TonidoPlug: $100 tiny, wall-wart computer.

SheevaPlug: $100 tiny, wall-wart computer.

Identical hardware. Identical price point. The difference? TonidoPlug ships with a built-in suite of Web apps.

You've got a Web app to promote. You've already got it on LifeHacker, CNN, and other media outlets. But there's always more people out there who could become customers. What do you do?

One thing you can do: become a reseller of an existing gadget, add your software and your marketing mojo, sell it at the exact same price, and get geeks everywhere excited to give your software a free trial the moment they get their new toy out of its box.

Saturday, February 20, 2010

Pixel Resolution For DVD, HDTV, And Regular TVs (SDTV)

Some links on this blog are affiliate links, which pay small sales commissions.
DVD pixel resolution is 852 wide by 480 tall.

SDTV, standard definition TV, is 852x480 widescreen, 704x480 4:3 (classic TV "square").

For HDTV (high definition TVs) you need 1280x720 or 1920x1080.

I do some motion graphics from time to time, and I'm doing a Keynote presentation which I may want to adapt for DVD-quality video or above. For making video on my Mac, this is all the info I need. Of course, there's more info out there. More info is kind of the problem, though; I don't want epic detail, I want a simple answer right away.

Jazari: Wiimote Drums

Wiimote-Controlled Robot Drum Circle Makes Human Hippies Obsolete

Create Digital Music thread

technical detail

musical background:

The original impetus came from the failure of my electronic style-modeling music to connect with audiences. I had implemented algorithms that built statistical models of a song or style that allowed me to generate original music in that style. These algorithms worked on a symbolic (note-based) level, so the results of the algorithm had to be manifested as audio with synths or samplers. So, I was a guy on stage with a computer, and the music came out of speakers. No one had any idea what I was doing to create the sounds they were hearing, and for all the audience knew, I pushed play and checked my email. Continuing in this vein was a dead end.

My thinking was that if I built physical forms for my artificial musical agents, the interaction between me and the agents would become more understandable, and the performance as a whole would take on more theatrical appeal. Furthermore, the introduction of a sophisticated controller system would allow me to play or improvise with my agents instead of just directing them. Once the project was underway, this improvisatory performance mode took on greater significance, and it’s only now that I’m circling back to working with machine learning and style modeling.

Badass Handcrafted MIDI Controllers From Texas

Thursday, February 18, 2010

From Zero To Ramen-Profitable In Two Months

An angel-funded startup sells itself on eBay:

Today we announced the sale of my company, Open Box Technologies. We will be selling the company – including our SesameVault online video platform – via an eBay auction that will run for 7 days, ending next Wednesday, February 24th.

The decision to put OBT up for sale came about as the result of our recent inability to raise investment adequate to support our plans and objectives going forward.


The original inspiration for using eBay came from a Y Combinator-funded web calendar company named Kiko, who after being made irrelevant by Google Calendar put their business up for sale on eBay.

While these guys were building this thing, and struggling to keep it from falling apart, I went from zero to ramen profitable in two months, part-time, with very little effort. For the skeptics, I suppose you could say it took eight months, if you count the six months of studying Internet, affiliate, and information marketing beforehand; or even five years, if you want to include the years of blogging and conference presentations that gathered my audience. The true skeptic would also count the conference presentations as a business expense, and by that measure I'm still a long way from profitable, but on the one hand, the conference presentations helped me get various programming jobs and therefore, in a sense, paid for themselves, while on the other hand, true skeptics are boring people who deny the obvious truth that I was abducted by UFOs several times in the late 70s and early 80s. So fuck those guys.

By the way, on the topic of "fuck those guys", let me just say something. There was a theme on Hacker News of posts arguing against ad hominem attacks. I run afoul of ad hominem all the time. Whenever I say anything controversial on HN or Reddit in the comments, I usually leave more than one comment; a comment that makes people mad will not only get downvoted, it'll lead to the immediate, punitive downvoting of innocent, unrelated remarks. However, I think that's fine. I also think the anti-ad hominem theme was really a bit hypocritical and precious.

You should expect ad hominem attacks, and you shouldn't take them too seriously. They're inevitable. You have a group of people who spend a great deal of their time, in aggregate, setting up web apps to make just about everything social, from pet food to bulldozers, via conversation-driven social software. These people all agree that ad hominem attacks are inappropriate. But are they? Social software which transforms every process in society, making it conversation-driven, destroys the societal framework which necessitated professionalism, which is a historically recent phenomenon born of the Industrial Revolution and its requirements for networking and education. Systems which destroy that societal framework remove the incentives for its artifacts - which means that the same people complaining about ad hominem attacks are building the software which transforms society in such a way as to increase the prevalance of ad hominem attacks by many orders of magnitude. Social means social. You can't have your conversation and eat it too.

I'm not saying you shouldn't aim for civility in public discourse. I'm just saying that people who act aggrieved when they encounter something other than civility in public discourse might be completely full of shit if they've just spent months, years, or even decades building systems which in practice inevitably lead to public discourse which is more casual and less civil. If you build a system which makes everybody else's public discourse less civil, it's not all that reasonable to complain when your own experience of public discourse becomes less civil as well. There's a certain inevitability to it.

Anyway, even given the idea that trolls are people (like Socrates) who make other people get off their asses and think for a change, this is still probably more trolling than I can get away with in one post. So let me wrap up. Ten years ago, as a programmer in San Francisco just before the dot-com crash, I looked around and realized that every business that I or my friends ever got into was complete bullshit (with the exception of the parties and club nights we put on). We were mostly Web programmers, and at the time, the only business making real money on the Internet was porn.

This insight led to an unfortunate period where I decided I should become a pornographer and even embarked on a series of experiments in art-film porn. In some ways I'm very glad that time is over but in a certain sense, it's happening again. In 2001, the only people who really knew how to make money on the Internet were pornographers - the scuzzy, low-class people who everybody else looked down on. In 2010, I have a ramen-profitable business based on information marketing tactics, specifically tactics from Dan Kennedy - tactics that we fancy Web people often look down on and associate with get-rich-quick schemes.

There's something very insane and dysfunctional about how the American class system manifests itself on the Internet. Chances are, if you're on the Internet, and people look down on you and think of you as scuzzy, it means you're doing business and they're building a company which won't last nine months. I think that runs backwards. Before Ruby on Rails, the same dynamic drove language perception: if people looked down on your scripting language and its open source framework, it meant you were writing good code and they weren't. With Rails, I think the battle is long over and the dust long settled, but we've not yet seen an equivalent change in how businesses are perceived.

Calendar Win: Rapid Course Correction

In November I posted about my calendar-based time management system for generating the habits you want to have, a modified version of the classic Lifehacker/Seinfeld "don't break the chain" system.

Here's why it's awesome.

As a concrete example, I decided I was going to create a complete track, and then promptly stopped working on music at all. It took me two days to notice the connection, and that's with an external reminder system making the fact obvious. In the past, I probably would have struggled with that for two years before I noticed. I'm not even speaking hypothetically here; that's pretty much a real-world example.

Just like with fast-running tests that pass or fail quickly, showing you in real time whether or not your code is any good, the win is immediate response. Since I noticed quickly, it's easy for me to throw away the delay-inducing idea and switch to something new. I had decided I was going to sit down and make a particular type of drum and bass track, in a particular key, with a particular melody, using Archaeopteryx in a particular way. But all that planning now looks counter-productive.

Seeing that the result is across-the-board productivity fail, I'm going to go with something different. My new plan is to develop the next musical idea I like into a complete six-minute track by an arbitrary deadline (Saturday the 27th) and then call it done, one way or another, when that arbitrary deadline arrives. That might work better; if not, I can do another course correction later. In the context of immediate feedback and objective measurement, you can run a lot of experiments. The calendar enables me to catch fail early and modify what I'm doing to eliminate the fail.

For a long time, this would have been very unlike me. I literally just woke up organized one day, after years of being disorganized. Having struggled with scheduling and organization for such a long time, it's downright spooky how easy it's becoming for me. The same is true of my weight loss, but that's a different post. In each case, hypnosis and visualization were a (deliberate) part of the plan, which is where the spooky factor comes in: when you put the subconscious mind on track to make things happen, the things sometimes happen in weird ways that you'd never have thought of. But that's another post, too.

Monday, February 15, 2010

You Got An Elephant? I Got Space!

Motion Graphics: Digital Wallpaper In Vienna

(via Smashing Magazine (via Hacker Newspaper (via Hacker News)))

Dance Beats Seem Easy

Pat Maddox discovered a random DJ explaining dance music structure with his son's Legos:

A music theory PhD explains it using metrical analysis:

Some links on this blog are affiliate links, which pay small sales commissions.

The video promotes a DJ training site; the book's fucking fantastic, but don't bother unless you can read music. The training site includes a personable but not very informative video on harmonic mixing; the book assumes you already know the circle of fifths inside and out.

In my Godless Communist coaching program, one of my clients wanted to know more about producing electronic dance music, and I spent some time teaching him. His initial question was how much theory you have to know to make dance music. It's an interesting question.

A recent Reddit IAMA thread featured a classical musician explaining that he practices 4 to 6 hours a day, and a music school refugee commiserated:

Nobody thinks of DJs practicing their asses off and working hard studying theory. The typical DJ image is very different.

It's important to keep in mind, however, that metal guitarists have a similar wild image, and yet they spend a lot of their time idolizing Beethoven. And of course there are plenty of women in dance music who literally occupy more elevated positions than the one in this picture. Always take sensationalistic images with a grain of salt.

I don't go out a lot these days, but when I did, two of the best DJs I knew personally were both very well versed in music theory. One (a woman) had spent years in music school and held a degree in piano. It's difficult to tell with famous DJs, but I do know (for instance) that Sasha has employees who catalog his new music, when it arrives, by key signature. (I think I got that from How To DJ Right.) It's very easy to say this much with absolute certainty: to make good electronic music, you need to understand key signatures, chord progressions, the fundamentals of harmony, and basic drum patterns.

Whether you need any more than that is a judgement call. Given the ready availability of excellent sample libraries, you could probably skate through a lot of production without going extremely deep into music theory, and the areas of theory that you do need will vary by genre. If you want to make trance, experience with harmonic counterpoint will help you. If you want to make jazzy drum and bass, you'll need to understand jazz chords. Neither harmony or chords matter a great deal in techno, however, although of course they don't hurt, but by the same token, the intricate attention to meter and rhythm which is essential to techno might not help you at all in trance.

Something else complicates the question: engineering. You absolutely need some engineering theory, enough to understand analog synths, sidechain compression, frequency ranges, high-pass filters, low-pass filters, how to set up a sampler patch, sound design, etc. When the whole world becomes obsessed with the latest bassline, you need to understand how to make the patch on your favorite synth, if only just to contextualize the fascination.

In fact, this is why I use Propellerhead Reason. Reason models analog synths and a variety of other studio equipment. There's not much distance between learning Reason and learning the equipment that Reason models, but there's much, much less overhead. Many people don't take Reason seriously as a tool (although other people have made chart-topping records with it), but what's fantastic about it is that the energy and time you invest in learning Reason mostly doubles as investment in other studio gear as well.

It's also why my @djgoatboy account on Twitter, where I upload a new beat every day, might get a bit boring to listen to from time to time. It's mostly there to get me to practice every day, and on most days it's the dance music equivalent of practicing scales.

Anyway, if you want to learn more about producing dance music, you should sign up for my coaching program before prices go up, or just stay tuned, because I think I'm going to have more to say on the subject soon.

Sunday, February 14, 2010

Real Transformers

Thursday, February 11, 2010

Bundler Schmundler

Update: Jose Valim corrects me on this: your application being created with bundler is just a default, as with prototype, activerecord, erb and test/unit.

Rumors abound regarding Bundler annoying people in various ways. Before I earn myself a stern talking-to, let me stress that the rumors which abound are indeed rumors, and they may only abound because that's what rumors do. I mean how many times have you heard of a pickle abounding? Rumors abound. The Dude abides. That's how it is.

I haven't used Bundler myself, and Jeremy McAnally says Bundler is awesome. Always take rumors with a grain of salt. All I know is people are talking. I've even seen Bundler cause the odd interwebz skirmish here and there. I hear it changed too much, too fast. I hear it breaks Heroku. I hear it's the best thing since sliced bread. I hear a ton of talk and none of it interests me. None of it means anything.

Bundler is not the only way to manage gem dependencies in the Ruby ecosystem. In fact gems themselves are not the only packaging system in the Ruby ecosystem. The moment I get some spare time, I plan to get in the habit of using Rip, and if everything goes according to my plans, I'm never using gems again in my life after about mid-2010. I just think gems are the spawn of the devil. So I don't give a damn about Bundler, because I don't want to use it either way. I don't care how good it is; in my opinion, its foundation is too rotten to redeem. I hear great things about the OS X Subversion wrapper app Versions, but I'm never going to use it, because I favor Git over Subversion. RubyGems are a Subversion that have not yet met their Git.

(I mean that very precisely. I knew the CollabNet people when they first started building Subversion, back in 98 or 99. I was in their offices, helping them set up furniture. They did the world a gigantic favor moving everybody off of CVS. But there were more moves to make, and Git changed my life. Likewise, RubyGems were a fantastic move for 2003, but their sun is setting. It's only a matter of time.)

It's ridiculous to see people fighting over whether or not Bundler is The One True Way in the same moment as Rails core wraps up its vast, sweeping, across-the-board transformation, making Rails ORM-agnostic, JavaScript-framework-agnostic, test-framework-agnostic, and templating-engine-agnostic. It's even sillier when the same people who tell you Bundler is The One True Way also drove the transition to a modular and agnostic philosophy throughout every other area of the code base. I'd be very surprised if I saw anybody squeeze that genie back into its bottle. Modular and agnostic means modular and agnostic.

Wednesday, February 10, 2010

Google Buzz Illustrates Why Small Companies Make Better Software

Say you're a journalist, and anonymous sourcing is your whole career. Google Buzz auto-populates follower lists for you, and automatically shares them with the whole wide world. That means you're fucked if you're a journalist, a political dissident, a woman trapped in an unhappy marriage with a violent, abusive, criminal husband, a doctor who performs abortions in Baptist country, or anybody else with a perfectly legitimate reason to expect Google to respect their privacy - like, for instance, anyone who is friends with any of these people.

It's in Google's interest to promote their new product. It's also in the company's interest to make the existing customers happy. In a private company charging consumers money for a product, it's easy to see which of these two priorities is more important. In a public company, where neither product is directly tied to the revenue stream, the prioritization will be made internally via an entirely opaque process of corporate politics that has nothing to do with pleasing customers and which places a much higher priority on impressing "journalists" like Mike Arrington, who may have the ability to raise the company's stock price.

This is a special case of the tragedy of the commons, in which the best free product in a company's stable becomes the launch point for many other inferior products which cannot stand on their own. The tragedy of the commons is an economic rule of thumb which basically says that any common property will eventually be wasted in the pursuit of a relatively less valuable personal gain by some member of the group that owns the property in common. In tech corporations, the less valuable personal gains have to do with jockeying for position: whoever is in charge of maintaining the valuable existing property Gmail was less important in the corporate political games at Google than whichever fool "pioneered" the Facebook/Twitter "me-too" product Buzz. The Buzz muppet found a way to shit on the Gmail monkey's project, every Gmail user suffered as a result, and no feedback will make its way back to Google in an appreciable way, because the absence of any economic give-and-take between Gmail and its users means that communication between Gmail and its users about new features and their sanity or insanity is fundamentally one-sided and slow.

The other night I spoke with a member of my career consulting program who lives in San Francisco and actually gets a higher hourly rate than I do. I felt like an idiot and for a few moments wished I still lived in San Francisco. The disgusting spectacle of Buzz pissing on Gmail, the most beautiful thing that Google ever did, has completely eradicated that feeling. Silicon Valley is infested with monsters.

Turn Off Google Buzz With One Click


Turn Off Google Buzz In Two Clicks

Update: My bad, this doesn't work. This does.

Go here:

Click this:

You're welcome.

Sunday, February 7, 2010

Two Days' Coding For 1,390 Euros

A programmer on Reddit explains how a fast Fourier transforms library he wrote for .NET made him 1,390 euros.

Wile Out

Released! Buy it.

with my affiliate links I will rule StrongBadia

Saturday, February 6, 2010

Fan Fiction: Alternate Transformers Origin

This beast comes from Cybertron's Paleolithic era.

It's also an art piece by Theo Jansen. That's not a coincidence. All the classic elements of the Transformers story are in place, except for one very important difference: the Autobots and Decepticons are not enemies when the Ark crash-lands on Earth. They're different tribes, but not yet enemies. (And obviously, each tribe has sub-tribes.)

In this alternate version, the Transformers discover that they haven't travelled in space, but in time. Earth sees a Cambrian explosion in pre-living robotics in the very near future. A hybrid world of robots and living creatures persists for some time. Eventually, robots replace all their living counterparts, become alive, and Earth becomes Cybertron.

It takes the Transformers years to discover this, and during those years, a rift develops between the pacifist Autobots and the more warlike, predatory Decepticons. But the gradual divide turns into a sharp split when the scientists Jetfire (a Decepticon) and Perceptor (an Autobot) uncover definitive evidence that Earth is in fact Cybertron. (Which explains the otherwise extraordinarily bizarre coincidence that Transformers usually look like people, when in robot form.)

The Decepticons take the attitude that they can wipe out any and all organic life, and/or pre-living machines, since it's their planet anyway. The Autobots are the tree-hugging hippies in this scenario. Things go downhill from there.

Friday, February 5, 2010

It's Not About You

From BoingBoing:

MIT Media Lab musician/inventor Tod Machover talks about the neuroscience of the musical experience, and using technology to close the loop between brain activity and what we're hearing in real time. In the near future, he says, you can imagine having the ability to "design a piece of music... that is exactly right for you, and only you at this particular moment."

You hear this now and again from advocates of AI in music. But they're missing a very important point. Ask yourself if these people are listening to music alone:

The answer is no. Customizing music to context is a great idea, but an individual human being is the wrong context. What do you think would make more money - a piece of music customized to you at a particular moment, or a piece of music customized to you and your spouse at a particular moment?

HDR wedding from amundn on Flickr

If it's you, maybe there's a market. Maybe. If it's you and your spouse, the market is easy. All you have to do is add one person and you have a business model.

There's probably a bright, exciting future for adaptive AI music, but it's not going to be in some autistic backwater of composing music for solitary individuals at particular moments. Like anything else, the technology gets much more compelling the moment it becomes social.

Why Hacker Newspaper Doesn't Link To Comments


Monday, February 1, 2010

Turning Hacker News Into Spam

People often rail against spam blogs. Spam blogs never contain original content; they scrape other sites to generate their content. People despise spam blogs because they're parasitic spam.

Last year I built a bunch of miniapps; my favorite was (and is) Hacker Newspaper. Hacker Newspaper never contains original content; it scrapes another site, Hacker News, to generate its content. Hacker Newspaper is parasitic. But I don't know of anybody who despises it.

Hacker Newspaper is an automated repurposer, just like every spam blog, but although it never contributes content, it does contribute opinionated presentation and occasional filtering. Spam blogs look uglier than the blogs they plagiarize; Hacker Newspaper is prettier and more legible than Hacker News. A story on Hacker News which comes from or will never appear on Hacker Newspaper, and at the moment Hacker Newspaper also rejects any story about the iPad, because the chatter was overwhelming. In either case, Hacker Newspaper improves on its original.

Spam blogs are scummy things, yet the same tactic that spam blogs revolve around - automated republishing of existing web sites - powers Hacker Newspaper, making it a site I use every day, and which I prefer over its original, Hacker News, by a gigantic margin. The difference is where spammers look to steal stuff, Hacker Newspaper looks to improve it.

When I think about internet marketing, I think about Hacker Newspaper. A technique is just a technique; how you use the technique, not the technique itself, determines whether what you're doing is positive or negative.