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.