Matthew Baldwin has written a great article on how cyclists and motorists can coexist on the road.

 

sprial

Shot at the city hall in Hannover.

 

High Dynamic Range (HDR) photos try to capture a higher contrast between the lightest and the darkest parts of a picture (see wikipedia). You would normally need a special camera for taking HDR pictures, but you can imitate the effect by taking multiple pictures (>=3) with different exposures. Typical consumer cameras have only very recently introduced automated procedures for taking pictures with different exposures. Hackers have retro-fitted this capability to much older compact cameras such as my Canon IXUS 100IS. Using the alternative firmware CHDK you can run a script that creates the necessary 3 exposures. ( I’ve blogged about CHDK and how to install it before).

So this is the result and it quite impressive in comparison to “reality” :-) :
Trying out HDR

and here’s the original:
trying out HDR - original

 

When working with lots of remote machines it’s sometimes necessary to reboot them. Then it’s always a pain to wait for them booting up. If the machines have extra interface cards, e.g. RAID, you have to sit there for a while until the machine becomes usable. So being a geek, I made a (Windows) script:

This script requires cygwin on windows and you should install it’s ping implementation — the windows version doesn’t return with an error if the host in unreachable. You also have to run it as an administrator on windows, because it needs these privileges to open a socket.

Here’s the script to show the messagebox:

The popop.bat only contains this:

And here’s the final tidbit, a visual basic script to show a messagebox.

This comes in handy in other situations, too. For instance you can schedule an alarm with Windows’ task scheduling:

This script will display a messabox with the text “Lunch” every day at noon. You can choose much more refined date schedules or intervals. Here’s the documentation.

 

Call Me!

Caught this at my old student dormitory. It is apparently “unsafe” now and will be destroyed. That’s too bad, because I had planned to visit it in 30 years as an old geezer…

 

flowering heights

I haven’t been to my old university’s campus for a long time and it seems a lot of new buildings have sprouted. Some more beautiful than others, but the nicest things is still the forest around it :-) .

 

rusty bird

Found at Faust.

 

division of labor

It’s nice to see when people work hand in hand.

 

I’m still adding little features and working on the design of my lunch organizer app. I’ve added nice javascript widgets for handling the input of dates and times. jQuery UI is a nice library that is the UI extension of the excellent jQuery library. Among many other things it features a very nice widget for picking dates:

Although the HTML5 input type “date” hopefully brings us the functionality with simple HTML, we have to settle for this version for now (only Opera displays a special widget for the “date”-type). Unfortunately there’s no default widget for time fields in jQuery UI. I’m not sure why that is so. Maybe it’s selection process is a bit slow? I’ve looked at a number of widgets for choosing time and it’s very refreshing to see how many interesting approaches have been invented for this:

In the end I chose the excellent widget by François Gélinas.

When you download jQuery UI, you can pick and choose which functionality you need. There’s a simple form, so you can minimize the size of the scripts each user has to download. The full package is over 1MB, thus this is really necessary. The simple selection with the datepicker and the position library is only 75KB (+25 KB for the images). The timepicker weighs in at an additional 60KB, which should still be tolerable.

The default size of the datepicker is much too big and it’s not very obvious how you can reduce it. Fortunately the always helpful stackoverflow comes to the rescue. Add this simple style to your stylesheet and you will get nicely size date widgets:

The same technique works for the timepicker:

The next problem I had with these widgets were their default positions. Their default is just below the input field at its lower left corner. That way the datepicker covers the rest of the form and lowers the user experience. Of course there’s a stackoverflow page that helps with that, too:

For the timepicker there’s not such an easy way, but it has two position attributes that let me achieve the same effect (at least in Chrome):

When using the datepicker with Django, I had to make use Django’s id format. It’s always “id_“. Thus it was id_time for the field time. Of course I also had to add the stylesheets and the css elements to the head element:

UPDATE: The new code is available at github. I’ve also added the ability to delete entries and I am preparing to add permissions and user management soon.

 

Refreshingly Candid Advertisement

Isn’t it funny how old ads seem so nice and candid and harmless in comparison to today’s annoying ads?

Also who would really like to drink beer from fishermen. Would they make it with sea water? That’s not such a great idea…