Nieuw! De murb nieuwsbrief

Een artikel, 2 dagen geleden geplaatst onder , & .

Al enige jaren schrijf ik artikelen op mijn blog en selecteer ik interessante artikelen die ik deel op o.a. sociale media. Ik vind het als ontwikkelaar belangrijk om op de hoogte te blijven. Graag deel ik deze kennis met mensen zoals jou:

  • geïnteresseerd in het online bereiken van mensen en ze als klant binden
  • geïnteresseerd in een schets van de laatste ontwikkelingen op IT-gebied; van bitcoin, privacy en veiligheid tot en met inspirerende designs.
  • geïnteresseerd in beschouwende en soms kritische inzichten rondom de IT-wereld

Er zal soms vast een link tussenzitten met artikelen die misschien net iets technischer zijn dan wat je normaal leest. Maar ik zal ze voorzien van leesbaar Nederlands commentaar waardoor je in ieder geval weet waar de klepel hangt. Wie weet komt het nog een keer van pas. ;)

Schrijf je hieronder in!

Ga verder met lezen en/of reageer...

Op de hoogte blijven?

Maandelijks maak ik een selectie artikelen en zorg ik voor wat extra context bij de meer technische stukken. Schrijf je hieronder in:

Mailfrequentie = 1x per maand. Je privacy wordt serieus genomen: de mailinglijst bestaat alleen op onze servers.

Niet hier uitgevonden

Een artikel, ongeveer 2 maanden geleden geplaatst onder , , , , , , & .

Op m’n verzoek om vooral met vragen te komen in mijn onlangs begonnen mailinglijst hierbij een antwoord op een lezersvraag:

> “Ben ook wel benieuwd waarom je gekozen hebt voor het hosten van een eigen mailinglist vs de beschikbare saas oplossingen als mailchimp e.d.”

Het bouwen van je eigen mailing-systeem heeft trekken van het “Not invented here”-syndroom. En ja: ik had deze mailing heel erg gemakkelijk met iets als MailChimp kunnen sturen. MailChimp zou bij de omvang van deze mailinglist gratis zijn, leuke statistieken geven, een grafische editor geven en waarschijnlijk was m'n fout waarin iedereen bij de eerste verzending ‘Rick’ werd genoemd niet voorgekomen. "Niet hier uitgevonden" is dus een hele domme reden om iets niet te gebruiken, maar waarom dan toch eigen mailinglist-tool maken?

Foto door [Kelly Sikkema](https://unsplash.com/photos/r077pfFsdaU?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyT…

Ga verder met lezen en/of reageer...

Unit-testing your front-end code in a Rails project: Yarn, Tape & Rails

Een artikel, ongeveer 2 maanden geleden geplaatst onder , , , , & .

I like Rails, but one thing that Rails falls short in is Javascript dependency management.

While Rails Assets, a proxy that allows for listing Bower packages in your Gemfile makes managing front-end libraries good enough for most front-end work, RailsAssets itself is mainly addressing asset management; it doesn’t allow for integrated management of additional development tools and binaries, useful for e.g. JavaScript-testing (besides the fact that Bower is kind of considered to be deprecated these days).

There are different ways of bundling Javascript, but since Rails 5.1, yarn is the defacto choice for Rails.

Installing Yarn

You can install yarn either trough npm npm install -g yarn, or if you’re on a mac, using homebrew: brew install yarn. I chose the latter.

To prepare your rails project run rails yarn:install.

Add tape for testing JavaScript & Coffeescript

There are [different testing fram…

Ga verder met lezen en/of reageer...

On webmentions (and decentralisation in general)

Een artikel, ongeveer 2 maanden geleden geplaatst onder , , , , , & .

The internet was originally built to survive a nuclear attack on the US. By design it was a distributed network connecting many computers through different paths, making it resilient in the event of a disappearing connection or computer. In recent years, however, much of the web has become more and more centralised.

A centralised approach is easier to reason about. Everything is stored in the (conceptually) same database, accessible through a uniform query language. Think Google, think Facebook, think Disqus. All offer a single sign-on mechanism into their ecosystem which allows users to react on stories, both within their apps, as well as outside in places when other proprietors have included a bit of the Google/Facebook/Disqus/… code. But in the end all the data is stored in a central store, not owned by that user, not owned by the owner of that blog, but owned by a large company that stores information for million's of other sites. C…

Ga verder met lezen en/of reageer...

Analyseren van webverkeer

Een artikel, 2 maanden geleden geplaatst onder , , , , , , , & .

Vaak is het belangrijk om te weten hoe een website wordt gebruikt. Dit informeert discussies en voorkomt daarmee dat er kostbare tijd van ontwikkelaars wordt gestoken in zaken die wellicht nauwelijks gebruikt worden. Het is daarom verstandig om meer te gaan analyseren. Soms hoef je er niet eens meer voor te meten(!)

Zonder meer meten toch meer inzicht

Zonder meer te meten kun je vaak toch al analyses maken. Een webserver registreert standaard alle pagina aanvragen, en wat basis gegevens over iedere bezoeker. Ook houdt een applicatie zelf vaak nog een logboek bij. Met een simpele scriptingtaal zoals python of ruby is het vaak niet moeilijk om hier statistieken uit te halen. Voordeel is dat er geen nieuwe informatie vastgelegd hoeft te worden én dat de eindgebruiker het ook niet kan blokkeren (al kan een gebruiker zich relatief gemakkelijk voordoen als b.v. een 'zoekmachine'). Het nadeel is wel dat je veel dingen zelf moet doen zoals het we…

Ga verder met lezen en/of reageer...

On assertiveness

Een artikel, 2 maanden geleden geplaatst onder & .

Some notes I made at a meetup around on assertiveness. I don't regularly attend such meetups but it is good to reflect upon how you communicate and how you look at others communicating.

We need clarity, clarity comes from knowledge.

What is non-assertive? Non-assertive can be passive, but also aggressive or passive aggressive … emotional behaviour.

> “A form of behavior characterized by a confident declaration or affirmation of a statement without need of proof. To assert oneself is to affirm one's rights or position without either aggressively transgressing the rights of another (assuming a position of dominance) or submissively permitting another to ignore or deny one's rights or rightful position.” – assertiveness. (n.d.) Miller-Keane Encyclopedia and Dictionary of Medicine, Nursing, and Allied Health, Seventh Edition. (2003).

Some are…

Ga verder met lezen en/of reageer...

Bereik meer met toegankelijkheid: inclusive design

Een artikel, 2 maanden geleden geplaatst onder , , , , & .

Meer mensen bereiken, waarom dan niet alle mensen? Een paar weken geleden volgde ik een cursus van Peter van Grieken van Frozen Rockets. Hij wees ons er op dat 300.000 mensen in Nederland slechtziend of volledig blind zijn. Daarnaast zijn er bijna 700.000 mensen die kleurenblind zijn en dan hebben we 825.000 dyslectici en 1,5 miljoen laaggeletterden nog niet geteld. Doe je veel met video of geluid dan is het belangrijk om te weten dat er ook nog eens 1,3 miljoen mensen slechthorend of doof zijn. En dat naast 1,5 miljoen lichamelijk beperkten. Dat zijn 4 miljoen mensen met enige vorm van beperking (bron).

Screenshot van het project "Wayfinding for the blind", een onderzoek dat ik tijdens mijn studie (2006) mede had opgezet op de TU/e.

Het was eigenlijk best wel schokkend om te zien dat zelfs grote sites als die…

Ga verder met lezen en/of reageer...

Privacy & Google gaan samen

Een artikel, 3 maanden geleden geplaatst onder , , , , , , , & .

Op de blog van bits of freedom, een respectabele organisatie die ik ook steun, stond onlangs een artikel over tracking. Ik hou zelf ook niet zo van trackers, en bezoek bijna geen site zonder uBlock origin en Privacy Badger, maar van het onnodig zaaien van angst hou ik evenmin. Ik heb indertijd op de post gereageerd, maar wel zo handig om het hier nog eventjes dunnetjes over te doen :)

"Gratis" Lettertypen

Google biedt "gratis" lettertypen aan via Google Fonts. Traditioneel kosten lettertypen geld, en het zomaar meeleveren van lettertypen online komt met veel bijkomende complexiteit. De lettertypen "van Google" (over het algemeen opensource-lettertypen) mag je zelf hosten op je eigen server, maar de meeste mensen maken gebruik van de hosting die Google aanbiedt, zodat je ze zelf…

Ga verder met lezen en/of reageer...

Automatische tests

Een artikel, 3 maanden geleden geplaatst onder , , , , , , , , & .

Eerder schreef ik al wat over technische schuld. Het niet hebben van automatische tests wordt vaak beschouwd als een technische schuld.

Wat zijn automatische tests?

Testen doe je om er zeker van te zijn dat iets werkt dat het goed werkt. Automatische testen maak je (of laat je maken) omdat zeker weten dat het goed werkt veel tijd kost. Wanneer je applicatie vaak nog wordt veranderd wil je er immers ook zeker van zijn dat het ook blijft werken. Automatische tests zijn kleine programmaatjes die testen of onderdelen onafhankelijk (unit-tests) of in samenhang (integratie-tests) goed werken.

Integratie- en unittesten

Bij unit-testen worden kleine onderdelen afzonderlijk bekeken of ze nog werken. Zo kan bijvoorbeeld steeds worden gecontroleerd of de bedragen in een offerte wel nog steeds netjes worden opgeteld, en een andere of er nog wel het verwachtte btw bedrag uit blijft komen.

Bij integratie-toetsen, of syst…

Ga verder met lezen en/of reageer...

Resizing images before upload

Een artikel, 4 maanden geleden geplaatst onder , , , & .

The resolution of photo's increases every year. And while some of that information may be worthy of retaining, not all is. High resolution images come at a price. Not only storage, but, especially in a mobile context, also data transfer. In this post I explain how you could create an uploader that fixes this.

The old form

Traditionally your form would look something like this:

`
  Upload image:
  
  
`

If you want to be forgiving to your end users (and not requiring them to manually resize the images themselves) you could configure your server to accept files > 20MB and resize the images server side.

However, to save bandwidth you you might want to resize the images just before uploading.

Enter canvas

To manipulate pixels we need a canvas. So we need a canvas element.

Note: Canvas support is barely an issue, but if things don’t work we’ll write to code as such that the traditional form submit will continue to work

...

Ga verder met lezen en/of reageer...

A developer’s status update: Test driven deadlock

Een artikel, 5 maanden geleden geplaatst onder , , , , , , , , , & .

No worries, I do value testing. But test driven? It depends.

The last few weeks I’ve been working off and on building a crawler. The thing triggers a series of scheduled tasks that could run in parallel, generating (possibly) tasks (that are consequently scheduled again in their own task-specific queue) on its own and so on. The end goal is structured copies of external resources (read: webpages). But I’ve been stuck close to the start for quite a while, setting up the base architecture using the test driven development approach. And I’m failing, it’s going too slow :(

Small victories

Like many developers, this is not my first parser/crawler. But this time I wanted to make a GoodParser™. Make it more extensible, and flexible and foremost robust, building in fault-tolerance from start. But I’m not getting near the end result and it is frustrating.

The TDD-school says make small victories, and oh yes, I had my sheer number of victories already. But the end is nowher…

Ga verder met lezen en/of reageer...

Eat your own dogfood

Een artikel, 5 maanden geleden geplaatst onder , , , & .

Just a small note that I've made some improvements to my SocialLinker-gem lately and while I've been using it on a few sites already, I wasn't using it on my very own blog. Today I found some time to change exactly that: you've got to eat your own dog food. If you want to have a taste of it: murb/social_linker (if you're a ruby-dev) or just click the share icons below :)

Image CC-licensed BY: Sh4rp_i

Ga verder met lezen en/of reageer...

Should I use React or Angular?

Een artikel, 5 maanden geleden geplaatst onder , , , , , , & .

To put it in some context: these days recruiters call you whether you know this or that framework. Well not really, really well. But it is just JavaScript. Or ECMAScript (or a flavour of it by Microsoft called TypeScript). But above all it is just a tool to get stuff done. Not every job needs a bulldozer. And besides the bulldozers React and Angular there is Vue.js and plenty more. Choose your tools wisely.

Ga verder met lezen en/of reageer...

Twitter launches a new web app

Een artikel, 6 maanden geleden geplaatst onder , , , , , , , , , & .

Targeted at those with low spec phones, Twitter today launched Twitter Lite, a product build on a modern suite of technologies that should be ring a bell with most front-enders today.

The new Twitter frontend is built using React (nb. made by Facebook), Redux, Normalizr, Globalize, Babel, Webpack, Jest, WebdriverIO, and Yarn (they have written about how they built it.

It is a good thing to see a large company not giving up on the open web. I’ve added the new Twitter Lite app to my phone (running iOS) and see if it can replace the native app (as I did with Facebook before). My first impression is pretty good. Most importantly, as promised: it loads faster, even without support for ServiceWorkers (while iOS 1.0 only allowed for web apps, its level of support is kind of bleak when compared to the efforts made by Google and Firefox). It could use some animation …

Ga verder met lezen en/of reageer...

Internet Explorer End Of Life

Een artikel, 6 maanden geleden geplaatst onder , & .

A short note (to myself), because the information is shattered:

Internet Explorer 11 is the only version of Internet Explorer to be supported after April 11th this year. Until then IE9 might still be running supported on machines on Microsoft Extended Support program.

The facts:

Should we worry?

According to the Wikipedia usage stats, IE11 (the latest version) is actually the most used version of Internet Explorer (repr…

Ga verder met lezen en/of reageer...

murb blog