Archive for the 'programming' Category

In search of the perfect vimrc

I’ve been using Vim for the last couple years on and off. Over the last few months (since the Vim 7 release) I’ve been forcing myself to use it exclusively. To make working with Vim more intuitive for me, I’ve been trying to get my vimrc just right. Of course, this will probably be a never ending quest.

Currently it looks like this…


" set appearance
syn on
colorscheme torte
set vb " visual beep instead of audible beep
set nu

" tab behavior
set ai
set tabstop=4
set sts=4
set et
set shiftwidth=4

" backspace behavior
set backspace=2
set backspace=indent,eol,start " redundent?

" backup behavior
set backup
set backupdir=~/.vim/backup/

" search behavior
set incsearch

I’ve been googling and adding, googling and adding. I’ve tried to avoid the complicated stuff so far. The vim documentation is great but a little overwhelming at first. Jonathan McPherson has a nice series of articles that gives a really friendly intro to Vim.

I’m mostly doing python programming so if you have any tips please leave a comment.

Django Nicities

I’ve been working on a project using Django for the last couple days and am falling in love with it. There are so many nice features that make the life of the developer much more enjoyable. The nicest thing is the automatic administration panel. For many projects it’s enough to define a model and activate the admin panel. Another nice feature that I just discovered is the automatic api documentation for you project. If you click on the ‘documentation’ link at the top right of the admin panel, the documentation is presented in a very well organized and attractive manner. You’ll need docutils installed for this. Whenever an error occurs in you code and you set ‘DEBUG’ to ‘True’ in settings.py, you get a really clean error report. Generic Views saves you a huge amount of coding.

I’m still trying to get my head around everything, but so far everything has been going quite well. I would like to have a way to automatically choose the current user in the Admin panel and some of the included apps (comments, for example) need to be documented. Most aspects of the framework have quite nice documentation, though.

Ok, back to the project.

Setting Up Django on Dreamhost

Jeff Croft has a nice tutorial on how to set up Django, a python web framework, on Dreamhost.

If you want to use the sweetness that is Python to do web development, are a Dreamhost customer and would like to be able to avoid this in the future, I propose that you vote to have it included as a standard feature. Go to Home > Suggestions in the Admin Panel, search for Django and then cast your vote. This is how Ruby on Rails got included.

While you’re at it, cast a vote for Postgresql, Django’s preferred database and a vote for mod_python.

read more | digg story

Blogging Boxes and Python for Artists

A friend of mine just finished up his Masters of Arts thesis project. Basically the project consists of two moody boxes, Otto and Ada, blogging about how they feel. So you ask, “How do the know how they feel?” Otto and Ada have built in sensors that detect changes in their environment. They then express themselves via their blog. Their grammar is not always great but they are both still quite young.

In a recent post, Sam discusses his experience with Python which he used for the project. In the post, Sam mentions the aspects of Python that make it ideal for artists. Those points are equally as valid for general programmers, though.

As a side note, I hereby take credit for introducing him to Python. Seems as if my persistant nudging paid off. :)

digg story

My first contribution

Late last night (or early this morning), I submitted my first ever patch. Hopefully this is the start of a long line of contributions. It fixes a problem in Monodevelop with the Code Template drop-down in the options panel. It’s bug #78082.

Every day I work on my soon-to-be-announced project I get more confident in C#. For anybody learning C# on linux with Mono, I recommend you look at Banshee for an example to help you along. The ActionManager class is very helpfull. Here is another good resource for tutorials. And lastly, You can go to the Mono Project sight for a good intro to the Gtk Treeview widget. Treeview is a beast at first but is really nice once you get the hang of it.