Balancing innovation against deadlines because work and life have hard deadlines…..

8May/110

Crowdsourcing the arts and a misunderstood artist is seen in a new light

This weekend I attended a gallery opening of an exhibition called '50 Americans' featuring the work of Robert Mapplethorpe.

Usually I have to spend the first few minutes or an Art exhibition reading the background to understand the story that the gallery is telling through the art.  This one was different.

Rather then view the Mapplethorpe images through the lens of an expert Sean Kelly's people found 50 Americans, one per state, to curate the selection.  They were nervous about what selections the wisdom of the crowd would choose to surface.  Some people involved with the Mapplethorpe foundation were initially skeptical of the project.

Proving once again trust and risk often yield success these 50 random Americans put together a selection of images that were stunning.  I was able to walk though the gallery, take in an image, and read a short selection about why that image was selected by an American.

The Americans ranged through every cross section I could think of, from successful businessmen (Owner of local favorite Dogfish) to a Rabbi to my lovely wife.

 

Mapplethorpe is often remembered for the controversy surrounding his images.  They have been called exploitive, indecent or simply obscene.  Surprisingly all I saw was crisp compelling photos with an extraordinary use of light and contrast.

"Experts" in academia has praised his artistic works.  "Experts" in law and government have condemned his work.

Turns out average Americans just want the opportunity to enjoy his work.

 

Filed under: Personal No Comments
2Apr/110

Using python-dulwich to load any version of a file from a local git repo

On Monday we are kicking off an innovation week (more to come on that topic) and I've devised a little project that includes nearly every buzzword I'm interested in.

I'm spending some time doing some technical spikes to see what is possible and I found a need to load a particular file from a git repo given the path and tree hash.

I grabbed my trusty python, dulwich (native python-git library) and gave it a shot. After a few minutes writing complicated looking recursive code I jumped over to irc where the friendly author pointed me to a convenience function that does what I needed.

Here is the short answer:

from dulwich.repo import Repo
from dulwich.object_store import tree_lookup_path

r = Repo('/Documents/projects/gitdep/rails')
def get_file(tree, path):
    (mode,sha) = tree_lookup_path(r.get_object,tree,path)
    return r[sha].data

tree = '7e7331fce169bbe1d6be71a30c1e1f7ab2e6ceba'
path = 'activemodel/examples/validations.rb'

print get_file(tree,path)

This gives me a rails validation file from last year. Nothing special about this file, I just find the rails git repo an interesting playground for git experimentation.

22Jan/111

the measure of Awesome

Development at work has been trending well in the new year and the team is getting excited about our formal incorporation of practices such as TDD and pair programming.

I'm definitely perceive an intangible benefit in culture and fun. With a full test suite and engaged developers working out loud coding is fun again.

I give a lot of thought to developer efficiency and generating metrics around our output is very important to me.  We are at a point in this iteration where I have too many stories in progress and it is taking a few extra days to get work completed and accepted.  This does not concern me greatly since this is a new team and it usually takes a few turns to get into a rhythm.  I was walking down the hall and one of developers said that things are going 'Awesome'.  I said "Great, but awesome is not a metric".

Since then he and the rest of the team have risen to the challenge and we have some demonstrable facts in low bug counts and high numbers of actual hours (hands on keyboard time) logged.

I'll have a clue in a few weeks and 'know' in a few iterations that TDD and pair programming have raised productivity in this team.  For right now I do think things have improved and I feel that our velocity is going to increase.  IMHO my personal job satisfaction has increased.

So I may have been nieve last week in saying awesome is not a metric.  I'm now thinking that awesome must a metic with a correlation to both employee retention and code quality.  We simply have not developed the tools to measure and understand this thing we call 'awesome'.  I can only observe the secondary effects that occur when there is "awesome" within a team.

This is kind of like gravity.  Science can only measure the effects of gravity but you can't run without it.  And running beats floating back and forth aimlessly any day.....

Tagged as: 1 Comment
2Jan/112

OSX vs Ubuntu, Windows wins?

Ever since Barcamp I've been shopping for a personal laptop for general use as well as a development machine that I could use for work.  Our work issued machine is a loaded mac powerbook.  With a unix core osx has given me much of the power that I used to enjoy when I'd used linux as a primary os. However Apple is not doing wonders for free software and I felt the need to get back to my roots and move back to Linux.

I picked up a 4lb HP DM4 and dual booted to Ubuntu with not issues.  The trackpad didn't work right, but a script off someones blog made it work reasonably ok.  A quick hop into debug mode showed that the drivers returned negative x-y coordinates when you use 2 fingers.  I downloaded the open source drivers to take a look at the code and saw that a patch was already in head.

Developing was a joy and eclipse opened nearly instantly.

Microsoft silverlight DRM is not (yet?) ported to linux so I dual boot to windows 7 to get the customer experience and use CIM products.  A funny thing happened to me while getting the 'customer' experience.   I liked it!   Windows 7 is much more usable then either osx or Linux and IE9 looks like it will be a really powerful platform for future development.

Around this time I picked up a python update on OSX and spent about 4 hours trying to get mysql and python to talk to each other.  I booted into windows and thought about how to use this platform as a development machine.

Enter BitNami. Rather then deal with version conflicts I grabbed a virtual machine that is close to my target server and installed VMware Player.  Mapping a windows directory to the virtual machine lets me edit files in native windows while running my build chain on Linux.  The browser I use for development is finally the same browser used by the majority of my customers and my dev environment is much closer to my server environment as well.

For not I'm working through the rough edges of this setup and trying to find a decent windows SSH client but this setup seems to have legs.