Posted by gldnspud on the 21st of April, 2009 at 8:53 pm under Uncategorized.    This post has no comments.

Just a short post, but I'm excited about something that has been in the works for a little while now. My company, ElevenCraft, is now the owner of Schevo, the object-relational database I've been working on for several years with Patrick O'Brien of Orbtech, L.L.C. and PyCrust fame.

Additionally, we're relicensing Schevo under the MIT license to make things less complicated for using Schevo with any other software project, open source or commercial.

Since Patrick is taking an indefinite vacation from the world of software development to enjoy other exciting opportunities he has brewing, I'd like to take a moment to thank him publicly for all of the work that he did to help make Schevo one of the most elegant pieces of software I've ever laid eyes upon.

He was also instrumental in my progression from Python journeyman to master, and I am forever thankful for his fussiness about code style. Paying attention to those kinds of details really does make a difference!

Pat, I wish you the best in your new ventures, and I thank you for your generosity with regard to handing over the reins to the project. You are always welcome back to the world of Python and Schevo!

Posted by gldnspud on the 14th of April, 2009 at 1:59 pm under Uncategorized.    This post has 2 comments.

Update: I no longer use this recipe, as it turned out to be an elaborate workaround for Paver 1.0 ignoring setup.cfg and distutils.cfg when using a Paver-based setup.py file. I'm now using a patch that allows Paver to honor such configuration files.

I've been using Paver, a tool to help manage various bits of administrivia surrounding Python projects, with Schevo for several months now. Now that Paver has a 1.0 release, I'm also using it to help streamline such tasks for the commercial software I'm helping develop.

One of the patterns I'm used to is attaching dev to the end of versions, to help differentiate between development versions and release versions.

I wanted to go further than this, also attaching the name of the current git branch name to the version number. That practice is useful when you use branching to manage feature development and bug fixes.

Here's the pattern I settled on. The relevant parts of pavement.py look like this:

from paver.easy import *
from paver.setuputils import setup
 
VERSION = '1.2.3'
DEVELOPMENT = True
 
# Use branch name if git information is available; otherwise, use
# version number from setup_meta.
if DEVELOPMENT:
    try:
        git_head_path = path('.git/HEAD')
        contents = git_head_path.open('rU').readline().strip()
        name, value = contents.split()
        BRANCH = value.split('/')[-1]
        if BRANCH != 'master':
            VERSION += '-' + BRANCH
    except:
        pass
    VERSION += '-dev'
 
 
setup(
    name='MyProject',
    version=VERSION,
    ...
)

When generating releases, set DEVELOPMENT to False, commit that change, tag and release, then change the value back to True and commit again.

Posted by gldnspud on the 13th of April, 2009 at 7:05 pm under Uncategorized.    This post has no comments.

At US PyCon 2009 a couple of weeks ago, I was pleased to see some interest in Schevo. One of the problems I'm conquering is how to describe Schevo in one or two sentences.

One idea that has been on my mind is this: "Schevo is an object-relationship database."

A few months ago while I was in Houston, I described it to Walker Hale, and got another tagline: "Schevo contains the soul of your app".

Tonight, I'm having a lot of fun doing some triage with the Trac tickets at http://schevo.org/. In the works is a relicensing of the project, a copyright transfer, and a 3.1 release. I have renewed vigor in maintaining and promoting Schevo to those people who may benefit from it. :)

Posted by gldnspud on the 28th of December, 2008 at 8:27 pm under Uncategorized.    This post has no comments.

I'm a little sad. I was really beginning to enjoy using Safari and the Webkit nightlies, but ever since the Mac OS X 10.5.6 update and Safari 3.2.1, I've been experiencing odd "cookie forgetfulness". When I visit websites that usually keep me logged in for a long period of time, they log me out pretty quickly nowadays.

Some sites don't even let me do simple in-page tasks that occur via AJAX methods, since the cookies have been "forgotten" by then! Clicking on other links brings me to a pages where I must log in again. And I'm not the only one who has experienced this problem: others have as well.

Fortunately, I can use Firefox, which has become a pretty nice browser in its own right. Time will tell if I will stick with Firefox for the long run, or if I'll migrate back over to Safari once it's no longer brain-dead on my box. I'll at least send a bug report for it!

Posted by gldnspud on the 28th of December, 2008 at 8:20 pm under Uncategorized.    This post has no comments.

I can't resist the pull!

Posted by gldnspud on the 27th of August, 2008 at 3:09 pm under Uncategorized.    This post has no comments.

I use grep a lot.

Used to use it a lot, that is, until I discovered grin.

Whenever I set up a new virtualenv I now run easy_install grin.

Posted by gldnspud on the 17th of April, 2008 at 8:23 pm under Uncategorized.    This post has no comments.

What a wild ride the last three months have been!

Things were beginning to pick up in my professional career, having started a couple of new projects with enthusiasm (and funding!), and having ramped up my energy for supporting an existing project. On top of that, I'd been hired as a long-term contractor at a compensation rate commensurate with my experience for the first time in years.

Then, things kind of went "splat" in an aspect of my personal life. I will not detail it here, but I was not prepared to handle what happened and keep the above flowing smoothly. Projects stalled, this blog went pretty dark, my enthusiasm and concentration waned, and I found myself sending a resignation letter to my newest employer. (Thankfully though, that at least was quickly upgraded to "indefinite personal leave" after speaking with them.)

I want to start writing again, for a multitude of reasons, but it's time for me to set the ROTR journal down for a while. I will likely start other blogs for specific reasons -- if I do, I'll probably post about them here -- and I may one day start posting on ROTR again. For now though, it's time for me to set it down. :)

Posted by gldnspud on the 10th of April, 2008 at 3:04 pm under Uncategorized.    This post has no comments.

I made it!

Yesterday, in just about 11 hours, I prepared six recipes to completion, started a seventh based on leftover ingredients, and left the kitchen cleaner than it was when I began the project.

Why?

Because my darling wife loves cooking from scratch, but doesn't want to get burnt out on it, and I haven't done a lot of intense food preparation for a spell. So I offered to spend an entire day cooking as many meals as I possibly could, so neither of us would have to think about it for a few days.

How?

The day before, we bought some ingredients, loosely based on some recipes in Dr. Joel Fuhrman's books, and including some other ingredients that we just like to have around.

The morning of, I transcribed the recipes to paper using the "tabular recipe notation" showcased at Cooking for Engineers. For example, the "Veggie 'Meat' Loaf" recipe:

/rotr/wp-content/uploads/2008/04/photo-43-300x225.jpg

I then created a rough schedule for the day across two sheets of paper, with recipes in columns and each row containing actions to be taken for each recipe. The rule of thumb: nothing within each row should contend with another thing. If two ovens are needed, defer one of the recipes to a later row where the oven is no longer in use by another recipe.

The schedule was key for keeping the flow going with so much resource contention -- there's only three burners that work well on our stove, and we only have one oven, yet three recipes used the stove and three used the oven.

Here's my schedule, complete with markups as I altered it:

/rotr/wp-content/uploads/2008/04/photo-44-300x225.jpg /rotr/wp-content/uploads/2008/04/photo-45-300x225.jpg

What?

Ingredients available when I started: diced tomatoes, pumpkin, tomato paste, barley, quinoa, brown rice, yellow split peas, garbanzo beans, red kidney beans, blackeye peas, great northern beans, oatmeal, oat flour, whole wheat flour, pastry flour, dark rye flour, lemons, tomatoes, garlic, sweet onions, red onion, yellow bell pepper, red bell pepper, raw sunflower nuts, walnuts, raw almonds, dates, raisins, jalapeños, carrots, celery, green onions, romaine lettuce, cabbage, spinach, apples

Ingredients now available: diced tomatoes, pumpkin, barley, quinoa, brown rice, blackeye peas, great northern beans, oatmeal, oat flour, whole wheat flour, dark rye flour, lemons, tomatoes, garlic, jalapeños, romaine lettuce, spinach, apples

Ingredients untouched by this project: diced tomatoes, pumpkin, brown rice, jalapeños, romaine lettuce, spinach

Prepared dishes now available for us to choose from: tons of Cabbage Raisin Soup, 4 servings Quinoa in Color (already gone!), a Veggie "Meat" Loaf, several snackfuls of Apple Walnut Surprise, 12 Whole Wheat/Rye Burger Buns, 25 Bean Burgers (and some salad crumblings from the ones that fell apart).

On the way: Something with the leftover sunflower nuts and almonds (currently soaking) and walnuts; the leftover raisins and dates (currently soaking); and canned pumpkin. My wife wants to turn it into a pudding of sorts. :)

So?

Both parents needn't worry about preparing food for some time.

I want to do this again, with regularity, helpers, more ingredients, even more food in mind, and perhaps with extended family from time to time.

This time around, I did it alone (I didn't even ask for help from my wife until all the kids were in bed!) since I had never synchronized so many food preparation tasks at once, and thought that keeping the kitchen off-limits to everyone but myself for most of the day would help keep the flow smooth (it did).

It was tremendous fun. Next time I'll have even more fun!

Posted by gldnspud on the 30th of March, 2008 at 4:00 pm under Uncategorized.    This post has one comment.

Four times, in eight twirls of the Magic Bullet, for four people this morning:

  • Add, then blend:
    • 1/4 C rice milk
    • 1 heaping TB fresh ground flaxseed
  • Add, then blend:
    • 2" diameter wad of fresh spinach leaves
    • 1 banana
    • 1 heaping TB peanut butter
    • 1 heaping TB cocoa powder
    • drizzle of real maple syrup
    • 1/4 C water
Posted by gldnspud on the 18th of February, 2008 at 10:06 am under Uncategorized.    This post has no comments.

Apple, no matter what kind of company you or I may think it is, sure has some good software artisans working for their OS X team.

It's nice to be able to just start using svk without worrying about installing it.

I started using it, then realized I hadn't installed it yet -- but it was working. which svk told me that it was in /usr/bin/svk, which tells me that it was installed with the rest of the system. Nice!