08
Aug

The secret lives of invisible magnetic fields are revealed as chaotic ever-changing geometries . All action takes place around NASA’s Space Sciences Laboratories, UC Berkeley, to recordings of space scientists describing their discoveries . Actual VLF audio recordings control the evolution of the fields as they delve into our inaudible surroundings, revealing recurrent ‘whistlers’ produced by fleeting electrons . Are we observing a series of scientific experiments, the universe in flux, or a documentary of a fictional world?.
Awarded Best Film at Cutting Edge at the British Animation Awards 2008.
Awarded Best Experimental Film at Tirana International Film Festival 2007.


Magnetic Movie from Semiconductor on Vimeo
07
Aug

An interesting talk about secret software and why it should not be allowed in the public sector

07
Aug

Paris Hilton made a funny, intelligent video in reaction to Mr McCain’s TV spot.

Yes That is “Paris”, “Intelligent” and “Funny” all in one sentence.

26
May

Every once ina while I have to let the geek in me out. This post is one of these moments. If you don’t get this, you probably have a life :)

19
May

Dreamhost appears on the django site as one of the django friendly hosting services. Unfortunately, dreamhost does not officially support django. It does not have mod_python installed. Django is instead deployed using FastCGI. Hopefully sometime in the future mod_python will be added. There are a few good guides I have found, that explain how to setup django on a dreamhost account:

  • Jeff Croft has a good guide on his blog
  • Gordon Tillman also has a good informative page
  • The dreamhost wiki also has a guide
  • Between the three of them you can probably find all the information needed for installing django for use on a dreamhost account. I will not repeat what they explain but instead add some from my own experience.

    Python

    Dreamhost, at the moment of writing, is running python 2.4. Luckily it is possible for you to locally install python. I highly recommend it as it will enable you to setup the python environment exactly the way you want it, and it will make it easier to upgrade to future versions of python.


    cd ~/soft
    wget http://www.python.org/ftp/python/2.5.2/Python-2.5.2.tgz
    tar xvfz Python-2.5.2.tgz
    cd Python-2.5.2
    ./configure --prefix ~/install/dir --enable-shared
    make
    make install

    Where ~/install/dir is the directory you want python installed in. I followed dreamhost’s Unix account setup guide and installed it under run. I recommend you do to, as it is easier to have full control over you /usr/local.
    Also adding setuptools makes future installs easier


    cd ~/soft
    wget http://peak.telecommunity.com/dist/ez_setup.py
    ~/path/to/yourpython/python ez_setup.py

    This will add the easy_install script which will simplify adding packages to your own python install. The final step is adding the new MySQLdb package


    cd ~/soft
    svn co https://mysql-python.svn.sourceforge.net/svnroot/mysql-python/trunk/MySQLdb MySQLdb
    easy_install MySQLdb

    This is assuming easy_install is in your PATH. If it is not it needs to be added.

    Your now ready to install django using your very own Python installation. That is detailed enough so I will move to two problems I met after the installation.

    Post Installation Problems

    I met with two problems that had frustrated me for a few hours. To save you the future installer some pain here they are in case you experience something similar

    syncdb after admin activation: This should have been very obvious to me but for some reason it escaped me. After enabling the admin page you must run django-admin.py syncdb in your project home page. What happened was that I ran it before I enabled the admin application. This lead to the creation of the needed tables in the MySQL database, but no tables for the admin application. After enabling the admin application, more tables need to be created to accommodate the new application data. The errors I got gave me the impression that there was an error in the MySQLdb egg, so I reinstalled it, then tried to find some workaround. Eventually I realized that I’m just missing the admin tables.

    .htacess: This was the real mind bender. I kept getting an internal server error saying that it reached maximum internal allowed redirects. It was obviously a configuration error so I compared my .htaccess with that of the guides and it looked the same. So I looked else, but I kept coming back to the conclusion it has to be in the .htaccess. Yet no matter how often I looked at it I couldn’t find what was wrong. I need to point out that I am no expret when it comes to apache and that maybe if I knew more about it this would have been simple, but I didn’t so I got some gray hairs before I realized I’m missing a space between the - and the [L]. A bloody white space! I was feeling furious and incredibly stupid at the same time.

    Django is now up and running, and I like it so far. I sure is a lot nicer to work with then with JSP and servlets. Enjoy your python

    13
    May

    The title says it all

    MUTO a wall-painted animation by BLU from blu on Vimeo.

    27
    Apr

    My feet hurt. Bad. I needed to get that out of the way. Now for the fun Part. The dutch railway have a hiking project. They have set up hiking routes that start, and end in their stations. The initiative is good. It offers people with little experience in hiking and/or people with no car to go about doing some pretty good hiking.As I have not hiked in quite some time we decided to take a route of medium length. 18km total. Should be doable. And it was. But our feet. Man our feet hurt. The views were really nice as you can see in the next few pictures. More are on the blg1.jpgblg2.jpgblg3.jpgWe had a wonderful time walking together in the country. listening to the birds, walking through villages. It was all very relaxing. We couldn’t stop smiling all the way back home.

    25
    Apr

    When confronted with some thought provoking subjects my mind has an interesting side effect. Unconciounsly, I find myself thinking about the actual thinking. Am I thinking in the correct abstraction level? Are my thought not repetition on some previous idea? Are they permutations of ideas already mentioned? Am I making sense at all in the direction I am going at the moment? and so forth

    This type of thinking, which I like to call metathinking is quite good. Thinking is just like most other things in life, practicing it makes you better in it. finding your weak spots and improving them makes you even better. I could say that if I was able to isolate the process of metathinking and do it without the need for an actual subject I would be able to improve my thinking on a fundamental level. This unfortunately escapes me. No matter how hard I try I cant get myself to metathink good without anything that is giving me a direction in which to think.This leads me to believe that I can only metathink well when I can evaluate the progress I made.

    The last statement in itself is enough for a long thought, which I might o some other time. For now lets take it at face value. Lets project it to something physical, like jogging. Paying attention to muscle tension, breathing, and body movement while jogging will definitely improve your jogging. So its no wonder metathinking while being busy with something improves my analysis of it. However research has shown the visualizing running correctly, learning to remove muscle tension while relaxing and improving breathing while not jogging also improves your jogging. Of all these exercises the visualization seems the closest to metathinking while not thinking of anything. So why cant I seem to be able to do it?

    Hell if I know

    25
    Apr

    AJAX is somewhat of a tricky subject for me. I am a huge fan of good UI and of good user experience. There is no doubt in my mind that since the introduction of javascript, and later on AJAX the general experience in using the internet has improved. For me, watching Adobe’s new Photoshop express is something close to a miracle. I remember the days that some image rollover was the coolest thing on the web.
    That said there are some downsides to this. Nowadays to check your webmail, you most likely will need quite a modern computer and a relative new browser. The internet raised as a means to share data, and it looks to me like that feature is being pushed a bit to the back to make room for the shiny, new, apps.

    There is a lot to be said for online apps. I like the idea that my office programs are always available, on every system with internet access. Its more platform independent than any virtualization technology, easier sharing then any mesh and is probably cheaper. Then again, if all I want is to find some simple information about the address of some business, or restaurant, there is no reason for me not to be able to do it on a 10 year old computer running OS/2 with netscape 1. Ok I might have gotten carried away there, but a 10 year old system with a 10 year old OS and a 10 year old browser can probably handle basic HTML. Which means it can display web pages. So it should be good enough.
    Except its not. Because every damn site has bells and whistles. And the people who are the most to blame are us, the users. We want hype, cool looking pages. Hell if I get a basic HTML page I go away without even looking at the content. What goes through my mind is either “This is some crap some 40 year old did in his garage after reading the w3c tutorial” or “this cant be the right spot”. So everyone got bling bling. And we end up with browsers which are turning into an OS. I am quite happy with X thank you. I don’t need to run Safari OS on top of that.

    Ok so I got carried away again, but you get my point.

    Now that my thoughts on AJAX specifically, and javascript in general are out of the way I can turn to the subject at hand.


    javascript rocks!

    Last time I made web pages was hmm, almost 8 years ago. A lot have changed then. It is a wonderful thing to see how it is actually possible to make usable UI on the web with javascript. Since I am now developing java2 EE apps for a living I got into javascript. Its wonderful. And it seems a lot of people think that because there are about as much js and AJAx framweorks as there are commands in js, if not more. I knew about DOJO since it was mentioned several time on the Django page. Trying to choose one seemd to me next to impossible. So I did the only thing I could. I asked an expert. I ended up with Prototypes and Scriptalicous. The name alone would have convinced me to us scriptalicous. The fact that Mark Pilgrim did part of the developing just strengthened me in my decision. I have been using he framework for about a week now and I like it.

    To sum this post up, javascript brings along a lot to the table, but it also enforces a better table. I am a UI design enthusiast. I love my javascript.

    25
    Apr

    Now that I am actually getting payed to program instead of paying to program, I find myself in greater need of practical information. Putting some of it on my blog will help me keep all the knowledge in one place. To start off, I’ll mention Cascading delete in SQL.
    In the database schema there are 3 tables used to store different objects. As there is a many to many relationship between the the objects, there are relation tables.

    Basic database layout

    Using cascading delete I can define that if an object is removed from its table, all relation tables entries with that object id are also removed. Quite handy. the way this achieves is MySQL is through the use of foreign keys. If I define in the table members the unique id of a user as a foreign key I can also define tell the RDMS to delete the entries in members where that foreign key exist. Here is an example of the definitions:


    CREATE TABLE members (
    usr_id VARCHAR(30) NOT NULL,
    grp_id VARCHAR(30) NOT NULL,
    FOREIGN KEY usr_id REFERENCE user (usr_id) ON DELETE CASCADE,
    FOREIGN KEY grp_id REFERENCE group (grp_id) ON DELETE CASCADE);

    As you can see the table is created normally by defining the fields, then the foreign keys are named. The REFERENCE shows to which column in what table they refer to.