Skip navigation

on what should I hack next?

I know this isn't LiveJournal, but I just found what looks like a decent poll plugin for WordPress. So, I'll try it out and solicit your opinion all at once:

my next serial enthusiasm should be...

View Results

Loading ... Loading ...

Why I’m playing with Laconica

I just posted a quick writeup on Laconica installation. But, beyond the how, there's the why.

As I mentioned in that entry, I've started and neglected at least two attempts at building a distributed Twitter clone. That's mostly been a function of how busy I've been; how long I screwed around with making my own PHP framework; how far I wandered playing with the look and feel; how well Twitter was working; and how bored I got.

As for Laconica, I'm somewhat displeased with the state of the Laconica code and the installation process—and it certainly needs many more features. In other words, it's very itchy to me. But, the important things are:

  • It exists and it works.
  • Someone's actively hosting it.
  • Others are trying to install it.
  • Someone got off their ass and persisted long enough to get it to this point.

That's more than I can say for my own efforts—because mere ideas are worthless—so maybe I can find a way to help. :)

Getting Laconica up and running

The latest mini-sensations to arrive through my firehoses are identi.ca, a Twitter-clone / microblogging site, and the Open Source software Laconica, which powers the aforementioned site.

Having started and neglected two Twitter cloning attempts of my own, Cuckoo and OpenInterocitor, seeing someone else carry the torch with any modicum of momentum is attractive to me. So, I spent a little bit last night getting the code running on my own servers, and managed to do it twice:

See, the interesting thing promised by Laconica—and something I wanted in my own clones—is the ability to federate instances of the software. That is, users on one Laconica-based site should be able to subscribe to the updates from users on another site, by way of the OpenMicroblogging specification. Although federation isn't a silver bullet to a web-scale Twitter clone, I do think it's one of the most important bootstrap steps—but that's another blog post entirely.

Thus, since I'd like to see you run a Laconica site (or something like it) for mine to talk to, I figured I'd document how I got the thing running. My server is running Ubuntu Gutsy, so your mileage may vary. This is a long one, so check out the how-to after the jump...

Read More »

Putting the Sexy into Firefox Theme Browsing

As mentioned back in week 3, I'd started work on bug 419647 to "add a sexy theme browser" to addons.mozilla.org.

Well, I'm not sure about my success in imbuing it with the required sexiness, but it's at least been noticed by someone. :)

Firefox 3 Download Day Mega Widget

Update: Oh, and rumor has it that this widget will switch to reporting on downloads, rather than pledges, once the main event has begun.

Update 2: It didn't quite go like clockwork, but this widget is now showing estimated downloads by countries, rather than pledges.

Thanks to the completion of bug 435967, I can offer this totally unofficial hack of a mega widget (better late than never):

If you'd like, you can include this on your own site with a Copy-and-Paste of the following:

This is a total 2-hour cut, paste, reformat, and slight rejigger of Kent Brewster's work on Content Syndication with Case-Hardened JavaScript. Hopefully it works, because I'm releasing early before I've had a chance to check it out on anything besides the browsers in my lap.

Week 3 at Mozilla

So, it's getting to the end of my third week at Mozilla, and I'm a part of the Planet now—hooray! Having gotten a membership into that club, I feel like I should start making some noise about what I'm doing at work. Having stayed mostly quiet about day job affairs thus far in my career, it's going to take a bit to get used to a place as open as Mozilla.

Being a noob, I haven't started anything earthshaking yet. But, I have gotten a couple of starter bugs thrown my way:

  • Bug 395271 - Use memcache to cache output pages for non logged in users

    SUMO is support.mozilla.org, a humongous and mostly volunteer-driven support effort for Mozilla products. I've never really been to the site before myself, so this bug is an iceberg-tip intro to the effort for me. I'm wading chest deep into TikiWiki and plonking memcached into the middle of it to try to make knowledge base wiki page views a lot less expensive.

    Oh, and the source I'm working on is in subversion. Weird. Like, you could go look at it right now, and tell me how bad my code is.

  • Bug 419647 - Add a sexy theme browser

    AMO is addons.mozilla.org, another humongous effort to support distribution and developers of extensions for Firefox and more. This is a site I've been to plenty of times, but never as an extension developer. And so, here's another opportunity to start wading into the deep end. For this particular bug, the goal is to work up a presentation of themes more easily scanned visually.

    Nothing checked into SVN for this one yet, so you'll have to withhold ridicule for a little bit yet.

I'm really working on squashing my nerd fanboy tendencies. Because, I remember downloading the original Mozilla Open Source release, staying home from work to compile it on Windows with Visual Studio, and getting just one or two page views out of it before it fell over and caught on fire. And of course, long before that, I remember using the original lizard in monochrome on a Sun workstation, freaking out over everything and looking up Earth 2 episode guides.

So, although I'm kinda subdued in general right now—subdued as in beat about the head and shoulders—I've got a serious amount of breathlessness going on while trying hard to just kinda be nonchalant. :)

Markdown, Oh the Humanity

I use Markdown to write for this blog, and I don't think I could write much online without it. (Of course, that's not saying much lately—but nevermind that for now.)

Although I do appreciate all the effort put toward enhancing <textareas> on the web, I'm not a fan of WYSIWYG writing interfaces. They hide too much in an effort to make things "easy"—yet, for all that ease, they make me miss Reveal Codes in WordPerfect 5.1 for DOS. Hell, I wish I could write books using Markdown instead of Microsoft Word. (And, yeah, I know that some O'Reilly authors have written books in perlpod—but that's a bit too far even for me.)

Anyway, I think the issue is that it really bothers me to compose HTML in the same mental context as writing prose—HTML is too much like code. Coding and prosing are two different modes for me, and I don't like the constant context-switching thrash. (And, yes, I've just learned today that prosing is a word.)

So, apropos of this, there's been a thread in the blogophere lately naysaying non-HTML, wiki-text, and smart-ASCII formats. They seem to be mostly attacking the idea from a technical perspective, where it's more like a usability problem to me.

I don't see where Jeff Atwood's "Is HTML a Humane Markup Language?" makes the case for HTML as humane. As far as I can tell, the inhumanity is that markup schemes are harder to keep track of than HTML. Yet, there's a kind of coder macho thing going on there that's decidedly not humane—i.e. real programmers should be fine with getting their eyes poked by angle brackets on a regular basis.

Anyway, I do agree that some of these formats are horrendous. Wikipedia markup and BBCode are nasty in particular. Though, Wikipedia markup at least has some semantic purpose beyond HTML. But, I can't follow from that to seeing how the whole idea is wrong.

I used Textile for awhile, and then switched to Markdown when it came around. At this point, I've been using Markdown since it came out in 2004. I now plug Markdown into everything I can where I'll be doing any writing. There's a version of Markdown in just about every language known to the web these days—you can even find Markdown in Javascript. I write notes to myself in Markdown, even when there's no URL to view it. I've even used Markdown semi-consciously when writing by hand in a paper journal.

Perhaps I've said too much.

Anyway, I'll expend as many brain cells as it takes to not need to compose raw HTML by hand in the course of writing. As it happens, I can usually just use Markdown, so those brain cells were spent years ago. And thus, I feel I've saved more brain cells in avoiding coding/prosing thrash. So, it could just be personal preference, but I agree with the reasons why the original wiki doesn't use HTML.

Go Midwest, Young Man!

Reminiscent of this time almost two years ago, it's been a busy period so far. I've been working on another book, entitled Professional JavaScript Frameworks, and have changed jobs twice since leaving Yahoo! in early April.

I think I'm done bouncing around now, though: As you may or may not already know, I've started working for the Mozilla Corporation—I've got a username and everything! I'm a little overwhelmed at the moment by changes and drinking from a new firehose, so my enthusiasm may not yet be readily apparent. But, remember that I'm a complete web geek—and it's hard to get closer to web geekery than this.

But, one of the nicest things about this new Mozilla gig is that I'm going to start telecommuting. And the reason that's nice is because—and here's the next big thing—my wife and I have bought a beautiful house in Livonia, Michigan, and we're moving back to the Midwest in a month and some change.

Why? Because, after almost two years out here in the valley, we've discovered that being away from family and old friends while trying to make new friends and adjust to a very different locale was a lot harder than first imagined. And, well, it would've been much longer than we'd've liked before we could have afforded a house at all—let alone something anything like what we'll be enjoying back in Michigan.

The thing is, though, I've still got a lot of love for the Bay Area and its goings on—I've been pining for this place since at least the age of eight, after all. And, we have made a few good friends out here, despite the difficulties we've experienced.

So luckily, this Mozilla gig looks like the ideal thing. I'm hoping it will ensure regular return visits to enjoy SuperHappyDevHouses, the scent of star jasmine in the summer, and amazing cloudless skies lasting for days.

But, on the other hand—although I'm certainly not relishing the thought of readjusting to cold, clouds, and snow in a few months—I'm getting excited about the prospects of being back in southeastern Michigan. Our house will be pretty close to both Ann Arbor and Detroit, and it seems like some interesting things have started warming up since we left. Also, I suspect (and hope) we'll discover a lot of friends and like-minded associates in short order upon our return.

Lots of change. Very busy. Not a little exciting. But, I'm hopeful that things are going to get a lot better very soon.

In retrospect

When I first created this blog back in February 2002, I was talking to myself and I knew it. But, that didn't really matter: Since becoming newly digital in 1983, I'd already spent years plugging away at personal projects big and small, frequently abandoned, talking to myself all the time anyway.

So, blogging, I thought, would give me a real or imagined motivation to finish some projects. The difference between writing a blog and working alone in the basement, is that there's a chance someone outside my physical neighborhood might catch a few mutterings and knock on my door to have a chat—rather than just walking a little faster and avoiding my house in the future, like the local neighbors usually do when I find myself really going off on a tear.

Thus if someone, somewhere showed interest in things I was doing and describing—then maybe I might just stick with one or two of them long enough to declare a version worthy of a freshmeat.net release. (It's been awhile, but that used to be my gold standard for Real Software.)

However, I've realized that occasional visitors won't magically help me finish software. I've come to accept that I'm far too much a serial enthusiast to release much at v1.0 without a paycheck or some other substantial incentive. But that's okay, because tinkering with unfinished software still seems to attract occasional visitors. And, where there are visitors, there are contacts and conversations. And, where there are contacts and conversations, there's learning and fulfillment—two of my favorite things.

Apropos of conversations, though, I've gone habitually quiet in the past few years. I've gone from claiming that hacking is my World of Warcraft to just getting sucked into WoW proper. It's gotten to the point that I've wondered what I ever talked about here. Yeah, I've written this kind of entry many times before—but I don't feel it's gotten better.

I'm really out of the flow here, but I don't think giving it up is the right thing to do. I've been doing some retrospection (in volumes one and two), and have been reviewing what I've done here. I'm getting some ideas, and hoping I can get myself back into acting on them.

It might be a little while before I produce anything on a regular basis, because I'm currently working on a third book, entitled Professional JavaScript Frameworks. And, on top of that, I've got a bit of a transition going on in my life right now.

But, waking things up here is something I'd like to make part of that transition.

Greatest Hits Vol. 2, the Babble Bits

Following right on the heels of Greatest Hits Vol. 1 is another volume, this time including the entries that were more made of babble or ramble and not so much with code. Again I welcome additions, comments, criticisms, and complaints.

Greatest Hits Vol. 1, the Tinkery Bits

As you may have noticed, I've been shaking things up around here a little. Sorry for turbulence in the feeds! I've moved to a new server, and I've been trying out Movable Type again, but with mixed luck.

Why? Because I've been using WordPress for a few years, and I felt like a change. Maybe in another few months I'll convert over to Blosxom again, or try ExpressionEngine for the first time. Now, if only I could get all the timestamps right so some of my late-night posts don't have broken permalinks due to day changes. Maybe I'll end up just sticking with WordPress after all.

But anyway, I'm also having another bout of periodic existential doubt about what I'm doing here with a blog. So, in navel-gaze mode, I spent time a few nights ago skimming and reading through all 1000 or so entries I've written here. I do this periodically with the scores of paper journals I've accumulated to recenter and reconnect with myself, but I've never done it here.

So, for my own reference more than anything, here's 0xDECAFBAD Greatest Hits Vol 1, the Tinkery Bits.

It may be presumptuous to ask, but if anyone actually reads through this list and thinks of something worth surfacing that I missed—by all means, let me know. I'm trying to remind myself what I started this thing for.

amazing visitors

And I'm amazed that people seem to still visit this blog, despite the near-complete inactivity. That reminds me, I really should do something with that MyBlogLog API sometime — I'm totally digging what Kent Brewster is doing with it.

Metablogging

Back in November, I built decafbad recaffeinated using Tinderbox. Through it, I wanted to finally get my head around playing with the web publishing features of Tinderbox — and I hoped that after the Yak Shaving, I would enjoy the results enough to be motivated to continue pushing out small particles of thought. That worked for awhile. Thanks to my serial enthusiasm, though, the shine wore off after a month or two and my output has since dwindled. The interface is pretty cool, but there are just enough clunky bits to make me think twice about starting up the app.

In December, I built 0xDECAFBAD accumulator in an attempt to automatically capture and accumulate in one spot all the stuff I leave behind on 15 services or so across the net. A month later, it's still running. It's filled with crap day after day. It's all my crap, and I'm glad to have my crap all in one pile, but it's very noisy.

Between recaffeination and accumulation, I think I'm bracketing the same issues. On one side, I've got John Henry hammering down the microcontent spikes, and on the other I've got the machine cronjobbing away. What I really want is something a bit in between: Maybe a crap pile for myself and an easy manual selection method that I'll remember to use habitually for editorial control. It's all really just attempts to try to reconstitute the diffuse spew that used to be more or less concentrated into one spot.

Twitter sucked the blogging out of Molly, but I was already well down that path long before I think Twitter was a glimmer in Obvious eyes.

Apropos of that, here I am back at my traditional blog. The blog where I've been hoping to get myself writing again. Maybe I'll swing back this way and not make this the last post for another few months. I've certainly got lots in my head, and there's certainly been lots going on worth thinking about out loud — but I've also got plenty I shouldn't or couldn't actually babble about in mixed company.

So, what to expect from me, then? Eh, who knows. This might be the last post here for another few months.

Comments fixed

Oh, hey. Nothing like putting out a request for comments and then learning that my comments are broken, and have been since I upgraded to WordPress from SVN.

Not that it's the fault of WordPress - I renamed my comment form on the filesystem and in my theme to obscure it from spambots, but then blew away the renamed PHP file with the SVN upgrade. Blah.

Next serial enthusiasm?

Update: Yeah - I sent out a request for comments after breaking my comments. Ugh. Thanks if you tried commenting, and I hope you might try again. If not, thanks for stopping by anyway!

So, I've been basically hacking on nothing after work for quite some time now. I've had a few false starts, but have been finding it hard to get motivated to move on anything. There are a few things I've started, though, which might be worth returning to and finishing. If I were to do that - or start something new - which of these do you think might be worth my time?

  • FeedMagick2 - web command-line toolkit for munging and filtering feeds, written in PHP 5
  • XoxoOutliner - a browser-based outliner with a REST API, written in PHP 5
  • Learn Django or Pylons, do social networky stuff and explore OpenID and OAuth?
  • Explore CodeIgniter or Kohana further, do social networky stuff that can ideally be installed alongside WordPress and PHP 5?
  • Something else? OpenSocial? Keep hacking on my Centro's Blazer browser and do something silly and Web 2.0?
  • Level my troll to 70 and work on getting sweet PvP gear?