Microapp - SnackEyes: Because Drinking Games Don’t Need Embedded Java (TM)

It seems like every time I start playing with Sinatra, an hour later I’ve built a microapp I wouldn’t have built without it.

I suppose this one’s pretty self-explanatory.

http://snackeyes.com

Posted in Code | Tagged , , , , | Comments closed

Rails Rumble 2009, Engine Yard Flex, Potion, Navicon Torture Technologies, and This Blog

Rails Rumble 2009 is right around the corner and I’m chomping at the bit to register.

Last year I had just started to toy with installing Rails and learning this crazy new thing called computer programming. I really wanted to participate but was short on skills.

This year will be different. I got together with 3 other inexperienced idiots and formed Team Fuckparty. If we can’t call ourselves Team Fuckparty, it’ll be PuckFarty but make absolutely no mistake.

We started outlining the technology stack we plan to use, and I thought it might be interesting to see what the noobs are using and excited about, because it might differ slightly from what the old folks use to build their Rails apps. The preliminary stack is shaping up to look like:

  • Git / Github (non-negotiable, but what we’d use anyway)
  • Linux VPS / Linode (non-negotiable)
  • Ubuntu 9.04
  • Ruby 1.8.6 MRI
  • Gem -v 1.3.4
  • Rails -v 2.3.2
  • Nginx
  • Passenger
  • Amazon S3
  • RSpec
  • Cucumber
  • Webrat
  • jQuery
  • ERb (I’m pushing hard here for HAML, we’ll see)
  • CSS / Sass (Currently a tossup)
  • Paperclip
  • New Relic RPM
  • Asset Packager
Engine Yard Cloud Got New Features
The beta release of Flex is out, and it’s looking fucking slick. We had three apps deployed to Engine Yard’s cloud (I’m running an experiment, as the apps were Apache + Passenger, Nginx + Mongrel, and Nginx + Passenger accordingly), but I played around with the new features and added two of the apps to the same running environment and instance (Nginx + Passenger).
Many of the apps I’ll be dealing with in the foreseeable future need to have an elastic system of scaling both up and down, as traffic probably won’t be completely predictable or stable, and this new system is looking like a dream.
Remember server farms? I don’t.
I wasn’t around for them, but at this point it seems absolutely absurd to not think of scaling up and down as so trivial.
_why posts a potion pamphlet
I don’t know what all the talk about it being a trivial or useless language is (_why’s rhetoric is one thing, any similar reaction is ridiculous). I can’t wait to play with it more. I spent some time playing around with it a few months ago, and I’m really loving the English-like and clear, natural syntax.
Exciting stuff.
I started writing my review of Navicon Torture TechnologiesGospels of the Gash
And in turn had a moment of clarity in terms of personal aesthetic and what I want to be doing with art.
I realized I also really like “real” stuff
I had the opportunity to hang out with painters and carpenters over the past few days.
It’s easy to forget when you’re building software the root of why you’re building.
The tactile is really nice, too.
I hope to get more involved with building “real” stuff in the coming months. I think my recent Arduino experiments are a step in the right direction, but I hope to always keep in mind that I build for the sake of building. Too many layers of abstraction and before I know it it’s the code that matters.
I have some new ideas for this blog that have been itching at me for a while. I’ll hopefully get to making them a reality soon.
Posted in Art, Business, Code | Tagged , , , , , , | Comments closed

Graphing With Light

I got to spend almost all of last Saturday playing with my Arduino and hooking it up to Processing.

I think it’s missing a strobe light most of all.

Video link: Crazy Visuals, bro from Bryan Woods on Vimeo.

Posted in Art, Code | Tagged , | Comments closed

♬ Everybody’s Workin’ for the Weekend ♬

Posted in Art, Code | Tagged , , , | Comments closed

Attachment Fu vs Paperclip: S3 Death Match


This is a screenshot from our New Relic RPM performance analysis.
The CoversController uses Paperclip for file attachments, while the ImagesController uses Attachment-Fu.
While these results don’t strike me as particularly surprising, they’re certainly compelling.

Switching to Paperclip was a decision I made for Covers due to some slightly unusual requirements, but I decided to leave Attachment-Fu in place for Images in order to see (completely informally and unscientifically) how they stacked up against each other in production. Both Covers and Images use ImageMagick for image processing and Amazon S3 for file storage.

Posted in Uncategorized | Tagged , , , , , | Comments closed

Q: Can a connection be made between a person’s web browser choice and their personal politics? A: Let’s find out.

You wouldnt expect it, but dude runs Opera

Dude runs Opera

Recently I came across an interesting post on Daring Fireball linking to an intriguing comic:

Remember Sean Tevis, the information architect who decided to run for the state legislature in Kansas with an xkcd-style web comic promoting his campaign? He lost, but it was close, and he’s raising money in a similar fashion again. He is not accepting any money from industry or corporate lobbyists, only direct contributions from voters.

Also interesting: a poll commissioned by his campaign just before the election last year showed an incredibly strong correlation based on browser usage. IE 6, AOL, and non-Internet users were more likely to prefer Tevis’s opponent, Republican Arlen Siegfreid. Firefox, Safari, and Chrome users were more likely to prefer Tevis.

First the obligatory: “Oh, ha ha. I wonder who IE 6 users voted for in this past election.”

The the obvious: “Actually…I wonder if this could be tested.”

And so I spent some time last week putting together some static HTML files with separate Google Analytics settings in order to see if there is in fact a connection to be made between the seemingly trivial (a person’s web browser preference) and the more substantial (the same person’s political preferences and the can of worms that comes with it).

The result is Browsaticks.

Arrive at the site and you’re presented with a simple statement:

Simply make your choice, and you’ll be redirected to a page that will print your political leaning, your current browser, and your operating system.
These stats are then tracked by Google Analytics.

The results won’t be scientific or (maybe even accurate!), and I have no idea what an adequate sample size for a test like this would be, but the results could be interesting.

So anyway, feel free to check it out and pass it to your friends, and I’ll post the results if a substantial sample is created.

Posted in Art, Code | Tagged | Comments closed

Getting to the Root of the Problem

I don’t know about you, but I can’t wait for winter to be over.

I’m usually not so bad, but this winter I’ve had at least three, maybe four full-blown colds, which is unusual (I’m pretty consistent with my one cold a year, thank you very much).

I’m definitely in a different place in my life this winter than I have been previous years. My job requires relatively frequent travel and working from home, mostly. So how my friends and family respond when I tell them I’ve been sick is almost forgivable. Almost.

“Get out more.”

“Eat better.”

“Get more exercise.”

I’m sure you’re familiar with this scenario, and I can’t say I completely blame them for trying. After all, getting some sunlight, eating healthily, and exercising regularly are undoubtedly formulas for a healthy lifestyle. But what about the same logic applied conversely?

“If you get out more, your cold will go away.”

“If you eat more healthily, your cold will go away.”

“If you get more exercise, your cold will go away.”

I don’t know about you, but I’ve never been warned that eating a slice of pizza can actually cause the flu.

The real reason I’ve been sick is simple. Malicious bacteria or virus are in my body, rapidly multiplying and wreaking havok on my immune system.

So why does nobody say that? The correct response, if ever there was one, to “I’m sick” is “There are organisms within you, feeding off of your body and fighting your immune system.”

But the reason we divert from this fact is because it makes us feel powerless. It makes people feel so much bigger and stronger to blame their own habits than those of a single-celled brainless organism. People need to feel in charge, and there’s a whole lot of psychological science behind it that I don’t know enough about to get into.

But this same kind of failed and misguided logic is the same that governs a lot of what goes on in the tech world, too.

There are so many different possible “solutions” for bad code. Pair programming, Agile, XP, Waterfall, Scrum, Code Review, Conferences, Training, Books, Blogs, Workshops, Social networks, User groups, TDD, BDD…

The list goes on for so long, and it’s all bullshit, because if you’re consistently writing bad code it’s because you don’t know how to write good code.

There are definitely ways to ensure a good programmer writes good programmer code more often, but all of these “best practices,” when taken too seriously and to too far an extreme, become nothing more than failed logic.

“If you pair program, you will no longer write bad code.”

“If you eat salad instead of pizza, you will no longer have a cold.”

There is an infinite number of reasons or explanations for bad code, but if you’re finding that the code you’re writing isn’t as good as you’d like it to be, maybe it’s time to get to the root of the problem (you aren’t writing good code) and solve it (exercises, fundamentals, study, understanding the client’s problem or domain better, learning the design of your framework, etc).

Posted in Business, Code | Comments closed

Being a Zen Master

It’s easily one of the most recognizable cliches of Martial Arts films: the Wise Old Zen Master, living alone in a picturesque dojo, who waits patiently for the as-legend-has-it warrior to climb the miles of staircase to begin receiving his own as-legend-has-it martial arts training.

The master is always portrayed as an absolutely brutal figure, unforgiving of the shortcomings shown in their young and inexperienced student. Simply finding His dojo and receiving His blessing takes years of a young warrior’s  life, and the student always makes the inevitable mistake of thinking the hard part is over when they finally show up on the Master’s doorstep.

And even though we’ve seen the same images in the same plots of so many of the same tired old Martial Arts films, we remain drawn to it. We empathize with both the master and the student, which is something that happens so rarely in films. We know the student will make it through the arduous learning process and become the greatest warrior in the nation’s history.

If we’re lucky there might even be a montage.

But back to the point. The reason we feel so deeply for the two characters is that their struggle is so complex and so timeless. There are layers of external tension between the master and the student, internal struggles within themselves, and broader themes of God and Country. 

It’s every great story that’s ever been told in any language ever written.  It’s the story of becoming the World’s Greatest by not only wanting it more than anybody else, but also legitimately working harder than everybody else.

But that’s still not the whole reason we’re drawn to the story. There’s still something else.

Greatness through sheer will, determination, and effort is seriously undervalued in our modern culture.

Watching the cheesy movie with the up-and-coming ninja walking miles uphill with buckets of water on his shoulders strikes us because we intrinsically know that this is the only clear path to greatness, but we too often push it aside for instant gratification.

And in the world of “new media” this is even more prevalent than anywhere else. Businesses are told they need a Myspace profile, and while they’re at it they should really register for Facebook and start a group for “fans” of their business to communicate. And a LinkedIn group for social networking of the more “businesslike” variety. And this new thing called Twitter is getting really hot so we should get ourselves on that, too, and make sure we aggregate it all together with our Flickr photos from the company picnic three summers ago onto a Friendfeed page, etc, etc, etc.

And what is the goal of all of this?  To “raise social capital.” Because somehow if you sponsor, brand, encourage, or “embrace” the conversations about your brand online, somehow you can convert these genuine social moments between real people into capital.

Seriously. Businesses both big and small are being tricked, by smaller and louder people taking advantage of the rapid pace and confusion, to believe that conversations between people online equates to actual dollar bills toward their bottom line.

But Facebook messages go unread, Twitter streams become RSS aggregators, and on and on until you’ve had the exact opposite effect you were looking for. You’ve become caught up in the volume and the pace without realizing the “experts” you’re allowing to advise you are really handing out flyers at the streetcorner of a dojo of their own:

It’s so easy to get caught up, confused, tricked, or swindled online, and frankly it takes so much more time and so very, very much more effort to become the master of the dojo on the hill. But which would you rather be?

Posted in Business | Tagged , , , , , , , | Comments closed

Ruby Processing

Ruby Processing Hack

Inspired by the visual art of Seldon Hunt.

Posted in Art, Code | Tagged , , , , , | Comments closed

Of Musicians And Programmers

Jeff Atwood posed the age-old question again today on his blog, and I thought it was worth a little more introspection as someone who was (is?) a musician first, programmer second.

The question: “Why are so many programmers musicians?” (Note: the question is coming from a programmer, not a musician, which is the first notable point. Many programmers might fancy themselves musicians, but it’s highly doubtful that a proportionately high number of musical performers write code offstage.)

REAL ARTISTS SHIP

Sure, both musicians and programmers create and release things, but we never really give either group full credit for how inherent this release cycle is to their jobs.  Simply put, if you’ve written code but have never compiled a self-created working program of some kind, you wouldn’t call yourself a programmer.  Likewise, you’re not a musician if you’ve never played a song.

This point is almost so obvious it’s ridiculous to waste time on, but think of all the people you know who have jobs that could go on for fifty years without a tangible “thing” being created.  Most people I know who input data into spreadsheets, make photocopies, wait tables, count money, deliver newspapers, or sit in meetings throughout their day could do so from early adulthood to retirement and never build anything.

The real reason our hearts flutter a little bit when we hear the words “real artists ship” is because it’s fundamentally true (because you fundamentally can’t be a real artist without having shipped something), and also because we know that a vastly disproportionate number of all the people we’ve ever met in our lifetimes we’ll never ship anything.

The point being that if you limit the input to only people who ship stuff, you’re immediately going to see an overlap from there on.

LOUD == POPULAR

Let’s face it. Becoming popular–at least to an extent–as either a musician or a programmer has less to do with personal branding or even (dare I say it) skill as much as it does with just being louder than everybody else. It might not make you the best or the most world-famous, but you can still pretty much guarantee in the fields of music and software that as long as you’re loud enough you’ll get noticed and followed to one degree or another.

Just ask these guys:

 

GOING NICHE FOR PROFIT

Both musicians and programmers are raised with a similar value set. Learn the tools that are valued, get a job using said tools, profit. So of course the most unbearably boring, untalented, and uninspired losers in both fields do just that. They study CompSci or Classical Performance, learn java or the violin, and get a job in a big office building or junior high school. It’s safe, it’s secure, and it’s a no-brainer.

On the other hand you’ve got the true hacker types who realize and value success a little differently. These are the programmers who give up Java for Ruby after college, or the musicians who drop out of college entirely and bend circuits.

The irony is that the more niche you go with your career, the higher your chance of success. Right now there are a million people hoping to be a successful rapper or pop singer, and probably 200 trying to be successful power electronics musicians. 

And of course since even the average musician listens to more music than they write, the demand for strange genres like power electronics rises disproportionately. If you’re able to become one of the top 20 of the total 200 power electronics musicians, you’ve found yourself in the top 10% internationally.

Obviously the same goes for programmers.

Just as in DHH’s concept of the ’surplus’ and Giles Bowkett’s idea of the ‘fringe’, as a musician or a programmer you have the ability to carve out a niche to be successful in, which is very powerful even if by the simple mathematics of “fish in the pond” numbers.

Certainly every career you can think of has its niches and maybe I’m overdoing it a bit, but I think this is a huge draw for musicians and programmers to their fields (and to the place where you can successfully be both). While I’m sure most advertisers and marketers are still working offline, I would highly doubt that specializing in “social media” as a marketer could automatically bump you to the top 10% internationally in your field, or specializing in Japanese used car sales, or kangaroo veterinary medicine, or Laffy Taffy humor writing, etc, etc, etc.

 

Noise musician or Merb contributor? LOL DUNNO.

Noise musician or Merb contributor? LOL DUNNO.

 

 

SO WHAT?

The percentage of musicians who consider themselves programmers is very low. Even if it would make perfect sense thematically for him to knock out a Perl script from time to time, I’ve never seen William Basinski make a contribution to Open Source or Prurient write a badass Lisp compiler.

But there are way more “musicians” (or people who call themselves musicians) than there are “programmers” (the same).

The percentage of programmers who consider themselves musicians, all else considered, is disproportionately high.

This is for a bazillion trillion reasons, probably, but has everything to do with the specific personality traits that would draw someone to proramming in the first place.

Again, all else considered, if you consider these personality traits:

 

  1. Builds and releases “real” stuff
  2. Understands the value of “loudness” as personal branding
  3. Able to learn new things
  4. Sees the “niche” or “fringe” as dollar signs, and, oh yeah,
  5. Can actually write fucking computer code
You’re already down to a tiny fraction of a tiny fraction of the world’s population. If we were to graph all of these people to the left side of a Venn diagram, and all the people who have points 1-4 in their personality but change point 5 to “can actually play a fucking instrument” to the right, the amount of overlap would be so absurd and intense that you’d think we were graphing the same group.
Oh wait, we pretty much are, and that’s exactly the point.
Link to my music, if you know me from software.

 

 

Posted in Art, Code | Tagged , , , , , , , , , , , , , , , , | Comments closed