Een elitair nieuw jaar!

Elite. Je kunt er een pesthekel aan hebben. Je kunt ze negeren. Je kunt ze adoreren. Of het cliché ervan nadoen (denkend aan Thierry*).

*Thierry is eigenlijk ook best wel elite. Thierry is een van de 150 mensen die niet zozeer uitverkoren is, maar toch wel verkozen. Mij nog niet overkomen.

Ok. Elite. Onlangs werd ik er op gewezen dat #jesuiselite. Werkelijk? Wikipedia zegt:

> Elite een kleine groep in een maatschappij, met buitengewone kwalificaties of privileges, waardoor zij op een bepaald vlak de hoogste positie inneemt. Zo kan er sprake zijn van onder meer politieke, militaire, economische en culturele elites.

[Uitsnede Schuttersmaaltijd ter viering van de Vrede van Munster, Bartholomeus van der Hels…

Continue reading...

Bitcoin? Blockchain?

An article, posted about one month ago filed in , , , , , & .

Omdat ik de vraag wel eens krijg wat Bitcoin is van mensen die iets minder technisch zijn dan ik, hierbij een poging om de principes achter Bitcoin ook voor leken iets duidelijker te maken.

Wat is het?

Bitcoin heeft drie eigenschappen die het bijzonder maakt. De blockchain, het minen en peer2peer validatie. Maar eerst is het van belang dat je begrijpt dat het mogelijk is om rekenkundig echtheid vast kunt stellen.

Rekenkundige validatie van transacties.

Ver voordat Bitcoin ontstond werd er al nagedacht over het rekenkundig kunnen valideren van berichten. Een speciale controle functie (hash of klutsfunctie) kan een nieuwe waarde berekenen die niet te herleiden is naar de waarden die er in gestopt zijn, maar wel als een controle kan fungeren dat het bericht ongewijzigd is.

Als iemand bijvoorbeeld claimt dat een bericht bericht nummer 100 "x=1 en y=2" is en dat gevalideerd is met een klutsfunctie.

Een (…

Continue reading...

Developing Keycloak templates with Docker

An article, posted about one month ago filed in , , , , , & .

I haven't had much need for isolating services, something that Docker is really good at. Most dependencies of my Rails apps are covered by Gemfile anyway (and packages.json for JavaScript) and reasonably isolated with rbenv. I don't experience version related issues very often, as I try to stay reasonably up to date and not rely too much on the very state of the art. For temporary projects, however, Docker is a great solution, even for me :o I don’t want an entire JBoss suite running on my machine, so when I had to develop a Keycloak template I knew that Docker would be the right tool. While I’m going to discuss the specifics of getting started with a Keycloak image, the workflow described is replaceable by any other.

So what about Keycloak? Keycloak is a role based authorization and authentication tool …

Continue reading...

PHP revisited

An article, posted about one month ago filed in , , , , , , , , & .

I've been able to stay away from PHP-based projects for quite some time. Until recently. I needed a small API. The idea was that the API would be transferred to a relatively old server that had been running stable for years and the client didn't want to risk installing additional script interpreters on it. It might even have been my own suggestion, it would be a really small API, requiring no special changes on an already operational 24x7 managed server. On top of it I'd write a modern style front-end, running entirely in the browser.

Of course the API that was intended to be simple got a bit more complex. I wanted the API to output clean JSON messages, which required some data mangling, as data was stored in CSV's, TSV's, and misused XML-files or only accessible through crappy soapy API's. So what does present-day (well, the Red Hat PHP version I was able to use is still in 5.x-series) PHP look like? TL;DR: sometimes it was definitely ugly, but at I can happily live with the cod…

Continue reading...

Tag descriptor

Monitoring

An article, posted about one month ago filed in .

Keeping track of what is going on takes time. There are plenty of monitoring tools that help you out. Good monitoring tools help you discover problems before customers are even bothered by them. Staying ahead of the curve.

You can monitor not only the health and performance, but also whether exceptions occur in your code. But also more low level monitors exist that beep you when disk is running low.

Below some links

Continue reading...

To stay agile

An article, posted about 2 months ago filed in , , , , & .

When you don’t train and eat you grow fat. When you grow fat it’s hard to move fast and swiftly, to be agile. To stay lean many decide to train, but training costs effort.

You can have fun and hack around with your friends cq. colleagues (which is what “Individuals and interactions over processes and tools” seems to suggest), but if you just drink beer and have fun, responding to change will someday become hard. You run fat, how agile your weekends of hacking may seem.

The end-goal of agile software development is continuous and fast delivery of better software, no matter how you’d like to define that. But to stay agile requires training. Not only adding features (consuming feature-stories) but also continuously sharpening the tools that support the process, automate the process. Developing software that supports it to such extent that the process becomes a no-brainer. Hence, proper tooling over (manual) processes: automated tes…

Continue reading...

Tag descriptor

Motion Sickness

An article, posted 3 months ago filed in .

Pushing what is possible is great. The web is mostly static, and animation can bring life to pages. But be careful when using animation for the sake of animation. Some people don't just get a bit annoyed by your attention grabbing animation, but actually suffer from it.

Below some links I hope you'll appreciate in this context.

Continue reading...

The academic vs the builder

An article, posted 3 months ago filed in , , , , , , , , & .

“dichotomies make it easier.”

Just over two decades ago The cathedral and the bazaar by Eric Steven Raymond was published. It talked about software development and kind of suggested that a more bazaar like ‘architecturing’ would improve the way complex systems could be build. Nowadays BDUF is a swear-word. In an ever-changing world, you can’t predict the future. So why design for one year. Experiment! Extend!

When I was visiting the Fronteers conference a few weeks ago I had a short interaction where I apologized for my maybe bit academic bias. I remembered I was still quite fond of some old xhtml standard that never really arrived.

Reading the online resilient web design-essay I was reminded of the continuous struggle between practitioners and the standards co…

Continue reading...

Tag descriptor

Web animation

An article, posted 3 months ago filed in , & .

Most of my 'animation' is currently limited to CSS-transitions. And while animations may be a big nuisance to the user when done incorrectly, I definitely think they can add and convey great meaning when done right. Here are some pointers!

Continue reading...

Nieuw! De murb nieuwsbrief

An article, posted 4 months ago filed in , & .

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!

Continue reading...

Niet hier uitgevonden

An article, posted 6 months ago filed in , , , , , , & .

Op m’n verzoek om vooral met vragen te komen in mijn kortgeleden 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=creditC…

Continue reading...

Tag descriptor

murb ♥︎ ruby

An article, posted 6 months ago filed in & .

“Rub'm in,” said murb: “thy shall love ruby!”

It is not the fastest (programming) language (it is a programming language), it's not the most popular language, but how can you not fall in love with:

 10.times { print "Hello!" }

(instead of something like for(var i=0; i<10; i++){ console.log("Hello!"); })

Do things with sets like:

["a", "b", "c"] & ["b", "c", "d"] ## gives you ["b", "c"]
[1,2,3] + [4,5] ## gives you [1,2,3,4,5]
["a", "b", "c"] - ["b", "c", "d"] ## gives you ["a"]

Or (with a little (opinions differ on this one ;)) help of Rails):

10.days.ago

That offers you exactly what you would think it would return: the date of 10 days ago.

Yes, it's actually a language a human might understand, and still: it is pretty powerful, powering some of the most popular sites on the web, like AirBnB, Shopify, Basecamp (they're the creators of Ruby on Rails), Github, Kickstarter, Twitch, Strava and many more (most of the full stack projects …

Continue reading...

Tag descriptor

Free stock images

An article, posted 6 months ago filed in , , & .

A selection of resources with free imagery, often CC0 or CC-BY licensed.

Continue reading...

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

An article, posted 6 months ago filed in , , , , & .

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…

Continue reading...

On webmentions (and decentralisation in general)

An article, posted 6 months ago filed in , , , , , & .

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…

Continue reading...

murb blog