Wednesday, March 25, 2009

On local radio stations

Today I got followed by @chumley1073, and employee of a local new rock station called Planet Radio (107.3 FM in Jacksonville, Florida).

You see, until recently if you wanted to listen to any new rock in jax, you had to listen to Planet. What changed that fact was the arrival of X 102.9. What was previously an 80s pop station suddenly became the one thing I never expected: a competitor to Planet.

I'm not a very big fan of Planet; the reasons seem like they should go in an unordered list:
  • Lex & Terry, morning shock-jocks and relationship advisors, prevent me from rocking out in the morning
  • The music played was new rock, but it wasn't exactly what I wanted to hear. I like to hear songs that are more frenetic than heavy.
  • Commercials. Planet played a lot of commercials.
X 102.9 was all of the things Planet wasn't, and it was good. I immediately changed my number one slot to X 102.9. I think it was three days before I heard a commercial. That's likely because they didn't have any advertisers, but I still rarely hear commercials. And then they started playing snarky ads comparing the number of commercials on each station in the last hour, and about Lex & Terry being old, bald men.

Shortly thereafter, I heard their request line announcement. In order to request a song, you must text the song title to them. They apparently don't have a phone line. And then they announced their twitter username (@x1029jax)... followed by their facebook page. Last week they announced a contest you could win by becoming friends on Facebook, and today they asked listeners to friend them on twitter.

All of it makes me think of some random dude sitting in a window-less concrete-walled room recording sound bytes and checking texts, facebook, and twitter... just the type of super-lean operation that can build off of larger Planet's existing ad network. Sure you could advertise on Planet, but why not use those ads they helped you develop on our station for much less?

You can see Planet reacting already to the existence of X 102.9. I heard a kick-ass song, "Sex on Fire" by Kings of Leon, on X 102.9. About a week later I heard it on Planet. It's not the type of music I expect to hear from them. Planet has shot back at X 102.9 with an ad that suggests a puppy dies each time a listener switches to another radio station. And now, an employee of Planet has followed me on twitter. I didn't follow him back; it feels like Planet is just trying to play catch-up.

All in all, it's an interesting play that X 102.9 has made, and I'll be listening to see how it all turns out.

Saturday, March 21, 2009

On vim targets

It must be noted that my first experience at Hashrocket with vim was a few weeks pairing with Tim Pope (the dude who wrote the rails.vim plugin you should be using) on a rescue mission. I didn't touch the keyboard for three days - that's how many hours of watching the man operate it took me to absorb the ridiculously awesome things he was doing. Credit for nearly all of my vim knowledge goes to him. The rest goes to the other Rocketeers who put up with my continual discussions about how to more quickly achieve line edits.



I thought I might sit down and document some key ways that I interact with vim, and then I realized that would take a couple hours and way more thought than I want to put into a drunken Saturday night. So I decided to talk only about targets instead.

In vim are the concepts of actions and targets. Actions are pretty straightforward and are really only useful when combined with targets. Some actions in vim are listed below for reference.
  • d: delete
  • y: yank (copy)
  • c: change
  • v: select
Targets in vim are one or two character combinations. I've listed some of the most common targets I use below.
  • iw: in word
  • t: to the character before the next character entered
  • f: to the next character entered
  • $: to end of line
Combining actions and targets results in some interesting scenarios:
  • ciw: change in word. Whatever the word under the cursor, remove it entirely and put me in insert mode.
  • diw: delete in word. Delete the entire word currently under the cursor.
  • ct.: change to the next period. Helpful for changing the name of an object, but not the method called on it.
  • ct(: change to the next open paren. Helpful for changing the name of a method.
  • df): delete to next close paren. Helpful for deleting entire method calls.
  • yiw: yank in word. Yank the entire word under the cursor.
  • d$ or D: delete to end of line
  • c$ or C: change to end of line
  • y$: yank to end of line
Do you use vim? Why or why not? If you do, what interesting ways do you use vim's targets?

Saturday, March 14, 2009

On my first tattoo


Some people have asked why I've got a Hashrocket tattoo on my calf. The reasons are pretty biographical; 'ware ye the history contained herein. Credit for the photo goes to Travis Schmeisser.



Each Wednesday Hashrocket has a midweek get-together called Hashrocket Hot Hackers Hump Day Happy Hour (or 6H). It was a chilly January evening and there were almost a dozen rocketeers milling about at the local martini bar when Sal casually asked if I wanted to go get a Hashrocket tattoo with him.

Of course, inebriated as I was, there wasn't much chance I was going to turn down the idea of getting a Hashrocket tattoo.

Yet, there was a time when I considered tattoos silly things that a person gets to show how edgy he or she is, or to indicate an extreme level of I-will-kick-your-ass. Now I've got one. So why choose to get a Hashrocket tattoo?

I've become quite enamored of Hashrocket since I arrived in Atlantic Beach at the end of March in 2008. I was still a recovering burn-out when I came down here, and somehow Hashrocket refilled my spiritual-coding cup. That sounds extreme, but it's just the way things are.

I spent five years at a county-level government IT shop as a web programmer. I serviced sixteen department websites and also wrote an intranet from the ground up that served 1700 employees while I was there. My boss was lost on anything past FrontPage and for help I had only a string of limited-engagement, part-time assistants of varying levels of skill.

I burned out. Totally and completely. I threw away all of my computer gear and went back to auditing hotels overnight and contemplatively staring at the moon. After about a year, I had the realization that software is what I do, and no matter how burned I felt or how much I wished otherwise, it seemed that was the value I would provide to society.

I began the slow road back to development by working as a part-time webmaster at a non-profit. Then Tiger turned me on to Ruby on Rails, and things started to happen inside of me. A strange sensation that, after experiencing a few times I was able to place: happiness. I was happy writing ruby code. I was happy using the rails framework. Just typing out each line of code somehow made me feel good.

That's how I came to be a Rails consultant in Madison, Wisconsin. My first paid site was completed in November, 2007, and I've never looked back.

When Tiger invited me to come down and see how Hashrocket does things in March of 2008, I was excited to see the magic sauce that had both he and Lark raving about the company. I didn't expect to be offered a job, but I was, and it's been the best thing that's happened to me.

In many of the same ways that ruby and rails took away the pain of coding for me, Hashrocket has taken away the pain of work and replaced it with happiness. Pair programming has made me a more effective and efficient programmer. Communicating all the time has taken away all the bad conversations, because nothing has time to fester. Test-driven development gives me a level of confidence in my code that makes me unafraid to change even systems I haven't looked at in ages. I feel encouraged to excel as an individual rockstar within the community, even on the Hashrocket clock. As Les Hill (in the photo, on the right) is wont to remind us in his blog posts, working at Hashrocket is like attending an ongoing seminar.

All of these reasons, from my discovery of Ruby on Rails through joining Hashrocket and even becoming a presenter at local user groups, this is why I have a Hashrocket tattoo on my calf. If I never have another experience that I want to commemorate with a tattoo, I'm glad I've had this one.