zondag 13 september 2015

Welkom in de Wondere Wereld van... JavaScript

JavaScript is een draak van een taal uit de tijd dat HTML nog een BLINK-tag had. Een broddeltaaltje waar script kiddies foeilelijke webpagina's mee in elkaar knutselen. Je kunt er object-georienteerd mee programmeren, maar vraag niet hoe.

Om alle tekortkomingen te compenseren kwam er jQuery, dat het leven van de programmeur een stuk makkelijker maakte door hem te helpen bij het doorlopen van de DOM. Ook kwam er syntactic sugar in de vorm van CoffeeScript. En bibliotheken als Underscore vulden de gaten in de standaardfuncties die Javascript biedt. Het waren echter slechts pleisters op gapende wonden.

Maar in de loop van dit jaar heb ik JavaScript van nog een andere kant leren kennen. De JavaScript-wereld is namelijk volop in beweging: mede dankzij Node.js (dat het mogelijk maakt om Javascript buiten de browser te gebruiken) schieten de frameworks als paddestoelen uit de grond. En in tegenstelling tot de taal zelf, zijn de frameworks krachtig, elegant en veelzijdig.

Concreet heb ik de afgelopen maanden gewerkt met de volgende frameworks:
  • Bootstrap maakt je website responsive, zodat het op allerlei divices bruikbaar is. Het is oorspronkelijk ontwikkeld door Twitter.
  • Angular maakt het eenvoudig om Single Page Applications (SPAs) te ontwikkelen door gebruik te maken van templates, two-way data binding en directives (custom HTML tags).
  • Meteor biedt full-stack webontwikkeling. De overgang tussen server en client is vrijwel naadloos, in de zin dat je op de client toegang hebt tot je database, alsof je op server zit. Bovendien heb je een JSON-database in de vorm van Mongodb, en maken reactivity en optimistic UIs je leven als programmeur een stuk aangenamer.
Bonus: Meteor ondersteunt nu al de nieuwe ES6-standaard waarmee er een eind komt aan veel van de hieroven genoemde tekortkomingen van JavaScript.

En er is keuze: bijvoorbeeld Materialize in plaats van Bootstrap, Ionic als uitbreiding op Angular, Polymer voor het ontwikkelen van web components, Ember als alternatief voor Meteor, enz enz enz.

In 1998 al schreef de geestesvader van Tcl/Tk, John Ousterhout:
Scripting languages are designed for "gluing" applications; they use typeless approaches to achieve a higher level of programming and more rapid application development than system programming languages. Increases in computer speed and changes in the application mix are making scripting languages more and more important for applications of the future.
Met de huidige ontwikkelingen van blijkt hoe visionair deze woorden waren.

zondag 12 april 2015

Mijn eerste computer

Mijn eerste computer kreeg ik zo'n 35 jaar geleden. Rond de jaarwisseling van 1980/1981 om precies te zijn. En was ook niet zomaar een computer, maar een heuse supercomputer! Met wel 3 hele bits!
Ahum.
Uitgevonden door Willie Wortel:
Het was een bouwpakket uit de Donald Duck, waarvan je de onderdelen uit vier nummers bij elkaar moest sparen. Volgens mij was het daarmee het meest uitgebreide knutselwerk wat ik ken uit het Vrolijke Weekblad.
Het schoot me een paar weken geleden ineens weer te binnen. Geweldig vond ik het, omdat je de interne werking tijdens het bouwen kon zien, maar als het af was niet meer. Dan leek het alsof er echt iets in geprogrammeerd was.
Pas jaren later (rond 1985, denk ik) kreeg ik toegang tot een echte computer (een Commodore 64) en vond ik in de bibliotheek boekjes waarin werd uitgelegd hoe zo'n  ding werkte en hoe je kon programmeren (in BASIC).
Die boekjes waren achteraf gezien te infantiel voor woorden (kleine wezentjes in de computer voerden de verschillende taken uit: ze haalden gegevens op en hielden bordjes omhoog met het resultaat), maar ik zou het geweldig vinden om ze nog eens te kunnen herlezen. Helaas heb ik ze later nooit meer terug gezien...

FairPhone: de daad bij het woord

Sinds juni 2013 ben ik de trotse bezitter en tevreden gebruiker van een 'First Edition' FairPhone. Technisch geen hoogvlieger, maar uniek qua productie.
De laatste maanden begon de accuduur steeds verder af te nemen. Aanvankelijk redde ik het een dag op een volle accu, maar de laatste weken moest het apparaat meerdere keren per dag aan een snoertje. Het leeglopen verliep ook grillig: soms was de accu ineens leeg en als ik hem dan aan de lader legde, was hij binnen enkele minuten weer 100%.
Anderhalve week geleden hield mijn telefoon er ineens helemaal mee op. Hij ging gewoon uit en wilde niet meer aan. Toen ik hem wilde resetten door de batterij te verwijderen, bleek de telefoon al geopend doordat de accu bol en dubbel zo dik was geworden.
Gelukkig staat er met grote letter op de accus "This is your battery". In tegenstelling tot veel andere telefoons is er bij een FairPhone namelijk rekening mee gehouden dat onderdelen soms vervangen moeten worden.
Toen mijn FairPhone nieuw was, waren nog geen onderdelen voor te krijgen, maar inmiddels is dat sterk verbeterd. Een nieuwe accu blijkt nog geen twintig euro te kosten, maar eigenlijk vind ik dat een accu er niet zomaar mee op mag houden. En bij FairPhone zijn ze dat met me eens: na een eenvoudige melding bij de helpdesk (en wat vragen beantwoorden) werd mij zonder mankeren een vervangende accu toegestuurd.
Kortom: jammer dat de accu de geest gaf, maar uitstekende service toen dat alsnog gebeurde.
Als de FairPhone 2 uitkomt, doe ik weer mee!

woensdag 14 januari 2015

New laptop with Windows 8.1

My old laptop was almost a year and a half old, so it was time for a new one.

Screen resolution

The Yoga 2 has a magnificent screen resultion of 3200x1800. It sold itself with its vivid, crystal clear display. But there's a down-side: many applications are not set up to deal with such luxury. This leads to unreadably small text and mangled UI elements:
Annoying.

Ubuntu

I decided to not make it dual-boot but stick with the pre-installed Windows 8.1 and escape to Ubuntu through VirtualBox.

The reasons for this were:

  1. I need to cooperate on Microsoft Office documents for work, and office compatibility is still not good enough on Ubuntu.
  2. Almost every application I use on Ubuntu is available for Windows 8 as well. (Which confirms my theory that OSs will become irrelevant.)

Configuring this was partly straightforward with some tweaks:

  1. I seemed to have messed up my confuguration to the point where Ubuntu only ran in 800x600 resolution and I could not open the mini-toolbar in any way. This was ' fixed' by recreating the virtual machine with the same virtual disk (thus resetting the configuration).
  2. I could not make symbolic links under Ubuntu. This turned out to be a feature instead of a bug. I haven't been able to get the workaround working...

Free applications

To keep a good tradition going, here's the list of free apps I installed on my new laptop, with some thoughts thrown in:
Some apps did not make the cut, because I didn't feel the need (yet):
  • WorkRave RSI prevention, because I close its window without even noticing, thus only making myself hastier
  • WatchGuard to open VPN connection, because I haven't had to use that connection lately.
  • RawTherapy for photo editing, beacause I am not taking that many photos at the moment.
Some apps did not make the cut, because I replaced them with something better:
  • Clover to add tabs to the file explorer,  because it didn't work properly (maybe to do with Windows 8.1). Replaced by CubicExplorer.
  • SublimeText for text editing, because it is just to bloated and complicated. Replaced by Programmer's notepad.
  • TrueCrypt because its development and support is discontinued. Replaced by DiskCryptor.
  • file history because it was to complicated to make it work properly (it only works on libraries), so I didn't feel in control at all. Replaced by Cobian Backup.
  • winamp because its development is discontinued and it didn't play well with my image resolution of 3000x1800. Replaced by Audacious.
  • Cygwin for Unix tooling, because I now run Ubuntu through VirtualBox.
  • back in time for backups, because it is not available for Windows. Replaced by Cobian Backup.
And of course, I couldn't get around MS Office, because, well..., you know...
Anyway, I am up and running again, with a configuration to my taste, without any illegal software copies.

zaterdag 27 juli 2013

Rotonde-etiquette

Even een stokpaardje van me afschrijven: voorrang verlenen op rotondes.

Rotondes komen steeds meer voor. Meestal heeft het verkeer op de rotonde voorrang. Maar als het verkeer vast staat (zoals bij de kluif-met-brug bij ons in de buurt vaak het geval is) verlenen automobilisten op de rotonde heel beleefd voorrang aan automobilisten die staan te wachten.

Dit lijkt de eerlijkste aanpak: iedereen komt zo snel mogelijk aan de beurt. Maar uiteindelijk werkt dit averechts: de rotonde staat voortdurend vol en de doorstroming stokt.

Eenmaal op de rotonde zouden automobilisten er naar moeten streven om de rotonde zo snel mogelijk weer te verlaten. Hierdoor blijft het verkeer stromen en ontstaat er vanzelf ruimte voor nieuwe auto's. Het is ook in overeenstemming met de geldende voorrangsregels.

Maar als ik wachtend verkeer niet toelaat op de rotonde, word ik vaak giftig aangekeken en dringt een enkele automobilist zich er zelfs tussen. Voorrang buiten de verkeersregels om wordt dus niet gezien als gunst, maar als recht. Vreemd genoeg kan ik over deze rotonde-etiquette niets op het Internet vinden.

woensdag 3 juli 2013

New laptop with Windows 8

Yesterday I bought a new laptop (the ASUS S400CA ultrabook). The main reasons why I chose this model were its price, its sturdy feel, its SD card reader and its VGA port. As a bonus it has a touch screen, and I am curious to find out how that works out.

My previous laptop was also an ultrabook, which I liked very much. So I wanted one again. My previous laptop did not have a card reader, so I had to use a separate USB card reader. No big deal, but just extra hassle. My previous laptop did also not have a VGA port, but just a micro-HDMI port, which meant I couldn't attach a beamer. That was more than a hassle, because I need to give presentations to make money.

Of course, it came with Windows 8 pre-installed. I am not a Microsoft fan, and usually install Ubuntu as my main OS. However, after playing around with Window 8, to my own surprise I must say I like it. The tiles are no paradigm changing innovation, but they work as an opening page. Once in the desktop, it has the same light-weight feel I like about Linux/Ubuntu/GNOME.

Unfortunately, some of my objections to Windows persist: I had to uninstall bloatware (primarily McAffee), it still takes forever to start/stop because of all installation/configuration that has to be done during shutdown/startup, and I cannot access files over SFTP in Explorer like I can in Nautilus.

Removing McAffee was 'funny' ("but, but, but you have 30 days of free use left!?"), but I haven't been able to remove its Anti-Theft Service (through Intel). I hope the installations during reboot will become less as soon as as all files are up to date. Finally, access to SFTP servers seems to be solved by SFTP Net Drive. So, I decided to go with Windows as my main OS for a while.

Does this mean that I have been converted? Not really. To me it primarily means that the OS has become mostly irrelevant, because of web services and cross-platform tools. I spend most of my time in the browser anyway, and that means I hardly even see the OS. One of my main objections to Windows has always been that it got in my way. Now it seems Microsoft managed to remedy that.

Finally, I short selection of the tools I installed:

  • Chrome browser, because Internet Explorer does get in my way. And because Chrome allows me to synchronize between platforms.
  • Truecrypt for data security.
  • SFTP Net Drive to access SFTP servers.
  • Cygwin because I wouldn't want to do without all the CLI goodies and because it's a convenient way to install e.g. Python.
  • Sublime Text 2, my favourite text editor.
  • Gramps to maintain all data about my family tree.
  • TeamViewer to be able to give technical support to my parents (in law).
  • LibreOffice for editing documents.
  • GIMP for image manipulation.
  • EasyTether to be able to use my Android smartphone as a mobile modem.
  • Classic Shell to avoid the tiles/Start screen (i.e. go straight to the desktop) and add a classic start menu.
  • CutePDF Writer to be able to print to PDF. (Warning: be careful while installing this and opt out of any additional tools)
  • Workrave RSI prevention
Most of these tools (all, except NSFTP Net Drive, Classic Shell and CutePDF Writer) I use on Ubuntu as well, so that makes it extra easy to migrate. We'll see how it works out...

Update (3/7/2013): One of the problems with Linux is the support of devices. For instance: I never got the scanning of my HP CM1312 MFP to work. It turns out that this is also problematic for Windows 8. I ended up killing the setup program when it gets stuck (using the Task Manager). I noticed that at that point the scanning already works, and killing the setup program prevends it from uninstalling averything again.

Update (4/7/2013): One thing that makes switching between Ubuntu and Windows hard for me are their different mouse focus approach: Ubuntu is pointer oriented (if I roll the scroll wheel, the object under my mouse pointer scrolls), while Windows is cursor oriented (when I roll the scroll wheel, the object with the cursor in it will scroll). I never know where my cursor is, so I get unexpected effects. Worse, I need an extra click before almost anything I do. This drives me nuts. Partly, it may be something I need to get used to, but really I prefer the GNOME model...

zondag 16 december 2012

Anonieme lijstje op het Internet


Ik kwam dit lijstje net een beetje te vaak tegen op Facebook:

Foto: Deel dit zoveel mogelijk... Lijkt nergens op!!!!!

Ik wordt altijd wat achterdochtig van beschuldiging zonder fatsoenlijke bronvermelding. Het is noch duidelijk van wie het lijstje afkomstig is, noch waar het lijstje op gebaseerd is.

Dus heb ik van de top drie eens opgezocht wat de betreffende organisaties hierover te melden hebben:

OrganisatieSalaris directeurSalaris volgens lijstjeFactor
1. Unicef€ 124.038€ 371.4593x
2. Rode Kruis€ 135.000€ 198.0001,47x
3. Hartstichting€ 135.443€ 181.1191,34x
(Het van de Hartstichting genoemde salaris betreft 2009, de andere twee betreffen 2011)

Vooral het grote verschil van Unicef is opvallend, en wat mij betreft afdoende verklaard in de toelichting van Unicef zelf. Er is in bovenstaand lijstje wat dat betreft op zijn minst sprake van misleiding.


Uiteraard hebben de organisaties een belang om de salarissen van de directie zo bescheiden mogelijk weer te geven, maar van Unicef komt het vermelde bedrag in elk geval overeen met het bedrag in hun jaarrekening (pagina 20). Creatief boekhouden blijft mogelijk, maar dat de bedragen die ik gevonden heb zo dicht bij elkaar liggen, suggereert enige betrouwbaarheid.

Nu ben ik zelf geen groot voorstander voor grootschalige, liefdadig instellingen zoals deze vanwege grote overhead en moeizame transparantie. Maar ik ben nog minder een voorstander van anonieme beschuldigingen op het Internet. Ik zou graag nagaan hoe de bedragen op het lijstje tot stand zijn gekomen en waar de verschillen door zijn ontstaan. Daar heb ik echter een bronvermelding voor nodig, dus ik hoor graag wie me daaraan kan helpen.