Learning git

Posted May 4th, 2012 by Floris Lambrechts
Categories: English, Open source, Software, Technology

At work we mainly use Subversion for version control. For what it does, it works fairly well.

But everyone else has been using git for ages (GitHub is hugely popular, and projects like Drupal have also made the switch). Added to that: the few times I’ve tried branching in SVN, the ensuing merges ruined my day — completely.

So I decided to learn git, for professional work (superior branching/merging) and for personal stuff (working with Drupal and GitHub code, among others).

I started at home, archiving my /home/flo/data/ documents in git and syncing it on multiple computers.

Next, I made the jump in a big way at work: I’m now using git-svn for new projects. So I’m using git, while also still publishing the commits to (remote) SVN.

For using this workflow and still knowing what you’re doing, you need to advance fairly high on the git learning curve:

  • adding and committing (obviously)
  • branching
  • stashing changes
  • merging branches
  • rebasing branches

So far, so good: working with git-svn is going quite smooth.
It turns out git’s merging is nice, but the interactive rebasing (rewording, reordering and squashing commits) before publication is even nicer.

Online resource I’ve appreciated along the way:

  • Hg Init, to un-learn the limitations of Subversion
    • Read it twice if you suffer from CVS, Visual SourceSafe or worse symptoms!
  • The Git Parable by Tom Preston-Werner
    • Conceptually explains why it’s a good idea to have full-history commits.
  • New artisans’ Git from the Bottom up
    • Explains the hashes, trees and blobs that Git is built on.
    • It’s only a pity that this detailed technical approach is given up halfway through the document, where the usual high-level “let’s-draw-some-trees” approach takes over.
  • Some nice rants (not always correct though): Steveko 10 things I have about Git, Reinvigorated programmer Git is a Harrier Jump Jet

Keel/oor/amandelpijn

Posted April 18th, 2012 by Floris Lambrechts
Categories: Nederlands, Persoonlijk

Na 7 jaar professioneel leven zonder een dag ziekteverzuim hebben de virussen en bacteriën me er uiteindelijk toch onder gekregen.

Momenteel verwerk ik mijn vierde keelontsteking in drie maanden tijd, met tussenin nog een weekje hoestbuien (“genre TBC” volgens een collega).

De dokter vermoedt ‘hyperreactiviteit’. Kort gezegd is dat een ander woord voor ‘heel snel ziek’ ;-) .
Blijkbaar een soort van allergische reacties van de slijmvliezen, zonder echt voor iets specifiek allergisch te zijn. En die ontstekingen – keelpijn, pijnlijke amandelen en een drukkend gevoel op de oren – zijn daar gewoon een neveneffectje van.

Het vreemde is dat ik me ‘s ochtends meestal kiplekker voel, om dan geleidelijk aan de dag door te strompelen en ‘s avonds als een slappe vod in de zetel te eindigen.

De pillen en sprays van de dokter slagen er goed in om de symptomen weg te werken, maar doorgaans begint de miserie een week nadien gewoon opnieuw. Best vermoeiend op den duur…

Woordspelingen

Posted March 12th, 2012 by Floris Lambrechts
Categories: Nederlands, Taal, Woordspelingen

Om plaats te maken voor vers bedachte woordpelingen, eerst nog een paar oude die nog niet gepubliceerd waren…

  • Shoppemiekes
  • Schrokolade
  • Sportdopmanager

Expericept: hutsecroque

Posted March 6th, 2012 by Floris Lambrechts
Categories: Culinair, Nederlands, Taal, Woordspelingen

Culinair zal deze blog nooit hoge toppen scheren, wees gerust.

Maar wanneer een experiment in de keuken kan leiden tot twee woordspelingen — een specialiteit van het huis, als het ware — dan willen we u de details niet onthouden.

Dus ziehier: een experimenteel recept voor één-pans croque monsieur; officieel getiteld het hutsecroque expericept.

  • Begin met een enorme hoeveelheid broodkorsten waar je vanaf wil. Bijvoorbeeld — zuiver hypothetisch geval uiteraard — overschotjes van een baby die enkel de zachte stukjes eet.
  • Snij de korsten in stukjes van 3 à 4 centimeter.
  • Een klontje boter in de pan (à la Meus uiteraard) en de korsten erbovenop.
  • Een paar minuten laten bakken, af en toe roeren.
  • Twee sneetjes kaas in vierkantjes snijden en mee de pan in.
  • Indien gewenst, idem met een schelletje hesp.
  • Nog even laten opwarmen zonder roeren.

Resultaat: een hutsecroque die naar croque monsieur smaakt (verrassing!) en een interessante textuur heeft, vooraal daar waar de korsten aan elkaar plakken dankzij de gesmolten kaas. En sneller klaar dan gewone croque.

Ergernissen

Posted September 27th, 2011 by Floris Lambrechts
Categories: /var/, Nederlands

In licht tot extreem sterk stijgende volgorde van ergernis:

  • Roomijsventers die de twee bollen in de foute volgorde opscheppen
  • Broodzakken die openscheuren als je ze aan het fietsstuur vasthoudt
  • Douches die op koud springen als ge met uw gat tegen de kraan stoot
  • Landen die onterecht veroordeelden koudweg executeren

Zie ook een eerdere aflevering

Subversion gedeeltelijke authorisatie: niet anoniem via Apache

Posted July 6th, 2011 by Floris Lambrechts
Categories: Nederlands, Open source, Software

Opgelet als je Subversion host via Apache en slechts bepaalde delen van een repository wilt afschermen van anomieme gebruikers.

Het blokkeren is geen enkel probleem, maar de toegang toestaan voor specifieke users is heel wat anders.

Standaard zal Apache (met basic authentication) de gebruikers namelijk anoniem doorgeven aan SVN. Wanneer die dan ziet dat er authenticatie nodig is voor een bepaald pad, dan is de verbinding al open en is het te laat om nog te authentificeren.

De domme workaround is dan om anonieme access af te zetten op heel de repository, zodat iedereen geauthentificeerd binnenkomt. De betere oplossing (de ‘Satisfy Any’ truc) werkt helaas enkel met svnserve en niet via Apache om bovenstaande reden.

Voor degenen die nog niet zijn overgeschakeld op iets beters, that is.

Foute analogie: auto en computer

Posted June 30th, 2011 by Floris Lambrechts
Categories: Nederlands, Usability

Al lezend over user interfaces kom je vaak een kromme vergelijking tegen: die tussen een computer en een auto.

Een auto wordt dan beschreven als een verschikkelijk ingewikkelde machine met honderden parameters die toch eenvoudig te bedienen is. Een sterk staaltje in vergelijking met de computer, die veel moeilijker te bedienenen is.

Deze vergelijking is compleet waardeloos, en wel om twee redenen.

Ten eerste is de usability van een auto ronduit slecht te noemen; een beginner kan er zonder hulp gewoonweg niks mee aanvangen. Je hebt bijvoorbeeld drie quasi identieke pedalen die toch heel verschillende effecten hebben.

Ten tweede is de interface van een auto relatief ‘simpel’ enkel omdat de taak die je ermee uitvoert zeer eenvoudig is. Want wat wilt de gebruiker van de auto de machine eigenlijk laten doen? Dat zijn maar twee dingen: harder dan wel trager rijden en meer naar links of rechts draaien. Twee parameters dus; da’s alles.

Bij het werken met een computer is de boodschap die de gebruiker moet overbrengen aan de machine heel wat complexer; logisch dus dat dat wat moeilijker gaat.

Al is dat vaak nog altijd onnodig veel moeilijker dan dat het zou kunnen zijn.

URL rewrites

Posted March 19th, 2011 by Floris Lambrechts
Categories: English, Open source, Software, Web stuff

Apache URL rewriting can be tricky sometimes (beware spaces!), and I have a nasty habit of forgetting my old tricks.

So here goes:

Make a file available without HTML extension:

RewriteRule ^article$ article.html [nocase]

Redirect to another path:

RewriteRule ^nice-article$ /articles/nice-one [nocase,redirect=permanent,last]

Remember to start the redirect path with a slash!

Redirect users ‘guessing’ an archive URL to the correct URL:

RewriteRule ^(20\d{2})$ /archive/$1 [redirect=permanent,last]

Redirect users to the domain name with www. prefix added:

RewriteCond %{HTTP_HOST} ^domain.com$ [NC] RewriteRule ^(.*) http://www.domain.com/$1 [L,R=301]

Remember that you can combine multiple RewriteConds by adding them before the RewriteRule.

And finally, these are the flags shortcuts:

nocase|NC last|L ornext|OR redirect|R =[HTTP redirect status code] or [temp|permanent|seeother]

Verantwoordelijk

Posted January 18th, 2011 by Floris Lambrechts
Categories: Media, Nederlands, Politiek

In normalere politieke tijden zou je een warm gevoel moeten krijgen wanneer invloedrijke mensen bevestigen dat ze hun verantwoordelijkheid willen opnemen.
Spijtig genoeg blijkt dat de laatste jaren makkelijker (en vooral: veel vaker) gezegd dan gedaan.

Eind december werd Wouter Beke verkozen tot voorzitter van CD&V. Hij kwam ter gelegenheid met een korte reactie in het journaal.
Halverwege zijn uitleg haalde Beke even adem, net lang genoeg voor een gedachteflits bij de verwachtingsvolle kijker “… en nu nog snel het cliché over verantwoordelijkheid opnemen zeker?”. En jawel hoor, Wouter was maar wát blij dat hij nu pas helemaal voor honderd procent zijn dinges zou kunnen opnemen.

Proficiat Wouter, maar — zonder te twijfelen aan je goede bedoelingen — dit is qua uitdrukking echt een lege doos geworden — een uitgeholde en versleten lege doos bijna.

Vandaag meldt VMMa, na zeven jaar geld te hebben verdiend aan bedenkelijke belspelletjes, dat ze “hun verantwoordelijkheid opnemen” en ermee ophouden.
Niet omdat ze onethisch bezig waren of zo, oh nee hoor, het is gewoon wat lastig dat er een “maatschappelijke hetze gecreëerd is”. Ocharme.

Het ‘maatschappelijk draagvlak’ voor de belspelletjes, dat er eigenlijk nooit echt geweest is, zou nu opeens weggevallen zijn.

Wat zeggen de politici, die op zijn minst een beetje laks gebleven zijn in dezen? Die zijn nu oprecht blij dat de familiezender “zijn maatschappelijke verantwoordelijkheid neemt”.

Had ik het niet gedacht! :-)

Spiegelloos

Posted June 23rd, 2010 by Floris Lambrechts
Categories: Consumerism, Foto, Hardware, Nederlands

Vijf jaar geleden kocht ik een fototoestel.

Sinds die tijd hield ik een half oogje op de evolutie van digitale spiegelreflex cameras. Zou het de moeite waard zijn? De prijzen zijn gezakt, de beeldkwaliteit is super, tegenwoordig heb je goeie video-mogelijkheden… Het ideale moment om de overstap te wagen, zo lijkt het.

Maar ik ben niet gezwicht.

Je kiest een (goedkope) spiegelreflex voor zijn beeldkwaliteit en goeie prestaties bij weinig licht dankzij de (relatief enorme) beelsensors.

Maar de dag van vandaag is er nog een ander type camera dat vergelijkbare voordelen biedt: de spiegelloze compactcamera met verwisselbare lenzen.

  • De sensoren zijn groter dan die van compactcamera’s, waardoor de prestatie bij weinig licht beter is en je kan spelen met scheptediepte.
  • Toch blijven de sensoren nog wat kleiner dan in een spiegelreflex, waardoor de camera’s én lenzen kleiner zijn.
  • Door de afwezigheid van een spiegel wordt de behuizing ook platter, maar…
  • … dat betekent ook dat je geen zoeker hebt, op de meeste modellen kan je enkel kijken op het scherm.
  • … wat eigenlijk ook al geldt voor de meeste ‘gewone’compactcamera’s.

Een nieuw soort camera dus, met voor- en nadelen ten opzichte van de spiegelreflex.

GF1 size

Ik heb uiteindelijk de sprong gewaagd en speel nu met een Panasonic Lumix GF-1 (met micro Four Thirds lens-system). De eerste ervaringen zijn meer dan OK, waarover later ongetwijfeld meer…