Programming

wpmaker

I'm working on an application that takes a wallpaper collection and creates collages. Currently it crops and scales images, from one folder, to fit the desktop and it can also create a "split" collage.

I've had my friends help, Tumi Steingrímsson is an active contributor helping me with the OS X side of things.

Here is a link to the github project, and to the project webpage.

dotfiles

I've collected my configurations for the various tools I use to easily integrate myself on a new system. Example: see the Vim section below.

Here's the github project.

Origami

Weekend course with David and Assia Brill

I joined a weekend origami course taught by David and Assia Brill. Not only was I the only guy there, except for Mr. Brill, but the only one under 40. I had lots of fun doing both traditional and some newer origami designs. Students followed along as David and Assia took turns teaching different designs.

In the building where the origami course was taught there was an exibition of both David's and Assia's work. There was one design in particular which caught my eye and gave me the impression that I could create it aswell. Asking David about it he told me the diagram was on his webpage. The 30° Fuse Ball, made up of 30 seperate modules. As soon as I got home on sunday I started working and all my free time the next 3 days went into folding. The hardest part was fitting it together as the modules didn't hold together until it was all done. You can see the outcome to the right.

Vim configuration

General info

First of all I store my vim configuration on github. Second, and probably most important, I use pathgen. Pathogen is a plugin for vim that loads plugins from $VIMDIR$/bundle, where each plugin is in seperate folders.

Since most of the plugins I use are available through github I create git-submodules within my dotfiles git repository for each plugin. This means I can easily update all my plugins in one go.

I recently found my vimrc and pathogen bundle to be "too big to fail". So I deleted all of it, then I set up a very minimal vimrc and just one plugin, FuzzyFinder (two if you count dependencies). Here's the rundown on what I kept and added since then.

Nitty Gritty

Problem with ESCAPE

I hadn't really thought about how far away the ESC button is from the home row until I came across a blog post about it. The post recommended using CAPS LOCK instead of ESC, I didn't really like that idea since that'd mean changing the way CAPS LOCK works in the os. I read some comments about this blog post and some people suggested using ENTER, to replace ESC, with various solutions for creating new lines in INSERT MODE. As a firm beliver in the modality of vim I jumped at the chance to force myself to use the NORMAL MODE commands to create new lines. The fact that I've been using instant messaging for such a long time means I instinctively press ENTER when I finish a thought, so this seems to be the best solution for me. What I've done is in shown to the right.

For new lines in INSERT MODE I use jj. I've never had trouble typing jj, until I had to type it just now, but the command timeout can be shortened if you'd like. Also I'd like to re-iterate I use o and O in NORMAL MODE most of the time.

A couple folding shortcuts

I don't use folds often and so I'm prone to forget the commands. In fact the only one I remember is zd to delete a fold. So I started using space, since space in NORMAL MODE only moves the cursor, I chose to make it toggle the folds (open/close). To create a fold I select a range of lines in VISUAL MODE and hit space.

Line numbers

I toggle relative and absolute line numbers line numbers when entering/exiting INSERT MODE. So that when in NORMAL MODE I'd get relative line numbers and easily see how many lines to yank, etc.

For more info...

For more information about my vim configuration is visit my github repository.

About me

Current status

Today I'm working on my BSc in Software Engineering and a few programming projects. I've got some hobbies such as sci-fi, origami, drawing, philosphy and board games. Some of my personal programming projects can be found on my github page.

Programming Experience

Here's a list of my experience using various programming languages

Python

  • Most of my experience is in Python 2.7.
  • Worked for mbl.is which uses Django, with mako templates.
  • I'm currently working on wpmaker. An application which creates and switches background images. For this project I've used pygame and wxPython. More information can be found here.

.NET

  • I was taught C# in Upper Secondary School.
  • I built an internal ASP.NET web for Heilsuvernd hf. along with one other programmer.
  • Worked on personal projects using Windows Forms and Class libraries.
  • I created a Ray Tracing 3D Engine using C#.
  • Worked on a few personal projects in MVC 2.

Web

  • XHTML 1.0 Strict.
  • Some experience in HTML 5.
  • CSS 2.1 and some experience in CSS 3.
  • JavaScript.
  • I'm very familiar with jQuery, I've written a few plugins for it.
  • Worked for INNN (later Eskill, now part of Advania) and mbl.is doing HTML, CSS, and Javascript. XSLT experience in eskill.

Database

  • Worked on a Postgresql database for mbl.is.
  • My database courses in Upper Secondary School were taught using Microsoft SQL Databases.
  • I also have cursory knowledge of Oracle Databases.

The following I've familiarized myself with but haven't gained any real experience

  • C++
  • Java
  • Perl
  • PHP
  • Ruby
  • Turbo Pascal

This list is current @ .