Friday, August 31, 2012

Apple's Third Operating System

iOS and OS X are great, but iTunes is the crucial foundation for its iPads, iPhones, iPods, and Apple TVs. Because it is not literally an operating system, I think Apple hasn't yet realized how detrimental it is for them strategically to have such terrible software occupy such an important position in their business. Syncing across devices means that Apple sells a chain, and a chain is only as strong as its weakest link.

And iTunes is a very weak link. When Apple denied rumors of Steve Jobs's worsening health, I didn't believe their denials, and iTunes is why. There's no way on earth iTunes would still be in the condition it's in if Steve Jobs hadn't been too preoccupied to give it his attention.

Thursday, August 30, 2012

syck/rubytypes.rb:43: [BUG] Segmentation fault

It's probably libyaml. Install libyaml, reinstall Ruby 1.9, and your problem will probably disappear.

Thursday, August 23, 2012

Buy It

I read all the books on talent and deliberate practice a couple years ago, when a bunch were published around the same time.

This guy's was the best by far.

The new one is very good. Very practical, very specific. I'm glad to see that I'm doing some things exactly right, and even more glad to learn what things to change.

Wednesday, August 22, 2012

I'm @gilesgoatboy On App.net

Ironically, I would tweet this, but I'm currently on one of my periodic vacations from Twitter. App.net is very bare bones so far, but still kind of cool.

Monday, August 20, 2012

Mr Bump (Deeper Remix), And The End Of @djgoatboy

Here's a new track I've created. It's kind of bass-heavy electro house, except when it decides spontaneously to be deep house and/or tech house instead. Genres and subgenres kind of suck. It's 130bpm, in D sharp, and you're supposed to shake your ass. The end.



This is the first track I've put on SoundCloud, but it probably won't be the last. Since 2009, on and off, I've had a thing where I would post a new mp3 to the @djgoatboy Twitter account every day.

Today I threw away my Twitter apps on all platforms. I probably do that once a month, thanks to a combination of Ruby drama and the general productivity drain that comes with using Twitter too often. Whenever it happens, the thing that brings me back to Twitter is the @djgoatboy account. So I've decided to use SoundCloud instead.

Although I'll continue creating mp3s every day, at least in the near future, I'm probably just going to post to SoundCloud whenever a track I'm working on hits a reasonable level of completeness. For now, however, I have at least 10 finished tracks that are going up there.

Saturday, August 11, 2012

Dear Hacker News: Just Shut The Fuck Up And Go To Community College

Hacker News often features posts which raise the question of if college is useless. I even wrote one of these stupid things. But the answer to this question is just absurdly simple.

The answer to this question is "take action in the face of uncertainty." If you have this question, take a year of community college.

How much cheaper is it to launch your first year of college this way? What are the consequences of failure? You get in the position every startup needs, a position which is constantly discussed on Hacker News. It's called a minimum viable product.

Operating cheaply, with the ability to pivot, is not just a terrific management goal. It's also one of the best organizing principles you can use in your code. Organizing principles which work well in code often work well in any other situation where logic is called for.

A/B testing is another example. On Hacker News, many people talk about A/B testing, how they use it, how important it is, etc., and also discuss different open source and SaaS tools for A/B testing. Then the teenagers among them make serious decisions about the next four years of their lives without collecting anything but anecdotal data. And the so-called adults contribute nothing to the discussion but the anecdotal data.

Apply MVP to the problem; use classes at a community college as a cheap experimental launchpad. Launch. Apply A/B testing to the problem; take classes on multiple wildly varying topics for very little money. Compare and contrast.

Every entrepreneur knows that it doesn't matter what a situation is. It matters what you make of it. And why care about what somebody else thinks your hypothetical experience might be? That's two levels of abstraction away from the problem. So you have to figure out what you're going to do for the next four years with anecdotal data filtered through multiple levels of distortion. What kind of fucking idiot would do that?

Hit the ground running and collect some data.

MVP and A/B testing are Hacker News strategy patterns, the startup mogul equivalent of the Gang of Four book. Another popular strategy pattern on Hacker News is "just fucking do it already." It also applies in this case. Shut the hell up, launch some cheap experiments, collect some fucking data, and analyze it.

Boom. You're done.

Wednesday, August 8, 2012

My Gamified Life

As a hacker who also wants to be a filmmaker and musician, my life takes some weird twists and turns.

I kicked some entrepreneurial ass in 2010, but returned to hacking for hourly rates in 2011. Here's why: I took a job that didn't pay very well because I got to work with a very accomplished actor. It was a sacrifice and in some ways a very cool experience. However, although educational, it was a flawed deal overall, and the type of flawed deal which entire careers are often made of, here in Los Angeles.

It took me almost a year to recover momentum. The worst casualty of the experience was my calendar system, which I stopped using for a while. There's something just fundamentally self-abnegating about working for less than you would normally charge. I think it saps your confidence, maybe. Anyway, I'm very glad to say I've recently returned to this system with gusto.



I've described my calendar system in detail in previous posts, and there are other people using similar systems, even related apps, so here I'll just summarize: I use a paper calendar, and I mark a solid horizontal line through the current day every time I do something I've decided to make a daily habit, and a solid veritcal line (through the relevant day of the week) every time I do something I've decided to make a weekly habit. (I also give myself dots or dashes when I don't totally miss or totally hit.)

You can read the other links if you want to understand how the system works. What I want to describe here is the effect it has.

First, the subjective effect: I go through my days thinking in terms of points. I don't even give myself points per se in this system, and yet I think of any given day as a space in which to collect points. In a very broad sense, a dotted line represents less points than a solid line, but really, I think in terms of points because a lifetime of video games has conditioned me to do so.

And then there's the objective effects. In 2010 I lost about 70 pounds, radically improved my health, went from hacking for hourly rates to being completely self-employed, and generally just kicked ass all over the place. I went off track in 2011 and stopped using the system, but in 2012, I've made pretty significant progress in terms of my interests in filmmaking and music; I've shot a bunch of footage for a short film, got a few more shoots planned, and although editing is a slow process, it's going well. I've made enough tracks this year to put together a credible album, and you may even see that album on sale here on this blog pretty soon. I've also got a secret entrepreneurial project which, although it's again a slow process, is likely to achieve a nicely positive ratio of high profit to low effort.

But going back to the subjective effects, I don't think in terms of "soon I'll have this" or "soon I'll have that." I think in terms of "I got these points today, and I have these other points yet to win, before I go to sleep at the end of the day." That's all it takes to get things happening.

Hacker Newspaper Temporary Ban On "Apple" And "Samsung"

For a short period, any Hacker News stories which mention either word will not appear on Hacker Newspaper. I'll lift the moratorium once I stop being bored of reading about their lawsuits.

Tuesday, August 7, 2012

OVERLORD McSMASH

MAY CHEER AND GOOD FORTUNE BE HEAPED DEEPLY UPON YOU THIS MORN! THE WENCHES AND GOOD MEAD OF THE BYGONE EVE STILL HANG THICKLY UPON ME! WHAT GOOD FORTUNE THAT I MAY WAKE TO 512 MOAR MEGA BYTES OF YOUR RAM IN MY GHOSTLY VIRTUAL COMPUTING DEVICE!

Bypass Mass-Assignment Protection In Rake db:seed

Mass-assignment protection is crucial to Rails security, but it's just an annoyance when you're setting up default dev DB contents with rake db:seed.

This solution might not be the best, but it's very simple: since attr_accessible is just a class method, you can use it anywhere. So use it inside your db/seeds.rb, e.g.:

Model.attr_accessible :normally_inaccessible_attribute

It won't affect anything else in your app, and it'll make setting up your defaults less of a hassle.

Saturday, August 4, 2012

Building A Labyrinth To House The Regards

A programming term, which describes something every programmer has done:



Comes from oglaf.com.

(Caution, extremely NSFW on average.)

SynthBot

SynthBot is an unsupervised programmer for software synthesizers. It takes as input a target sound file and a software synthesizer, and returns the set of parameters for the synthesizer which produce as similar a sound to the target as possible. [Mel Frequency Cepstrum Coefficient]s are used to evaluate sounds similarly to the human ear, and the inverse sum squared error between the target and candidate MFCCs is used to determine the candidate fitness.

The application is primarily implemented in the Java programming language, allowing for rapid prototyping and simple GUI development. The first incarnation of SynthBot works only with VSTi software synthesizers.


VSTi is ubiquitous in music production; working "only" with VSTi is like being "only" usable on any Unix or Unix-like OS. This is actually a very similar strategy to Archaeopteryx, in that it uses custom code to modify controls that are normally accessed via GUI, and leverages ubiquitous protocols.

Painted Skin: The Resurrection

I'm extremely excited for a kung fu movie coming soon, a supernatural romance called Painted Skin: The Resurrection.



It's actually a sequel to the original Painted Skin, which stars Donnie Yen, a huge star in Hong Kong, and the star of Iron Monkey, a 1990s kung fu film which remains one of my all-time favorites.

Painted Skin: The Resurrection has already premiered in China, where it won rave reviews and has already made $107M against a $19M budget.

One of the things I really love about Asian films is the stuff they skip. In Japan, anime skips literal character representation in preference for exaggeratedly large eyes and gigantic colorful hair, and will happily switch to a "super-distorted" drawing style mid-narrative in order to change mood or tone.



There's a similar disregard for realism in Chinese film, where a lot of scenes will be shot on soundstages rather than on location, and continuity takes a back seat to just about everything, and kung fu completely scrambles the distinction between elaborate dance and thrilling action. Realism is one of the major sources of expense in American film production, so the Chinese approach can bring budgets down, but it also imparts an air of theatricality and other-worldliness.

When done right, that other-worldly theatricality perfectly complements fantastical tales like Painted Skin: The Resurrection, a supernatural action romance in which a fox spirit uses magic to disguise herself as a human woman. (Fox spirits disguising themselves as human women are a staple of Chinese and Japanese folklore; we have some equivalents in the West.)