It Will Blend

So, as you may already have heard, we did a thing.  While I've been able to tell a few people, I've been waiting to talk about it publicly for a while.

We've gradually begun to launch Blendix.  Blendix aims to be the one site that you need to visit every day to tell you what's happening in your world.  Right now, it's an aggregator for various kinds of data around the web.  You can pull in the usual suspects (RSS, ATOM), but it's a bit more than just an RSS aggregator: today, it understands a few more specific things (last.fm tracks, amazon wishlists, yahoo weather, flickr photos), and lots more are planned.  Although I'm practically bursting with awesome ideas for its future development, I will try to refrain from commenting too much on those plans.  As I've said before, software is like frisbee — predictions more specific than "hey, watch this!" can be dangerous :-).  However, since I know it's the first thing you'll all suggest, I can say that yes, there will be richer integration with social networks.

In brief, it works like this.  You log in, and you create some people.  Some feeds may be automatically discovered based on their email addresses, and you can add your own.  Maybe you subscribe to some people: if you're looking for one to subscribe to, may I suggest "Glyph Lefkowitz".  I hear he's pretty interesting.  Finally, you visit your "dashboard" page, which — thanks to the magic of Athena — will update whenever blendix detects that one of the people you maintain or are subscribed to publishes some new data.  You can expect to see more of that magic as it develops.

A word of warning, though: it doesn't work with Safari (or IE, but I don't imagine that a lot of you are using IE).  We're working on it, but for the time being, Firefox is strongly recommended.  (Firefox for the mac works fine.)  Most of the work involved in supporting Safari is in Nevow, which is all open source, so if you are familiar with these sorts of problems, please submit patches!

This is our first live, fully public deployment of a Mantissa server, and I'm really glad to have it out there.  We are, of course, working through the usual kinks of getting our first batch of users ("beta" isn't a web 2.0 buzzword for nothing), but I'm fairly pleased with it so far.

Blendix itself isn't open source — yet.  We've mainly been keeping the product as a whole behind closed doors as a matter of expediency.  We didn't want to support an API that was heavily in development.  However, one of my goals as we get closer to a bigger launch is to get enough of the code out there for you folks in the community to write extensions and improvements for it.  There's already enough for some things (like supporting Safari!), even at the application level.  For example, a big chunk of Blendix is the "Person" object, which is available in the public Mantissa code, along with UI for editing, browsing, and viewing.

I'm really glad to have something "out there" to share with you all, and I'd like to encourage you to share back.  Please check out Blendix, and make liberal use of the information you find under the "Contact" link at the bottom of every page.  Let me know what you think, especially if you're a programmer and you've got some ideas for hacking on the code. This will be especially useful as get into the initial phase of pushing the core out to the community.  Also, we really want to make sure the experience is as bug-free as possible, so let us know about any problems you have.

Export for Python

I've started playing around with minor projects in my personal launchpad space, partially to try out bzr.

Most recently I wrote a hack, temporarily named "pyexport", which allows you to control the names which your library module namespaces export to application code.

So far, I've implemented a few features.
  1. export.alias(), which registers an alias for a method in another module that will not be imported until that module is imported,
  2. export.explicitly(), a convenience function which makes cooperating with __all__ easy
  3. export.internal(), which marks a module as "internal", and warns any application code (code outside the package which defines the module) which tries to import it
  4. export.restrict(), a method which prevents "leakage" of extraneous imported or private names - for example, if you have a module 'foo' which imports 'sys', you can normally do 'from foo import sys' in Python and get a result.
  5. export.singleton(), which replaces the calling module with a proxy that shares a namespace between the given singleton and the module itself.
It'll be some work to turn this rough prototype into something really usable for a large system like Twisted; at the very least it will need to be rebuilt test-first and integrated with the pydoctor and pydoc documentation tools.  Let me know what you think, and if I should pursue it!

Twenty Post-Dollars

I finally hit the limit of my flickr account; I've posted 200 pictures, and so, starting from the beginning of my photo stream, some of them are going to start disappearing.

I have about 100 more pictures to post, but I've been intentionally keeping my account free, because I'm not sure if it's actually worth my time (or money) to use the features of a "pro" account if nobody is really listening.

So I'm wondering, are there 20 people out there — one for each of the dollars it would take to upgrade my account — who actually care about what I'm posting on flickr?  No need to get effusive, just ping me in the comments (or email) to let me know I should upgrade and keep posting pictures.

It Was A Bullet

Tycho says:
More than anything else, I think it was installing Vista that made me hate PC gaming. The constant, system-level interruptions, the impaired compatibility, and most of all the savage kick to my framerate's exposed groin made me wonder what precisely in the fucking fuck I was doing screwing around with this onyx monolith. I knew I was just going to have to upgrade eventually (no), and I wanted to see if there was anything to this DirectX 10 thing (no), and I wanted to see what the Windows version of Live was like (a warcrime) so I bit the bullet. I shouldn't have. It was a bullet! That should have been my first clue.
Is this Microsoft's secret strategy with Vista?  To make everyone by an Xbox because they're sucking the life out of the PC ecosystem?  It hadn't yet occurred to me that Vista was supposed to be bad.

Looks like I'll be going to PyCon after all

Ying and I had been planning to have our wedding on the 11th anniversary of our first date: on march 15th, 2008.  I've told a few people about our plans, although invitations haven't gone out yet.

However, we're going to have to delay our plans.  In addition to the usual logistical issues and scheduling conflicts, one thing we didn't count on was that planners tend to be exceptionally busy during the holiday season and couldn't really return our calls.

I'll let you all know as soon as I can when the new date is, but we don't want to set one until we're sure that we can actually make sure the plans will happen on time.  I appreciate all the offers of help — and believe me, we will call all of you with favors when the time comes — but we can't really wait any faster, no matter how much help we have ;).