A collegue (really a mentor) of mine knows Sharepoint like nobody’s business and she posted an interesting article this week about when moving to Sharepoint, there is a shift in the mindset how you look at and classify information. It’s a quick point with a list of good references and I think it’s a good primer before jumping into Sharepoint.
Code Quality & Patch Quality
This was a great talk where Malcolm Tredinnick spelled out what he’s looking for in Django patches and what to avoid if you don’t want your patch tossed out. Although his talk was targeting the Django project, he really dispensed good advice for anyone maintaining software regardless of project, language or platform. The room was completely packed! All of the chairs and couches we’re filled and people were sitting on the floor and standing at the sides of the room.
You’re doing it wrong if:
• the word “print” is in your patch
• you don’t have a test (fail before, pass afterwards)
• you think “PEP 8″ is an energy drink (PEP 8 is the style guide for python)
∘ make your patch look like django style code
Create patches by running diff from the top of the repository to get all changes. The svn add command works locally even if you don’t have rights to commit to the repository so files you add will be added to the patch.
“Code style is opinionated and yours doesn’t matter!”
What he’s saying here makes sense in any open source project. There’s a style defined and you should not deviate from it no matter how much you like your own special coding habits. You might get away with minute changes, but don’t push it.
“Read the contributing document.”
This seems to be simple and common sense. Skipping over information someone has left for you is a recipe for confusion.
Some tips given on comments:
• comments should last
• comments should be correct
• comments should explain they “why”, we can already read the how in the code.
Some general tips:
• Fix problems and not symptoms!
• Research is not a four letter word.
• The crowd is smarter than you
And what I believe was his last advice for the talk (at least I stopped taking notes after this) was to contribute and keep contributing. Even when your patches don’t get in, don’t get discouraged.
It was a good talk and the first time I had heard Malcolm speak. He was very informative and encouraging. Overall I liked it and it was one of my favorite talks besides James Bennett and Cal Henderson.
DjangoCon Update 1
I’m sitting next to the creator of python and listening to the History of Django talk. It’s very interesting to see how the Django framework morphed into what we know it today.
Jacob Kaplan-Moss and Guido Van Rossum just had an interesting side discussion about how Django should do things, making it easier to run on Google App Engine. After seeing Guido’s talk, the latest backend changes to allow a non rdbms database and the side conversation, I think there will be many exciting developments in Google App Engine in the next year.
Blogging From DjangoCon
I’m here at the GooglePlex sitting a row away from the stage and enjoying the atmosphere. It’s a great vibe here. This does feel different than the Microsoft conferences I have been to. Some observations so far is that the crowd seems a little younger for the most part and there is a comfortable atmosphere. Of course there’s free food and drinks, free wifi, a great stage and screen for the presentations and the audio is flawless. The only complaint I have thus far is the uncomfortable plastic daycare chairs.
Earlier I attended Guido’s App Engine keynote (blog post to follow later), and I’m now attending the High Performance Django talk. I will try to make a post for each talk I attend.
Check back soon…
End Of July Update
I’m going to DjangoCon 2008!
Am I still writing a blog – yes! See, what had happened was… I was moving right along until I saw these basic-apps. I love reading source code so I grabbed the source and started reading through them. I switched gears and decided to try implementing a few of them into working blog. So far it’s still coming along nice and I’m learning a lot. It’s very addicting to learn and make progress.
I also recently launched PaiWaterOasis.com, a water delivery business in Okinawa, Japan. This site is built on Django and MySql and is deployed at SliceHost.
Building A New Blog
Because I can. Because I should. Because cool developers do it. I’m really doing it because I agree with an article from Geoffrey Grossenbach of the Nuby On Rails and PeepCode (actually, the guy does tons of stuff – go check his site out) fame. In it he says,
“I’ll add to this and say that every beginning Rails developer should write their own blog software. It’s a great learning experience and you can try things that aren’t possible with just an app running on localhost. It’s also a great environment for learning without the pressure of a mission-critical app. When you’re working for a client and deploying an important application, you’ll have made all the beginner mistakes on your own time (hopefully).”
It’s somewhat of a personal pride thing, as I want readers that come to my site to know that I took the time to build my own blog engine. It was a great introduction to Django and provided me a means to applying the knowledge I have gained from the tutorial and other reading.
So far I’ve done three 45 minute sessions during lunch and I have the Articles, Categories, Links, and Announcements working. I’ve been keeping track of the time and once I’m done I’ll provide the stats on time and effort along with the source.
Jazzed About Django
I have a friend that’s a Python hacker and he’s been keeping the friendly rivalry between Ruby and Python alive between us. A while back, he gave in and worked in Rails for a couple of weeks to give it a try.
For the last two weeks, I have returned the courtesy and have been working with Django and Google App Engine. I love Django! It rocks! Auto documentation (better than rdoc), Auto Admin Interface, Modular Apps, what’s not to love?
I don’t think I’ll readily give up Ruby just yet for scripting work, but I’m definately pushing Rails to a back burner for a while. I’m building a production site for a friend in Japan using Django right now, so when I’m done I’ll post a more thorough review.
Brief Update on Slicehost and Blogging Frequency
A lot of the referrers I’ve been getting are people looking for a Slicehost review. Am I still happy – YES. It has been great service with .001% downtime of which I was notified well in advance. They have a great service and do a good job. If you’re looking for a Linux VPS, I still enthusiastically recommend Slicehost.
So what else am I doing? Well, I haven’t been blogging, that’s for sure. I’ve been working on WPF at work and founding out there are some really cool things about it, and then there are a bunch of things it really lacks. I hope to qualify that statement with some upcoming posts.
I also took a vacation – an actual road trip to a far away land (AZ) to see some family.
Update on RM-Install
Shortly after I posted my last blog entry on installing RM-Install, I received a comment from an employee at FiveRuns encouraging me to contact their support team. We had a few brief emails back and forth and in the end I was told “You need 32-bit compatibility binaries to use our product on 64-bit linux.” I was confident that was the issue from the start as the error was specifically nagging about “ELFCLASS32″.
I honestly didn’t take the time to go and find out how to install 32-bit compatibility binaries. And of course I expect you, Dear Reader, to understand why. I’m a developer and therefore I’m lazy. If I can add a few lines to a shell script that will install the software I want, that’s an easy and known quantity. It will probably take me a few minutes to write the script and a few more to run the script.
To install the 32-bit binaries, use the following command:
sudo apt-get install ia32-libs
So what do I really think of the RM-Install product? It’s a good idea if you’re running on a 32-bit distro and need a Rails development environment quickly. I’m sure there are many developers not using dual core 64-bit processors these days, I just don’t know any.
This is really more on par to what Instant Rails is for the Windows guys for a complete environment than the BitNami product is this time.
Congrats to FiveRuns for making it easier to start coding in Rails.
First Impressions: Five Runs RM-Install
Last night I tried the RM-Install product from Five Runs. It’s a multi-platform (Linux and Mac) Ruby on Rails Stack powered by BitRock. It is very similar to the Windows RubyStack offered by BitNami, but it is also supports a production install option.
I tried the development install and it was very easy to click next a few times and let it run. The very first thing I tried doing was updating the gems with “sudo gem update”. It failed giving me an error about not finding a file in require for some ELFClass. I’d never seen that before when updating gems, so I’m inclined to think that it may be something from within the RM-Install package.
So at the end of my first experience with the RM-Install stack, I think it’s a better solution to just create your own shell script for installing your Ruby/Rails environment.

