Smokes your problems, coughs fresh air.

Author: Rowan Rodrik (Page 5 of 25)

Rowan is mainly a writer. This blog here is a dumping ground for miscellaneous stuff that he just needs to get out of his head. He is way more passionate about the subjects he writes about on Sapiens Habitat: the connections between humans, each other, and to nature, including their human nature.

Dubai as an example for us all

Some Oct 2 2012 wisdom from SlashDot user fuzzyfuzzyfungus: “Dubai is an example of the glorious harmony between (middle) east and west! A city that wraps the middle east’s robust traditions of rule of law and enlightenment liberalism and the west’s values of sober financial honesty in the civic-planning expertise of Vegas developers on PCP… Truly, an example for us all.”

Learning to ‘hack’ with Security Override

In August 2011, probably while procrastinating learning for my university admission exams, with one mouldy foot still in my IT-past, I signed up for Security Override, an online game designed to turn network security n00bs such as myself into novices.

I’ve never dedicated the 20 hours to learn anything to the game, which I should have spent Josh Kaufman to ascent my n00b-state, but I nevertheless had some solid fun with it. 🙂

How to learn anything, according to Josh Kaufman

Judging by the following notes in my ~/jot directory, I was inspired two years ago (Oct 23, 2013) by a TEDx talk by Josh Kaufman on learning:

Josh’s advice boils down to 4 major points:

  1. Deconstruct the skill.
  2. Learn enough to self-correct (don’t procrastinate by reading text-books).
  3. Remove practice barriers (distractions).
  4. Practice for at least 20 hours. [This is the gist of his talk, but I guess it is a complitely arbitrary out-of-his-ass thing.]

Perhaps I could apply this approach to figuring out which statistical model(s) to use for the peat moss fluorescence data which I’ve been struggling with these past few weeks. Since I don’t have a statistics text-book, I can’t exercise my love of text-book-aided procrastination, a shortcoming which I’ve compensated by my old debugging procrastination strategy—just fiddling around until something useful happens. Sadly, it is becoming apparent to me that with statistics, nothing useful is learned if you don’t understand what you’re doing and why. :'(

The Architecture of Open Source Applications book

This link to The Architecture of Open Source Applications book was gathering dust somewhere in my ~/jot directory. In true free software spirit, it is released under a Creative Commons licence and the individual chapters are readable online. Each chapter about the architecture of a particular open source software project is written by the (co-)author of that respective project.

[…] In these two books, the authors of four dozen open source applications explain how their software is structured, and why. What are each program’s major components? How do they interact? And what did their builders learn during their development? In answering these questions, the contributors to these books provide unique insights into how they think.

Keeping an unsupported Mint/Ubuntu installation ‘up-to-date’

When a Linux Mint release goes out of support, together with the Ubuntu release on which it is based, the Ubuntu packages become unavailable. This can be annoying for old fossils like me who stubbornly contue to use a release that has gone out of support, as I’m doing with Mint 14 (Nadia), based on Ubuntu 12.10, (Quantal Quetzal). (“Yeah, yeah; I’ll upgrade soon; I promise.”) Luckily, the out-of-support packages remain available in a different location.

So, in /etc/apt/source.list, I could simply replace all instances of with, so that my /etc/apt/source.list now look like this:

deb nadia main upstream import
deb quantal main restricted universe multiverse
deb quantal-updates main restricted universe multiverse
deb quantal-security main restricted universe multiverse

G.B.D. Calamari Joomla and phpBB upgrade

As the chairman of G.B.D. Calamari, a Dutch student diving association, it falls to me to upgrade an aging Joomla configuration that is a relict of the last time that the board was chaired by somebody with web-development expertise (Joris van Alphen). This happened to be during a time when Joomla 1.5.20 was cutting-edge. It no longer is, so, although the website still looks nifty enough for this day and age (in my ageing eyes, at least), a software upgrade is long overdue.

[Note that the below is more of a disjointed collection of notes than it is an article of interest to anyone not directly involved with the maintenance of]


The first step in any upgrade, of course, is backing up everything. Everything means all the files and the complete database. I did this using the “Export” option in phpmyadmin.

One peculiarity that I noticed during the database backup was that while there there were two MySQL databases — one called calamari_phpbb and one called calamari_site — the one called calamari_phpbb actually contained the tables for both the phpBB forum and the Joomla 1.5 site; calamari_site seemed to be a legacy of an older (custom-written) incarnation of the website. upgrade

The phpBB upgrade went surprisingly well. To update phpBB, I used‘s automatic update packages to update from 3.0.8 to 3.0.12 in 4 steps:

  1. 3.0.8 to 3.0.9 (common.php merged)
  2. 3.0.9 to 3.0.10
  3. 3.0.10 to 3.0.11
  4. 3.0.11 to 3.0.12 (common.php merged again)

One by one, for each of these packages, I

  1. unpacked and uploaded the install dir,
  2. visited,
  3. updated the database,
  4. downloaded the ‘diff’, and
  5. copied it through WebDAV,
  6. checked if the update was successful and
  7. deleted the install dir.

It was quite fun (albeit a bit cumbersome) to update web software the noob way for a change.

Joomla 1.5.20 to 1.5.26

Joomla 2.5.19 is the current Joomla version (not counting the version 3 branch). The docs on upgrading from 1.5.x to 2.5 mention specifically that it’s a good idea to first upgrade to the latest 1.5.x version. Again, as with phpBB, I played the n00b game and performed the file updates by uploading the files in the the latest 1.5.x patch, overwriting the old Joomla stuff.

Joomla 1.5.26 to 2.5.19

The tricky part was yet to come: the upgrade from one major version to the next, from Joomla 1.5.26 to 2.5.19. The official guide on this process uses the jUpgrade extension. I followed the steps. jUpgrade installed the new version in a jupgrade/ subdirectory in the document root, after which I moved the old installation temporarily into a subdirectory called joomla1.5. (‘Temporarily’ may not be the most accurate qualification; now, five months later, it’s still sitting around as I’m finally polishing the last rough edges left after the upgrade.) With the old installation safed, I moved the Joomla 2.5 files from jupgrade/ to the document root. In this way, I still had access to the old, fully functional site while transitioning the templates and modules, etc.

Joomla components, modules and plug-ins

There are several Joomla components that I had to also upgrade, the most important of which is JFusion, which is necessary for the phpBB integration.


It took some tweaking to get JFusion behave as well as it did previously. The following error caused a bit of a headache (and might do so again, during future phpBB updates):

Fatal error: Cannot redeclare utf8_substr() (previously declared
in /home/calamari/public_html/libraries/phputf8/mbstring/core.php:98)
in /home/calamari/public_html/phpbb/includes/utf/utf_tools.php on line 225

The solution was to patch utf_tools.php with a version provided by the JFusion project.

JA Purity

Another process that can be challenging when upgrading between major versions of a CMS is updating the template. The template that has been used by the previous site administrator (JA Purity) seems to be quite popular, however, with a Joomla 2 and 3 version available. Too bad that he did modify it, so that I had to depend om my good old friend that is diff to figure out which changes he made. To be able to more seamlessly upgrade JA Purity in the future, I modified Joris van Alphen’s JA Purity fork to use a Calamari template theme for most of his customizations.


I re-enabled the old favicon file, by copying it to the ja_purity_ii/themes/calamari/ directory and copying a modified head.php to a new blocks/ subdirectory for that theme.

File attachments

Migrating file attachment from Joomla 1.5 to 2.5 was non-trivial. Initially, I tried this while running 2.5.7, but the new version of the attachments plugin required 2.5.7 or higher. Besides my initial confusion about how I ended up with Joomla 2.5.7 instead of 2.5.19, following the cumbersome instructions in the project‘s upgrade manual worked out well.

Event Manager

Eventually, Joomla Event Manager is set to replace the EvenList component by Schlu that Joris had used for the Joomla 1.5 incarnation of the Calamari website. For now, though, Schlu’s EventList component will do. Data migration only required copying the MySQL table rows from the Joomla 1.5 prefixed tables (“jos_”) to the Joomla 2.5 prefixed tables (“j25_”):

INSERT INTO j25_eventlist_categories SELECT * FROM jos_eventlist_categories;
INSERT INTO j25_eventlist_events SELECT * FROM jos_eventlist_events;
INSERT INTO j25_eventlist_groupmembers SELECT * FROM jos_eventlist_groupmembers;
INSERT INTO j25_eventlist_groups SELECT * FROM jos_eventlist_groups;
INSERT INTO j25_eventlist_register SELECT * FROM jos_eventlist_register;
INSERT INTO j25_eventlist_settings SELECT * FROM jos_eventlist_settings;
INSERT INTO j25_eventlist_venues SELECT * FROM jos_eventlist_venues;

Contact form

To upgrade the ALFcontact component
again only, the factory contacts had to be replaced with the old Calamari contacts, after downloading and installing the new version:

DELETE FROM j25_alfcontact;
INSERT INTO j25_alfcontact SELECT * FROM jos_alfcontact;


The Joomla 1.5 website used mod_poll for some fun (but mostly useless polls), a module which was removed somewhere during the further development of the 1.5 branch. I found no ready replacement which could import the old mod_poll content, so I decided to not install a new module.

Picasa integration

For the continued use use wgPicassa, the most important step is to upload years worth of photos to Picasa, which was supposedly inconvenient, because the Picasa account was said to be linked to Joris’ private Google Account. I thought I’d thus have to create a new Picasa account, linked to an email address and ask him to re-upload all the photo’s in his account. Luckily, it turned out that the Picassa account was already associated with an email address. So, after resetting the password using that email adress, we can now finally update the gallery.

Slideshow on public homepage

A slideshow with promotional pictures was originally displayed on the home page for non-logged in visitors (using the Unite Nivo Slider extension). It took me some trouble to find out how to display this module before the main content in JA Purity. In fact, that was the only place where I couldn’t position anything. All I could find were clumsy work-arounds, until I stumbled upon the existance of “mass positions” in the JA developer guide.

Joomla 2.5.19 to 2.5.24

I left the upgrade process were it was on Mach 31 of this year, finally continuing the process this August. In the meantime, the Joomla 2.5 branch has arrived at version 2.5.24. Luckily for me, it’s much easier to update an existing 2.5.x installation. After making a fresh backup of everything, I unpacked the archive remotely, after which I updated the database. That was it.

Left to do

  • Cleanup excess JUpgrade table.
  • Get rid of the cpanel thingy in the header
  • Move font size control from cpanel thingy to header?
  • Restore search in header
  • Reinstall XMap extension
  • Rename database to avoid future confusion

Readline shortcuts: Ctrl-s and XOFF

And another contribution to my list of Readline keyboard shortcuts. This time it’s a note by Joo Matos, pointing me to problems with the Ctrl-s shortcut. (It acts as a flow control character that pauses transmission on some terminals.)

He adds that:

It’s easy to disable special treatment of Ctrl-s by the terminal with stty -ixon.

Remember also that, if you accidentally hit Ctrl-s, it’s easy to undo the effects with Ctrl-q.

Thanks Joo!

Increasing the number of reps on my pull-ups

I’m growing increasingly frustrated with my inability to increase the number of pull-ups I can do in one set. And, after so many years, I’m still not even close to doing a single one-hand pull-up or one of those muscle-ups all the niggers on YouTube seem to be doing these days. That’s why I’m going to let one of those black dudes guide me and my puny, little white frame:

That’s Ed from Barstarzz demonstrating a program developed by Major Charles Lewis Armstrong.

The program

I’m going to try the Armstrong workout program [PDF mirror from] for this month.

Every day morning routine

During my morning routine, I’ll perform 3 sets of push-ups until exhaustion. The program doesn’t mention this, but I’m going to use a different push-up technique every day.

Progress on the program

I started yesterday with Day 2 of the program so that I can follow it from Monday to Friday. Here I’ll track my progress during the weeks to come.

Pull-up progress
Day 1 Day 2 Day 3 Day 4 Day 5
Description: 5 sets of max. reps Piramid sets (1 rep, 10 secs rest, 2 reps, 20 secs rest, etc. until failure; rest 60 sec and repeat last no. of reps same no. reps for 3*3 sets (3 different techniques; 60 sec. intervals) Same as day 3 + 1 rep/set Repeat hardest routine of the week
Week 1: Didn’t start yet 7 reps max 7 reps 8 reps 8 reps
Week 2: Pieterpad 7 reps max 8 reps (too optimistic) Left for Zeeland on Thu-night
Week 3: 12+8+6+7+8 7 reps max asleep 9*8 reps some reps
Week 4: drinking and partying too tired 9*8 reps
Week 5: Kampkater depressed depressed 9*10 reps 2*7+3*5 reps explosive pull-ups (chest to bar)
Week 6: 15+14+12+10+15 reps 10 reps max 9*11 reps
Week 7: 20+20+15+12+12 reps 9*11 reps 3*12 reps
Week 8: 12+19+10+10+9 reps 12 reps max
Push-up progress
Day 1 Day 2 Day 3 Day 4 Day 5
Description: Diamond push-ups Small push-ups Wide push-ups One-armed push-ups Hindu push-ups
Week 1: I only started with the routine on Day 2 50+20+20+10 reps 3*15 reps 50+60+20 reps
Week 2: 50+50+30 reps ?+?+? reps ?+?+? reps 3*10 reps Zeeland
Week 3: 80+40+40 reps 3*50 reps 50+50+30 reps 3*15 reps 3*50 reps
Week 4: 50+70+70 reps 3*70 reps 120(140?)+100+70 reps 20 reps
Week 5: 30+20+20 reps 3*70 reps
Week 6: 80+80 reps 100+70+50 reps 3*30 reps
Week 7: 100+70+100 reps 3*80 reps 10+20+30 reps ? reps
Week 8: 100 reps 110+100 reps 15+20 reps 100 reps
Week 9: 120+100 reps 3*50 reps 30+50+50 reps [pansy-ass sore knuckles] 100+ reps

Converting a Subversion repository to Git

I just used the instructions in this article by John Albin to archive an old svn project on my private machine.

A shell summary (see the John’s article for details):

svn log -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > authors-transform.txt
vim authors-transform.txt
# Make changes
git svn clone [SVN repo URL] --no-metadata -A authors-transform.txt --stdlayout ~/temp
git svn show-ignore > .gitignore
git add .gitignore
git commit -m 'Convert svn:ignore properties to .gitignore.'
git init --bare ~/new-bare.git ~/new-bare.git
git symbolic-ref HEAD refs/heads/trunk
git remote add bare ~/new-bare.git
git config remote.bare.push 'refs/remotes/*:refs/heads/*'
git push bare
rm -rf ~/temp
git branch -m trunk master
git for-each-ref --format='%(refname)' refs/heads/tags |
cut -d / -f 4 | ref
  git tag "$ref" "refs/heads/tags/$ref";
  git branch -D "tags/$ref";

John has also put all this into a number of scripts published on GitHub.

« Older posts Newer posts »

© 2022 BigSmoke

Theme by Anders NorenUp ↑