41554 blogs · [ { "id": "01a087b9-f555-73f3-a5b5-15db59d2d05f", "title": "Introducing Converse 11: A Major Leap Forward for XMPP Webchat", "url": "https://opkode.com/blog/2025-05-21-converse-11/", "published_at": "2025-05-21T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-82500d86b606", "title": "Adopting Bitcoin, Cape Town, 2025", "url": "https://opkode.com/blog/2025-01-30-adopting-bitcoin-2025/", "published_at": "2025-01-30T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-82500e2a7fd1", "title": "Converse 8 has been released", "url": "https://opkode.com/blog/2021-09-13-converse-8/", "published_at": "2021-09-13T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-82500e504fc3", "title": "Mergebounce: Increasing performance by batching IndexedDB writes", "url": "https://opkode.com/blog/2021-05-05-mergebounce-indexeddb/", "published_at": "2021-05-05T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-82500f42c3d7", "title": "Bitcoin as commons", "url": "https://opkode.com/blog/2021-02-04-bitcoin-as-commons/", "published_at": "2021-02-04T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-82500fcddb8a", "title": "Report on the Dusseldorf XMPP sprint", "url": "https://opkode.com/blog/xmpp-sprint-dusseldorf/", "published_at": "2018-11-29T17:30:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-825010483a3f", "title": "Converse 4 released", "url": "https://opkode.com/blog/converse-4-released/", "published_at": "2018-09-21T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-825010caee87", "title": "Disabling Disqus comments on my blog", "url": "https://opkode.com/blog/disabling-disqus/", "published_at": "2018-06-01T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-8250111317a7", "title": "2018 Gulaschprogrammiernacht and organizing sprints for XMPP", "url": "https://opkode.com/blog/2018-gulaschprogrammiernacht/", "published_at": "2018-05-31T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-825011dbd421", "title": "Slack's bait and switch", "url": "https://opkode.com/blog/slacks-bait-and-switch/", "published_at": "2018-03-12T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-8250129844fc", "title": "A badge for linking to your XMPP chat", "url": "https://opkode.com/blog/xmpp-chat-badge/", "published_at": "2018-02-19T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-825012b594c3", "title": "The 2018 XSF Summit", "url": "https://opkode.com/blog/2018-xsf-summit/", "published_at": "2018-02-03T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-825012b865a2", "title": "Converse 3.3 has been released", "url": "https://opkode.com/blog/2018-01-16-converse-3.3.1-released/", "published_at": "2018-01-18T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-8250135e5209", "title": "Using a virtual DOM with Backbone views", "url": "https://opkode.com/blog/backbone-vdomview/", "published_at": "2018-01-16T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-825013603ee8", "title": "Custom SASL auth mechanisms in Strophe.js", "url": "https://opkode.com/blog/strophe_custom_sasl_auth/", "published_at": "2016-11-05T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-825013a33852", "title": "Strophe.js and Converse now support passwordless login with client certificates", "url": "https://opkode.com/blog/strophe_converse_sasl_external/", "published_at": "2016-09-15T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-8250143b277c", "title": "Open Source software and the expection of free labor", "url": "https://opkode.com/blog/open-source-and-the-expectation-of-free-labor/", "published_at": "2015-11-29T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-82501532c4a0", "title": "Converting Youtube videos into mp3", "url": "https://opkode.com/blog/converting-youtube-videos-into-mp3/", "published_at": "2015-11-29T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-825015c5cf3d", "title": "A common grammatical mistake that programmers make", "url": "https://opkode.com/blog/common-grammatical-mistake-programmers-make/", "published_at": "2015-02-06T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-8250167ea34e", "title": "Sprint Report: Merging Mockup and Patternslib", "url": "https://opkode.com/blog/merging-mockup-and-patternslib/", "published_at": "2015-01-25T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-82501713d30f", "title": "The Solution to Jaron Lanier's Siren Servers", "url": "https://opkode.com/blog/review-who-owns-the-future/", "published_at": "2015-01-06T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-825017ce7970", "title": "Book review: Zen and the art of motorcycle maintenance", "url": "https://opkode.com/blog/review-zen-and-the-art-of-motorcycle-maintenance/", "published_at": "2015-01-03T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-8250181cafe7", "title": "Antifragile Software Ecosystems", "url": "https://opkode.com/blog/antifragile-software-ecosystems/", "published_at": "2014-01-14T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-8250188c968d", "title": "Converse.js 0.7 released: Now supports Off-the-record encryption", "url": "https://opkode.com/blog/converse.js-otr-support/", "published_at": "2013-11-10T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-825018b719cb", "title": "Converse.js: XMPP instant messaging with Javascript", "url": "https://opkode.com/blog/converse.js-xmpp-instant-messaging-with-javascript/", "published_at": "2013-03-02T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-82501932dbfa", "title": "Report on the Beer and Wine Sprint in Cape Town", "url": "https://opkode.com/blog/report-on-the-cape-town-leg-of-the-beer-wine-sprint/", "published_at": "2013-01-29T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-82501982d1ed", "title": "Slides and Video for my talk on XMPP+Plone at Plone Conf 2012", "url": "https://opkode.com/blog/slides-and-video-for-my-talk-on-xmpp-plone-at-plone-conf-2012/", "published_at": "2012-11-02T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-825019cd4cbe", "title": "Collaborative editing of HTML with TinyMCE not going to happen soon", "url": "https://opkode.com/blog/problems-with-collaborative-editing-of-html/", "published_at": "2012-10-22T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-82501a72acba", "title": "Instant Messaging for Plone with javascript and XMPP", "url": "https://opkode.com/blog/instant-messaging-for-plone-with-javascript-and-xmpp/", "published_at": "2012-07-30T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-82501a91e92d", "title": "Plone and Dexterity: Enable behaviors per content type instance", "url": "https://opkode.com/blog/plone-and-dexterity-enable-behaviors-per-content-type-instance/", "published_at": "2012-01-03T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-82501b3fec03", "title": "The difference between BrowserSkins and BrowserLayers", "url": "https://opkode.com/blog/the-difference-between-browserlayers-and-skinlayers/", "published_at": "2011-07-08T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-82501be47eab", "title": "Schema-extending Dexterity content types with five.grok and plone.behavior", "url": "https://opkode.com/blog/schema-extending-dexterity-content-types-with-five.grok-and-plone.behavior/", "published_at": "2011-06-13T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-82501ca28265", "title": "New spelling and grammar checker for TinyMCE", "url": "https://opkode.com/blog/new-spelling-and-grammar-checker-for-tinymce/", "published_at": "2011-03-25T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-82501d30cfcc", "title": "Plone 4 compatible release of Quills", "url": "https://opkode.com/blog/plone-4-compatible-release-of-quills/", "published_at": "2011-03-10T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-82501d445f6f", "title": "New beta of Babble Client (and related packages) released", "url": "https://opkode.com/blog/new-beta-of-babble-client-and-related-packages-released/", "published_at": "2011-01-19T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-82501e041754", "title": "South American travel diary, Part 4. September 2010", "url": "https://opkode.com/blog/south-american-travel-diary-part-4/", "published_at": "2010-10-11T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-82501e7caa6d", "title": "South American travel diary, Part 3. Aug 2010", "url": "https://opkode.com/blog/south-american-travel-diary-part-3/", "published_at": "2010-08-08T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-82501f6647a7", "title": "South American travel diary, Part 2. July 2010", "url": "https://opkode.com/blog/south-american-travel-diary-part-2/", "published_at": "2010-08-07T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-82501f88b38f", "title": "South American travel diary, Part 1. June 2010", "url": "https://opkode.com/blog/south-american-travel-diary-part-1/", "published_at": "2010-07-06T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-82501fccb8b6", "title": "Backpacking through South America", "url": "https://opkode.com/blog/backpacking-through-south-america/", "published_at": "2010-05-26T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-8250209dd8bc", "title": "Babble: Instant messaging for Plone", "url": "https://opkode.com/blog/babble-instant-messaging-for-plone/", "published_at": "2010-04-29T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-825020d921d9", "title": "Using extract_messages in your Pylons/Python egg with a ./src directory layout", "url": "https://opkode.com/blog/using-extract_messages-in-your-python-egg-with-a-src-directory/", "published_at": "2010-03-24T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-82502146a7e4", "title": "Why you should open source your code", "url": "https://opkode.com/blog/why-you-should-open-source-your-code-your-python-eggs/", "published_at": "2010-03-18T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-8250215b64c5", "title": "Archetypes: Schema extending an object only inside a specific folder", "url": "https://opkode.com/blog/schema-extending-an-object-only-inside-a-specific-folder/", "published_at": "2010-01-26T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-825021caaf1e", "title": "Using the Gmail SMTP server to send emails from Plone", "url": "https://opkode.com/blog/using-the-gmail-smtp-server-to-send-emails-from-plone/", "published_at": "2010-01-04T00:00:00+00:00" }, { "id": "01a087b9-f556-71a2-8295-825022aa2f21", "title": "Compiling Python with Readline support on Ubuntu Linux", "url": "https://opkode.com/blog/compiling-python-with-readline-support-on-ubuntu-linux/", "published_at": "2010-01-01T00:00:00+00:00" } ] posts Claim your blog
Back to opkode.com
Blog · corpus.blog/blogs/opkode.com/posts

opkode.com

opkode.com

2025

2021

2018

2016

2015

2014

2013

2012

2011

2010