I’m happy to announce that, after almost a year of development, the latest major version of Converse has been released. Converse is an XMPP…
Converse is a browser-based XMPP chat client that I’ve been working on. It stores lots of user-data in the browser, so much data, that users…
I recently saw an interesting interview with former Canadian prime minister Stephan Harper, where the topic of Bitcoin briefly came up, and…
Recently we held another XMPP sprint, this time in Dusseldorf at the Chaosdorf clubhouse.
After more than 7 months of active development, Converse 4 has finally been released. Converse is an open source XMPP-based chat client…
I’ve decided to disable Disqus comments on this website. I was quite shocked recently when I saw tacky ads displayed in my blog. I’ve been…
Recently I attended the Gulaschprogrammiernacht for the first time. It’s a hacker/maker event in the Zentrum für Kunst und Medien (Centre…
Slack has finally decided to close down their IRC and XMPP gateways. True to form, you can only read their announcement if you already have…
You’ve probably noticed the coloured badges at the top of project READMEs on Github and Gitlab. These badges indicate various metrics about…
This year I again attended the XMPP Software Foundation’s summit in Brussels. The summit spans two days and is held at Cisco’s offices. It’s…
Last night I released version 3.3.0 of Converse.js, and as often happens with big releases, I made a quick bugfix release (3.3.1) today. The…
Backbone.js, first released in 2010, provided one-way event binding with unidirectional data-flow and therefore a means to do reactive…
If you’ve decided to read this fairly technical blogpost, then you probably have at least a rough idea what SASL is about and why one would…
Did you know that x509 certificates, the certificates that webservers use to prove their identity during the establishment of an HTTPS…
Over the last few years of starting and then maintaining an open source project that has received a decent amount of attention, converse.js…
If you’re using Linux or a Mac, then there are two neat commandline tools which you can use to download and convert Youtube videos into mp…
I recently read a fascinating profile about a guy who made about 50 000 edits to Wikipedia to correct a relatively obscure grammatical…
This is a report on what I did at the Plone. Alpine City Sprint organized by Jens Klein and Christina Baumgartner in Innsbruck between 2…
In his book [Jaron Lanier](https://en.wikipedia.org/ wiki/Jaron_Lanier) claims that the information on the web is undervalued and…
This book, a best-seller written in 1974, is regarded as a classic and one of the most important and influential books of the last century…
I recently finished reading the book Antifragile, by Nassim N. Taleb, in which he discusses the idea of antifragility, the property that…
I’m happy to announce that the 0.7 release of Converse.js now supports Off-the-record (OTR) encrypted messaging. The OTR protocol not only…
It is now possible to use converse.js, the Javascript from collective.xmpp.chat, in a standalone way, to communicate with any public Jabber…
The Beer and Wine sprint wrapped up on Sunday and it’s now a good time to report on what was South Africa’s first ever core Plone sprint…
The video of the talk I gave at in Arnhem at the 2012 Plone Conf has been uploaded to Youtube. Check it out if you are interested in…
TL:DR: Collaborative editing doesn’t work well with XML/HTML. Right now, the solution seems to be to use Markdown instead. During my talk on…
Late last year Yiorgis Gozadinos who at the time was still working for Jarn, released a video showing his work in integrating XMPP (eXtended…
plone.behaviors are great, but because they are stored in the FTI, they are enabled for all instances of a content type. This blogpost will…
In this blogpost I’d like to shed some light on two concepts that sound similar and can be quite ambiguous and confusing when first…
This is a quick blog post about using plone.behavior to change the schema of Plone’s Dexterity content types. Hopefully it’ll help people…
The spellchecker “After the deadline” is now available as an add-on for TinyMCE in Plone. It’s multilingual, open-source, platform agnostic…
Since I’ve started this site, I’ve been using Quills for blogging functionality in Plone. So far, it’s been perfectly fine for my relatively…
After spending a few months acclimatising to a new life and continent, I’m happy to be productive again. I’ve released a new beta version of…
3 September, Starting our hike to Choquequirao Choquequirao is a lesser known ruined Inca city located on the Salkantay mountains. It can…
In August, we continued traveling through Bolivia and onwards to Peru. Along the way we saw dinosaur tracks, a military parade celebrating…
We continue on our travels through South America, including visting the Pantanal in Brazil, Iguacu falls in Argentina, Ciudad del Este in…
This is a roundup of the first month of my shared travels through Brazil and South America, in the form of a journal or diary. I tried to…
On Sunday 30th May I’ll be flying to Sao Paulo, Brazil for a 4 month adventure backpacking through South America. This trip been more than…
babble.client is new a chat client for Plone, similar in style to Google Chat and Facebook Chat. I’ve been having a lot of fun at Syslab…
If you want to have your egg’s package contents inside a ‘src’ folder, you’ll need to tweak the configuration files a bit. Here’s what I’ve…
This blog post is based upon my experience in developing add-ons for the Plone open source content management system. It’s therefore mostly…
It’s possible to register schema-extenders (and modifiers) for only certain subsections (folders) of your Plone site. It’s relatively simple…
Need to test emails on a local test instance, or just too lazy to set up your own mail server? Just use Google’s smtp server! It is possible…
Compiling Python on Ubuntu is often necessary for development purposes and for specific versions. Here I’ll show you in a few easy steps how…