I’ve been learning git lately and it seems much easier to use than subversion for branching and merging, but I still have yet to become adept at looking at a file history. It seems to be the way that a lot of projects are moving, especially for rails and open source projects; besides, all the kids are doing it, so I figured I would follow the trend. In addition to using it pretty simply for small projects, I’m moving a project from subversion to git, which turn out to be a little bumpy, so I thought I would share.

I started with these awesomely simple instructions to cleanly migrate your subversion repository with the addition of a handy script to automatically create an svn.authors file.

This all seemed to go well, until we tried to run the code and learned that svn-git failed to fetch a directory! svn-git really ought to warn you somehow that it doesn’t support fetching externals. This I learned by noticing that the svn log had no checkins of those files and then saw when I did a clean svn checkout that it was fetching externals for the vendor/plugins directory. Of course that makes a lot of sense, but I didn’t set up the svn so I didn’t know. Then I spent some time wandering through the wilderness of blogs and mailing lists learning about svn externals and git submodules, and I found some interesting clues:

After all of that, I stepped back and thought about what I actually needed for this project. We’re currently at 2.0.2 and planning to upgrade to the the latest, and it turns out that all of the plugins that we’re currently tracking on subversion have moved their latest versions to git. So, I decided to just pull in the vendor/plugins directory verbatim, detaching the external reference, and move to git submodules as we upgrade. What I really wanted to do, but didn’t see how to, was to reference the plugin code as an http URL and keep as a submodule, so that I would have a handy reference to source location and revision.

$mkdir project-tmp
$cd project-tmp/
$git-svn init svn://myserver/project/trunk
$git config svn.authorsfile ../svn-users.txt
$git-svn fetch
    :
Checked out HEAD:
  svn://myserver/project/trunk r999

$cd vendor
$svn co svn://whatever.com/myproject/trunk/vendor/plugins
$cd plugins
$rm -rf .svn  
$git add .

$cd ..
$git clone project-tmp project
$rm -rf project-tmp

I had heard recently about mogulus which allows people to create their own live web video shows (crunchbase overview). I spent some time this morning wading through the interface to try creating a show. My test show on the “foobar” channel is about pie, featuring my son’s favorite pie videos. The content may be mildly entertaining, but the show would need quite a bit more work to be compelling. I found it awkward to create and had to refer the help several times. You can check out the show I created which is running on auto-pilot in a loop. It would take me quite a bit of practice to get good at using this UI, but aside from the novelty of the interface, there are awkward moments of interaction, particularly around cuing new clips, that would take a bit of work to learn how to get the timing I intended.

In my on-going series on web video interfaces, I’ve recording the channel creation experience for posterity:

Preview

Picture 4

Mogulus Studio


Mogulus Studio

Mogulus Studio

Mogulus Studio

Mogulus Studio

the broadcast screen
Mogulus Studio

auto-pilot set up
Mogulus Studio

I’ve finally decided to make the leap and dive into the unknown waters of independent consulting. I’ve been at Laszlo for almost 6 years and Friday is my last day.

I’ve worked on some innovative and ground-breaking projects at Laszlo. OpenLaszlo, an open source AJAX framework, was one of the first platforms to introduce XML markup for defining application UI, later followed by Adobe Flex and Microsoft XAML. I did a lot of talking about the Cinematic User Experience, which was defined well before I got there, but I like to think I helped explain it a bit. It has been fabulous to work with so many talented people who understood that animation could be used for effective user interfaces long before the release of the iPhone. I’m proud of releasing Laszlo Webtop and bringing a desktop-like experience to millions of regular folk across the world who use their ISP’s Webmail. The folks at Laszlo continue to do great work and I can’t wait till I can talk about some of the cool stuff that is still cooking in the labs. I may be leaving Laszlo Systems, but I will continue to be an active contributor to OpenLaszlo.

Why go solo? Why not join a hot new startup? (yes, even in this economy there are still companies getting funded) I expect I’ll settle down somewhere at some point, but not yet. Historically, when I pick a team and a company that I want to work with, I end up staying with it for 5-7 years. Long stints like that are unusual in the software industry, but it has suited my temperament. I generally choose to work with people I like and build software with technology I’m into. In the software industry, change is an inevitable part of the process — whether you switch companies or teams, your job transforms every year or two anyhow. This time, however, I want to explore a while before making a longer-term commitment. I want to work with awesome people, of course, but I’ve also got some of my own ideas I want to experiment with.

So what am I going to do?

MightyverseI’m excited to be working on a project to help bridge the world’s languages and cultures. Mightyverse has a big vision along with some small, initial steps that I’ll be helping with. Stay tuned.

Balsamiq MockupsI’ve known Balsamiq founder, Giacomo “Peldi” Guilizzoni, since our days working on “tincan” (aka Flash Media Server) and I’ve been following the development of Mockups from afar. I’m honored to accept a position on the Balsamiq Studios Board of Advisors.

typingI’ll be writing some code on my own and looking for projects where I can build great and useful software with fun technology, or whatever it takes to pay the rent. I’m not religious about the technology I use — I know OpenLaszlo inside out, but I’d be into learning Flex or Silverlight. I’m a Flash video expert, but I think it would be fun to build a Skype plugin.

In the fine tradition of Ted Leung’s Job Search 2.0, please drop me a line if you know of a project that seems like a good match for me: sarah _at_ ultrasaurus (dot) com. I’m open to a range of gigs from project requirements gathering and product definition/design to engineering leadership to writing code.

Also, to all my friends, colleagues and the readers of my blog who I have not yet met, please stay in touch. I hear that independent work can be lonely, although perhaps not as lonely as it once was with those friendly tweets in cyberspace. I’m looking forward to visiting my friends with offices who have invited me to co-work, and I’ll need to know the good SF cafes which have wireless and good working spots.

Wish me luck on my new adventure!