While getting the trac-svn integration up and running in one of our repositories tonight, I stumbled across this issue. Most links I found on Google said to try to run the post-commit script by itself under the same user, which worked just fine. Checked that all my paths were absolute paths to avoid assuming any CWD, but still nothing. After trying to minimize the problem I discovered that even with a post-commit-script of just environmental assignments, things were still failing. This nabble archived thread did however give a very important hint by Ryan Schmidt (who obviously has solved the post-commit problems for every single developer out there, if I were to judge by the number of times his name comes up. Awesome work, Ryan.):
Your post-commit must also begin with a line like “#!/bin/sh” and have its executable bit set.
Wow. Homer Simpson “Doh!”-moment right there. No #!/bin/bash (or #!/bin/sh) ment that SVN weren’t able to run the script with the proper interpreter. When running it from the command line, bash were already running of course, so it just assumed that it was a bash script .. and it were right.
While integrating a custom search application into a Java-based web application, I came across the need to access properties in custom namespaces through the Informa RSS library. Or to put it in another way; i needed to access to properties, Informa had been used for RSS parsing in the previous versions of the web application. The people who developed the original version of the application had decided to extend the Informa library into their own version, and had added several methods for .get<NameOfCustomProperty> etc. After thinking about this for approximately 2 seconds, I decided that having to support and modify a custom version of Informa was not the right track for us.
My initial thought was that their decision to customize Informa to support these methods had to come from the idea that Informa did not support custom namespaces out of the box. I did a few searchas over at Google, and found nothing useful. Reading through the documentation for Informa didn’t do me any good either, so I tried to find an alternative library instead. Did a bit of searching here too, and stumbled across a hit for one of the util classes for Informa (.. again). This did support custom namespaces, so the backend support was there at least. Then it struck me while reading the documentation for Informa and ChannelIF again; Informa did support it, as it inherited the methods from further up in the hierarchy. The getElementValue and getElementValues methods of the ChannelIF and ItemIF classes allows you to fetch the contents of elements with custom namespaces in a very easy to like manner.
This simply returns the string contained between <exampleNS:field> and </exampleNS:field>
Hoooray! We now have support for these additional fields, and we do not have to keep Informa manually in sync with the version in our application. Why the original developers decided to fork the Informa library to add their own properties I may never know, but I’ll update this post if they decide to step forward!
Vincent Laforet has a very, very interesting post up about the Canon EOS 5D Mark II. It features the first shots from the camera, and while they are stunning in their own right (Vincent shoots some of the best photos on the planet, so no surprise there), the most amazing thing is that they’re shot while in video mode. That’s right. They’re straight from the RAW .mov file that the camera produces when recording 1080p video. Simply astounding. I’m getting one. Hands down.
Seth MacFarlane (of Family Guy, American Dad fame) created his own YouTube channel a couple of weeks ago, where he published “Seth MacFarlane’s Cavalcade of Cartoon Comedy”. The channel features a collection of shorts in the distinct style of his other animated series, but limited to a single gag or joke instead (an extended version of the short puns and gags in Family Guy).
Here’s some of the clips that he has posted so far:
I spent four hours at Rudskogen Motor Raceway tonight, at an event hosted by Autostrada Sport. A nice collection of Ferraris, Maseratis, BMWs and Porsches turned up (even a Lamborghini and an Aston Martin). As usual I spent some time photographing, before Marius took me for loads of laps in the black GT2.
I spent yet another sunday camped out at the part of Gardermoen Raceway where Marius usually compete in the Auto Slalom competition while I spend the day photographing the drivers and their cars. Marius finished in 5th place this time, and this concludes this year’s season of auto slalom. We’ll be back for more next year!
As we’re starting a new week I’m just going to round up a few of the links I’ve been having around in my browsers for quite some time now:
Gravatar Implementation Details – I’m currently looking into using gravatars as default avatars for a smallish site I’m writing a few lines of code for every now and then. This page details which parameters you can submit to gravatar to control the image returned from their servers.
The BOSS Mashable Challenge is a contest hosted by mashable and Yahoo! Search about building a site or resource on top of the BOSS API from Yahoo! BOSS stands for “Build your Own Search Service“, and is an open API to access Yahoo’s search service from your own applications. It’s very interesting and I have several ideas about how to incorporate this into our own sites.
NRKbeta just had a notice about a very nice site containing biaural recordings. I listened to a few of these a couple of years back without being very impressed at the time, but these recordings are at a whole new level. Great stuff. Still have a bit of trouble about determining if something is in front of me or behind me, other than the usual context clues (people cutting your hair is usually behind you, not in front of you, etc).
The Open Social Specification – Just had to look this up again today. Wondering if I should attempt to implement Open Social for social networking and for your friends graph in the sites I’m currently hacking around with. Could be a good experience anyways.
As I’ve been having a cold the last two days with everything that involves of fevers and chills, I’ve at least had the time to a bit of reading. To be honest I’ve not been able to much else, so I finally got around to reading an article at Harvard Business Online about Pixar, titled «How Pixar Fosters Collective Creativity».
One of the most interesting quotes which I’ve been hearing a lot lately and that I agree with 100% is the following:
If you give a good idea to a mediocre team, they will screw it up; if you give a mediocre idea to a great team, they will either fix it or throw it away and come up with something that works.
To see how this shaped the development of Toy Story 2, one of the best animated movies of all time, read the article.
I’ve also seen several movies from the Pixar offices on the behind the scenes features of several of their DVDs (in particular in the Toy Story 1 & 2 Box Set which features a complete DVD with just extra material), but I never understood the true meaning of why they had built it like that. I might just have missed it in the material, and it still looks like an awesome place to work. Anyways, the article has a nice quote about the effect of the buildings structure:
Our building, which is Steve Jobs’s brainchild, is another way we try to get people from different departments to interact. Most buildings are designed for some functional purpose, but ours is structured to maximize inadvertent encounters. At its center is a large atrium, which contains the cafeteria, meeting rooms, bathrooms, and mailboxes. As a result, everyone has strong reasons to go there repeatedly during the course of the workday. It’s hard to describe just how valuable the resulting chance encounters are.
While the visions of my company in the future may not have to integrate people from so many different arts, this still provides a very interesting view of the dynamic between groups and people.