Older blog entries for oubiwann (starting at number 166)

Blendix Update

Glyph just posted a great entry on Blendix -- I highly recommend it!

We've had a really excellent response from tons of new users both with accolades and fantastic suggestions. You guys are awesome and I hope you stick with us, helping us make this app something useful to you and one that you enjoy using :-)

Technorati Tags: blendix, community, divmod, software

Syndicated 2008-01-19 00:04:00 (Updated 2008-01-19 00:06:37) from Duncan McGreggor

Divmod's New Product: Blendix

In several previous blog posts, private email conversations with some of you, and Facebook conversations with others, I have referenced Divmod's new product. We quietly released our first beta on November 9th and are currently about 85% through the second beta (to be released some time in the next couple of weeks). I'm blogging about it now because I just can't wait any longer :-) And we've been getting some really great feedback from users.

"But what is this mystery product?" you ask. Say no more! I am talking about Blendix. As the front page says, this first incarnation of Blendix is primarily a tool for consolidating web properties into a single URL, for your convenience and that of your friends/family. A striking example of this is my page on Blendix: https://blendix.com/users/oubiwann/. As you can see from the "Now Blending" panel, you'd have to visit 14 URLs at 10 different sites to see this same content. By checking me out on blendix.com instead, you are not only saving yourself the time and trouble, but you're getting a more complete picture of what I've been up to.

"Um, yeah... looks like an RSS reader to me..." True, there are a lot of similarities. But there's another twist: you can add your friends, too. Even the ones that don't want to create an account on Blendix :-) I'd say that it's a safe bet most of us have friends who publish some sort of content online but who also can't be bothered to join yet another social networking or similarly service-oriented site. With Blendix, that's not a problem -- you don't have to wait on anyone :-) You simply add them to your contacts where you can provide feeds, email addresses, and user names. Then, their public content (i.e., "feeds") will be displayed at a unique Blendix URL.

Right now, anything that provides an RSS feed can be added to your profile (and your contacts' profiles). Additionally, we're getting custom content from such sources as Amazon wishlists, last.fm playlists, weather, Google maps, and Flickr images... with lots more planned :-)

I wanted to write about Blendix here (on my blog) before we made any official press releases because you guys -- the members of the python community -- are our "home town" :-) We want you to get "first dibs" (as it were) and we wanted you to hear the news from one of your own, not from the cold lips of some news story. We're keeping things small for now, but if you have any interest (or if you use similar features with a related service), please come check us out (oh, and this too), sign up, take an account for a spin, and email us with any problems, questions or suggestions.

The team has been in amazing spirits during this multi-month push, working really hard, and adding new features left and right. We've been at it for a while, so competition is growing in this increasingly important user space. We may not be the shiniest or have the most users, but it is consistently apparent that our product is addressing needs and features that others seem to be skipping. Our development process may have taken longer than others due to the infrastructure we decided was essential to build, but this has given us an edge over other shops with similar plans.

And boy, do we have some nice surprises in store for you in the months to come :-)

Technorati Tags: business, community, divmod, internet, software, web

Syndicated 2008-01-17 04:32:00 (Updated 2008-01-17 04:32:38) from Duncan McGreggor

New ED Blogger Template

Well, I finally got around to migrating my blog over to the new blogger templates.

I customized their "Rounders" style by Douglas Bowman of stopdesign.com to use the colors and background image of my old-style blogger template. I found the process most painless and am happy with the results; it's nice to be able to manage the content in discreet chunks and the added convenience of the various widgets blogger offers is a big bonus.

I've also added a couple new sections that are populated based on the view/click rankings in feedburner. This should provide folks with easier access to the content they find most interesting.

I feel that the blog is now crisp, cleaner, and more enjoyable to read. Hopefully, so do you ;-)

Technorati Tags: blog, design, web

Syndicated 2008-01-16 08:32:00 (Updated 2008-01-16 08:36:30) from Duncan McGreggor

Reflecting on the Future via Thunderbird...

I've been using Thunderbird/Mozilla Mail/Netscape Communicator for quite some time now, with mbox files that date back to 1997. A few months back, however, I had some issues with Thunderbird handling my 7GB+ of archived email. This happened a couple years ago, too, when I added a near decade's worth of email to "Local Folders." Thunderbird took 10-15 minutes to load, every time I started it up.

Recently, I started seeing a similar but worse problem: it never finished loading at all. Not having the time to investigate, I gave up and started using GMail exclusively. I'm a big fan of GMail for both personal and business communications, so I had no problem with this. My only annoyance is that GMail seems to really slow down FireFox after an extended period of time (after being open for a week, for instance).

However, just the other day, I had desperate need of my archived mail. As such, I set about to find a way around the ThunderBird problem once and for all. What ended up working was adding one *.sbd folder at a time, checking it, quitting TB, restarting it, and adding the next one.

After all the old data was added and TB was running smoothly, I noticed that many of my mail folders were several GB is size, despite the fact that they contained only a few KB worth of messages. Peeking inside the files, I saw some really old emails that ThunderBird wasn't displaying. On a hunch, I went to the "File" menu and noticed the "compact" item. Bingo, that did the trick.

So far, everything is running great and I'm glad to be using TB again.

But here's the point: I'm really glad to be using TB again. I can't tell you the bizarre amount of contentment and near-euphoria I felt after seeing all that mail in its "rightful place", where I can search and find what I need, where I can reminisce, get old business information, content from which I can draw new inspiration, etc. I felt some weird form of "cleanliness" about having my mail in its own app and out of the browser.

I mean, hell yeah, Google's got a good thing going -- no denying that. But with the decreasing cost of storage, historical correspondence is something I want at my fingertips so that even if I have no internet connection, I can still get to it; even if I have no ThunderBird, I can still fire up vi and dig around.

And this made me think: we're all looking at web apps, MMOs, Amazon's EC2/SimpleDB, etc., but what about users like me? How many are there of us? What kind of market do we form? What *other* tools might we like to have besides email clients? I want to manage my data on my hard drives under my conditions. I like little scripts and even GUI apps that do one or two things really well. I'd love to have little GUI apps like that could be combined with other apps, forming exactly what I need when I need it with little or no pain.

Glyph was recently showing me the latest version of the Glade UI builder, and I was really impressed. It reminded me of working with Apple's XCode a few years ago -- a wonderful experience. And now... I wonder. What it would take to build a "meta IDE"? Where instead of assembling pieces of code and GUI widgets, we're assembling little GUI apps that all communicate via a shared, open protocol. Apps that could be easily reskinned to look like one complete application...

As a developer, the first thing that comes to mind is a tool that would be a combination of an IM/IRC client, a bug tracker, a wiki editor, an IDE, an email client, an svn client, and a time tracking tool. Each would be able to communicate with any other, allowing data to be correlated, tagged, cross-referenced, etc. Building that monstrosity from scratch would be heinous. But building each part wouldn't be too bad, really. What about having the flexibility to use any one of those as a stand-alone app, or combined with as few or as many of the others as you desired? That'd be killer. And wouldn't it be great not to have to use a web browser?

There has *got* to be some demand for this sort of thing...

Technorati Tags: software, web

Syndicated 2008-01-10 23:23:00 (Updated 2008-01-10 23:24:02) from Duncan McGreggor

2 Jan 2008 (updated 17 Jan 2008 at 01:04 UTC) »

Divmod Rocks

So I've been working at Divmod for several months now, and I thought I'd report on things a little bit. I've actually wanted to do this for a while, but things have just been soooo busy here, that I honestly haven't gotten the chance.

Simply put, this is the best company I have ever worked for. The team is brilliant and hard-working; the (virtual/distributed) working environment is highly creative one; the CEO is amazingly supportive and gracious; the software and supporting architecture is fascinating; and our product is actually useful and people like it :-)

I've done my time in Corporate America and swore I'd never go back. I've been a consultant since 2002, and the fact that I am actually an employee again really says something about the company I'm working for and team I'm working with.

Technorati Tags: divmod, work

Syndicated 2008-01-02 13:30:00 (Updated 2008-01-16 23:54:51) from Duncan McGreggor

Rest in Peace, Twist

Well, today was a sad day. After months of care and rehabilitation, my big, strong, proud alpha horse had to be put down.

He was an older horse, and after the abuse he suffered before we got him and a couple bad falls, he started losing full control over his hind legs. For the past few weeks, we kept him warm and well-fed in a stall, with Marjorie caring for him like a brother. There was amazing improvement, but when we took him for a walk a couple days ago, our hopes were crushed. He had to go right back in the stall, for fear of hurting himself and others (by falling on them).

We are concerned about his best friend, Timer; Timer's whole life has been spent with Twist -- they've never been apart. Hopefully, between Marjorie's pony Kelly, our friend Nola, Marjorie and me, we'll be able to provide a nice transition for Timer.

Great and Strong Twist: run with the spirits my friend. Race the bardo winds unencumbered and taste freedom like never before.

Technorati Tags: life

Syndicated 2007-12-11 16:26:00 (Updated 2007-12-11 16:30:42) from Duncan McGreggor

9 Nov 2007 (updated 19 Feb 2008 at 23:04 UTC) »

Twisted AJAX/COMET Tutorial Pre-release

As promised earlier, here is the new Athena tutorial!

Currently, the tutorial consists of a topical introduction and two example applications, built with the reader step-by-step. Note that this is still in branch and hasn't been reviewed for inclusion in trunk. Please feel free to leave comments to this blog post about the tutorial (good, bad and ugly). This will help us improve the content and prepare it for inclusion in trunk.

The tutorial includes detailed instructions on setting up an environment, obtaining the source code, and running the applications. There are also pointers on how to conceptually approach development with Nevow/Athena.

Due to concerns over code compactness, we pulled out the CSS that nicely styled the echo and chat tutorial apps. The curious can view the styled versions here:




And if you want to pretify your example apps, you can update the fragment templates per the links given below.


Technorati Tags: ajax, comet, divmod, documentation, howto, python, twisted

Syndicated 2007-11-09 17:52:00 (Updated 2008-02-19 22:54:31) from Duncan McGreggor

twitter

Yeah, so I'm late to the game.

In fact, twitter's not really a game I was ever interested in. I only started using it today because of the work we're doing at Divmod. The reason I was never enthusiastic was I just couldn't see myself using yet another application or having yet another web page open all the time.

But it hit me this morning at 3:00am when I couldn't sleep that with tying a single script's name at the command line, I could push whatever command I had just issued to my twitter. That script uses bash's history command as well as python-twitter. I wrote another simple script that I can use to push arbitrary text too. That coupled with the fact that 1) twitter supports an IM service and 2) I'm now using BitlBee, I can now use twitter without context switching (since I spend 80-90% of my computer time in the terminal and my IRC client).

I'll probably be using twitter mostly as an open-ended replacement for setting IM/IRC status. Interesting commits or revealing bash activity will make their way, too. And, of course, I will be using it for the as yet unannounced Divmod app we will be releasing :-)

Technorati Tags: divmod, internet, python, social networking, software

Syndicated 2007-11-01 15:52:00 (Updated 2007-11-01 15:57:22) from Duncan McGreggor

29 Oct 2007 (updated 30 Oct 2007 at 01:04 UTC) »

trac Stats Gathering with Storm

One of the things we've wanted to do recently at Divmod is track development status of milestones as well as gain some perspective on repository history/trends in activity. The first thing I did? Looked at SQL for about 2 and a half minutes. The second thing I did? Fired up a python instance and imported storm.locals :-)

With a few minutes of typing and looking stuff up (e.g., how to define compound keys for an already extant schema/db), I was up and running and was able to concentrate fully on the problem at hand (reports) and how to represent data visually (matplotlib). Now that's how an ORM is supposed to work :-)

Here are the schemas I defined in python:

class Revision(object):
"""
A storm ORM object representing a row in the trac 'revsion' SQLite table.
"""
__storm_table__ = 'revision'
rev = Unicode(primary=True)
time = Int()
author = Unicode()
message = Unicode()

def getDateTime(self):
try:
self.dt
except AttributeError:
self.dt = convertEpoch2DT(self.time)
return self.dt

class NodeChange(object):
"""
A storm ORM object representing a row in the trac 'node_change' SQLite
table.
"""
__storm_table__ = 'node_change'
__storm_primary__ = ('rev', 'path', 'change_type')
rev = Unicode()
path = Unicode()
node_type = Unicode()
change_type = Unicode()
base_path = Unicode()
base_rev = Unicode()

Revision.nodeChanges = ReferenceSet(Revision.rev, NodeChange.rev)

class TicketChange(object):
"""
A storm ORM object representing a row in the trac 'ticket_change' SQLite
table.
"""
__storm_table__ = 'ticket_change'
__storm_primary__ = ('ticket', 'time', 'field')
ticket = Unicode()
time = Int()
author = Unicode()
field = Unicode()
oldvalue = Unicode()
newvalue = Unicode()
Note the 1-to-m relationship of revision to nodes changed -- so easy :-)

This is exactly what a (good) tool is supposed to let you do: focus on and solve the larger problem at hand, not get lost fixing tools. With the schemas defined, the queries took literal seconds to write, I had my data, and was able to start generating textual summaries as well as processing the queries for graphs.

Wanna see some graphs? Below is a slide show of some graphs (just a few of the hundreds that are generated) representing the work of the Divmod dev team over various points in time on a secondary trac instance (not our main, Divmod trac instance). Though I haven't included them in the slide show, the code also generates graphs per-user, per-time-period.