Archive for March, 2007

Looking for large projects / full-time employment

Wednesday, March 28th, 2007

I have been consulting for a few months now, and have learned a lot of stuff. However, bills have to get paid and I want to buy a little house in Ithaca and stop working 80 hour weeks.

To wit, I am looking for a full time job.

I will consider work in the following areas:

  • Development of flash applications for creative agencies. I am experienced in ActionScript 3.0
  • Development of websites using modern tools, e.g. Ruby on Rails, PHP Cake or other mainstream PHP framework, WordPress, Java, Python, Bedework
  • Development of social networking applications. I am especially interested in public event calendars

At a minimum prospective employers should be using version control or willing to start using version control for all projects. Subversion is preferred; cvs is acceptable if there are strong reasons why the switch has not been made yet.

I do not want to work with: IIS, windows servers, ColdFusion, ASP. I will not work with MS Access on any significant project (sorry, the SQL dialect is too weak and there’s no defensible reason not to upgrade to SQL Server 2005 Express). (I am willing to work with C#, though, I quite like it). I will reluctantly work with MS SQL Server – in fact the little I know about its SQL dialect I like, though GO instead of ; makes me think of Visual Basic and I shudder inwardly. One final thing. I will not work with Visual Basic.

I am more interested in large programming projects than small projects. I am more interested in public internet projects than intranet projects.

I am willing to accept a quite reasonable salary. I would like to stay in Ithaca and am willing to telecommute.

Staying in Ithaca

Tuesday, March 27th, 2007

I have been criticized a lot for staying in Ithaca, and have received very little support for staying — except from people whose opinion I value very highly. My current plan is to stay around, buy a little house, and have a day job doing some interesting programming while I figure out what to do. I am considering becoming an english professor or a high school english teacher, and a few other things. I want to embark on meaningful work. That said, I am still programming like a maniac and would make a good employee in the interim.

Working for Photo.net

Tuesday, March 27th, 2007

I am hoping to get a job working for Photo.net and Philip Greenspun. I started applying in December, but got derailed. My hard disk died, I started getting a lot of consulting work, and I didn’t get back to the project.

I noticed they took down the ad for a programmer at the beginning of March, and I got incredibly upset and sad. But I am still hoping to get the job and I am going to be completing the application. Stay tuned.

Now that I’ve finally put this post up, I am just going to complete the job application (which involves creating a small web service) and hope that I get offered a job. I have been in correspondence with Philip and I guess that they would still consider hiring me, even though they have found programmers in the interim.

Where I am at now: I got my Fedora bootloader back and am able to run Fedora on my laptop. I started learning Ruby on Rails, which I like a lot. I am going to take some time this week to work on my project for them and see where it goes. I am a bit intimidated by the 253 tables in the ACS, a lot of which see to have to do with managing ad content. It certainly seems like this system was written 10 years ago.

I like Ruby on Rails, there are a lot of neat things about it. db:migrate, scaffold, testing…

Online image segmentation

Monday, March 26th, 2007

I created an interactive, online version of the Felzenszwalb & Huttenlocher segmentation algorithm.

Example output

Here are the details of the engineering behind it:

Efficient Graph-Based Image Segmentation
Pedro F. Felzenszwalb and Daniel P. Huttenlocher
International Journal of Computer Vision, 59(2) September 2004.

The program takes a color image (PPM format) and produces a segmentation with a random color assigned to each region.

The parameters are: (see the paper for details)

sigma: Used to smooth the input image before segmenting it.
k: Value for the threshold function.
min: Minimum component size enforced by post-processing.

Typical parameters are sigma = 0.5, k = 500, min = 20.
Larger values for k result in larger components in the result.

Also, I reimplemented the average color algorithm
Example output

Lightlink internet access

Thursday, March 22nd, 2007

In the innermost circle of my pet peeve inferno repose those unlucky souls who bemoaned the $5 per month to have wireless access through Lightlink at almost every coffeehouse, restaurant and bar in town (excepting Starbucks, of course, but that’s another story). If we didn’t have Lightlink, we would have a patchwork of more expensive and annoying services from big corporations; and these services wouldn’t have any free access time at all.

So pay the $5 per month, people, if you can afford it. It’s not much more than the cost of two lattes…

The WP Framework

Thursday, March 22nd, 2007

Recently I came across this blog entry, by one of the authors of Wordpress, that mentions a site with some serious coding that uses Wordpress as part of the backend. It also calls WordPress a “framework” — that may be a step too far. But I guess that others are also onto the idea that you can integrate a good old fashioned engineered website with Wordpress.

Oh, at some point I will figure out what pings, trackbacks, etc mean in the Wordpress bloggy world.

Switching a client to Wordpress

Thursday, March 22nd, 2007

I’m working with a client who has a brochure-type website to which he periodically posts articles. This website was created several years ago, nominally in ASP, but the site consists of mostly static content, with one lonely contact form.

The client is looking for a few changes: he wants to strongly encourage visitors to provide him with their email address before reading articles on the site. To this end, he wants to present users with a squeeze page when they visit an article: they will be asked to provide their email address, but can opt-out of this and proceed to the article.

Additionally, he is publishing a book and wants to include links in the text to up-to-date content on his website content. He wants these links to look good, like http://www.example.com/book/guitar-manufacturers-in-england, for example.

This seems to be a client who would be better suited with Wordpress than with his current system. He’s publishing periodic articles, and he has some business services to sell, so he needs brochure-type pages.

Wordpress can easily support these needs. It offers blog posts, which would suit the articles, and pages, which would suit the non-chronological content. It would be easy to reimplement his template in wordpress’s templating system. There are plugins to do most of the work for the email collection system, and the squeeze page could be integrated. The pretty links for the book could be supported directly and easily if running on Apache, and with a bit more difficulty under IIS.

Then there’s the question of platforms, and switching away from the all-Microsoft solution. Wordpress works only with MySQL and requires PHP. It’s much better to run it under Apache, and it doesn’t matter if the OS is Windows or Linux.

The advantages of Wordpress are that it is easy for the client to post articles and SEO-type functionality is vastly improved – blog feeds are built in, and plug and play plugins are available for generating google sitemaps and integration with google analytics. The implementation would have to setup 301 permanent redirects for the current .asp pages, which would impose no additional burden beyond that imposed by implementing the pretty links for the book.

This would be an upsell, but it would perhaps give the client functionality they’ve been wanting, and would make many future improvements cheaper, in some cases trivially cheap.

The lightlink supercomputer

Wednesday, March 21st, 2007

Due to my close industry connections, several months ago I heard that local Ithaca NY internet service provider Lightlink planned to purchase a supercomputer and rent out processing time. It appears that I can rip up my NDA, so to speak, since there’s an article in the Ithaca Times this week about this project.

It seems that it’s more of a cluster than a supercomputer, though. There’s a lot of talk about the number of CPU’s (1000 to start). It’s probably a Beowulf (wikipedia) cluster. (Geeks — feel free to weigh in with speculation on hardware, software and/or performance in tthe comment section). This approach is suited to applications that are parallelizable in in which each execution thread is mostly accessing a small set of local memory — I know of applications where the memory required would be in the order of tens of GB, and the execution thread would be accessing this in an unpredictable manner, so all of the memory needs to be fast.

Google’s servers are mostly clusters of commodity PC’s — but Google’s applications parallelize very well [The famous Google IEEE paper, now getting a bit out of date].

I was going to say something about the energy cost of 1000 CPU’s — using the numbers in the google paper, it might be something like $120,000 per year. But that paper is a few years to of date, and nowadays there are 2 or 4 CPU’s on a single chip that uses the same amount of energy, so perhaps it could be a factor of 5 lower — perhaps $24,000 per year.

Searching is better with WordPress

Tuesday, March 20th, 2007

Recently someone asked to put a squeeze page into their website. It’s the idea of asking a user’s email before they can see an article, but allowing them to opt out of providing said email. There’s some question of how to do this and still have the site’s content visible to search engines. Anyway, I googled “squeeze page” and came up with a bunch of hot air and sales pitches for software … all on pages that would have been embarrassing in 1998. Then I thought … what about wordpress plugins?

I googled “wordpress squeeze page”…

Much better, more technical results without the appalling sales pitches.

My mantra…put “wordpress” in every google query.

NX Server (FreeNX)

Monday, March 19th, 2007

I installed NX Server inside my firewall. I like it as an alternative to other windowing systems, e.g. VNC or running an X server under cygwin. It’s secure, but it requires that a lot of ports be opened up in addition to port 22 (ssh), and I need to figure out how to run it in idiot-proof mode from outside the firewall.

It’s a lot faster than VNC.

For now, I still recommend VNC over ssh, or X clients over ssh, as an easy and secure way to connect through a firewall.