eID en Fedora. 24 deze keer.

Bijna iedere keer als je je eID wilt gebruiken onder Linux, moet dat anders. Die indruk heb ik tenminste. Vandaag lukte het na veel proberen op deze manier:

Ik heb de middleware uiteindelijk handmatig gebuild, van de tar.gz-source die ik downloade van http://eid.belgium.be/en/using_your_eid/installing_the_eid_software/linux. Achteraf bekeken was dat misschien niet nodig. Hoe dan ook, ik moest deze pakketten installeren om de middleware te kunnen builden:

sudo dnf install pcsc-lite-libs pcsc-lite-devel gtk3-devel

Blijkbaar moet ook de pcscd-service gestart zijn, dat is iets voor de usb-kaartlezer.

sudo service pcscd start

Zo werkte de eID. Dit keer had ik ook Java nodig. Waarschijnlijk om de security van de eID terug wat ongedaan te maken. Ik installeerde de rpm van https://www.java.com/en/download/linux_manual.jsp, maar dan moest ik ook nog de browser plug-in kunnen gebruiken:

ln -s /usr/java/jre1.8.0_111/lib/amd64/libnpjp2.so ~/.mozilla/plugins

Allez, we kunnen weer even verder. Tot volgende week waarschijnlijk, wanneer Fedora 25 gereleaset wordt :-/

Nog een dikke week voor de belastingsaangifte...

Dus tijd voor mijn jaarlijkse blog post over Tax-On-Web met Linux.

Dit jaar met Bunsenlabs, maar dat is eigenlijk een getunede Debian 8 (Jessie).

sudo apt-get update
sudo apt-get install eid-mw eid-viewer
  • Dan nog in about:config security.tls.unrestricted_rc4_fallback op true zetten. Waarschijnlijk is dat een security isssue.

Dat was het. Browser herstarten, en het werkt. Probeer eventueel de test als je niet zeker bent.

Ik heb niet expliciet een browser add-on moeten installeren, maar er is er wel een geïnstalleerd in mijn Firefoxinstantie: Belgium eID 1.0.18.1-signed.1-signed. Ik ben niet zeker of die mee kwam met een van de packages van daarnet. Misschien zat die gewoon nog ergens in mijn Firefox Sync.

Happy tax-on-webbing!

Een minimum aan git

(Disclaimer: Deze tekst heeft nog wel wat opkuis nodig.)

Van zodra je eens een programmeeropdracht moet doen die iet of wat complex is, moet je eigenlijk een versiebeheersysteem gebruiken. Zo'n versiebeheersysteem helpt je bij te houden welke wijzigingen je maakte aan je broncode. Stel dat je een aantal wijzigingen maakte, en je bedenkt je dat je het toch beter op een andere manier zou aanpakken, dan kun je die wijzigingen makkelijk ongedaan maken. Of als je merkt dat iets niet meer werkt sinds enige tijd, kun je makkelijk zien wat er sinds dien veranderd is, en dat kan je dan helpen om het probleem te localiseren.

Als je iets serieus moet programmeren, dan gaat een versiebeheersysteem meer dan eens je hachje redden. Je zou dus denken dat het gebruik daarvan opgenomen is in elke cursus programmeren. Maar dat bijkt niet het geval. En daarom deze blog post.

Lees verder…

How to apply a patch?

Suppose that you want to use e.g. a CiviCRM extension like CDNTaxReceipts , but you want some extra functionality, and someone told you that there is a patch available.

Now suppose you don't use git, and you don't have a clue about how a patch works. Then this is the easy way to apply it.

  1. You download the patch file, and you save it on your file system, e.g. as ~/Downloads/39.diff

  2. You use the command line. Supposing you unpacked the archive in ~/dev/CDNTaxReceipts-3.1

    cd ~/dev/CDNTaxReceipts-3.1
    patch -p1 < ~/Downloads/39.diff
    

Here you are. You patched the extension.

If you use Windows, the hardest part will be finding a patch executable. On almost every other OS, patch will be available by default.

Belgische fiscale attesten met een CDNTaxReceipts-hack

Sinds kort hebben wij een coole CiviCRM-instantie op het werk. En één van de dingen dat we daarmee willen doen, is fiscale attesten afdrukken. Ik dacht dat we waarschijnlijk niet de enigen waren die zoiets wilden doen, dus ik heb wat gezocht op het Internet. Tevergeefs. Misschien zocht ik niet goed genoeg, want hoewel België wereldwijd op de vijfde plaats staat wat betreft CiviCRM-implementaties, heeft er nog niemand CiviCRM gebruikt voor Belgische fiscale attesten. Of er is niemand die eraan gedacht heeft om te documenteren hoe het kan.

Maar nu dus wel.

Lees verder…

Exploding a string with value separators to an array in CiviCRM

CiviCRM stores its multiselect custom field values in the database by concatenating the values, e.g. like this

*value1*value2*

(I replaced the CRM_Core_DAO::VALUE_SEPARATOR by * because the real unicode character, #&01, does not show anything sensible.)

This represents

(
    [0] => value1
    [1] => value2
)

Now if you just use explode(CRM_Core_DAO::VALUE_SEPARATOR, $value), you get

(
    [0] =>
    [1] => value1
    [2] => value2
    [3] =>
)

This is probably not wat you want. What you really want to do, is

CRM_Utils_Array::explodePadded($value)

I just put this in a blog post, because I always forget, and Google doesn't seem to know.

The real reasons for using Linux

I submitted this to HPR, see episode 1641.

I am a Linux user since the end of 1999. Which is 15 years already. I've also been trying for almost 15 years to convince other people to try Linux. And I must confess that I very often used wrong arguments doing this. After 15 years it is time to ditch some fake arguments, and to tell you the real reasons why you should switch to Linux. :-)

Lees verder…