Farm Development

Thoughts

Glögg, Swedish mulled wine, the Chicago recipe

posted in Chicago, Whatever by kumar on Sunday Dec 21st, 2008 at 12:51p.m.

Now that it's -5 F in Chicago with a windchill of -25 F I thought it was an appropriate time to share one of the secrets to surviving a Chicago winter: Glögg! If you live in the old Swedish neighborhood (Andersonville) like I do then you can sip Glögg at most local bars but with weather like this, why even leave your house? Here's my recipe...

Python 3.0 On Mac OS X (alongside 2.6, 2.5, etc)

posted in Python, The Future by kumar on Friday Dec 5th, 2008 at 4:41p.m.

Python 3.0 is out. Woo! Some people have been saying that they'd like to be able to run it alongside 2.6, 2.5, etc to test it out. Well, Python is actually designed for this. All you have to do is build it with make altinstall and that will give you a python3.0 binary without touching your default python binary. But on Mac OS X it's a little different ...

Are you hiring web developers?

posted in Chicago, JavaScript, Python, Ruby, Testing, The Future by kumar on Wednesday Dec 3rd, 2008 at 10:58a.m.

As the US economy spins into a death spiral I unfortunately now know some highly skilled web developers (Python, Ruby, JavaScript, etc) in the Chicago area who are looking for work. And I mean highly skilled people whose ninja like qualities will be sorely missed. Most hiring budgets are probably frozen — at least until next year — but they will soon thaw. Those that thaw sooner will make space for big prizes of talent. I can make introductions over email or via Linked In.

Try out the Mercurial Subversion extension (hg svn) on Mac OS X

posted in Python by kumar on Monday Nov 3rd, 2008 at 4:16p.m.

As a Subversion user, I am hesitant to get excited about distributed version control systems (DVCS). What I like about Subversion is that there is a central line of development. This is great for teams because it forces them to integrate their code often. This is great for open source projects because the users have one place to go to get the source; there is one version of the truth.

However, I usually hack on code during my train commute to work and one thing Subversion does not [yet] do is let you commit offline. This is all I want and this is what a DVCS can provide. Everything else is nice to have. It's nice to have an experimental work space where I can create private branches all day and all night but you can do this in Subversion too. Experimental work branches are dangerous if they do not get integrated with mainline development often. Using a DVCS makes it easier to be lazy about integration.

DCVS lets you maintain mirrors of projects, potentially with your own patches to the project. While this is convenient, I also put this in the dangerous category because the last thing I want is for someone to say, yeah my Django patch wasn't accepted and probably never will be, so just use my clone of the repository! This is an integration nightmare.

Anyway, Subversion is a long way from supporting offline commits so I've been experimenting with Mercurial ...

Automated Model Based Testing of Web Applications (GTAC 2008)

posted in GTAC, GTAC 2008, Java, Python, Ruby, Testing, The Future by kumar on Monday Oct 27th, 2008 at 9:36a.m.

Last year at the Google Test Automation Conference (GTAC) 2007, the talk by Atif was one of my favorites. He had been working on a system of model based testing for desktop GUI applications (affectionately called GUITAR) and hinted that he will be applying the work to web applications next. Now, at GTAC 2008, here is a taste of what his dept. has been up to. The talk is by Oluwaseun Akinmade and Prof. Atif M. Memon. Both are at University of Maryland.

The idea of automated model based testing hints at a future where software can be used to figure out how to test itself. That is, when software is modeled in a way that exposes inputs, outputs, event handlers, and end-points, then introspection can be done to find all possible interactions within an application and test them. Yes, it is one step away from artificial intelligence. This is fascinating to me but I think it still needs a lot of work. Atif is asking for as much feedback as possible from industry professionals to find out how this can best be used in the real world.

Here are my notes from the talk ...

Taming The Beast: How To Test an AJAX Application (GTAC 2008)

posted in GTAC, GTAC 2008, JavaScript, Python, Testing, The Future by kumar on Saturday Oct 25th, 2008 at 9:06p.m.

This was one of the talks at GTAC 2008 that I was most looking forward to before the conference. It was excellent, I was not let down. The talk was given by Markus Clermont and John Thomas who work at Google. Since the talk was right after lunch they decided to take a Q & A approach. It sort of went off in tangents at points but overall the format seemed to work.

In my own work I've been struggling at maintaining a now bloated test suite for an AJAX website but their approach made something click in my head. I'm already working on a refactoring plan.

Here is my abbreviated interpretation of the talk ...

The Future of Testing (GTAC 2008)

posted in GTAC, GTAC 2008, Java, JavaScript, Python, Ruby, Testing, The Future by kumar on Friday Oct 24th, 2008 at 3:58a.m.

Google Test Automation Conference (GTAC) is my all-time favorite conference. It's free. It's on a single track — this means you don't miss any talks and everyone experiences the same journey of thought. Also, since you have to apply for admittance with a short essay, everyone who attends is really passionate about testing. It's still sort of "underground" which keeps it small and very social.

Last year, I made some kind of attempt to live blog summaries of the GTAC talks but I never made it past part 1. We'll see how far I get this year, stay tuned.

The videos for 2008 aren't online yet but check youtube often because last year they were up in less than a day.

The Future of Testing was the first talk of the GTAC 2008 conference on Thursday Oct 23rd given by James A. Whittaker, a very entertaining speaker who works for Microsoft. His talk was excellent and I highly recommend keeping a lookout for the video. Here are my notes...

When Online Advertising Actually Works

posted in The Future, Whatever by kumar on Monday Oct 13th, 2008 at 11:04a.m.

Telemarketing is one of the most ineffective forms of advertising. Hello? Yes? I'm cooking dinner, why would I want to buy something? How do you know I'm even remotely interested in your product? Online advertisements like text ads and banner ads are slightly different. I usually buy things online out of convenience so the venue is good for advertising. There is also a lot of information about me online ...

Presenting a Solid Tutorial at PyCon

posted in Presentations, Pycon 2009, Python by kumar on Friday Sep 26th, 2008 at 12:14p.m.

Proposals for tutorials at PyCon 2009 are now being accepted through October 31st.

Due to many projects I have going on right now I probably won't be able to propose a tutorial myself but I thought I'd share some thoughts from last year...

Adrenallin For The Brain

posted in The Future, Whatever by kumar on Saturday Sep 20th, 2008 at 12:56p.m.

Someone passed me a link to this really nice article, Annals of Science: The Eureka Hunt, which talks about how neuroscientists have been studying what goes on in the brain when we get those amazing ideas that seem to come from nowhere. In my own life I can think of several times where I've experienced a sudden "burst" of thought like this. Sometimes it seems like...

T'is be'a Fixture 1.1.1 fer ya!

posted in Google App Engine, Projects, Python, Testing by kumar on Friday Sep 19th, 2008 at 10:44a.m.

Y'aharrr me seabound mateys! Thar be'a fine gully of'a wind shakin' ye jigger today as m'announce a new release of Fixture, a python module fer loadin' and referencing test data. O'er yonder ye find a cap'n's Changelog fer ye royal subjects.

Riches abound! Booty abaft! Me could'a n'er dunnit not be'a the help o'a few fine pirates amidst ye Python vagabonds. Me best salute go t'a Tomas Holas, Alex Marandon, and bslesinsky fer'a ya bug reports and patches. Been'a some quiet waters thus far but much treasure huntin' lies o'er th'horizon.

Plunder Fixture 1.1.1!

(And it be'a fine day fer pirates, aye)

Web Frameworks Do Not Make DBAs Happy

posted in Django, JavaScript, Python, Ruby by kumar on Tuesday Sep 16th, 2008 at 10:18a.m.

A colleague of mine, Shaun Thomas, is one of a few database administrators who manage all our company's databases by monitoring, optimizing, partitioning, building star schemas, etc. The DBAs also maintain standard operating procedures for how to name a column or how to refer to an external identifier. Most importantly, they conduct reviews of your horrid schema changes before you break stuff.

Most web frameworks (Django, Rails, etc) out there abstract away a lot of low level database details since they focus on making life easier for web developers. This is great but it's important to have a way to easily tweak the low level stuff when you need to. In fact, most frameworks kinda leave DBAs in the dust. It looks like Shaun reached his breaking point on this a few weeks ago and the result was a hilarious rant. He does have a good point. The only database abstraction layer I've used that truly keeps the DBA in mind is SQLAlchemy. It adds more complexity to the tool but not in a way that makes your life difficult.

Real Test Engineers Love Dots

posted in Python, Testing by kumar on Wednesday Sep 10th, 2008 at 3:05p.m.

"The world's largest particle collider passed its first major tests by firing two beams of protons in opposite directions around a 17-mile underground ring ... After a series of trial runs, two white dots flashed on a computer screen at 10:26 a.m. indicating that the protons had traveled clockwise along the full length of the 4 billion Swiss franc (US$3.8 billion) Large Hadron Collider."

— from Massive particle collider passes first key tests

What better way to indicate a passing test than a single dot?! Simple, effective. Mmmm, dots.

It's Time to USE The Web : Mozilla Labs Releases Ubiquity

posted in JavaScript, Python, The Future by kumar on Wednesday Aug 27th, 2008 at 10:26a.m.

Mozilla Labs releases the Ubiquity add-on for Firefox. In a nutshell: With search, users type what they want to find. With Ubiquity, they type what they want to do.

Big congrats to Aza and everyone else who worked on this! As innovative as Humanized was, building something similar into Firefox is genius. Personally I am excited by the prospect of developing work flows on the Ubiquity platform. There are so many common work flows that need simplification.

Developers: If you want to cut to the chase, Ajaxian shows how easy it is to create custom commands. And of course, the details are in the Authoring Tutorial.

aintjustsoul.net: A portable record player for the Internet

posted in JavaScript, Music, Projects, Python by kumar on Monday Aug 18th, 2008 at 11:00a.m.

I'm very pleased to announce a website I just launched:

http://aintjustsoul.net/

I'm calling it "a portable record player for the Internet" because I'm a record collector myself and listening to as much music as possible has been the best way to expand my collection. Yep, I'm one of those guys who goes to record conventions and brings a portable record player.

There are a few places to find used vinyl online — since 161,783 records are for sale on eBay right now, I'd say the Internet is a good venue. The problem is that you can't always listen to a record before you buy it and it's impossible to find great music by name alone when there is so much to choose from. I'm hoping to change all that with this site.

As you can see, it's still in very experimental stages and leaves a lot to be desired. eBay is the only marketplace supported so far but I plan to integrate Music Stack next. If anyone knows of another marketplace, please let me know. Also, if you have a friend who buys records then please send on the link (I'm interested to hear feedback from record buyers).

It took me about 6 months to get the data in order (doing all this in my spare time) so it is very exciting to be able to release an actual site now. The data pipeline is home-grown ETL and uses the eBay API + the super speedy and tolerant lxml.html (contrib by Ian Bicking), the excellent SQLAlchemy, and other tools. As I take the data pipeline to the next level I really hope to start using the very cool SnapLogic ETL framework for Python.

On the UI side this has been my first chance to really dive into Dojo. I like Dojo because it takes semantic HTML seriously, namespacing seriously, unit testing seriously, and object oriented JS seriously. It's a bit monolithic and I still haven't figured out how to build a custom minified version but so far I like it. Also, I really wish the Dojo API reference was more comprehensive. On the backend UI side, I'm using Pylons since I like how well it integrates with 3rd party Python libs. I don't like some of the magic it inherited from Rails but that is pretty easy to work around. Oh, I almost forgot to mention SoundManager 2, the ultimate javascript/flash mp3 player.

Chicago's Google App Engine Hack-A-Thon Recap

posted in Chicago, Google App Engine, Projects, Python, Testing by kumar on Thursday Jul 31st, 2008 at 10:45p.m.

Fixture Goes 1.0 (Testing With Data In Python)

posted in Projects, Python, Testing by kumar on Friday Jul 18th, 2008 at 10:51a.m.

An In-Process, Headless Web Browser for Python?

posted in JavaScript, Python by kumar on Thursday Jun 12th, 2008 at 11:46a.m.

After the release of Google App Engine, the Rubyists ...

posted in Google App Engine, Python, Ruby by kumar on Monday May 5th, 2008 at 3:07p.m.

Making Erlang indentation-sensitive

posted in Erlang, Python, The Future by kumar on Monday Apr 28th, 2008 at 5:56p.m.

The Python Make tool

posted in Python by kumar on Tuesday Apr 22nd, 2008 at 10:54a.m.

Testing Google App Engine sites

posted in Google App Engine, Python, Testing by kumar on Thursday Apr 17th, 2008 at 3:07p.m.

PyPi (Cheeseshop) on Google App Engine

posted in Google App Engine, Projects, Python, The Future by kumar on Tuesday Apr 15th, 2008 at 9:55a.m.

Unicode In Python, Completely Demystified (slides available)

posted in Chicago, Pycon 2008, Python by kumar on Saturday Mar 15th, 2008 at 2:06p.m.

Data mining in Python and beyond?

posted in Data Mining, Python by kumar on Wednesday Mar 12th, 2008 at 4:49p.m.

The Monty Hall Problem (win a goat or a car)

posted in Python, Whatever by kumar on Wednesday Feb 13th, 2008 at 9:51a.m.

Building Flash/ActionScript sites entirely in code and using FireBug for debugging

posted in ActionScript, Flash, JavaScript, Python, Testing by kumar on Monday Jan 28th, 2008 at 1:09p.m.

Software is written by hand

posted in JavaScript, Python, Ruby, The Future, Whatever by kumar on Friday Dec 21st, 2007 at 3:36p.m.

Converting ReStructuredText to Wiki syntax

posted in Python by kumar on Friday Dec 21st, 2007 at 12:45p.m.

Leapfrog Online is looking for some Django developers (Chicago area)

posted in Chicago, Django, JavaScript, Python, Testing by kumar on Thursday Dec 13th, 2007 at 4:45p.m.

Datejs - A JavaScript Date Library

posted in JavaScript by kumar on Monday Dec 3rd, 2007 at 5:32p.m.

WSGI Intercept Has A New Home

posted in Projects, Python, Testing by kumar on Monday Dec 3rd, 2007 at 9:46a.m.

importing modules from setup.py (chicken vs. egg!)

posted in Python by kumar on Tuesday Nov 20th, 2007 at 2:02p.m.

How To Get Started Writing Open Social Applications

posted in JavaScript, Presentations, Python, The Future by kumar on Sunday Nov 18th, 2007 at 11:58a.m.

Pycon in Chicago, Excited Yet?

posted in Chicago, Pycon 2008, Python by kumar on Wednesday Nov 14th, 2007 at 1:09p.m.

GTAC Highlights Part 1 - Selenium is Alive and Well, Model Based Testing Is Smart, And...

posted in GTAC, Java, Python, Ruby, Testing, The Future by kumar on Saturday Aug 25th, 2007 at 5:34p.m.

Python on TextMate demo (Chicago area)

posted in Presentations, Python, TextMate by kumar on Wednesday Aug 8th, 2007 at 1:03p.m.

Hacking python frames

posted in Python by kumar on Wednesday Jul 18th, 2007 at 5:10p.m.

fileinput : nice module for file processing

posted in Python by kumar on Tuesday Jul 3rd, 2007 at 10:12a.m.

context_tools, bridging the gap between test methods and test classes?

posted in Python, Testing by kumar on Tuesday Jun 26th, 2007 at 10:31a.m.

Going to the GTAC (Google Test Automation Conference)

posted in Python, Testing by kumar on Thursday Jun 21st, 2007 at 11:19a.m.

What does the def-star-variable (or def-asterisk-parameter) syntax do in Python?

posted in Python by kumar on Wednesday Jun 20th, 2007 at 2:04p.m.

What I Thought I Knew About Unicode in Python Amounted To Nothing

posted in Python by kumar on Thursday Jun 14th, 2007 at 4:23p.m.

undefined reference to `__stack_chk_fail' (compiling subversion 1.4.3 on Ubuntu)

posted in Linux by kumar on Tuesday Apr 24th, 2007 at 7:48p.m.

documentation for fixture module

posted in Projects, Python, Testing by kumar on Tuesday Apr 17th, 2007 at 1:31p.m.

Humans are here to stay!

posted in The Future by kumar on Wednesday Apr 4th, 2007 at 10:15p.m.

multiple inheritance woes

posted in Python by kumar on Thursday Mar 29th, 2007 at 10:09a.m.

testing just got easier (a few nose plugins)

posted in Python, Testing by kumar on Thursday Mar 22nd, 2007 at 5:25p.m.

unicode and unicorns

posted in Python by kumar on Monday Mar 12th, 2007 at 2:32p.m.

Live doctest in TextMate (IPython + Twisted?)

posted in Python, TextMate by kumar on Thursday Mar 1st, 2007 at 2:31p.m.

PyCon: A Star Schema in pure python code? Is this guy INSANE?

posted in Pycon 2007, Python by kumar on Saturday Feb 24th, 2007 at 10:17p.m.

You vs. The Real World: Writing Tests With Fixtures (Sunday at Pycon!)

posted in Python, Testing by kumar on Monday Feb 19th, 2007 at 1:42p.m.

Why People Don't Use Hand Dryers

posted in Python, The Future by kumar on Wednesday Feb 14th, 2007 at 10:32a.m.

Industry of the Ordinary

posted in Art, Chicago by kumar on Tuesday Feb 13th, 2007 at 10:26a.m.

2 stupid things I coded this week

posted in Python by kumar on Friday Feb 9th, 2007 at 10:12a.m.

Coffee! ... and python

posted in Chicago, Python by kumar on Wednesday Jan 31st, 2007 at 1:20p.m.

Housecall from the pydoctor (finally, a doc generator that works!)

posted in Python by kumar on Wednesday Jan 24th, 2007 at 5:10p.m.

Generating python with python

posted in Python by kumar on Wednesday Jan 17th, 2007 at 11:45p.m.

Python gets true closures in 3000 - do I care?

posted in Python by kumar on Saturday Dec 2nd, 2006 at 7:23p.m.

New Chicago City Sticker

posted in Chicago, Design by kumar on Saturday Dec 2nd, 2006 at 3:40p.m.

You vs. The Real World: Testing With Fixtures (Coming Soon)

posted in Python, Testing by kumar on Thursday Nov 30th, 2006 at 11:34a.m.

Creating a subversion checkout/ dev target for easy_install

posted in Python by kumar on Wednesday Nov 29th, 2006 at 4:58p.m.

Blogging, Blogosphere, or something

posted in Django, Whatever by kumar on Tuesday Nov 28th, 2006 at 9:25a.m.

Recent Projects

  • fixture

    Python module for loading and referencing test data.

  • pypione

    A mirror of PyPi running on Google App Engine

  • Wikir

    converts reStructuredText documents to various Wiki formats.