nothing happens

Syndicate content
meh, i got nothin'
Updated: 1 year 6 days ago

it was right after my accident, when i lost my hand

Sun, 08/30/2009 - 21:54

Around middle of last month, I got fired from my job as a web applications developer at this company that does web stuff for the state — the job I moved to Des Moines for in the first place. In the midst of a long time-wasting build-up to breaking the news to me, they gave me a lot of what sounded like out-of-their-ass rationalization about their reasons, but I think it really comes down to a couple specific incidents and I'm not going to talk about them here.

It's fine though, I guess. I'm taking on some freelance stuff. It's not enough yet, I need more. I'm really strapped for money, enough that it worries me, and yet I'm happier. At the end of the day, I'm not all wiped out with that "tired from doing nothing" feeling where I can't get up the wherewithal to do anything but veg out in front of the TV. Maybe the illusion of security makes me lazy and I need to be out hustling to really feel alive. I do know that I don't like being expected to hang around an office certain hours when I don't have a whole lot to do there. I like working when I have something to do and am ready to do it. That might be a few hours in the morning and a few in the middle of the night — if that's the case, don't make me sit around an office all afternoon trying to look busy. It's a sure way to turn me into one of The Working Dead. I had assumed if I was in someone's employ, that the management above me would see to it that I was assigned as much work as they believed I should be getting done. I thought that was their job. Just because I can always come up with piddly little bugs to tinker around fixing doesn't mean I'm not bored out of my mind waiting for someone to assign me something I can sink my teeth into. I guess most programmers watch YouTube videos or something, instead of tinkering with those piddly bugs.

Whatever. I was thinking today how great it would be to make my living in music, because then I would always have time to work on music, and if I was working on music all the time, I would get really, really good at it — and being really good at music is more satisfying than being really good at programming because when you're good at music, people can tell. Even people who generally listen to Top 40 crap can tell, if you put them in a venue and let them watch a gig, the difference between the performer who has become very skilled at writing songs, or singing, or playing their instrument, versus the one that's just dicking around on the side and thinks he can get by with that. In music, quality is conspicuous.

Programming is a different deal. I realized this from a freelance maintenance project I'm involved in, where the code constitutes a "web application" in roughly the same sense that a beaver dam is a "structure." Every little task I'm assigned takes twice as long, and is twice as frustrating, as it could be, because I have to root around in the code to find the relevant bits, which never seem to be anywhere sensible. The client doesn't have the budget to pay me to put a lot of time into restructuring it, so I make do. With customers of my programming work, be they my clients, my employers, or the clients of my employers, basically if the graphic design looks pretty and the app appears outwardly to do most of what they asked for, the code underneath can be complete shit. I might take pride in the quality and maintainability of my code — and I do — but hardly anybody else can tell the difference, even if they care. People will even put up with features that don't work, and will devise workarounds, because they honestly don't seem to know they could have it better. So why have I put all this time and energy into being good at programming? We can see how it's paying off: I can't hold down a full-time job doing it.

Another consequence of my move to Des Moines has been that I ended up playing in a band that's light-years better than any I've been in before. I'm playing gigs in other towns for a change. We have an album out that's actually on CDs, not on CD-Rs I burned on my computer. And the music, the songs we're doing and the performances of them we've been pulling off, are the real deal. And people can tell. You can tell that they can tell, because they love it, and they say so. And with every bit of time we put into it, we get even better. We aren't making anything approaching a living at it, but it has the best chance by far of becoming a paying proposition of any band or music project I've been involved with. It also makes me very happy, instead of frustrated. I really ought to be taking it seriously, refusing to compromise or let anything interfere with it.

As Bob Lefsetz reminded me in yesterday's letter, "an artist creates because he has to." And that's me. I could quit just about anything else I do, other than music and my family. I could give up programming if I had to. I could give up coffee, or meat, or beer, or writing bitchy blog posts. But I don't think I could give up music. Besides, "in this economy," and perhaps in any really, it's a fallacy to treat any job as permanent.

In light of this, I now consider my primary profession to be musician. I'm done pretending that something else is the case. I sling code for money. I'll even write good code for money, because I personally find it easier and more satisfying than writing crap. But that's "satisfying" in a very relative sense. I'll write as much code as I need to, to make whatever part of a living music doesn't cover, up to and including all of it. I still love programming, and would probably love it with more conviction given the right company or project, but so far that company or project either isn't out there, or doesn't return my e-mails. But music lovers are right here in front of me.

Categories: Friends and Family

tripmaster monkey: "practice changes"

Mon, 08/03/2009 - 02:46

I recently heard from a friend on Facebook that the band Tripmaster Monkey was to be playing a reunion show in Rock Island. I heard of it the day before the event, so wasn't able to make it, but the news prompted me to give another spin to their 1996 Sire records release Practice Changes.

I considered myself a fan of Tripmaster Monkey in my later high school years. I probably gave them more leeway than I would have a similar band that didn't happen to be from my home state and didn't play my hometown regularly. But their self-produced cassette EP Surrealean Junk Machine caught my ears enough to get me to turn up and pay $3 to see them play for a dozen teenage kids at most in a tiny College Hill coffee shop. The singer climbed the PA speakers and the band put every ounce as much energy into the set as if it had been on a summer festival stage, and for that I was grateful and became loyal. And they plainly had a gift for penning soaring anthems.

It was with some excitement that I heard of their major-label signing. Around 1993 it felt like Tripmaster Monkey, House Of Large Sizes, and scads of other little-known college-town rock bands were finally getting some long-overdue recognition. I went off to college in Ames, saw Tripmaster a few more times there, tried to turn as many friends as I could on to them. I bought the 7" single of "Shutters Closed," the EP, and the full-length. Then it seemed like I didn't hear much from them for a year or two.

In 1996 I was back in Cedar Falls and visiting my favorite local record store. My favorite clerk at this store was Aaron Curtis. In fact, I had tremendous admiration for him: he was a few years older than I and had played drums in some notable local bands — Fat Bertha and the Loveshakers, Fist Puppet, Mondale. As music fans, he and I shared a love for all things loud, dissonant, druggy, and fucked up — Butthole Surfers, Sonic Youth, just about anything on Amphetamine Reptile — but he knew his stuff much more than I did. When I started self-releasing my own homemade tapes of noisy weird shit, I would always give him his own copy in exchange for his personal critique of its contents. He was working on that day, and I asked him what the deal was with this new Tripmaster Monkey album I noticed on the New Releases wall — I'd heard nothing about them having anything new in the works, and the cover art was uncharacteristically stark and abstract. Aaron signaled his approval of the album and put a copy on to play in the store for me. It sounded like nothing I'd ever heard before. In that place, at that time, to my ears, it was something groundbreaking.

And yet, I didn't buy it. I was chronically short on cash, and eventually the CD disappeared from the wall and I forgot about it until a few years later, after the band was broken up, when I ran across a copy and bought it. Was it really as radical as I remembered it from that one hearing? As it turned out, for an album released on a major label in 1996, yeah, it was. And it made me revisit their earlier material and appreciate it all over again. I became a fan again and stayed one.

One gets the feeling that there's quite a story behind Practice Changes, one that will probably never be adequately told beyond the band's inner circle. In the early 1990s Tripmaster Monkey were one of dozens of young bands combining cranking guitars, anthemic hooks, and literate college-friendly lyrical imagery to get swept up by a major label during the Summer Of Grunge. Their 1994 Sire debut, Goodbye Race, produced a very modest hit in the prototypically grunge-pop "Shutters Closed," and the obligatory quirky video, but Tripmaster Monkey seemed to have all but disappeared by 1996 when the follow-up appeared with little fanfare.

The title, Practice Changes suggests that Tripmaster Monkey wanted people to know that their creativity had been moving in directions unfamiliar and unexpected even to themselves, and that this album was the product. The 20-second opening track, "Car Song Chorus," is appropriately a shock — a distorted recording, seemingly made on a handheld cassette machine, of four lines worth of rough acapella harmony. This slams right into the majestic guitars of "Beyonder," a sound reminiscent of The Rising Tide-era Sunny Day Real Estate, except four years earlier, louder, rawer in production, and with choir-like vocals.

Lyrically, Tripmaster Monkey had always celebrated that time-honored young-American ritual, the road trip, but "Car Song Chorus" is an unusual presentation for one of their paeans to the automobile. Were these young men getting burned out about the road? A song title found later in the album, "The Last Road Song Ever (To Be Continued)" suggests something about their outlook was different. And there are other signs of a new cynicism and/or maturity — "Colts," otherwise one of the poppier moments on this disc, opens with the lines "What's that you said about how we are all the same / That could work I guess, if you want to try it" — Chris Bernat seemingly singing in answer to the Chris Bernat of two years prior that sang Goodbye Race's "Roman Catholic Haircut."

Sonic surprises are all over Practice Changes — unpolished production, Casio keyboards, strings, occasionally silly backup vocals, and three tracks of what sound like excerpts from boom-box recordings of the band's rehearsals, presented seemingly as evidence of how "practice" had in fact "changed." "You Make Me Cry" and "Spinning To Unwind" take things a little ways into ramshackle indie-folk territory, and the queasy "Shirley On Pills" jumps between lounge-swing verses and a bluesy stomp chorus before capping it off with a chugging metal outro. Tripmaster Monkey seems to have been determined to screw with people's expectations on this album, yet with all the freewheeling experimentalism, the songwriting that got them to this point was still very much present. While many of the new elements here foreshadow indie-rock records other bands would release in the following years, it's a bit of a puzzler that an album like this managed to get released on a major label in 1996 — less of a wonder that said label didn't seem to know quite what to do with it promotionally.

Categories: Friends and Family

blutiger fluss, chuck hoffman, +TBA @ des moines social club 7/25/09

Fri, 07/24/2009 - 15:05

Hope I'm not too late posting this, it's been quite a week. Tomorrow night at Des Moines Social Club "Subjective Vaudeville" in the Sideshow Lounge, I'm playing with Blutiger Fluss (a super cool ambient electronica band that incidentally includes Dan (from Why Make Clocks)'s brother), and some other folks I don't know much about yet. It's going to be awesome.

Categories: Friends and Family

flyer: why make clocks @ barley street tavern, july 17

Tue, 07/14/2009 - 00:06

Also:
Thursday July 16 at The Record Bar, Kansas City
Saturday July 18 at Knickerbocker's, Lincoln, NE
See the Why Make Clocks show schedule page for details

Categories: Friends and Family

amazing human beatbox

Thu, 07/09/2009 - 14:17

Ladies and gentlemen, this year's winner of the wildcard competition of the Beatbox Battle World Championships, Julia Dales:


[via]

You know, when I was about 12, I tried to get into beat-boxing. I actually thought I was pretty good. My big innovation at the time was that I would do Latin beats. Apparently, the state of the art in human-beatbox has advanced far beyond anything I ever imagined.

Categories: Friends and Family

song considered underrated

Thu, 07/09/2009 - 01:34

The second reunion of classic punk band Flipper, and the release of two new albums (one studio, one live), along with all the requisite questioning of their motives for reforming, got me thinking. The studio album borne of their first reunion, American Grafishy, might be getting a bad rap. The music-snob consensus seems to be that it's pretty worthless, but I remember liking it in its day — but then again I was just a high school kid who liked anything loud, distorted, and dissonant.

At the very least I think that while a good portion of the rest of the album gets a bit dull, the opening track "Someday," a harrowing examination of loneliness and addiction and perhaps one of their most brutally honest statements, stands up well next to the best material from the band's original incarnation. I hope they've kept it in the live set.

Categories: Friends and Family

paul graham shtick

Thu, 07/09/2009 - 01:24

Had an interesting phone conversation this afternoon with a guy that's working with the Technology Association of Iowa on videos about IT careers, aimed at middle-school and high-school students. They saw my little "Get To Know" appearance in a local entertainment paper called Juice a couple weeks ago, and for this video they wanted to incorporate something about music and thought I might be interesting for it. (Gene sometimes deals with this sort of thing in the UNI Computer Science department, talking with prospective students and parents about a Computer Science major and what it's all about, so maybe he'll like where this goes.)

See, music and tech, especially web/social-media tech, have some interesting common ground right now. There is opportunity for young creative minds with an entrepreneurial bent to implement new ways of connecting musicians and fans.

The web and music downloading have brought a lot more artists to the attention of the average music fan. When I was growing up and becoming interested in playing music, before everybody had the Internet, putting music where people can find it and hear it was an expensive labyrinth, most of which was under tight control by a few very large media corporations. Getting the attention of the record labels was a prerequisite of getting the attention of the public, and getting the attention of the record labels was nearly impossible until you'd already got the attention of a good chunk of public. There were a few smaller companies, independent labels that you'd have a better chance with, but it was a small segment of the public, really hard-core music fans, that were turned onto those. For musicians just starting out, convinced that what they had to offer was good and would be successful if only people got a chance to hear it, there was always one big burning question on their minds: "how do I just get my music out there?" Getting music "out there" meant spending a ton of money on time in a professional recording studio, on the pressing of records, cassettes and CDs, on paying distributors to make those records available to record stores all over the place. Then trying to convince the stores to actually stock them — the stores won't stock the records if they don't think they'll sell them, so then you had to put a bunch of money in advertising, pay another group of special insiders to wine-and-dine radio station management to get airplay, and on and on. All of these things were necessary just to get your music "out there." Now, if all you want is to make some music available to just about anyone anywhere in the world, all you have to do is put it up on some web server. Putting music where people can get it costs next to nothing. And depending on how picky you want to be about the sound, even the recording has gotten cheaper — technically you can record your album on the very same computer you use to put it up on the Web, and the result can be fairly listenable, unlike the dubbed cassettes we made on our boomboxes back in the old days.

Now that you can put music where people can get it for almost nothing, the real trick is getting people to want it. And this means letting lots of people know it exists and telling them why they might like it — another thing the Internet has changed. Communicating to a large number of people at once didn't used to be something that us little people had the ability to do. You needed to have or find an in with the heavyweight old-media apparatus that had access to the technology available at that time.

Then, a few years ago, all this raw communication material in the form of the Web started becoming available to everyday people. Theoretically, if you have access to the same Internet that just about everybody else has, you've got the raw material to put your words, ideas, and art in front of the whole world and make people aware of it. But there was, and still is, a lot of experimentation going on in the area of how best to apply this raw material (that's why they call them "applications"), especially in the music game. And what happened was that just as all this raw material was becoming available to the little people, the big record companies made the fatal mistake of totally underestimating the implications of it all, and chose to pretty much ignore it. So the public became ready to find out about, and purchase, music through the Internet, and the big labels were offering them pretty much nothing. Naturally, upstart techies saw an opportunity here, and we ended up with a succession of music web sites and tools, each a little different from those that came before — mp3.com, garageband.com, iTunes, CDBaby, band profiles on MySpace, eMusic, Pandora, last.fm, ReverbNation, Bandcamp, Soundcloud. You can probably name a dozen more sites where people go for music online, and yet what's striking is how few of them were started by record companies. People are finding out about music from the Internet instead of from the increasingly boring radio. A music business built on highly-engineered big-budget blockbusters is finding its mindshare among the public being chipped away gradually by small labels and unsigned bands using the Internet to get their music in front of people and get the word out. Fewer and fewer people know or care what the #1 song on the charts is anymore. The big-name releases are selling less and less copies, yet more musicians are making a living off their music now than ever before. To today's young people, the Internet is no longer the "new media," it's the default media. All the while, the bloated old record business is kicking and screaming and suing its way into a black hole.

This ball has already been rolling for a while now, but I think online music is still a very fragmented, wide-open kind of thing. No one model of music promotion or discovery seems to have really taken over, and there are still a lot of artists that haven't quite found their way on board. Even something as simple as having an engaging band blog is an edge right now, and beyond that there are still new ideas to try, concepts that haven't even been thought up yet. Which is why, if you're a high-school or middle-school kid who loves both tech and music, this is a very cool time to be alive and contemplating your career, especially if you've got good/interesting/crazy ideas and the wherewithal to build something concrete out of them.

This might not be quite the message that the guy I talked to about the video is looking for. After all, he works for an IT recruiting company, and what I'm saying here seems to point towards young people starting their own companies instead of emailing their resume to some recruiter. If you've got a good idea for an innovative online music startup, I do think this is a great time to take a gamble on it, especially if you're still young and crazy. You could end up changing the world and making a lot of money, or you could end up broke and starting over in a more traditional career in a few years, but having had a great time and learned a lot along the way. Either way, you win something.

Or you can do like I do, get a pretty regular job, and then make music and/or do fun/crazy tech stuff on the side, a la the "Sex & Cash Theory." Maybe that's more of what they're after. More young people need to be exposed to the Sex & Cash Theory, it's a useful model for thinking about what you might want to do with your adult life if you're young, bright, and creative.

Categories: Friends and Family

july 6 at vaudeville mews

Tue, 06/30/2009 - 01:19

Categories: Friends and Family

contest

Fri, 06/26/2009 - 03:05

Categories: Friends and Family

when magic gets in the way

Fri, 06/19/2009 - 17:08

I've mentioned before how no ORM is perfect, and how the best frameworks give you the option of going around the ORM when you need to. As great as OO and MVC are, neither is a panacea. I don't care how frowned-upon it is to use custom SQL in a CakePHP project, practical stuff-that-works beats design dogma every time. Today (and yesterday) I ran into just such a situation.

Working on a CakePHP-based web app, the client wanted a particular report added to the site. The report needed to break down counts and sub-totals of revenue according to attributes that belonged to the line items, the objects being paid for, and the users themselves, given a date range. The report definitely needed to be based on the line-items. The line items "belong_to" the payments and the things being paid for (licensing applications, as it turns out), and the payments and license applications both "belong_to" the users.

It was bad enough that I had to make CakePHP's model layer do an aggregate/GROUP BY query to get the counts and totals I need (preferable to looping through payment items and totaling them in PHP). This is clearly a case where the functionality I needed was more relational than OO, so I was already trying to hammer a square peg into a round hole (something I seem to do a lot of). Where the trouble really started was getting CakePHP to pull in the users along with the line items. CakePHP has no relationship along the lines of Rails's "has_many :through", but it does have "recursive" and "Containable." Unfortunately, these aren't smart enough to pull in the two-relationships-away data by joining the table into the query; instead, CakePHP's crummy not-quite-ORM actually recurses through the models and pulls those in in another query. So the query for line items (joined with their payments and their applications) brings in, let's say, 1200 rows (typical for a month), then once CakePHP has all the user IDs from all the payments that all those line items belongs to, it sticks all their ids in a list and fires off a big "where id in ([900 or so numbers here])" query. Which, as you can imagine, takes way too long, causing PHP to puke and die because the process doesn't complete within 30 seconds. So the "proper" CakePHP method of effecting this relationship turns out to be too inefficient for this case.

So, I had to do a little custom SQL. An upside to this is that I at least have tighter control over the query (I can narrow down the fields returned with Containable, but like any time you try to do something a little bit advanced with a query in CakePHP, it gets a bit verbose and ends up actually less readable than straight SQL). After a few minutes of fiddling at the MySQL command line, I came up with this:

SELECT payment_items.product_type, license_application_types.trade, license_application_types.license_type, (licensees.personal_state = 'IA') AS in_state, sum(payment_items.amount) AS fees, count(*) AS count FROM payment_items JOIN payments ON payment_items.payment_id = payments.id LEFT JOIN license_applications ON payment_items.thing_id = license_applications.id LEFT JOIN license_application_types ON license_application_types.license_application_id = license_applications.id LEFT JOIN licensees ON license_applications.licensee_id = licensees.id WHERE payments.approved = 1 AND payments.created >= ? AND payments.created <= ? GROUP BY product_type, trade, license_type, in_state ORDER BY product_type, trade, license_type, in_state

This gave me pretty much what I wanted, minus all the sub-totals for different combinations of subsets of the attributes of trade, license type, and in-state/out-of-state. I got back one row for each possible combination of all those attributes though, as well as for every kind of additional fee that showed up on payments but isn't a license application fee itself; and for each row, I got a count of line items and a total of dollars paid for that kind of item.

Now I had to figure out how to come up with all the sub-grand-totals that the report needed to have — for all out-of-state journeyman applications, all master plumber applications, etc. I could have re-run queries like this one but with each one narrowed down by adding some extra ands to the WHERE clause, but I thought I could probably get by with looping through this data and totaling up the columns that meet each set of criteria.

In Ruby, this would be a cinch — I'd just call select() on this data a few times, each time with a different block to pick out the subset I wanted to total up, then use sum() or inject() on that. PHP, however, being the COBOL of the Web, doesn't really have the first-class functions that enable things like select() and inject(). It has some things like array_map and array_filter that take "callback" arguments, but you pass those by giving the name of the function, and if needed, the class or object it's defined on. So I'd have to actually clutter up my class with a bunch of little methods, one describing each subset I need to total. Ugh.

But I figured that, given the usual array-of-associative-arrays "recordset" of data you get back from a SQL database, it would be pretty trivial to write a function that filtered it according to an associative array of conditions — pass it the data set and an associative-array "condition" such as "array('trade' => hvac')," and it would return the rows for which every element in the condition matched. This would be great, if only CakePHP returned data in the array-of-associative-arrays recordset format we usually get from SQL databases. But alas, CakePHP feels the need to map your data into a pseudo-ORM tree and return you junk like this:

Array( [0] => Array ( [payment_items] => Array ( [product_type] => application ) [license_application_types] => Array ( [trade] => [license_type] => apprentice ) [0] => Array ( [in_state] => 1 [fees] => 400 [count] => 8 ) ) [1] => Array ( [payment_items] => Array ( [product_type] => application ) [license_application_types] => Array ( [trade] => rapping [license_type] => master ) [0] => Array ( [in_state] => 0 [fees] => 500 [count] => 2 ) ) [.... and so on ...]

Which rather complicates matching against a simple associative array of column_name => value. I'd have to either nest another loop or figure some way to recurse it — eeeew. I tried a more "procedural" solution — coming up with all the totals by looping through the dataset and adding the values from each row to every running total they applied to — but that ended up being the worst pile of nested-loop confusion I've ever written — The code to initialize all the totals to 0 alone was longer than the data being processed — and I still couldn't get it to work right, owing to the complexity.

There's got to be a way to get just the rows-and-columns data, right? CakePHP is bound to have a "just act like a vanilla SQL data store just this once" escape hatch somewhere, especially given how thin and anemic its ORM (more of a Table Data Gateway combined with an OAAM (object-associative-array-mapper)) is to begin with — right?

Well, I just spent my morning digging though CakePHP's database-centric naughty bits looking for the method that gets the row-and-column data that then gets passed to a rearrange-into-a-tree method. No such luck — no such separation of concerns between fetching the records and re-structuring them was to be found, the two tasks, with rather different purposes, were being done in the same method. Even a method called fetchRow() returns stuff that is no longer recognizable as a "row." Each Dbo* class for each type of database CakePHP supports re-implements the wannabe-object-graph re-arranging right there in the fetchResult() method, immediately after calling mysql_fetch_row() or whatever lower-level database call. There is no option to be found anywhere, no parameter that can be passed nor class variable that can be set, that turns this re-arranging off.

So instead, I had to write a method to undo it. I packaged it up with my previously-described filtering method into a Component called RawReportComponent. The better part of a workday wasted trying to find a work-around for some "magic" that's not all that great to begin with (ooh look, we do you the favor of massaging array data according to what table it's from!). I'd love to share this undoWannabeORM() method with the "community," but since it's code I wrote for work I probably shouldn't. You could probably write it yourself, with three nested loops like I did. The real pity is that anyone should have to.

Categories: Friends and Family

CMS == MOAR FEECHARS

Tue, 06/02/2009 - 16:03

srsbsnstoonI'm seriously rethinking my decision to use Geeklog for the Why Make Clocks site. I liked how most the admin interface made sense right away: you have static pages and stories, not vague abstractions like "items." But I've had a lot of little annoyances and difficulties with it since. Most of them I've managed to overcome, even if it meant hacking a little bit of code. But last night it came to a head when I decided to test out comments and came across this bit of text above a user-registration form:

Creating a user account will give you all the benefits of Why Make Clocks membership and it will allow you to post comments and submit items as yourself. If you don't have an account, you will only be able to post anonymously. Please note that your email address will never be publicly displayed on this site.

"All the benefits of a Why Make Clocks membership"? Uh no, registering via this web form won't get you half-price beer at the gig and you certainly don't get to stand up on stage with us and sing.

"Allow you to … submit items"? Um no, this is our site, we submit the items. I thought this was the registration to add comments, not to submit regular site content. Of course, you can configure user accounts to only be able to submit comments, not stories, but then that just means that this verbiage would become inaccurate and misleading.

This even echoes an earlier problem I had in which, despite this supposed requirement to create a login account to post a comment as anything other than "Anonymous," the Geeklog calendar always displays a link for visitors to add events. I was using the calendar to put up our shows, radio appearances, album release dates, that kind of thing. It doesn't make the least bit of sense to have just any visitor who shows up be able to, or even think they're supposed to be able to, put stuff on our calendar.

So I decided to try to figure out where this bit of text was at and change it to something that makes more sense. Turns out it's tucked away in a file in Geeklog's core code along with the same statement translated into a couple dozen other languages. I don't know all these languages, so I can hardly be expected to take the text I want and translate it into them. Anyway, I don't need all these languages. We're a regional band from the Midwest, English will do fine. Once we start touring Europe or Japan, maybe then we'll worry about internationalization. Of course, I can turn ths feature off in the configuration…

I mean, I understand some of what this "let Joe Random submit content" feature might be for, but it's not a feature we want and there's no good way to completely turn it off. Even if you configure it that way, there's still links and verbiage on the site that tell people they can submit items, and you have to go grubbing around the theme code and the Geeklog code itself to get rid of these. I do not need to allow, nor want to deal with, publicly-submitted content other than comments, and I'm not running a company where I have a bunch of subordinates submitting content either, so I don't care about being able to review their submissions and approve them. But it's a ball of features I end up having to configure and generally dick-around-with anyway.

There's also things like the swear filter and HTML filter — I wanted to embed a YouTube video in a story and ended up having to dig through the configuration to figure out how to get it to stop stripping out the HTML code. And this is rock and roll, not a buttoned-down corporate site, so censoring cuss words would, if anything, hurt our image, making us look like uptight prigs. Sure, I can turn off or configure these features too…

But that's just it — the dizzyingly large and poorly organized collection of configuration knobs in this thing. It's a tall order to expect me to pick through all of them (especially when I'm not even sure what some of them do) to turn off stuff I don't need.

See, Geeklog suffers from the problem a lot of open-source CMS solutions have which is that it tries to have all these features that are oriented to the Enterprise. This ignores the obvious fact that most web sites, indeed most organizations, start small and then grow. So all these options oriented to larger organizations right from the start, they get in your way. It's more cruft that you have neither the time nor the need to think about and configure. I don't want to have to think about i18n until I actually need it. I don't want to have to think about assigning my users to groups and different fine-grained permissions to those groups when my users are me and the two other guys in the band, or worse yet, when it's just myself. It would make much more sense to be able to turn on, or add through plugins, these kinds of advanced features as they become needed. Let the corporations who can afford to pay people to write up process documents about what configurations to make deal with all this shit. Let the little guy keep it simple. They call it "Geeklog" but I think a better name might have been "Suitlog."

What makes matters worse is that solutions like this seem not to be able to completely decide or commit to whether they truly want to be enterprisey or not — they include just enough enterprisey features to annoy you, get in your way, and give their developers something resume-building to work on, but either totally leave out, or provide rather bad implementations of, features that companies might actually consider crucial — like being able to easily migrate your site to a new server, so that you can set up a site in a testing environment and get the theme and configuration nailed down before moving it to a live public-facing server.

That's right, I tried to be all professional and, rather than kill off the existing Why Make Clocks site and potentially have people run into an in-progress version of the new site, I chose to first try to build the site on my local machine, then put it up on another hosting account where Dan could look it over and try it out, then put it up on the real site once we decided it was ready. Development-Testing-Production. Man, what a nightmare that was. All the internal configuration, including a dozen or so file paths, is kept in the database, so if you back up the database and restore it on some other server, then edit the db-config.php file, you're still only about 5% of the way to having the thing actually work. There's a migrate.php script you can put in, but it only changes a few of the paths and misses a bunch more. After much fumbling over a period of some weeks, I had finally arrived at this process:

  1. Back up the database
  2. Create an empty database at the new server
  3. Upload the code, including the admin/install directory and migrate.php script
  4. Browse to admin/install, enter all the configuration bits it wants and change all the file and directory permissions it complains about
  5. Restore the database backup into the new empty database
  6. Browse to migrate.php and enter the URL and directory config values it asks for
  7. Open the database up in phpMyAdmin and trawl through the 270 or so records in the conf_values table looking for anything that looks like a file path that migrate.php missed and fix it — and, since they're in the format of PHP's serialize() function, you need to make sure you count the number of characters in the path and change that number at the beginning where it says like "s:48:{" accordingly.
  8. Make the appropriate animal sacrifices, then browse to the site and hope that you found everything.

So anyway yeah, I'm back to looking at shoehorning a static-page-nav menu into the Old Standby, Wordpress.

There's a larger point about software design to be taken from this, though.

Categories: Friends and Family

didn't expect that

Sun, 05/31/2009 - 20:19

Back in the old hometown yesterday to tend to my house and visit some folks, and happened to spend a little time at the annual My Waterloo Days festival, featuring a concert by Great White. Putting aside the "Waterloo: Where It's Still 1988" aspect of that particular choice, I have to share an interesting observation about the beer tent, located a short distance from the stage. A single $3 beer ticket gets you one of those 16-oz plastic cups of beer they always sell at these things, but get this: the selection of beers included Blue Moon, Boulevard, Fat Tire and Sam Adams. WTF? When did this start happening? Up through just as recently as last year about all you could get at these things was Bud Light and Miller Lite, and now all of a sudden, for three lousy bucks, you can get a cup of Fat Tire, which only a few months ago bars were selling for like $6.50 a bottle. Damn. How the hell did that happen? Recession my ass!

Categories: Friends and Family

new why make clocks site

Mon, 05/25/2009 - 14:09

Made a new web site for Why Make Clocks. The old site was hand-rolled HTML painstakingly maintained by Dan using a basic "file manager" web form in the hosting company's admin panel (so his development environment was basically a <textarea> — ouch). He asked me to come up with something better, and while I don't have the design chops to come up with something hugely better from a visual standpoint, I knew I could improve on it from a functional standpoint, and could probably do it without having to write too very much custom code.

One thing I've noticed over the years with respect to band/musician web sites is that they have no trouble getting a really visually striking design that really jives with their image and sound — musicians and artists tend to hang around the same circles after all — but all too often what they put up is a beautiful, but totally static brochureware thing that they end up not being able to keep up to date, and thus they miss out on a chance to engage with their fans, or potential fans, through it.

Obviously bands have got the idea that they can do more on the web than some static info pages that never update. Far too many bands are basically using their MySpace profile as their website, and it seems like you see more and more of them starting up blogs on things like Blogger or Wordpress these days, because these are the best options available to them if they don't have a techie on board. But there are some pretty serious downfalls to them. You've got pretty limited control over the design, and on MySpace, your music and message has to fight with pop-up ads for weight loss products and various web-based scams for people's attention. Your MySpace page isn't really yours in any real sense. This is a state of affairs that I've often thought I could potentially carve out a little career for myself rectifying. In what form though, I'm not sure. Creating Yet Another Social Network Site For Bands seems like it's already been done dozens of times and the results have been consistently underwhelming.

But anyway, back to the project at hand. I built the site on Geeklog. I've had rough luck with content management systems in the past; the ones with the really sweet features are usually so abstract that it's hard for normal people to just jump in and start writing stuff, unless you pay some guy $10 to download a book he wrote that you won't have time to read. Unless your enterprisey employer is forcing you to. Geeklog's admin menu made sense right away, and what's more, it's got Iowa roots. My "design" leaves a bit to be desired yet; in fact, I could use suggestions. If you have any, or would like to offer your services as a web designer who's good with hacking Geeklog themes, feel free to comment here.

Categories: Friends and Family