Archive for the 'Technology' Category

A big new project goes live


It’s been a while since I’ve been able to announce a big new project. Not because I haven’t had any, but because everything I’ve been working on lately has been so large that nothing is quite ready to go live yet. But finally, I get to announce a big project that I recently finished: the Becoming MOBOS video blog. As I’m sure many of you from the Boston area are aware, there is a new Mandarin Oriental that’s been under construction down by the Pru. They hired me to create an internal video blog for them. Unfortunately, since it’s internal, I can’t link to it, but the screenshot to the right links to a full-size, albeit redacted, image. It’s a WordPress based blog using a verstion of WPelements.com’s MassiveNews theme customized by your truly. I also used FlowPlayer to provide the Flash video playback capabilities. All in all, I think it turned out to be a pretty slick site.

That’s not the only news, however. In preparation for announcing the Becoming MOBOS site I’ve been doing a little work sprucing up my own website. So I also get to announce a new version of the dy/dx tech website (I also changed hosts for it, so you may need to wait for the DNS to propagate if you’re still seeing the old site). The overall look of the site is the same as before, but I’ve removed some rather pointless elements such as the Google Map that used to be on the front page. In it’s place is now a slideshow of screenshots from my portfolio, which I think is a much better use of the space. The majority of the changes, however, are under the hood. As you may recall, I redeveloped the site using Django a while ago. Since then I’ve spent a lot more time with Django and know a lot more about it, so I completely redeveloped the site (using the newforms-admin branch and was able to make a lot of improvements to the code, and basically leave it better positioned to integrate more features in the future. Among other things, I plan on migrating this blog to a Django-based solution and integrating it into the dy/dx tech website to some extent. I’ve been working heavily with Django for the past several months, and I just keep liking it more and more. It makes every part of my job so much more enjoyable and, in a lot of cases, faster. Be on the lookout for another project going live in the next couple weeks: this one will be Django-based and will be very public, and, I predict, very popular.

Boom! No web site for you!

Currently I’ve got two projects hosted on WebFaction servers. So far, I really like them. As managed hosts go, they’re probably the best I’ve worked with, and they certainly make life very easy when building Django powered sites.

Today I got an email from one of the clients whose project is hosted on WebFaction saying that their site is down. So I checked it out, and while I was able to access it, it was extremely slow, to the point where a less forgiving browser/LAN setup might cause it to time out. So I fired off a support ticket to WebFaction, and within a couple minutes, not only was the site back up to speed, but I was provided with a very good explanation for why my server was having problems.

Apparently there was an explosion at one of WebFaction’s data centers this weekend. It took out power to the data center, but fortunately no one was hurt and none of the servers were damaged. Obviously, there have been some interruptions in service for the servers in that data center (which includes both of my WebFaction projects), but they’ve already gotten a significant number of the servers back online (though only one of mine).

Amazingly, this is actually the second time I’ve had a server taken out by an explosion at a data center. The first time was with a hosted Microsoft Exchange server with a hosting company in London.

It really sucks having sites down, especially critical ones (fortunately only one of the projects I have hosted with them is critical, and it’s the one that’s back up already), but as reasons for downtime go, you have to admit that an explosion is a pretty good one.

Some fairly large computer news

I’ve been working away from home more and more often lately, and the 13″ screen on my MacBook has been feeling more and more restrictive. So I decided to replace it with a something bigger. Obvoiusly my first thought was a MacBook Pro, but they’re just so expenssive that it’s hard to justify the cost. So instead, I bought a ThinkPad. I got a T61 with a 15″ WSXGA+ screen, 802.11n, dual-layer dvd burner, 2.5 GHz Core2Duo… basically the exact same features (and even hardware probably) as a MacBook pro. The biggest difference? I spent less than $1000 dollars on it.

This is actually my second ThinkPad; I had an x61 that I bought in college and actually used as my main computer when I first moved to Boston because my PowerMac was in-transit and I didn’t have anything else. I’ve also been impressed with the ThinkPad line, the higher end ones have very nice build quality, and they’re popular enough with the Linux crowd to have good Linux support. So, for the second time in my life, I’m running Linux as my main OS (specifically Gentoo Linux on kernel 2.6.25 with the tuxonice patches).

The biggest issue with using Linux was finding the appropriate replacements for my commonly used apps. Most of them were Easy: Firefox stays the same, I use Google Apps to host my email so no problems there either. For instant messaging I was planning on using Pidgin, but ended up going with Kopete because after trying it out, I just like it better (that’s right, I’m using KDE, 3.5 for now). The biggest challenge, was trying to find something to replace TextMate for coding in. I absolutely love TextMate, and take advantage of a lot of its advanced features all the time. Fortunately, back when I was a CS student, I got nice and familiar with Emacs, and was well aware that, even if the functionality I wanted wasn’t built in, someone’s probably created an add-on for it, and if not it would be pretty simple for me to do it myself. Turns out I was right.

I haven’t completed all my Emacs modification yet, but so far just two little scripts have given me most of what I was looking for. First was yasnippet, which provides a snippet feature that works in pretty much the exact same was as TextMate’s. Someone even wrote a script that will download TextMate bundles directly from the repository and covert the snippets they contain to work with yasnippet. You can’t do much better than that. I’m also using emacs-textmate which provides an Emacs minor mode that emulates some more of TextMate’s behaviors; specifically, it adds in the ability to automatically insert paired characters, so if you type ‘(’ it automatically inserts ‘)’, and handles deleting them gracefully as well.

There were a few other features that I use extensively in TextMate as well that weren’t provided by either of these add-ons. Fortunately, it was relatively simple for me to implement them myself (with a little help from a friendly Emacs guru on the Gentoo forums) and patch emacs-textmate to provide it. Specifically, I duplicated TextMate’s auto indent feature by adding an extra keybinding to emacs-textmate to bind the return key to the built-in Emacs function newline-and-indent. I also bound M- to a new function of my own creation defined thusly:

(defun open-next-line()
  (interactive)
  (move-end-of-line nil)
  (newline-and-indent))

This duplicates the behavior of command-return in TextMate, which is pretty much the same as ‘o’ in vi[m]. I’m still working on how to duplicate command-shift-return, which inserts the appropriate line ending character based on language (’;’ for C and C-like languages, ‘:’ for Python, &c.) and then opens and goes to the next line. But I don’t think that will be too hard once I learn a little more elisp. After that I just need to figure out how to duplicate Textmate’s tag closing function, which is a huge time-saver when coding HTML.

All in all, I’m quite happy with my new computer. Things may not be quite as pretty as in OS X, but they can be if I just put a little work in to making them so (I’ve already got e17 installed, which comes close and with some more tweaking may replace KDE as my default environment). As much as I love Mac OS X, there is definitely a strong argument to be made for Linux, at least for people who aren’t afraid to get their hands dirty with the command line and a good old text editor. Even with just a couple days spent adjusting the system, I think it’s already at a point where I could see using it full time, maybe even prefer it to OS X. Which is really saying something when you consider that I’ve been a Mac user for about 24 years.

I love Django

I’m currently working on a fairly large Django project that I think I’ve mentioned a couple times in the past. In that Django project there is a Person model and an Organization model. Both Persons and Organizations have email addresses. Organizations are related to Sites (through a ManyToMany field), but Persons are not (they’re related to Organizations through an intermediary table). I’m currently attempting to create a contact form, so that people can email either a Person or an Organization using newforms.

For security reasons, we don’t want the user to actually see the email address, just the name of the Organization or Person. Fortunately, newforms has the ModelChoiceField class that you pass a queryset of options. In keeping with DRY principles, I want to be able to use a single Form regardless of whether the person is trying to email a Person or an Organization (both models have a field named ‘email_address’). Unfortunately, this is where I ran into my first problem: ModelChoiceField doesn’t really allow you to define the queryset dynamically, you have to define it in the form definition. Luckily I found this blog entry which provides a method to re-define the queryset in the __init__() method which allows you to change it based on the HttpRequest object. My next problem was that I only want the user to be able to email Organizations and Persons on the current Site. Since Organizations are directly related to Sites I just used the CurrentSiteManager. However since People are not directly related to Sites, and are instead related only to Organizations (through an intermediary table), I couldn’t do this. Instead, I decided to try this crazy bit of code:

Person.objects.filter(persontoorganization_map__organization__in=Organization.on_site.all())

Amazingly, it just worked exactly as I would have wanted it to. No fuss, no problems, just a queryset of Persons related to the current site. Go Django!

Getting there with the TV

I posted a while ago about my plans for our TV setup. In the intervening months I’ve made a few changes to my plans and taken a big step towards getting it all set up.

The biggest change is that I’ve removed MythTV from the picture. Originally I was planning on either building my own MythTV powered HTPC or buying a TVease Zodiac MythTV system. It appears that TVease has gone out of business, so that’s now out of the question. But in the course of my research on building a MythTV box, I realized that it would be a similar price and far far easier for me to just buy my HDHomeRun through Elgato and get their EyeTV software with it. I can then just run it on a Mac Mini using Pyetv to control it all through Front Row.

With that in mind, I’ve now purchased my HDHomeRun from Elgato, and am currently watching the Detroit and Dallas in the Stanley Cup playoff live in a window next to my browser as I write this. We’ve also get it scheduled to automatically record Lost and Grey’s Anatomy.

So far I really like the EyeTV software. With the HDHomeRun we’ve got two tuners so we can do picture in picture and/or record one thing while watching another (or just record two shows simultaneously). I’ve had no problems or complains with either the software or hardware so far, though I have had a few problems actually introduced by my computers. For some reason, my iMac occassionally loses its AirPort connection which means it loses its connection to the HDHomeRun. As a result, our recording of the latest Grey’s Anatomy stopped after 7 minutes. Fortunately this won’t be a problem with the final setup because I’ll just connect the Mini to the network via ethernet. On the plus side, the 802.11n network I setup for my iMac gives me no problems watching two HD shows simultaneously. The other problem we’ve run into is that occasionally the reception isn’t that good. But that’s easily fixable by just getting a better antenna, which won’t be hard to do since we’re currently using some cheapo rabbit ears.

All in all, I’m pretty confident that this is going to work out well. And it will be easily upgradeable if we decide we want to get cable and/or sattelite (probably sattelite because if we’re paying all that money I’m going to want Setanta Sports).

Complex Django hosting

As you may recall, a while ago I got myself an account at MediaTemple with the idea that I’d move all my websites over to there. I had previously been using Dreamhost, but wanted something a little more high quality so that I could reasonably offer hosting services to some of my clients. MediaTemple seemed like a good way to go, and for the most part their service has been great.

Unfortunately, I have run into a few problems. Most importantly, despite spending a fairly significant number of man-hours working on it, I’ve been unable to get Django running on my (dv) server. Yes, they have a (beta) program that makes it easy to run Django on a (gs) account, but for my needs a (gs) simply won’t do and I really don’t want to have multiple accounts with them. The end result of this is that several of my web pages are still running on Dreamhost because they require Django (this blog actually is as well even though it’s currently a WordPress blog, because I want to switch to something Django-based and it seems like an unreasonable hassle to migrate my WordPress blog to a new server only to then have to migrate it again to new software, especially as I’m currently holding onto my Dreamhost account for my Django-based pages anyway).

The issue is now coming to a bit of a breaking point. Why? Because I’m currently working on a pretty large Django-based website that will be going live in the next month or two. For the purposes of development, it’s being hosted on WebFaction, which has been an amazing host. They make it incredibly simple to host a Django site, to the point that basically zero setup is required. But as we get closer to the point of going live, I’ve been considering what the hosting needs of the site will be going further, and how to best serve them.

The site is a redevelopment of an existing site, so we can get a pretty good idea of what the traffic numbers are going to look like. This will let us extrapolate the RAM and bandwidth requirements pretty well too. The issue, is that once the Django version of the site goes live, we’re going to start to expand it. Thanks to the capabilities of Django, it’s being developed with the potential for massive growth in mind. Specifically, it’s using Django’s Sites framework to allow for expansion to several sites. Currently there are only two, but the Django version will go live with 4 or 5, and there’s the potential to expand far beyond that.

This means that we’re going to require a pretty large number of (software) servers. There’s the MySQL server running the back-end, an HTTP server for static content, and then an HTTP server for each site, and they’re all going to be using up resources to different extents. Trying to find the best hosting solution for this sort of setup has led me to a couple of options:

  1. Stay with WebFaction. A number of people have said they believe that WebFaction’s shared hosting plans should be able to accomodate this. WebFaction provides a very good combination of ease of use and low-level access, their prices are good, and the way they have their hosting set up, it’s extremely simple to add another Django install complete with its own Apache/mod_python instance. They also offer dedicated server, but I think there are probably better routes to go than with WebFaction’s dedicated servers.
  2. Switch to Slicehost. I’ve only just learned about Slicehost, but so far they look like a pretty sweet deal. For a very reasonable price you get a virtualized server running a Linux distro of your choice (you can choose from 8 right now) run on Xen. They claim not to oversell their servers, so you’re guaranteed to actually get the full capacity that you pay for (unlike with budget hosts such as Dreamhost). And since you’re getting your own virtualized host you have full root access. They basically have nothing preinstalled, so you can easily set it up in whatever configuration you want without having to deal with the vagaries of the anointed hosting package (Plesk on MediaTemple, I’m looking at you). I really like like look of them, and they’ve been getting good reviews. They’re currently listed as the number 2 hosting company on Djangofriendly, behind only WebFaction. With my background in IT and Linux administration, the fact that I’d have to manage everything myself isn’t enough to scare me away either. The fact that they let you choose your Linux distro really appeals to me as well, as I’m by far more familiar and comfortable with Gentoo than any other Linux distro. I only wish they offered FreeBSD slices, but the only reason they don’t is technical, and once that issue is resolved it sounds like they plan on it. In a lot of ways, they’re basically a very affordable colocation provider. The biggest issue, it sounds like, is that apparently communication between different slices counts against your bandwidth allotment (for both slices, presumably). This means that as the site I’m working on grows, if it spreads out to multiple slices (which it undoubtedly would and which I’d want it to do since that will give the added reliability of spreading across multiple physical machines) we’ll basically be billed for database access from the sites that aren’t on the slice with the database server.
  3. Colocation. Colocation is basically the 800 lbs. gorilla in the room. It costs a lot more, but you get what you pay for. With colocation we’d have all the advantages of Slicehost (minus the low price, of course) plus the ability to expand more or less arbitrarily. We could have as many physical machines as we wanted running as much or as little of the site as we wanted. Provided we’re willing to pay, of course. On top of that all the server management would again fall to me, but this time without some of the nice shortcuts that Slicehost offers. Essentially, colocation is alway the fall-back option. But hopefully one of the other two hosts can offer us a solution that’s a little more balanced: we get less control, but more simplicity and ease of use for a greatly reduced price.

At the moment, I’m leaning towards sticking with WebFaction for now. I’m already very impressed with what they offer, and from the sound of things, they’ll continue to be a more than adequate host as we expand. But I’m also definitely looking for input. If anyone has any suggestions or recommendations I’d love to hear them. In particular, any first-hand experience with hosting large Django sites with any of these solutions are most welcome.

FreeBSD on an Apple MacBook

For the past week or so, I’ve been running FreeBSD on my MacBook. So far, I’ve got to say, I absolutely love it. I have a lot of experience running a range of Linux distributions on all sorts of hardware including both PPC and Intel Macs, but just a week or so of FreeBSD usage has convinced me of the OS’ value over Linux.

A standard FreeBSD install is incredibly simple. If you don’t want to dive into any messy details you don’t have to (though you do need to be comfortable with the fact that you’re going to be using a curses interface rather than a real GUI). You could probably have a full, working install of FreeBSD, complete with X.org, in 15-30 minutes if you didn’t want to do anything crazy.

I, of course, wanted to do some crazy things. Namely, I wanted to have it running on Sun’s ZFS, which took a little extra work. If you just want to run FreeBSD on your MacBook easily, I highly recommend this howto from Goddess-Gate.com. It’s very good and very easy to follow (just remember that you might not use a French-layout keyboard and you’ll be fine).

To start things off, after partitioning my drive with BootCamp, I used this ish.com howto to get a minimal FreeBSD install running with ZFS. At this point, my Airport card was working with the built-in drivers, which was absolutely stunning after all the work and effort I’ve put into trying to get WiFi to work with Linux in the past. After that I took a few tips from zenspider to get the basics setup like configuring my own user with sudo privs, and ZSH as the default shell (I’m a fan of things that start with Z, I guess…). After that, just a few tips from the Goddess-Gate.com howto as well as the MacBook page o the FreeBSD wiki (the wiki page will be important later) got me to a basically complete and usable stage.

In addition to the basics, I installed the e17 window manager, which so far I really like, gvim and xemacs, for my basic work needs (traditionally I’m an emacs guy, but lately I’ve been playing around with vim a lot), Opera for web browsing and some of the KDE packages, though I don’t want or plan to use KDE, I just wanted a few of the applications to play with (Konqueror and Kate), so I removed all the KDE packages other than kdebase and it’s dependencies.

At this point I only had a few issues with my install:

  1. the trackpad - FreeBSD currently has no support for advanced features with the MacBook trackpad. The synaptics drivers available in FreeBSD don’t recognize the USB trackpad that Apple uses, so you’re forced to use basic mouse drivers which means no two-finger scrolling or right-click. The best solution out there (and I’ll address this in a bit) is to configure xbindkeys so that F10 sets your mouse button to left-click, F11 sets it to middle-click, and F12 sets it to right-click.
  2. fn key - FreeBSD also currently has no support for the fn key on the MacBook keyboard which means that the home, end, pgup and pgdn keys are unusable. This isn’t a huge deal as you can use various other keybindings to the same effect, but it’s annoying.
  3. battery monitor - For some reason the battery monitor widget that comes with e17 only sort of works with my MacBook. If my battery is full, it says so. Otherwise, it just says ‘DRIVER’. Oddly enough, this doesn’t seem to indicate an actual driver problem, because I can get the full info on my batter at the command line including time remaining and all that fun stuff. Since the information is obviously all available I’m going to try and patch the e17 widget to work with a MacBook when I’ve got the time. Meanwhile, I’m sure that other battery monitor probably work, though I haven’t had a chance to try any yet.
  4. Firefox - I simply have not been able to get Firefox to work properly. I’ve tried various ports (firefox, firefox-devel,linux-firefox, and linux-firefox-devel), but sometimes they fail to compile, and even when they do, they won’t run. Since I’ve got both Opera and Konquerer installed I’m just going to ignore this issue until Firefox 3 is released and makes it into the ports tree.

Other than those four things, everything else has really been a dream in terms of ease of setup and use. And, I’m happy to announce, I’ve come up with a better solution to the right-click issue!

You have to install xvkbd and then add the following to your .bindkeysrc:

"xvkbd -text '\m3'"
	Control + b:1

"xvkbd -text '\m2'"
	Alt + b:1

This will allow you to use ctrl-click for right-click, as in the Mac OS, and alt-click for a middle-click.

The one caveat, which Rui Paolo, writer of the MacBook entry in the FreeBSD wiki helped me discover, is that you have to compile the latest version of xvkbd yourself, as the one in ports is outdated and doesn’t work for this. So I’m going to work on building a new port with the latest code. The lack of a simple way to right-click was the one thing that was really bothering me with my FreeBSD install, so this is a pretty huge deal as far as I’m concerned.

Well, that was a very long and geeky post. Now I have to get ready for my international flight tonight.

Safari 3.1, Gmail, and Firefox 3

Like many others I upgraded to Safari 3.1 last night. Also like many others I’m now encountering the ’shift bug’ in Gmail. If you haven’t yet read about it, what happens is that for some reason in Gmail on Safari 3.1, and apparently only in Gmail Safari 3.1, when you hit the shift key (or caps lock key) in the body of the message it changes focus. The result of this is that it’s impossible to enter capital letters or any other character that requires the shift key suchs as ‘$’ in the body of your message. Basically, Gmail is unusable in Safari 3.1.

There is a workaround for most people: at the top right of your Gmail page you may see a ‘newer version’ link. If you go to that and then select US English as your language, this apparently fixes the problem. Unfortunately, the ‘newer version’ link isn’t available in the Google Apps Gmail, which is what I use.

The other fix, of course, is to simply use a different browser. I’m a big fan of Safari, and have been using it exclusively pretty much since it was released. I’ve tried Firefox a number of times, but never really liked it that much for a variety of reasons. But like others, this problem hasn’t really left me with much of a choice. So I’m writing this post from Firefox 3 beta 4 which, I have to say, isn’t too bad. It definitely, as others have said, uses far less memory than Firefox 2, which is a big part of the reason I generally don’t use Firefox. I’ll keep using it for a while and we’ll see how it goes.

The other reason I generally stick with Safari is the tight integration with OS X, as well as the .Mac bookmark syncing. But I have been looking into cross-platform alternatives to .Mac, because it would be nice to have a solution that would work with other OSes as well (the price issues doesn’t bother me so much because it’s such a useful product and it’s actually pretty cheap if you have a family pack). The one real issue with switching away from .Mac for me is that I make pretty extensive use of Yojimbo which uses .Mac to sync it’s SQLite database and Transmit which uses .Mac to sync bookmarks. Not to mention my use of Apple’s Address Book and iCal because they sync not only with my other computers through .Mac but with my iPhone. So if anyone can recommend a solution that would allow me to replicate all that functionality across multiple *nixes (specifically OS X, Linux, and FreeBSD), I’d appreciate it. ;)

My ultimate eBook reader

I thought I’d expand a little on my description of my ultimate eBook product. I’ve put quite a lot of thought into this over the past year or so, and come up with what I think could be a great little piece of hardware.

The basic form-factor would be something like the iPhone/iPod Touch, but with a screen around the size of a sheet of paper. Personally, I think A4 would be a good size for it, although I’m sure there would be plenty of Americans then annoyed by the fact that it’s the ‘wrong’ proportions (A4 does have the benefit of being pretty much exactly the same size as my MacBook though, which is nice). I see no particular reason that it couldn’t be as thin as an iPhone, especially with all that area in which to spread out the innards. For the most part it would be relatively in-extraordinary: eInk touchscreen (ideally in color, but that might be pushing it a bit for our current eInk technology), some decent amount of storage for files (1 GB maybe? More?), WiFi, a web-browser (makes it very easy to implement my eBook store idea I posted about before), and the ability to view a variety of file formats like plaintext (really stretching it there, I know), RTF, PDF, &c. I think my eBook store idea would be a pretty-near killer app for it, but the real kicker, in my opinion is bluetooth.

Not just bluetooth, or course. What I want is the ability to pair it with my computer so that I can essentially use it as a second screen for viewing documents. What I envision is this. At it’s most basic, you pair the device with your computer over bluetooth and it shows up on your desktop giving your normal filesystem access to put files on it and organize them as you see fit. However it does much more than that. It also gives you a new application that can open all the file formats that the device can display. If you have a Mac you can either put this app in your Dock and drag files to it to be opened, or set that app as the default file handler for PDFs and/or other filetypes. When you open a file with this new app the file doesn’t display on your computer screen, it displays on the reader. Basically the reader becomes a second monitor for viewing content that lives on your computer. It should have a similar function that ties into the web browser on your computer so you can just click a button or hit a keystroke and the website that you’re currently viewing on your computer comes up on your reader.

For me, this would be huge. When I take my laptop off to a cafe or wherever to work I either have to lug around hard copies of any relevant documentation up to and including large reference books like The Django Book. My only other option is to use electronic references which, while more than adequate and sometimes even better for conveying the necessary information, take up quite a bit of real estate on my MacBook’s 14.1″ screen (or even on my iMac’s 24″ screen since I usually have anywhere from 5-10 windows of code open). If I had a product such as this I could just double-click my documentation PDF or eBook (many reference books now come with an eBook version) and it will pop up on my reader where I can reference it exactly as I would a piece of paper. True a conventional eBook reader would be able to fill the same function in many ways, but this functionality would significantly simplify the process and allow me to use the more functional interface provided by a full computer. It allows you to simply double-click a file on your computer to open it, and then walk away with the document in hand to read on your way to a meeting or to peruse over lunch. Basically it completes the metaphor of files on your computer and lets you physically handle them as if you’d just pulled them out of a file cabinet.

The really cool thing about this idea is that we could have it tomorrow. It would only be a software update for the iPhone or iPod Touch (plus the attending local app) to make this a reality. It probably wouldn’t be particularly hard to do either. If they wanted to, I bet Apple could give us this capability in the next update. Using the small iPhone screen wouldn’t be quite as good, but it would be a start and I, for one, would use it extensively.

A brief update and some thoughts on the future of eBooks

It’s been far too long since I’ve written anything. A whole lot has happened since the last post, much of it work. I’m on track for my biggest project yet to go live pretty soon, and I’ve got a number of other smaller projects that should be released even before then.

In the mean time Jessi and I spent 10 days on the west coast at the end of last month. It was a fairly busy travel schedule: fly from Boston to San Francisco on Friday so Jessi could host an OurStage.com sponsored Yelp party, then Saturday morning fly from San Francisco to San Diego where we spent a relaxing weekend with some very fun members of Jessi’s family I hadn’t met before, the Monday Jessi took the train to LA for some meetings and I flew straight back to San Francisco (LA’s just not my town) to hang out with friends and see my dad until Jessi came back up on Wednesday for NoisePop (also sponsored by OurStage), then back to Boston on the following Monday. It was definitely very nice to be back in the Bay Area, although I learned that it’s never a good idea to plan on relying on the free WiFi in a hotel. Though our hotel (the Civic Center Holiday Inn) had it, it was pretty flaky and seemed to have some policy in place that prevented outgoing traffic, which meant I couldn’t SSH into my server, which meant I was severely limited in what I was able to do from the hotel. Fortunately we were right across the street from the absolutely amazing San Francisco Public Library main branch which is probably my second favorite public library after Boston’s Copley Square branch, and provides pretty fast free WiFi. All in all it was a very good, but very exhausting trip.

Since getting back, my focus has been pretty much all business. I’ve gotten a lot of work done, though I still have a lot of work left to do, and hopefully I should be able to make some pretty big business-related announcements over the next couple months. I did, actually, have one small business milestone while in San Francisco: I hired my first contractor for a small job. Jesse Legg helped me out with a quick project so that I would have the free time to work on another that had a looming deadline. Not really that big of a deal, but I think it’s still an indication that I’m on the right track and my business is continuing to grow.

In other news, I just saw on Gizmodo a story about a new eBook reader from Netronix. It’s basically like they took Amazon’s Kindle and made the changes that I would have wanted made: they added a touchscreen interface and gave it WiFi instead of EV-DO. While the lack of EV-DO obviously limits it in terms of being able to get content no matter where you are, I think it will prove to be a more useful direction for eBook readers. What I would like to see, similar to Amazon’s always-on eBook store, is some framework by which people with a WiFi enabled eBook reader can walk into a brick and mortar bookstore, browse through the books, and, when they find what they want, but it electronically and download it directly to their reader via the store’s WiFi network. In some ways this would be less convenient than Amazon’s store, but it would also be vastly more flexible and give people the option of still supporting their local bookstores. I would also really like to see this sort of technology extended to libraries, although the whole premise of the library is predicated on the limited time that you have access to the materials, so it would probably require some sort of DRM in order to be workable. Hopefully, with the popularity of the Kindle, eInk technology and the whole concepts of eBooks will start to advance more quickly and we’ll start seeing better and better reader technology. I know I will definitely own an eBook reader of some sort in the next few years. I just hope it has some mechanism for both the sort of WiFi store described above and some note taking capacity.