Skip to main content

On documentation

Andreas Sikkema's law on code documentation:

Once you've properly named every method, function, class or struct, don't document what your code is doing, but why

I can read your code, so what it is doing I can find out myself. Either by reading the code, executing it and watch what it is doing, adding printf()'s everywhere or checking the packets it is sending by using Wireshark. I could even, if I am desperate, run your code in a debugger.

I can't, however, ever find out why in Ctulhu's name you wanted to use Duff's device in that function if you don't tell me!

The first corollary of the above mentioned law is:

Logging why something happens is as important as documenting why code is doing something

Upgrade to Nikola 6

So today I totally broke this site. I removed the Ubuntu supplied version of Nikola 5 from the machine I am using to write on this blog and installed Nikola 6 from sources. I then, stupidly, built and deployed the site to the webserver using the newly installed Nikola 6.

Only after refreshing my browser I noticed that I had totally broken my custom theme and I had no way of recreating it, because I had stupidly not made a backup of the custom theme. I subsequently found the base theme I am using, Slate from Bootswatch, will not work correctly with Nikola 6 generated HTML. So I am using the default, Nikola supplied, Bootstrap theme for the time being.

I have fixed the Typekit integration, so the fonts are back to their original goodness.

Work in progress, as they say.

Uninstalling a python egg

Some very useful Python libraries are installed using setuptools using the following procedure:

sudo python setup.py install

Unfortunately, there's no similar command to remove (or uninstall) the library, once you've decided it's not needed.

Here's a quick howto on how to uninstall these libraries, even if it's already installed. There's one caveat, you must still have the original sources:

The first step is to (re)install the library:

sudo python setup.py install --record files.txt

And then, when you want to get rid of the files:

sudo rm $(cat ./files.txt)

Don't forget to remove the old source directory.

rsync now

So, as promised in an earlier post, I've bitten the bullet and am now using rsync to deploys changes to this site.

Deploying changes to the site is now as easy as

ramdyne@delphic:~/website/www.ramdyne.nl$ nikola build
Scanning posts...done!
.  render_sources:output/posts/rsync-now.md
.  render_posts:cache/posts/rsync_now.html
.  render_pages:output/posts/rsync-now.html
.  render_indexes:output/index.html
.  render_archive:output/2013/index.html
.  render_rss:output/rss.xml
.  render_tags:output/categories/rsync.xml
.  render_tags:output/categories/rsync.html
.  render_tags:output/categories/maintenance.html
.  render_tags:output/categories/nikola.xml
.  render_tags:output/categories/maintenance.xml
.  render_tags:output/categories/nikola.html
.  render_tags:output/categories/python.xml
.  render_tags:output/categories/python.html
.  render_tags:output/categories/english.xml
.  render_tags:output/categories/site.html
.  render_tags:output/categories/english.html
.  render_tags:output/categories/site.xml
ramdyne@delphic:~/website/www.ramdyne.nl$ nikola deploy
==> rsync -rav output/* ramdyne@xxxxxxx.org:/home/ramdyne/www/ramdyne.nl/www
Password: 
sending incremental file list
index.html
rss.xml
2013/index.html
categories/english.html
categories/english.xml
categories/maintenance.html
categories/maintenance.xml
categories/nikola.html
categories/nikola.xml
categories/python.html
categories/python.xml
categories/rsync.html
categories/rsync.xml
categories/site.html
categories/site.xml
posts/rsync-now.html
posts/rsync-now.md

sent 53087 bytes  received 2382 bytes  2844.56 bytes/sec
total size is 10716307  speedup is 193.19
ramdyne@delphic:~/website/www.ramdyne.nl$ 

Rondje Utrecht

Afgelopen zondag samen met mijn zus een rondje om Utrecht gefietst:

Shooting raw

Here's why I like shooting in raw on my Canon 6D.

Exhibit 1, the more or less original (auto processed and exported by Lightroom, uploaded to Flickr and there processed a little as well I expect):

20130731-IMG_1654

Exhibit 2, this is what one can make of what other people would call a disastrously failed photograph:

20130731-IMG_1654

OHM2013

20130803-IMG_1835

A few weeks ago I went to OHM2013, the 4-yearly camping festival for hackers and makers in the Netherlands. I spent my time mostly at the OHMroep studio making radio.

It was fun seeing all the familiar faces from HARFM and HAR2009 and making some new friends. I absolutely loved seeing the VU meter going up the antenna for the FM transmitter.

I think we had one of the largest radio studios of the country for the duration of the event, enough microphones for 11 guests! The TV experiment had a difficult start, but I think in 4 years it'll be bigger and better.

Below are my photos of this event.

20130730-IMG_1648

20130731-IMG_1649

20130731-IMG_1654

20130731-IMG_1656

20130731-IMG_1658

20130731-IMG_1672

20130731-IMG_1675

20130731-IMG_1677

20130731-IMG_1679

20130801-IMG_1711

20130801-IMG_1731

20130801-IMG_1736

20130801-IMG_1746

20130801-IMG_1749

20130802-IMG_1770

20130802-IMG_1777

20130802-IMG_1780

20130802-IMG_1791

20130802-IMG_1814

20130802-IMG_1815

20130802-IMG_1817

20130802-IMG_1820

20130802-IMG_1822

The VU meter: 20130803-IMG_1826

20130803-IMG_1838

20130803-IMG_1842

20130803-IMG_1858

20130803-IMG_1878

20130803-IMG_1879

20130803-IMG_1893

20130803-IMG_1895

20130803-IMG_1908

20130803-IMG_1911

20130803-IMG_1913

20130803-IMG_1930

Goodbye Wordpress, hello Nikola

As I've written before, I have started looking into the Python world more and more. During the last year or so I've also started to be interested in running my personal site a little differently.

Both interests came together when I found Nikola, a static site generator written in Python. Today I migrated everything over. Parts included:

The main manual for migrating Wordpress to Nikola was by Niko Wenselowski.

Moving the generated HTML (and CSS) (and JS) to the webserver is still a manual process using SCP but I am planning on one day using rsync for that.

If you see any problems, please leave a comment.

Vakantie 2013

De vakantie is helaas al weer iets meer dan een week voorbij. Dit jaar de Groene weg naar de Middelandse Zee

Hieronder weer de foto's die het waard zijn om aan de wereld te laten zien.

Eerst stroomopwaarts langs de Roer vanuit Roermond richting Trier. Dit zijn foto's rond de Ruhrtalsperre en de Urftalsperre.

20130617-IMG_0966

20130617-IMG_0968

20130617-IMG_0974

20130618-IMG_0975

20130618-IMG_0978

20130618-IMG_0979

Gerolstein, bekend van het water...

20130618-IMG_0984

En dan verder langs de Kyll richting Trier

20130619-IMG_0990

20130619-IMG_0992

Dit is de meest vervelende klim van de vakantie, steiler en steiler. Het laatste stukje was erg moeilijk en moest ik lopen...

20130619-IMG_0997

20130619-IMG_0999

Vanaf hier zijn we in Frankrijk, dit is ergens onder Thionville.

20130621-IMG_1001

Dit is in de buurt van de nieuwe LGV van Parijs naar Duitsland, dit leek me een nieuwe (spoor?)weg die bijna klaar was, maar waar ze nog geen plannen lijken te hebben om alles af te maken.

20130621-IMG_1005

Luneville

20130622-IMG_1010

Net voor Charmes kwamen we in een verbindingsproef van de plaatselijke rally. De auto's vonden het niet fijn om met 50 door een plaatsje te rijden. De motoren zijn duidelijk op performance gebouwd, niet op stationair lopen.

20130622-IMG_1019

20130622-IMG_1020

Een van de "hoogtepunten" van de route, door het dal waar de Saone echt een rivier wordt.

20130623-IMG_1021

Net onder Scey sur Saone is deze scheepstunnel van halverwege de 19e eeuw. Helaas kwam de regen met bakken uit de lucht vallen... Toch foto's gemaakt, tijdens de eerste fietsvakantie zijn we hier ook langs gekomen, maar toen had ik geen geschikt fototoestel.

20130624-IMG_1031

20130624-IMG_1043

Dit is net ten zuiden van Besancon, het leek toen wel een mooie omgeving ;-)

20130625-IMG_1047

20130625-IMG_1049

Deze vakantie realiseerde ik me dat elk zichzelf respecterend dorp in dit deel van Frankrijk wel ergens in de buurt van de heilige drieenheid (Eglise, Mairie, Ecole) een publieke weegbrug heeft (gehad). Ineens vallen de Poids Public je dan overal op.

20130625-IMG_1055

Een van de leukste klimmetjes van de vakantie, vanuit Poligny de hoogvlakte richting de Ain op. Mooi uitzicht en heerlijke schaduw van de bomen langs de weg.

20130625-IMG_1058

20130625-IMG_1059

Bovenop is een hoogvlakte waar de klaprozen erg mooi langs de weg bloeiden. Het landschap hier is trouwens apart, het had een vergelijkbare sfeer als de bocage in Normandie. Alleen hier geen boomwallen, maar kleine bossen om de weilanden heen.

20130625-IMG_1062

20130625-IMG_1063

20130625-IMG_1065

Even verder had een aantal beekjes over de jaren een komdal uitgesneden, de Fransen noemen dit een Cirque.

20130625-IMG_1067

Het mooie van een hoogvlakte, is dat je er ook weer af mag, in ons geval naar de camping een beetje links van het midden.

20130625-IMG_1073

In het dal van de Ain:

20130626-IMG_1078

20130626-IMG_1080

20130626-IMG_1084

20130626-IMG_1096

20130626-IMG_1102

20130626-IMG_1106

Net buiten Pont d'Ain, 's morgens net na vertrek van de camping:

20130628-IMG_1114

Overigens kwamen we net buiten Pont d'Ain nog een Fiat Croma (Lancia Thema?) tegen zoals die vroeger, zo eind jaren 80, begin jaren 90) gebruikt werden als directie auto in de Tour de France. Erg leuk om zo'n auto na al die jaren weer terug te zien.

20130628-IMG_1118

Gezicht op het Rhone dal.

20130629-IMG_1133

Onder Crest moesten we een kleine pas over, het was erg mooi weer na een paar mindere dagen en de omgeving was ook bloedmooi zo vroeg in de zomer.

20130630-IMG_1141

20130630-IMG_1145

20130630-IMG_1149

20130630-IMG_1150

20130630-IMG_1155

Vlak onder de top vernauwde de kloof even tot bijna niets, hier waaide het zo hard bergop dat fietsen eigenlijk vanzelf ging, ik denk niet dat ik vanuit de bocht nog serieus kracht heb moeten zetten totdat de kloof weer een beetje wijder werd.

20130630-IMG_1156

20130630-IMG_1160

20130630-IMG_1163

20130630-IMG_1164

20130630-IMG_1167

20130630-IMG_1173

20130630-IMG_1178

Orange:

20130701-IMG_1184

Avignon:

20130702-IMG_1199

20130702-IMG_1218

20130702-IMG_1221

20130702-IMG_1246

20130702-IMG_1247

20130702-IMG_1249

20130702-IMG_1286

20130702-IMG_1288

20130702-IMG_1295

Camargue:

20130704-IMG_1309

20130704-IMG_1312

20130704-IMG_1340

20130704-IMG_1347

20130704-IMG_1357

De volgende foto's zijn gemaakt op de Digue de la Mer, de "zeedijk" (nou ja, het zeedijkje) die (dat) de Camargue moet beschermen tegen de zee. Alleen toegankelijk voor fietsers en voetgangers en erg mooi.

20130704-IMG_1360

20130704-IMG_1363

20130704-IMG_1370

20130704-IMG_1375

Arles:

20130705-IMG_1389

En de video komt er aan...

Een foto, twee versies

..raw:: html

<html><body><p>Ik zag laatst op de <a href="http://scottkelby.com/2013/shots-and-a-q-and-a-from-my-shoot-aboard-a-us-navy-aircraft-carrier/">site van Scott Kelby</a> (ergens in de comments) een kort recept hoe je foto's van wat technische aard interessanter kon maken. Boven de foto zoals ik deze anderhalf jaar geleden op de site zette en daaronder de nieuwe versie...

<a href="http://www.flickr.com/photos/ramdyne/8610380166/" title="20111026-20111026-_MG_4324.jpg by ramdyne, on Flickr"><img src="http://farm9.staticflickr.com/8394/8610380166_087561ae31.jpg" width="500" height="333" alt="20111026-20111026-_MG_4324.jpg"></a>

<a href="http://www.flickr.com/photos/ramdyne/8610378434/" title="20111026-20111026-_MG_4324-2.jpg by ramdyne, on Flickr"><img src="http://farm9.staticflickr.com/8258/8610378434_325b76ea18.jpg" width="500" height="333" alt="20111026-20111026-_MG_4324-2.jpg"></a></p></body></html>