Sunday, August 09, 2009

Urban Edibles

Irony

I'm here at Backspace with Michael, Mark, Laura, Rick and Lindsey, these latter three forming The Good Bye Party when operating as a band (I'm hoping to catch a rehearsal later).

Rick and Laura bicycle everywhere (I saw them zipping by on August 6), so weren't able to answer the two touristy questions we got between here and where we parked: one about the Max, one about the bus. Rick is from Chicago, has only been in Portland for about six months. He visited Seattle for the first time just recently.

I used the morning to polish my blog post on Education Planning, make some followup contacts. I'm also still quite active on the new Wittgenstein list, published a seven point Wittgenstein for Dummies (not!) [1][2].

In the car on the way over (I'm the designated driver today), Lindsey yakked about her food coop syndicate, brokering subscribers, providers and distributors. She's obviously given the matter some thought. I found myself thinking about Andy Cross and Barb Frank, their small urban farm. We used to be subscribers, but fell out of the habit. We occasionally buy fresh produce during social hour at the Quaker meetinghouse, from whomever brings it in.

On the PSF list, Guido is reminding us that Pycon, though not designed to rake it in necessarily, can't keep running at a loss either, unless subsidized to do so (not the current model). I've been pushing a "more bang for the buck" model for corporate sponsoring members, who might up the ante in exchange for real results. Here's a link to some of my verbiage to that list.

So Lindsey and I are just getting up to speed on Mark's data model (models.py). Getting to the Django admin interface in Cygwin on Windows required: using my already-installed Mercurial to clone the Urbanedibles source code, downloading and installing Django, using Cygwin's setup to grab Vim and Sqlite3, running Django's syncdb, then runserver.

Result: I've got the the admin interface in my FireFox web browser at http://127.0.0.1/admin/.

Lindsey got there at about the same time, doing these steps on Mac OSX. We're both becoming commiters on this project, though I have nothing to commit from this meeting (too busy blogging). Lindsey worked with Mark on some changes to the data model, is in the process of merging and committing those changes.

Here's an excerpt from the data model, under active development:

class EdibleType(models.Model):
common_name = models.CharField(max_length=200)
formal_name = models.CharField(max_length=200)
edibility = models.IntegerField()
# region / Climate zone.
Season_info = models.CharField(max_length=1*1024)
# media location for photo
ident_info = models.CharField(max_length=2*1024)
harvesting_info = models.CharField(max_length=2*1024)
prep_info = models.CharField(max_length=2*1024)
preserving_info = models.CharField(max_length=2*1024)
med_use = models.CharField(max_length=2*1024)
warnings = models.CharField(max_length=1*1024)
#
def __unicode__(self):
return self.common_name

My contribution to the meeting was to suggest thinking of a calendar interface for a given fruit tree, such that the user could enter "first three weeks in August" in perpetuity, so said tree does not appear other times of the year. Everything operates on a schedule no?

This is just a big scheduling application letting users yak about resources they're at liberty to share about. In addition to time coordinates, we need space coordinates. Michael has actually thought this through in some detail. Cyclists might report a tree or bush with fruit on it, with default seasonal data coming from lookup tables i.e. if it's not your tree, you may not want to commit the time data, but those fields probably shouldn't go blank.

Regarding space info, the way it works now is the street address goes against a server for lat/long. People relying on cell phones often get the lat/long off the tower, which could be off by miles, while paying for real GPS makes your battery burn faster. I didn't know that, don't have an iPhone.

Another dimension, besides time and space, is risk. If these are wild dandelions, perhaps they've been sprayed with toxins? Does a mean dog live nearby? Is tree climbing involved? Definitely we'll need pictures, if not videos, and Mark is currently working on these media aspects of the data model.

I'm glad to be having a real Django app to sink my teeth into, complete with Mercurial code sharing. I'd been trying to wean one of my main clients off a 30 year old obsolete / dying research system costing an arm and a leg in favor of running Django against Postgres, got myself thrown overboard instead given the twisted politics of that place. I'm signed up for DjangoConf in September.

The Providence Bridge Pedal was earlier today. I'm surprised Suzanne didn't go; I'd mulled over joining her and Larry -- then TinkerBell got swiped. Chris, on Keiko's team, had his new Powerbook stolen from Fine Grind, causing deeper pain than mine. Security cams have since been installed but that's not gonna solve the problem of rotted ethics. Advice: watch that laptop, or have a friend keep watch (post a guard); don't turn your back for long unless you're sure this is a fully trusted environment.

Tomorrow Razz goes to the body shop, c/o Farmer's Insurance. Even though my company took a dive in FY2009, I've kept up with those premiums, praise Allah. I'm even covered for a rental from Enterprise.