My friend Steve and I have spent some time discussing object-relational mapping recently, partially initiated by his comments on the ORM features in django.
For some reason I’ve never quite understood, there seems to be an inherent fear of SQL in the web development community, and over the years there have been many efforts to hide the SQL completely (or in the case of Zope, encourage the use of a custom object database instead of a relational database).
I am continuing to migrate my old project repositories from CVS to svn. In the process, today, I found some old code I wrote in 2001 (or earlier) to generate input files for daVinci, an old di-graph visualization package. It turns out that daVinci has been renamed to uGraph, so when I released the code I updated the module name.
There are now other, possibly better, graph visualization tools available. NetworkX looks very promising.
In my spam research today, I came across this link to a blog post discussing POPFile, a POP3 spam filtering tool. I’ve seen the tool before, and I’m not even sure why I bothered to read the post, but I’m glad I did. This bit from the end caught my eye:
Steve Shaw is the developer of PopUpMaster Pro, which allows you to add unblockable popups to your web site quickly and easily, specifically designed to sign up subscribers to your list, and fast.
While I’m thinking about digraphs and visualization, I want to describe another idea for a website I have been mulling over. It would offer a way to see the relationships between people using a digraph rendering engine.
There would be a central organizing theme for a given rendering. It might be the current political scandal, an emergency response plan, a corporate organizational chart, or any other theme by which people are related to each other.
I’ve decided to take advantage of the new Blogger feature “Custom Domains” and move my blog under my own domain. This is a much more attractive feature than the older ftp publishing since Blogger still hosts the content for me.
If all goes well, it should be transparent and all of the old URLs should redirect to the new domain.
The company I work for came out of the Advanced Technology Development Center at Georgia Tech, which is an incubator for small companies run by the university. Among other resources, ATDC provides nice facilities with shared conference and break rooms but private office and lab space. There were a lot of companies in the incubator, at various levels of maturity. There were regular get-togethers and plenty of opportunity to exchange ideas with people down the hall.
A few months ago when I googled myself, I came up with a variety of random old posts to forums or mailing lists. Most of the information was stale. After a couple of weeks of having this blog online, and just a few days of having my personal site online, those have hit the top of the search results list for “doug hellmann”. Somehow that’s satisfying.
Logan Koester posted some tips for overcoming Coder’s Block.
I get blocked, once in a while, too. In those situations, it almost always comes with the feeling that the problem I am trying to solve is too big. That, in turn, usually stems from not having thought about the problem enough, rather than the other way around.
The development staff at my company is pretty small, so we are all involved in each new feature from “front to back”, as it were.
Since blogger doesn’t support exporting the contents of a blog without hacking around and republishing it, I decided to throw together a little application to handle the backup based on the feed.
The resulting Python script should work with any feed type, since I used the feedparser module to process the feed, but I have only tested it with this blog’s Atom feed.
It has been a while since I released a new open source project. The last time I dealt with the Python project registry it required a highly manual through-the-web registration process. The Cheese Shop is so much nicer, and the integration with distutils makes it so easy to register a project and release that there is no reason in the world not to do it. There are just a few basic steps to getting started: