What I Been Up To Lately

I haven’t blogged much lately since I’ve been busy hacking and working like mad on some projects I’ve taken on. I just finished a few really big milestones in them so I figured I’d talk about them a bit. Mostly just unfascinating documenting of my work so far. Nothing fancy.

Librelist

First, the more useful and popular of my projects is librelist.com which is a fairly low-tech alternative to google or yahoo groups. It is designed to be very easy to use and for any online projects that need a simple mailing list for their peers.

Most of my recent work has been related to knocking down tickets and getting it stable for larger numbers of people. I’ve fixed a ton of bugs, and tweaked a few features, but nothing really major yet. Biggest thing is I have a simple list of lists that will expand into a more complete archive soon. There’s a couple contributors interested in making an archiver.

There’s currently 532 subscribers and 110 mailing lists, with the most active lists being in the 10-20 emails/day range. Not too huge but good enough for a start.

I’ll be working on this periodically, but I really need to get it deployable by other people so they can help with the code or run their own if they need.

Lamson

Lamson is my little Python email server that I used in most of my projects now as the mail handling system.

I fixed a ton of bugs and almost completely cleared out Lamson’s ticket queue with only one there so far. That puts Lamson at 1.0pre11 and getting closer to a full official release.

There’s just a few little features I’ve had people ask for that I should add before then, and I should probably refactor a couple other things. For example, I need to change up the error handling so that ERROR states aren’t possible in normal operation.

Troll/Spam Research

Related to both Lamson and Librelist is my ongoing work on trolls and spam. I’ve been cooking up a reasonably balanced spam and troll controlling mechanism for librelist that I’m curious to see operate on many of the lists. I can already see a couple lists that might attract trolls and could probably be testers of this.

A lot of my research comes from my original work on Utu, my now dead project where I tried to add a control mechanism to a chat protocol to see if people could control their online communications the way the control their RL connections. My new investigations are more in the ways forums and mailing lists degenerate or seem to survive depending on the troll and spam levels.

An interesting thing I’m getting from this is the concept of the “Stern Father” and how he factors into many of the successful online communities, but also how not having this archetype in a community leaves the door open for pretenders to take the role and secretly troll. I’ve got enough observations on this that I’m crafting an essay about the concept and how it is shaping my plan for troll and spam control on Librelist.

BTW, the phrase “Stern Father” isn’t meant to be sexist, as I’ve found a few in this kind of role that are women. It’s more the idea that online communities seem to blindly follow anyone who adopts a writing style that is authoritative and proscriptive, despite how right or wrong they actually are. In fact, simply adopting the “Stern Father” voice seems to disable nearly all thought in the reader.

Anyway, more on this later as it may be interesting to other people.

Fret War

Fret War is in it’s 6th Round and going really good for a small little site in BETA. Yes, I said in BETA, deal with it.

Right now there’s about 100+ people signed up and about 10 people actively play, although that’s dwindling over the holiday season in the US. If you haven’t had a chance to check out the rounds, go hit the winnars and play some of the submissions for past rounds. If you click on each round you can just play all submissions right from there. You could also reverse engineer the URLs to get at all of them.

I’m finding the submissions really good considering most of these guys are programmers who are spending their weekends to compose and record a song when they get a chance. I think Fret War really is teaching them about recording and composition, as most of them already know how to play guitar really well.

Right now I think the feature mix is really good but I want to tighten everything up and maybe just add a simple blog and better gear features. An example of tightening up features is adding a way for players to edit their submission before officially posting it, or letting people do multiple submits if there’s multiple parts to the challenge.

As soon as it’s tighter and I like what’s there more I’ll take it to the next level and hit some of the various musicians and music blogs I know to get the word out.

If you feel like playing come on over. And if you have bugs or suggestions put them into the Fret War support site

Oppugn.us

I couldn’t for the life of me figure out what the hell to do with this domain name. Originally it was going to be some weird debate game when I first started Lamson, but then that morphed into Fret War so I didn’t work on it.

Then someone asked me to do a new rant for New Year’s Eve. I thought that’d be tacky, but then it hit me: What about Fret War for Rants?

I’m going to try to recast the Fret War code into a rant competition site for oppugn.us in the same vein and try to get it done by NYE and bring the world a whole new class of ranting.

The format will be nearly the same. I’ll pick some topic that pisses me off, and that I know pisses a bunch of other angry jerks off. Then post it and get them to blast their rant off.

But, the kicker is that I’ll try to get people to post audio of their rants in addition to or instead of writing them.

Man that’s gonna be ugly and horrible at the same time.

“Secret Project Which Has No Name”

I’ve had this project rolling around in my head for a while now, pretty much since I started studying music more and more. It’s not really a secret, I just don’t have a damn name for it yet so I don’t take it as seriously as my other projects.

I’ve wanted to do a “music browser” that would be able to browse the Semantic Web music ontology format and present the user a musician’s complete catalog of albums, music, performances, and who they’re related to for further exploration. This browser would work like every other browser where simply pointing it at a web site with the right content on it makes the thing work.

You know, like a browser? Not like iTunes at all.

It’s weird but I explain this one to people and the conversation usually goes like this:

Me: I'm doing a music browser.

Dude: What's that?  You mean like iTunes?

Me: Uh, no a browser.  Like firefox.

Dude: Wait so it'd be a web site where I can find musicians?

Me: No, it's a browser.  You click on the damn icon in your
  Dock and it starts an application like Firefox or
  Safari or IE currently does. 

Dude: Oh, and then it let's me browse my iTunes?

Me: No, it works like a browser.

Dude: Uh, how do I listen to music?

Me: You go to my site, or say fretwar.com, or 
  www.beirutband.com or the band's actual site.
  Not another walled garden.

Dude: Then it shows a web page?

Me: No, it shows you their catalog and albums
    and maybe lets you play
    their stuff if they put it there.

Dude: But I can do that with iTunes.

Me: Never mind, I guess I have to make it first.

After thinking about the problem for a long time, I finally figured out a possible way to do it. I’d adopt a Model-View-Controller setup and treat the Semantic Web like it’s a gigantic Model.

Then I ran into the latest Qt 4.6 drop and found out, why holy crap, you can script the whole mother fucker with javascript and it’s easy to add Qt classes. Then I found out Qt is LGPL now!

Once I found that I realized that Qt could be the View, and Javascript could be the Controller. I then started building a prototype and getting good enough at Qt that I could script it with javascript. It was pretty easy so I moved on to accessing RDF and doing SPARQL queries from Javascript.

Holy crap that was a pain in the ass, but I got it working. You can watch a video I made where I fire up the Qt script debugger and do a bunch of SPARQL queries straight from Javascript against the BBC music ontology record for Nirvana. I’m just pulling out names, but it’s a big breakthrough for the idea.

Oh, and it’s a video because that shit is held together with glue and hair balls. Nobody could run it.

As soon as I come up with a name for this thing I’ll make it official. First I’ll make something that lets me build the music browser, but hopefully since I’m going at it from first principles it could work for other semantic web projects that need a browser. Hell, if Qt works out it could even work on many of the mobile platforms too.

Music

Finally, I’ve been practicing music, as usual. Music practice is still my favorite escape from programming. With programming all my frustration comes from other people. Some dude who wrote a complicated fucked up library ruins my day with his attitude. Some bug prevents me from getting a project done. Documentation leads me down a bad path and I have to rewrite everything.

Most of my frustration in programming is entirely external and rarely within my control, but with music any frustration I have is entirely about me and my inability to do something. I love this kind of frustration because I know I can usually conquer it and it’s within my control.

Lately I’ve been doing these crazy exercises to improve my rhythm and timing. I bought an Alesis SR18 Drum Machine and learned how to craft full songs with it to play along with or compose chord structures for. Then I stumbled on a few things I can do with it that have been helping me quite a lot.

First I have to say that this thing sounds great and is really easy to use. The included bass lines could be easier to program, but you can hook it up to a midi keyboard and play them that way if you need something more complex.

When I practice, I take one of the rhythms it has and play 16th notes over it, even if it’s 4/4 or 3/4 time and 8th notes. Having to think in 16th notes at the same speed or at full speed really increases your timing perception. I’ve been doing this with my metronome, but the Alesis adds to the complexity of having to hear two rhythms at once.

Another big problem I’ve had is hearing or just even implicitly knowing where the “one” is in longer bars of music. For a long time I’ve been playing with my metronome and I’ll try to play so that there’s only one beat for 2, 3 or 4 bars. Now with the Alesis I’m getting to where I can just know where it is.

Now I’m at a point where I can take the Alesis to work, plug it in and play a rhythm in the background. While I’m coding I try to keep track of the “one” beat of the first bar in my head. Then I code and when I know the one is there I look at the Alesis to see if I’m right. At first it was really hard, but then I started to get to where I could code, and run my tests right when I had to look for the one.

It’s a wicked fun practice tool, which I’ll probably be writing about more soon.

As for music I’m writing or composing, pretty much all of that effort goes into Fret War, so just go check out the winnars if you want to list to some of the stuff I’ve done lately. Check out the other players too, they’re way better.