Archive for the ‘Projects’ Category
Tweaks
I messed around with Tastebud quite a bit yesterday, factoring out some redundant backend code, and adding pictures to the frontend. Although Rails allows for picture uploading pretty much out of the box, I thought it would be clever to host the pictures on flickr and use it as a potential driver of traffic. It ended up being more difficult than I initially thought. I powered through, and finished up last night.
There’s a handful of things I want to change about the site. I’ve decided to put a freeze on any more technical changes, shift gears, and work on content for a while. We have a stack of index cards waiting to be entered from 2005.
Jason mentioned trying to start up a Tastebud: Milwaukee (he just moved up there) that would be pretty cool.
Google has already started to drive a fair amount of “Fromager Affinois” traffic to the site. Who knew so many people were Googling for artisan cheese. We’re also getting a lot of hits from France, which is disconcerting. We’re pretty much creating content off the cuff here, with not much of a background in actual food criticism. The site is really about us trying to learn how to describe what we like about something. French criticism of our criticism of French food is terrifying. The French are intimidating.
However, French intimidation and Wisconsin Cheeseheads aside, Camri and I need to dig our heels in and start producing content.
Threaded Bees
ASPN : Python Cookbook : Easy to use object-oriented thread pool framework
I saw this recipe this morning in the Python Cookbook, and wanted to mark it down for later digestion. Distributed computing, in it’s many forms, is something that I’m not terribly comfortable with a relatively new professional programmer. I mostly just rely on server “containers” to handle any sort of asynchronise-ness that may come up.
However, the whole idea of big multi-threaded / forked stuff is appealing. The BeeSim project that started as a Perl OOP exploration project, and is now getting ported to Python for further development is a good candidate for some threads. It would be neat to have each bee be a thread. I haven’t checked any of the Python code into the public Subversion repository as it’s mostly just stubs anyways. Hopefully I’ll flesh it out in the next couple of weeks. As fun as the Bee project is, it’s really on the waaaaaay back burner.
One of the reasons I’m moving it to Python (apart from the fact that Python is awesome) is to build out some sort of Myghty based web-front end. For now, the immediate goal is to port, class for class, method for method, the whole Bee backend from Perl to Python.
I’ve also had this book on my virtual safari bookshelf for a while: SCTHUMBZZZ.jpg” alt=”AI for Game Developers” />. The world that I’m creating for the Bees, and the Bees themselves, are great candidates for some AI exploration. All in all, I’m enjoying the project as a sort of “thing to do on the train.”
SVK
I installed svk on my laptop this evening. I do a fair amount of work on the trains in the morning, and was getting frustrated that I couldn’t make commits until I got home. After last month’s chicago.pm meeting, I thought I’d give svk a try. I finally got around to installing it tonight. It wasn’t nearly as bad of an install as I was led to believe. There’s a dmg package for OSX, which made installation pretty easy. I spent a half hour or so getting everything working the right way. Now I have a copy of my main Subversion repository mirrored to my laptop. I can make commits to my hearts content, and then sync the work back to my repository. Very nice.
Wired News: Decoding Bees' Wild Waggle Dances
Wired News: Decoding Bees’ Wild Waggle Dances
Very cool…I might look into getting a copy of that Nature. My Bee project is buzzing along nicely. This morning on the train, I got the Bees to find flowers and bring nectar back to the hive. I’ll try and do a check in soon.
I think I’m going to build a Cocoa interface to the library, just to sort of monitor stuff. I still haven’t decided what I ultimately want to do with the library, most likely it will just be a fun OO Perl exercise, but there’s some potential for more fun with it. It is super slow right now. The map is one big array of location objects. All map “math” is done by traversing that array, which is sort of ridiculous, given each location has it’s own x,y coordinate. I did the array thing because it was easiest to get started with. If I can optimize that a bit, I’ll be in much better shape. I’ve read a teeny tiny bit about representing chess boards in memory, I’m not sure if this is a situation that that sort of idea could be applied to.
I’m really not sure what the industry standard way to represent “space” in memory is. Fun fun.
Backpack: Bee Sim Project
My first public Backpack page: Backpack: Bee Sim Project.
Not much up there, but it’s a start. I’ve been tinkering with the package here and there over the past couple of train rides. I can create a world, and am working on the stuff to populate it. I’m going to put my design cards into some sort of UML and pop a picture up on the Backpack page. For now, it’s all on index cards.
Also, I’ve been working on it on my laptop, and haven’t added it to my public Subversion repository just yet. I will. Get ready.
worldKit :: easy web mapping :: Home
worldKit is an easy to use web-mapping application. I would have just put this on my del.icio.us list, but it was cool enough to warrant a full post. Once we start geocaching, this will be a neat way to map our progress.
1st CVS check in of pyntkit
Dave Rock, a fellow chiPy member and backup administrator, and I have been working on a Netbackup Python toolkit for the past few weeks. Dave wrote a great Python bpdbjobs parser that’s recieved a lot of praise on the NBU mailing list. We talked about making his script into a toolkit, and pyntkit was born.
I checked in the first CVS version of the toolkit yesterday afternoon. In the mean time, I built a simple report using the toolkit:
from pyntkit.pyntkit import Jobs
""" Create Jobs object, and load it """
j = Jobs()
j.loadJobs(open('data.txt','r'))
numJobs = 0
jobsFailed = 0
jobsSuccess = 0
kbBackedUp = 0
for id in j.keys():
numJobs += 1
if j[id].kbytes:
kbBackedUp += int(j[id].kbytes)
if j[id].status == '0' or j[id].status == '1':
jobsSuccess += 1
else: jobsFailed += 1
Although the toolkit isn’t ready for a NBU list announcement, or a official “release” bundle, it’s already useful to me at work. It will be interesting to see if other people find it useful, once we can shape things up for a release. In the meantime, if you’re a Netbackup admin that likes Python, feel free to check out the module from CVS. If you have comments, we’re very interested in hearing your feedback.
