Year at LShift – in photos

Marek Majkowski wrote “by marek on 30/04/10 Comments [+]”

What has happened to the segment registers?

Marek Majkowski wrote “16-bit days There were days when computers had 16-bit registers and 20-bit addressable memory. That is a total of 1MB memory – some claimed that it ought to be enough for anybody. Memory address space was flat and not protected by anything, now it’s known as the real mode. How was it possible to address 20-bit memory…”

By Tangopaso (Self-photographed) [Public domain], via Wikimedia Commons

Memory matters – even in Erlang

Marek Majkowski wrote “Some time ago we got an interesting bug report for RabbitMQ. Surprisingly, unlike other complex bugs, this one is easy to describe:  At some point basic.get suddenly starts being very slow – about 9 times slower!”

Introducing rabbitmq-status plugin

Marek Majkowski wrote “RabbitMQ is a becoming decent product, but it shares some of the common problems of young software – for example, beginners have a hard time understanding what happens under the hood. Don’t get me wrong, Rabbit generally works perfectly as a black-box. But at some point, when things go wrong or when Rabbit needs to…”

By John Hill (Own work) [CC-BY-SA-3.0 (], via Wikimedia Commons

Python quirks

Marek Majkowski wrote “I’ve been using Python for a while. Recently I have noted some nuances, wonders and counter-intuitive things I ran into. The list grew surprisingly fast.”

Yet another Key-Value database

Marek Majkowski wrote “Following the NoSQL movement, I became a fan of key-value databases. Usually there’s nothing interesting to say as they work fine out-of-the-box. But in a project I was recently working on K-V store started to be a major bottleneck.”

Python Queue interface for AMQP

Marek Majkowski wrote “Here at LShift we’re often discussing RabbitMQ. We’re keen about complicated deployment scenarios, redundancy of the broker and other complex use cases. While these problems are extremely interesting, some believe they are irrelevant for a great majority of RabbittMQ users. People keep asking how to get started with Rabbit. There are some very good sources…”

Memcached protocol is not enough

Marek Majkowski wrote “source Memcached protocol is not enough A few months ago I was wondering if it’s feasible to build a scalable realtime search engine using shared-nothing architecture. One of the essential project decisions I need to make, is to choose a decent communication protocol to storage nodes. Recently, the memcached protocol is becoming a standard as…”

LShift at QCon!

Marek Majkowski wrote “LShift will be attending QCon London! Please come over and meet us at stand 20 during the conference, from March 11th to 13th. I will also be presenting Etherpad clone at Skillsmatter stand (booth number 10). This will happen in break between sessions on Wednesday at 4:45 pm.”

Evserver, part3: Simplified Etherpad clone

Marek Majkowski wrote “I hate to write using markup languages. The problem with markups is that when I see a typo in a rendered output, I have to click through the text and search for exact place with the mistake. I have the same feeling about editing Wikipedia, documentation on, Trac, Blogger, Wordpress and so on. But I hate writing in WYSIWYG editors even more. Almost all graphical editors generate crappy output: badly closed html tags, broken styles, stripped white space. Considering this problems I usually try to stay with markups. Next problem is that I'm the only person that can fix mistakes in my texts. My friends tell me about typos, but I have to fix them by hand. I tried to share texts on google docs, but the collaboration doesn't work well enough. A few months ago I saw an online real-time editor Etherpad. That's quite a cool toy. It solves the problem of sharing the text with my friends, but it doesn't support any markups - it's just a plaintext editor. But I know how to create Comet applications easily using EvServer and Django. I realized that I could build a simplified Etherpad clone, which supports a markup language!”