Last week I started at Vevida, a hosting company, as part-time PHP Developer. It is my responsibility to look after the website. I’m looking forward to continuously improving it and making sure it serves our customers well.

Alongside working, I’m also still reading Computer Science. So I will be a lot busier from now on! Please keep that in mind when you try to contact me.

Op verzoek van de gemeenschapsraad van Ubuntu Nederland heb ik een draaiboek geschreven voor de verkiezingen van een nieuwe gemeenschapsraad. Ik heb geprobeerd om te het proces zo duidelijk mogelijk te beschrijven. Als je nog vragen of opmerkingen hebt, reageer op dit bericht, of stuur een mailtje.

Download: Draaiboek verkiezingen Ubuntu Nederland

Since it is almost that time of the year again when the Ubuntu Developer Week will start, I would like to introduce you to nice tool developed by a team in the Dutch Ubuntu community: Just For Learning. Very much like the well-known desktop application, Lernid, the goal of Just For Learning is to make giving online workshops easier. Instead of having to learn how to connect to two IRC channels, they only have to visit this easy web application.

In my local community, Ubuntu Nederland, we have a team that occupies itself with just that: educating the community. The team of Ubuntu NL Mwanzo is very active in reaching out to newcomers to our LoCo. A part of their pursuits concerns giving workshops just like the Ubuntu Developer Week I mentioned earlier. They usually employed IRC to hold these sessions, following the familiar #*-classroom/#*-classroom-chat paradigm. However, they thought it could be done better and a group of interested people got to work.

The application, available in both English and Dutch, has three IRC-based chatrooms: one for the teacher, one to ask and answer questions and one for the general chatting. The fourth pane shows a schedule and displays links mentioned in the classroom. People who want to follow the course with their IRC client can choose to do so too. Teachers are authenticated using the Ubuntu SSO Service. Students only have to give a user name.

The Dutch instance is live on http://communityserver.ubuntu-nl.org/justforlearning/. As you can see, the interface is very simple and easy to use. When you hold your event, all you need to do is provide a link to the site and your audience can join in from any browser on any device with internet.

If you or your team is interested in using this, or have any questions, please look at the project’s Launchpad page or leave a comment here. You may also try the #Ubuntu-nl-mwanzo IRC channel. The code is located in the Bazaar branch lp:justforlearning. The code is still not stable!

In case I changed the theme again, this is the 'new' look.

A few months ago my site received a much needed overhaul. I updated the structure and looks and went crazy on Googly Web 2.0 mark-up stuff. Considering I am not a webdesigner, I am quite pleased with the result.

There are probably many more non-designers like me, also looking to build their own personalised WordPress site, so I thought I’d share my experiences. This post is aimed at amateurs who want to give their personal site an own look without too much hassle.

Don’t start from scratch

The previous theme was written entirely from scratch, using a few pieces of code copied from the default TwentyTen theme. What I learned from that enterprise is that it is very hard to do everything yourself, if you’re not a professional. Many rough ends will make your theme look less tidy and your lack of skill results in a theme that is harder to navigate and read.

So, I decided to go with an often forgotten feature of WordPress theme development: child themes. The TwentyTen is a very solid base to build upon, the way it presents texts is very easy on the eyes. By using a good theme as a starting point for your child theme, you have all its advantages. Because you’re creating a child theme and not forking TwentyTen directly, updates to the original theme will automatically benefit your theme as well.

The simple start

The only file you really need is the CSS file. Create a new directory with the slug name of your theme in wp-content/themes/ and add an empty file to it named style.css. I added the following header:

/*
Theme Name: seh
Theme URI: http: //www.sensehofstede.nl/
Description: Theme for SenseHofstede.nl, child theme of Twenty Ten
Author: Sense Hofstede
Author URI: http: //www.sensehofstede.nl/about/
Template: twentyten
Version: 0.1.0
Tags: blue, white, threaded-comments, translation-ready, microformats,
custom-menu
*/

@import url("../twentyten/style.css");

With a stylesheet containing just these few lines of code, you’ve already got a working theme. It does look quite similar to TwentyTen though. But now you can start working on adapting the style. Make sure that you place all your own CSS after the @import rule, so you will override existing entries in the stylesheet of TwentyTen!

If you only want to make a few adjustments, just adding the stylesheet will do the trick. Maybe all you want are a different font and some changes to the default colour palette. If you want more, however, you will have to add PHP files.

WordPress processes child themes like this: it first looks for files in the child theme’s directory, then in the directory of its parent theme. When you don’t create a custom header.php, your theme will continue to use the TwentyTen header. This rule, however, does not apply to the important functions.php file. Every file with that name present in both the child and parent theme will be loaded, the child theme’s first. This behaviour gives you a very powerful to adapt important parts of the theme without having to create new template files.

Playing with functions

If you look to the top of this blog post you will see that underneath the title the date and time this post was published are shown. The function responsible for this is defined in a specific way that allows overriding.

if ( ! function_exists( 'twentyten_posted_on' ) ) :
function twentyten_posted_on() {
    STUFF
}
endif;

If you write your own twentyten_posted_on() function in your child theme’s function.php, TwentyTen will not try to define it again, but instead use yours. You can change more parts of the theme without having to create your own template files.

Template files

But if you want to do more, you will have to dive deeper in the code. I wanted to change my header a lot from what TwentyTen offers, so I created my own header.php file and used that. As soon as I placed it in the child theme’s directory, it replaced the default header. This can be done to replace all PHP files you find in the parent theme’s directory.

Interesting template files you could consider replacing, are loop.php and loop-single.php, which are used everywhere to display a post or lists of posts and searchform.php, which is used to display the search form when available.

Here another advantage of child themes becomes clear: you can create template files for the most common pages and leave the rarely used ones to the parent theme. Also, if WordPress decides to add a new page, your theme will automatically support it as soon as the update arrives.

Important to notice

There are some things to keep in mind while working on the child theme. By default you would use bloginfo(‘template_directory’); to print the base path when embedding images. But when you want to use images in the directory of the child theme, you will have to use bloginfo(‘stylesheet_directory’); instead.

I wrote this post for the TwentyTen theme, but since then TwentyEleven has been published. Although it probably works just as well for the greatest part, there might be some minor differences. Also check the new template files like content-*.php.

Have you got one of those nifty Samsung Galaxy S II phones? Thanks to its Android operating system it works great together with Ubuntu out of the box. But what if you want to root it or use a custom MOD? For Windows there is ODIN to flash firmware, but what do you use on Ubuntu?

You use Benjamin Dobell’s Heimdall. It does not only work on Linux, Mac and Windows, but it is also open source. The code is available from GitHub.

Howto

When you want to install a custom MOD like CyanogenMod or MIUI, you need to have the ClockwordMod ROM Manager to install. That requires a rooted kernel anyway, so whether you just want to root your phone or do more, the initial steps are the same.

First you need to pick a rooted kernel. The XDA Developers forum forum for the I9100 is a good place to look. I always use the CF-Root kernel. It already includes ClockwordMod, so you don’t have to install that from the Android Market. Download the kernel here.

Download Heimdall from here and install it. There are *.debs available. If you wish, you can use the frontend, but I have found the command line interface (CLI) to be more reliable.

Unpack the previously download kernel: you will end up with a file named ‘zImage’. That is your kernel.

Shut down your phone. Now start it in download mode by holding the home, volume down and power buttons down at the same time. Press volume up to confirm and connect your phone to your PC with its USB cable. Realise that your (extended) warranty is void once you’ve flashed.

Open your terminal of choice and navigate to the directory you unpacked the kernel image in.

Execute this command:

sudo heimdall flash --kernel zImage

After it is done, your phone will automatically reboot. Congratulations, your phone is now rooted!

If you want to use a custom ROM, now place the downloaded ROM archive on the phone’s storage, shut the phone down and launch it in recovery mode by pressing volume up and the home button during boot. Choose the ‘install from sd card’ option. Make sure you delete the Dalvik cache and user data before restarting, or your phone will be stuck in an endless boot loop!

Restore

If you want to restore your phone to its original state, you need the official firmware and a backup of your data you naturally made before starting. On the XDA Developers forum, a great person maintains a thread with a collection of official firmware.

Unpack the download archive, open a terminal and navigate to the resulting directory. There execute this command:

sudo heimdall flash --kernel zImage --cache cache.img --factoryfs factoryfs.img --hidden hidden.img --modem modem.bin --param param.lfs

Make sure you delete the Dalvik cache and user data before restarting, or your phone will be stuck in an endless boot loop!

Zoals beloofd nu wat getallen over de tussentijdse verkiezingen van Ubuntu Nederland. Het is leuk om te lezen, maar ook belangrijk voor het uitoefenen van controle over de gang van zaken!

De uitslag was als volgt:

  1. Sense Egbert Hofstede:    34 punten, 51% van het puntentotaal
  2. wandarooze:                        23 punten, 34% van het puntentotaal
  3. femke86:                                    9 punten, 13% van het puntentotaal

Van de 46 stemgerechtigden hebben in het totaal 22 mensen hun stem uitgebracht door punten te verdelen over de drie kandidaten. Dat is een opkomst van 47,8%.

Als je alles zelf nog eens na wilt kijken, kijk dan naar de (opgeschoonde) database dump van de stemwebsite.

De resultaten voor de tussentijdse raadsverkiezingen van Ubuntu Nederland zijn binnen nadat de verkiezingen om acht uur vandaag afliepen.

Ik ben blij om te kunnen melden dat Tom Rooze en ik verkozen zijn om de gemeenschapsraad van Ubuntu Nederland te versterken. Ik hoop dat we een positieve bijdrage zullen kunnen leveren aan de lokale gemeenschap.

Daarnaast wil ik ook femke98 bedanken voor haar deelname aan de verkiezingen. Helaas zijn er bij een verkiezingen ook verliezers, maar dat neemt niet weg dat ook femke98 een belangrijke bijdrage levert aan de gemeenschap. Ik hoop haar nog vaak te zien in de gemeenschap.

De eerstvolgende raadsvergadering is donderdag 10 november van 20.00 tot 21.30 in #ubuntu-nl-meeting.

Reading Amber Graner’s post about Tuesday’s meeting of the Community Council, I recognised a feeling that I also had when I stopped being an active member of the community in January this year. At that time I felt depleted of the enthusiasm for the community that once flew through my veins. What made my enthusiasm go away?

Apart from changes in my personal life, I was also affected by a sense of purposelessness. I had no idea what I was doing in the community anymore, so I just quit. I feel that this is a general problem in the community. A successful and happy community needs something to do. It needs a responsibility, something it can focus on. For the greatest part of the five years that I have been an active part of the Ubuntu community, I felt part of a group that was working together on creating the best distribution. There was a clear goal: making the best operating system of them all.

The difference with today is that the primacy of innovation, of change, appeared to be much more in the community back then. We were all excited about the upcoming changes and the direction we were heading towards, because we all knew what those changes and directions were. For people to be excited about something, they need to know what to expect.

Ubuntu has matured enormously. Canonical has acquired so many skilled people that I do not fear for the quality of Ubuntu. It is only going to be better. However, that maturation has come with a price: as Canonical moved more and more to an Apple-style secrecy surrounding its plans, the community has been robbed from the vital basking in the glory of the upcoming changes. Because of the way the plans are announced, the community also doesn’t always feel them to be theirs.

Is this a bad thing? Not necessarily. I believe that Canonical’s approach will probably lead to better designs. However, the atmosphere in the community needs to be improved if we want to keep everyone motivated and give the people a sense of purpose. Currently, the responsibility of the community is quite uncertain. On the one hand, Canonical makes it appear in its communications that the community has more influence than it actually has. It says that all employees are community members, whereas many are in fact not. It decides many things on its own, but then says it involves the community. But Canonical seems to steer the Ubuntu project on its own.

I do not disagree with the way Ubuntu is run. However, I do believe that it is vital that the truth is not denied, like the political ‘leaders’ of Europe currently do when talking about Greece. Saying that Ubuntu is created by the community does not make that true. Stop it. Honesty will improve a lot, because it will reduce unrealistic expectations.

With the fallacy of the community running the project removed, the community does need something to replace that. To return to the beginning of my post, what I believe is causing the leadership lethargy that was mentioned in the Community Council, is uncertainty about the responsibility of the community. It should be made clear exactly what role the community plays in creating Ubuntu. What decisions can it make? What can it contribute? What is the reach of the authority of the Community Council over the project? Once that is clear, the roles of the different leaders can be defined within that responsibility. Then they know what their purpose is. Having a purpose, having influence motivates people.

Somewhat related: maybe it would be a good idea to make in every team somewhat responsible for community and contribution management. For example, if you as a community volunteer contribute code to the desktop, who will look after you? Who will make sure that your work doesn’t go to waste? Such a change would also take of stress from the shoulders of the community team, which should not be used for such wide purposes.

Omdat ik niks meer van me liet horen en omdat Keimpe zich wegens omstandigheden terutrok Omdat Keimpe en ik niks meer van ons lieten horen, heeft de gemeenschapsraad van Ubuntu Nederland in juni dit jaar besloten ons uit de raad te zetten. Sindsdien bestaat de raad nog maar uit vijf personen en heeft de gemeenschapsleiding een meerderheid. Dit is niet een goede stand van zaken, dus er zijn nu tussentijdse verkiezingen om de twee personen te vervangen. (Let op: de personen die nu gekozen worden, zullen niet nog twee jaar zitten. Wanneer de tweejarige termijn van de huidige raad afloopt in april 2013 zal iedereen tegelijk vervangen worden.)

Hoewel ik zelf helaas één van de redenen ben voor de tussentijdse verkiezingen, wil ik toch opnieuw iets betekenen voor Ubuntu Nederland. Daarom stel ik mij kandidaat voor de gemeenschapsraad. Op de stemwebsite heb ik de volgende motivatie gegeven:

Ondanks mijn misstap eerder dit jaar wil ik toch iets blijven betekenen voor Ubuntu Nederland. Dat denk ik te kunnen doen door mij kandidaat te stellen voor de gemeenschapsraad.

Als gemeenschapsraadslid hoop ik mee te kunnen denken bij de verschillende uitdagingen van onze lokale gemeenschap: de herkeuring, het oprichten van een stichting en het zorgen voor een aanwezigheid op zoveel mogelijk plekken on- en offline.

Ik heb veel ideeën en meningen en een duidelijk beeld van wat in mijn ogen een goede richting zou zijn voor de toekomst: professionalisering van het bestuur en versterking van de banden binnen de gemeenschap. Alleen dan kunnen we er zijn voor elkaar, alleen dan kunnen we naar derden Ubuntu uitdragen.

Met meer dan vijf jaar ervaring in de internationale Ubuntu-gemeenschap en grote betrokkenheid bij de organisatie van Ubuntu Nederland zelf, kan ik mijn weg goed vinden in de wereld waarin de lokale gemeenschap zich bevindt. Canonical Ltd. heeft mij in 2010 voor beide Ubuntu Developer Summits gesponsord en toen GUADEC in Den Haag was, was ik betrokken bij de organisatie.

De kennis en contacten die ik opgedaan heb met die activiteiten komt goed van pas bij een functie in de gemeenschapsraad. De mix van technische en bestuurlijke activiteiten geven mij een brede basis.

Denk jij dat je ook bij kunt dragen aan de organisatie? Je hebt nog een week om je kandidaat te stellen voor de gemeenschapsraad van Ubuntu Nederland. Heb je al stemrecht, ga dan naar de stemwebsite en geef je op. Heb je nog geen stemrecht? Vraag het dan eerst aan bij de gemeenschapsraad.

Ik heb net de volgende mail gestuurd naar de maillijst van de gemeenschapsraad. Hij spreekt voor zich.

Teken van leven

Beste raadsleden,

Het is lang geleden sinds ik voor het laatst mijn Ubuntu-mail geopend heb. Het zal ergens in de laatste week van april zijn geweest dat ik mijn IRC-cliënt voor het laatst afsloot en vanaf dat moment heb ik alles van Ubuntu zoveel mogelijk genegeerd. Het heeft nu ongeveer vijf maanden geduurd.

Dat is onacceptabel.

Gezien mijn duidelijk vertoonde ergenis over de afwezigheid en onbereikbaarheid is mijn eigen gedrag hypocriet en slecht. Ik wil dan ook mijn oprechte excuses aanbieden aan de gemeenschapsraad en aan de gehele gemeenschap van Ubuntu Nederland. Ik hoop in deze mail wat uit te kunnen leggen en dingen te kunnen regelen. Ik hoop dat ik nog een paar dingen recht kan zetten. Over mijn eigen positie heb ik wel mijn twijfels. Dat ik verdween was al erg genoeg, maar dat ik dat deed zonder iets te zeggen was onvergefelijk.

Het is best wel raar dat net nadat ik verkozen was tot voorzitter van Ubuntu Nederland volgens het door mij uitgedokterde organisatievoorstel, ik plotseling verdween. Waar sloeg dat op? Het proces werd in gang gezet door school: in de laatste week van april namen we afscheid van onze middelbare school, de eerste twee weken van mei waren een vakantie die we gebruikten om te leren voor de eindexamens die in de tweede helft van mei waren. Daar was ik erg druk mee en het was op zichzelf niet raar om vanwege de eindexamens een tijdje wat rustiger aan te doen bij Ubuntu Nederland. Maar dan had ik dat natuurlijk wel aan moeten geven.

Er speelde echter meer. Ik ben actief geweest voor Ubuntu vanaf het begin van 2006. Tot begin dit jaar ben ik actief gebleven voor de internationale gemeenschap. Gedurende die tijd wisselde mijn motivatie sterk, maar ik bleef wel steeds actief. Mijn eerste echte betrokkenheid bij Ubuntu Nederland kwam pas relatief laat, toen ik met Sebastian Schauenburg en Jan Claeys sprak over onze nationale LoCo tijdens de UDS in Brussel, in mei 2010. Ik ben vanaf dat moment steeds meer betrokken geraakt bij Ubuntu Nederland, omdat ik werk zag liggen en dat oppakte, want ik vond dat bepaalde dingen beter konden en heb over veel dingen wel een mening. Terwijl ik zo steeds verder betrokken raakte bij de organisatie van UNL negeerde ik wel steeds een knagend gevoel dat het mij aan motivatie ontbrak.

Tijdens het laatste jaar van de middelbare school veranderde ik als persoon ook behoorlijk. Met die veranderingen verschoven ook mijn interesses en Ubuntu verdween daarbij meer en meer naar de achtergrond. Toen ik eind april dus ineens mijn volle aandacht richtte op school en op de sociale dingen daaromheen, had ik ook al een motivatieprobleem. Eigenlijk had ik mij al liever niet kandidaat willen stellen voor het voorzitterschap, maar omdat ik vond dat er niemand anders was die het stokje op zou pakken zoals ik dat wilde, besloot ik er toch voor te gaan. Dat wreekte zich, want toen ik eenmaal een tijdje de Ubuntu-mail gesloten hield, voelde dat eigenlijk best wel goed. Een rust daalde over mij neer en ik bleef het maar afstellen om naar de mail te kijken.

Omdat ik het zo wegduwde en omdat ik druk bezig was met school, verdween het uit mijn hoofd. Voor ik het wist waren er zo een paar weken voorbij. Op dat moment wist ik dat er een hele dikke stapel mail op me zou staan te wachten wanneer ik terug zou komen. De rust van een Ubuntu-loos bestaan trok me ook nog steeds en ik bleef het maar afschuiven. Uiteindelijk kon ik mijzelf er niet meer toe bewegen mijn mail te openen. Ik had er geen zin in en ik schaamde mij. Toen was het zomaar september.

Ik schaam mij nog steeds. Ik heb mij gedragen op een manier die in gaat tegen wat ik wil zijn. Ik bied nogmaals mijn oprechte excuses aan.

Hoe nu verder? Ik heb de logs van de vergaderingen vluchtig doorgelezen en ik moet zeggen dat ik erg blij ben met hoe het toch nog gaat. De gemeenschapsraad laat zien dat ze zich goed kan redden zonder de voorzitter. De dingen gaan gewoon door en volgens mij zijn we inmiddels zelfs succesvol van hoster gewisseld. Mijn complimenten. Het regelmatig vergaderen binnen een vaste structuur lijkt zijn vruchten af te werken. De gemeenschapsleiding is echter onzichtbaar zonder hoofd, dat verrast me niet, want dat is het gevolg van de natuur van de leiding. Daarnaast valt me op dat het vooral Thomas lijkt te zijn die aan dingen trekt. Dat is geweldig van Thomas, maar het zou gezonder zijn wanneer meer mensen de kar trekken.

Ubuntu Nederland kan dus prima zonder mij. Nu is de vraag, wat moet er gebeuren met mij? Het organisatievoorstel dat ik zelf geschreven heb is niet mild over wat ik gedaan heb: jullie hadden mij 10 juni al er uit mogen gooien. Toch is Ronnie slechts vervangend (interim?) LoCo Contact gemaakt en Thomas voorzitter van de vergaderingen. Op Launchpad sta ik nog als voorzitter.

Ik vind dat ik het recht verspeeld heb om zelf te beslissen of ik in functie wil blijven. Dat is aan de gemeenschapsraad, misschien zelfs wel aan de stemgerechtigden. Ik vraag dus aan jullie wat jullie willen met mij. Ik twijfel of ik het in me heb een actieve voorzitter te zijn die overal aan trekt, ook bij promotie e.d.. Ik zou best willen blijven bijdragen aan de organisatie van Ubuntu Nederland in de gemeenschapsraad of gemeenschapsleiding of misschien als digitale voorzitter. Door mijn studie informatica aan de Rijksuniversiteit Groningen heb ik mijn motivatie nu wel weer herpakt. Maar ik zal wel iemand zijn die misschien minder hard achter evenementen aan zou rennen dan bijvoorbeeld Thomas, ik zou dat aan anderen over laten. Maar goed, dan moeten jullie mij nog wel willen. Het ligt bij jullie. Ik zou het begrijpen wanneer jullie het vertrouwen in mij verloren hebben.

Het spijt me.

Met vriendelijke groeten,

Sense Hofstede

http://www.sensehofstede.nl/