RSSAmplifier

Blog

Your Site's RSS Feed

Your Site's RSS Feed

opkode.comRSS feed ↗46 posts

Latest posts

Introducing Converse 11: A Major Leap Forward for XMPP Webchat

I’m thrilled to announce the official release of Converse version 11.0.0! 🚀 You can try it out online at chat.conversejs.org or download…

Adopting Bitcoin, Cape Town, 2025

I attended the Adopting Bitcoin conference in Cape Town the last weekend and thought I’d do a quick writeup about some interesting things I…

Converse 8 has been released

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…

Mergebounce: Increasing performance by batching IndexedDB writes

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…

Bitcoin as commons

I recently saw an interesting interview with former Canadian prime minister Stephan Harper, where the topic of Bitcoin briefly came up, and…

Report on the Dusseldorf XMPP sprint

Recently we held another XMPP sprint, this time in Dusseldorf at the Chaosdorf clubhouse. We had 10 participants and an ambitious agenda…

Converse 4 released

After more than 7 months of active development, Converse 4 has finally been released. Converse is an open source XMPP-based chat client…

Disabling Disqus comments on my blog

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…

2018 Gulaschprogrammiernacht and organizing sprints for XMPP

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's bait and switch

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…

A badge for linking to your XMPP chat

You’ve probably noticed the coloured badges at the top of project READMEs on Github and Gitlab. These badges indicate various metrics about…

The 2018 XSF Summit

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…

Converse 3.3 has been released

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…

Using a virtual DOM with Backbone views

Backbone.js, first released in 2010, provided one-way event binding with unidirectional data-flow and therefore a means to do reactive…

Custom SASL auth mechanisms in Strophe.js

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…

Strophe.js and Converse now support passwordless login with client certificates

Did you know that x509 certificates, the certificates that webservers use to prove their identity during the establishment of an HTTPS…

Open Source software and the expection of free labor

Over the last few years of starting and then maintaining an open source project that has received a decent amount of attention, converse.js…

Converting Youtube videos into mp3

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…

A common grammatical mistake that programmers make

I recently read a fascinating profile about a guy who made about 50 000 edits to Wikipedia to correct a relatively obscure grammatical…

Sprint Report: Merging Mockup and Patternslib

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…

The Solution to Jaron Lanier's Siren Servers

In his book [Jaron Lanier](https://en.wikipedia.org/ wiki/Jaron_Lanier) claims that the information on the web is undervalued and…

Book review: Zen and the art of motorcycle maintenance

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…

Antifragile Software Ecosystems

I recently finished reading the book Antifragile, by Nassim N. Taleb, in which he discusses the idea of antifragility, the property that…

Converse.js 0.7 released: Now supports Off-the-record encryption

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…

Converse.js: XMPP instant messaging with Javascript

It is now possible to use converse.js, the Javascript from collective.xmpp.chat, in a standalone way, to communicate with any public Jabber…

Report on the Beer and Wine Sprint in Cape Town

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…

Slides and Video for my talk on XMPP+Plone at Plone Conf 2012

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…

Collaborative editing of HTML with TinyMCE not going to happen soon

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…

Instant Messaging for Plone with javascript and XMPP

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 and Dexterity: Enable behaviors per content type instance

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…

The difference between BrowserSkins and BrowserLayers

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…

Schema-extending Dexterity content types with five.grok and plone.behavior

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…

New spelling and grammar checker for TinyMCE

The spellchecker “After the deadline” is now available as an add-on for TinyMCE in Plone. It’s multilingual, open-source, platform agnostic…

Plone 4 compatible release of Quills

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…

New beta of Babble Client (and related packages) released

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…

South American travel diary, Part 4. September 2010

3 September, Starting our hike to Choquequirao Choquequirao is a lesser known ruined Inca city located on the Salkantay mountains. It can…

South American travel diary, Part 3. Aug 2010

In August, we continued traveling through Bolivia and onwards to Peru. Along the way we saw dinosaur tracks, a military parade celebrating…

South American travel diary, Part 2. July 2010

We continue on our travels through South America, including visting the Pantanal in Brazil, Iguacu falls in Argentina, Ciudad del Este in…

South American travel diary, Part 1. June 2010

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…

Backpacking through South America

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: Instant messaging for Plone

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…

Using extract_messages in your Pylons/Python egg with a ./src directory layout

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…

Why you should open source your code

This blog post is based upon my experience in developing add-ons for the Plone open source content management system. It’s therefore mostly…

Archetypes: Schema extending an object only inside a specific folder

It’s possible to register schema-extenders (and modifiers) for only certain subsections (folders) of your Plone site. It’s relatively simple…

Using the Gmail SMTP server to send emails from Plone

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 with Readline support on Ubuntu Linux

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…

Your Site's RSS Feed · RSS Amplifier