Wi-Fi monitoring

15.04.2014 17:25

Ever since we setup the wireless testbed in Logatec I wanted to use VESNA spectrum sensors to monitor Wi-Fi and other unlicensed radio usage in the 2.4 GHz band.

Unfortunately, it turned out that the low-power mesh network is way too slow to do any kind of real-time transfers. It was designed for reading battery-powered temperature sensors every once in a while, not streaming radio spectrum data. The 2.4 GHz CC2500-based radio generates around 2 kB per second. That maybe doesn't sound like much these days, but in ideal circumstances a raw data stream from one radio alone more than saturates the mesh, much less 50 of them.

There is a wired Ethernet interface in the works that should take care of the limited bandwidth problem. Meanwhile, motivated by rants about unusable Wi-Fi in some parts of Ljubljana, I improvised and made a pair of stand-alone devices that simply record spectrum data to a SD card.

Stand-alone VESNA RF spectrum sensors.

Here are two particularly colorful visualizations of measurements I took from a balcony in a residential district. They show changes in a two-dimensional histogram of RF power samples over time. This display is similar to the persistence mode on expensive spectrum analyzers (it only becomes feasible on this hardware though when you have relatively long-term measurements).

Each individual sample recorded the total received power, averaged over 1 ms, in a 400 kHz wide channel. Samples were taken at 255 different central frequencies, continuously covering the band between 2.4 GHz and 2.5 GHz. Color on the picture shows how often a sample with that frequency (X axis) and power (Y axis) was encountered.

Following is a recording of a little more than one day, compressed down to 40 seconds:

A day in Wi-Fi

(Click to watch A day in Wi-Fi video)

You can see here several IEEE 802.11 networks. The nice thing about this kind of monitoring is that you can detect access points as well as devices that connect to them. Devices using 802.11b standard with direct sequence spread spectrum modulation have a slightly rounded footprint. Newer and faster 802.11g/n standards with OFDM leave a more sharply square shape.

Some narrow-band transmissions correspond to wireless keyboards and mice. Others I haven't identified yet. Regularly spaced bumps in the noise floor are due to internal interference from the receiver.

Similarly here is the complete week. Each video frame comprises of 5070 scans of the spectrum.

A week in Wi-Fi

(Click to watch A week in Wi-Fi video)

Posted by Tomaž | Categories: Life | Comments »

Thoughts on Bullet Journal

12.04.2014 20:04

Somewhere around November last year Jure introduced me to Bullet journal. Despite its chilling name, it's simply a set of recommendations on how to organize day-to-day notes and to-do lists in a plain old notebook. I gave it a try and experimented a bit with the way I put things down on paper. Here are some thoughts on the topic after a few months.

I've always kept a notebook with me. Before I started using the Bullet journal, I usually went through one 80 page notebook per year. Now I use up around 20 pages per month.

I don't think I write that much more than before though. I now leave much more space around notes for later additions and I typically start a new topic on a new page. This means that notes are less crowded and more readable after a while, but also sometimes a page will remain three-quarters empty if I don't return to some particular thought.

Previously I did a lot of random notes on various scraps of paper and printouts which invariably accumulated on my desk until they got lost or thrown away. I now tend to do all notes directly into the notebook. Sometimes with pencil if I predict a lot of corrections, but usually with ink. Annotated printouts get taped between the pages of the notebook so they don't get lost.

Every once in a while I tend to do a brain-dump page with lots of assorted tasks that sometimes pile up. But normally I keep notes and tasks organized under a common heading that spans one, two or three pages.

Monthly index page from my Bullet journal.

The biggest improvement that came from Bullet journal are the indexes. I number the pages and I write out an index page once per month. I group individual topics in the index by projects. I still keep dates in the margin of pages. I don't keep per-project indexes, but I plan to make a yearly index of projects. Page numbers don't restart when starting a new physical notebook.

I think indexes are really what made the notebook read-write and not only write-only. It used to be that in my old notebooks I only kept going back to a few pages with the most important notes or recipes that I had to keep looking up. Now I find myself daily browsing back to read a thought I have written down a month ago.

Using square boxes for marking to-do items is also a very good idea. I used to mark to-do items with arrows, but boxes are much more visually distinct and allow for quickly scanning the page for un-checked items. I don't use all of the marks described in the Bullet journal tutorial: I either check the box to mark it done, cross over the line to mark it not relevant or draw an arrow over the box to mark that the item has been moved to another page. This last one is fairly rare, since it's easy to look up past unfinished tasks.

Contrary to the Bullet journal proper, most of my notes are not organized by bullets. They tend to be a mix of sketches, bits of text, diagrams, and calculations. Often my notes start in the paper notebook and continue into a IPython Notebook or some other digital file.

For now I usually write down which digital file is connected to the paper notes and vice versa, add a comment in the file pointing to a paper page number. I try to keep duplication to a minimum, but between the notebook, digital files and project documentation which has to be shared or filed separately, there is necessarily some overlap.

Posted by Tomaž | Categories: Life | Comments »

CREW-TV trials

31.03.2014 21:09

The European FP7 CREW project I'm working on at Jožef Stefan Institute had a few open calls in the past two years. Anyone with an interest in one of our testbeds could apply and, if it passed a review, was given funds and support from the CREW consortium for running their experiment on our hardware.

One of the chosen experiments in the second open call was CREW-TV by Instituto de Telecomunicações from Portugal. They proposed to use our spectrum sensing network to dynamically update a database of occupied radio channels. They would then test this database by setting up an experimental video broadcasting system with dynamic spectrum access (they have an interactive demo you can click around).

The CREW-TV experiment ended this past week when experimenters from Portugal, a colleague from the Institute and myself performed an actual trial of the system in the field and took some spectrum measurements. You could see us around Logatec in a van full of laptops, instruments and a few antennas sticking out.

Van with measurement equipment and an antenna for CREW-TV trial.

Considering the amount of effort that went into this experiment from my part, the conclusions were disappointing to say the least.

The trial itself has been delayed for a month and missed an European Commission deadline because our testbed was damaged by ice. With local services still busy repairing more critical infrastructure, it was sometimes difficult to get the necessary support. Running an out-door testbed on public infrastructure has a hidden cost that shows itself in such situations. Even though people in Logatec have been most supportive of our activities, a lot of time and effort was necessary to coordinate everything across different organizations.

Discone antenna for CREW-TV trial base station.

I also learned a few hard lessons in organizing an event like this. I overestimated the amount of effort that was put into this experiment by our partners from Portugal. I should have insisted that we double check the list of required field equipment after they arrived. I should have insisted that they test their system first in the lab before attempting to set it up in the field, regardless of how confident they were. I should have insisted that we stick to reasonable working hours.

If my colleague and I would have spent two days waiting for them to debug their system at a warm desk, the trial would be a much more pleasant experience for everyone involved. Instead we were all freezing in the rain, attempted to download hundreds of megabytes of software through slow and costly mobile connections and had to mess with equipment at dangerous heights during the night.

I understand there are sometimes cultural differences and a language barrier, but at one point the hospitality must end.

Measuring DVB-T spectrum and bit error rate.

A year and a half ago our group organized a meeting for the CREW project and hosted some experiments at the then brand-new testbed. Not everything was working yet and a lot of things had to be hastily prepared in the last minute. I felt bad then because I thought we didn't show ourselves in a good light to our visitors. I guess I now find myself on a different side of a similar situation.

In the end, out of the mess of notes and spectrum measurements I have, there might be some useful data that could be used to evaluate the performance of VESNA spectrum sensors. So far some of it points at some shortcomings in detection of packet based transmissions. That would be interesting to investigate further in the lab. Other measurements are too contradictory to be of much use.

Posted by Tomaž | Categories: Life | Comments »

RGB LED versus RGB sensor

15.03.2014 12:43

Recently two somewhat related things met on my desk:

  • A self-cycling RGB LED extracted from a nose of a plastic deer, a kitschy New Year ornament and
  • a VESNA sensor board with a TCS3772 RGB sensor.

Naturally, I had to see how they work together.

Self-cycling LED from a New Year ornament.

I have no idea what the LED part is. It's simply connected in series with a resistor to a lithium button cell. When voltage is applied it slowly cycles through a range of colors in an apparently random fashion. SparkFun sells something that looks similar.

TCS3772 sensor on a VESNA expansion board.

TCS3772 is a surprisingly small (around 2 mm) component. It is the 6 pin package in the center of the photo above. It connects through I2C and reports values for red, green and blue light. It also has a sensor without a filter for over-all brightness and can do proximity detection when used together with an IR LED.

I used the default VESNA driver for it and it does not specify how these raw values translate to a physical unit. I haven't bothered to dig into the datasheet to find out.

Self-cycling LED measurements using TCS3772 sensor.

This is what I got when I touched the sensor to the LED in a dark room and recorded its readings in a infinite loop.

The LED sequence repeats in around 30 seconds, which surprised me a bit. When I was just watching it, it looked random or at least with a much longer sequence.

I'm not sure why there is such a big difference in the amplitude of different colors. All three colors look equally bright by eye. It might be because the wavelengths of the LEDs are not aligned well with the pass bands of the color filters on the sensor.

It's also obvious that this sensor (at least with the settings used by VESNA's driver) isn't really made for recording fast changes. The values that can be read out through the I2C bus only change every once in 600 ms.

Posted by Tomaž | Categories: Life | Comments »

Elektro Ljubljana power outages

22.02.2014 17:50

Today is Open Data Day. Unfortunately our little local group didn't have an organized event this year, so I thought I would contribute by releasing a little project of my own.

During the glaze ice disaster this month I've been collecting data from Elektro Ljubljana to share with family and friends living on the affected areas and keep them up-to-date with the situation.

Elektro Ljubljana is one of the larger distributors of electrical energy in Slovenia. It maintains the distribution infrastructure in the central and southern regions of the country, including our capital city Ljubljana. They cover 36% of the population according to their website. From the beginning of the crisis they have been publishing reports on the state of their infrastructure several times per day. They continue to do so, since emergency crews still haven't been able to reach some damaged parts of their network.

Distribution network of Elektro Ljubljana

Image by Elektro Ljubljana d.d.

I've downloaded these hand-written reports and converted them into machine-readable JSON format through a hastily written Python scraper (not proud of parsing HTML with regular expressions, but I've been in a hurry). The data starts at the first report on January 31 and continues to the latest report published today.

You can get the extracted data on GitHub as well as scripts that have been used to extract it:

$ git clone https://github.com/avian2/elektro-ljubljana-outages.git

The following graph shows the number of clients without electrical power (red), affected transformer stations in the whole network (green) and affected transformer stations in the Logatec region (where, in addition to my family, also the Log-a-tec network resides):

Elektro Ljubljana outages due to glaze ice

The animation below shows the development of the outages over time. The color of each region shows the number of transformer stations without power. It would be better if the percentage of affected stations would be shown, but unfortunately I do not have data on the total number of stations in each region.

Posted by Tomaž | Categories: Life | Comments »

Story of ice and more ice

20.02.2014 21:36

As you might have heard, the beginning of February has been kind of crazy regarding weather.

I spent the last week of January with my parents in Austrian alps, enjoying a vacation away from the grid. During the days when we were planning to travel back home more than 2 meters of snow fell in the south of the country. This record snow-fall was too much even for the industrious Austrian road services and all connections with Slovenia were closed. We were lucky to be able to wait it out a warm place.

When the Austrian roads cleared on Saturday we headed home. Unfortunately, the worst was still waiting for us on the other side of the border. When we arrived at my parents', the country was covered in perhaps half-meter snow and encased in an inch or so of ice. Trees were already falling due to heavy glaze ice and we narrowly escaped a trunk falling on the road. It took picks and dirt shovels and heavy work until nightfall to dig ourselves through the snow and ice on the driveway to the house.

That evening first the cable TV went dark and soon after that the power grid. The night was something straight out of a nightmare. It wasn't a storm. Just a persistent slow drizzle freezing on everything it touched. There were constant flashes of incredibly bright blue-green light reflected from the overcast sky. Some close, some far away, from shorted transmission lines. The neighbor's house alarm was triggered by the loss of power and then died down. After that the only thing that could be heard from the dark were loud cracks from trees splintering under the weight of ice.

The next morning there was hardly a tree still standing on my parents' yard. The ice was still thickening and wouldn't clear for a week. Most of the country was in state of emergency due to closed roads and destroyed electrical transmission lines. Logatec, city my parents live in, was among the ones that were hit the hardest by ice.

Glaze ice in Logatec

It's a scary feeling to be in a situation like that. The local supermarket opened running on an emergency generator. We were let in through the staff entrance in the back. It was dark, with only the cash registers powered up. The refrigerators with frozen goods were locked. A customer was yelling loudly at a lady behind the counter how outraged he was that he couldn't get fresh bread. I kept thinking whether I should buy more food than usual in case this situation will last more than a few days and whether that would look weird.

It's amazing to what degree we take electric power for granted today. Water and heat run out surprisingly fast without it. Checking for announcements on local government web site becomes highly nontrivial when the battery in your mobile phone runs down and later when the generator at the GSM base station runs out of fuel. Surprisingly, the only service that was working almost without interruptions, at least at my parents' house, was the telephone land-line.

In the age of electric stoves and kilowatt hair dryers mere 2 kW from a generator is preciously little. Even when you think you have everything prepared for an emergency there are still surprises. My father bought a generator exactly for a contingency like this. He serviced it yearly and kept it in good order, but it still took a few overhauls until it was running smoothly under the load of the central heating system. Many people found out that their generators were out of oil or fuel after a few years of gathering dust.

The server handling this website, my mail and a few other services was also knocked off-line. I had an automated duplicity backup, which I regularly used to restore an odd file or two. I was confident that I could rely on it. When I tried restoring the full backup however I hit two bugs that made moving my things to other servers far less than trivial.

According to reports at the height of the crisis one-fifth of the country was without power and the distribution infrastructure in the Notranjska region was almost completely destroyed. While a temporary line was established to my parents' neighborhood after a week and a half, there are still frequent day-long outages.

Even though my place in Ljubljana never lost power, I now keep a few spare batteries and a battery powered FM radio in the top drawer. And I have even more respect for people I know that volunteered in local emergency services and did long shifts to help people in need.

Posted by Tomaž | Categories: Life | Comments »

On forgetting passphrases

01.01.2014 19:57

If you're using encryption to protect your mail and personal files you might find this lesson useful. This goes double if you are (like me) trying religiously to avoid any holes or bit rot in your personal project archive. The gist of it is that you will sooner or later forget a password or a passphrase that you are not actively using.

Consider the case of changing your expired GPG key. If you forget the passphrase for the expired GPG key, you will lose access to your old encrypted mail. It seems obvious in hindsight, but I only realized that after finding out that after a few months of disuse I am unable to recall the old passphrase. I had to say goodbye to an (admittedly small) part of my mail archive.

On a similar note, an encrypted home directory on an old computer will soon be a bag of random bits after you switch to a new machine and change your user password. If forgetting old passwords used to be easy to circumvent (with init=/bin/bash and other venerable tricks), it's impossible now unless you can recall the keyboard sequence from muscle memory. I thoroughly clean out old hardware that leaves my hands. However if a laptop just ends up sitting in a drawer somewhere I'm usually sloppy enough that I often need to lift some old project files from a disused disk drive.

It's easy to avoid this problem once you know it exists. You can write the old GPG passphrase down somewhere or even remove it from the old secret key, depending how concerned you are about the content of old mail. Or you can keep the passphrases for old keys in sync with the new key. And move files you want to retain from old hardware. That saves it from stuck disk bearings as well.

Posted by Tomaž | Categories: Life | Comments »


21.12.2013 18:31

It is that season again that makes power-hungry notebooks double as lap warmers and is conductive to large hacker Congresses in the north. Before I go catch this year's last few deadlines, attend festivities with my family and then lose myself among the blinkenlights in Hamburg, I thought I might join the custom of writing a personal year review.

Well, it's been an unusual year.

If anything has marked it for me it has been travel around Europe. I am pretty sure that I did more kilometers by plane, car or train than in any other single year in my life. If I count only longer trips, I've been to Athens, Brussels, Cologne, Ghent, Ilmenau, Ludwigsburg, Munich, Paris and more places in northern Great Britain than I can remember. I visited most of these places because of my job at the Institute, others for less formal meetups or simply running away from it all for a while.

The list would even be one city longer if I weren't rushed to surgery at one point which left me grounded and limited to the neighborhood of my doctor's office for a month or so.

Maybe because of travel or other things, I found it hard to concentrate on any really important thing this year. I've noticed that my context switches are getting longer. I can hardly work on two serious projects on two consecutive days. Since this is hardly compatible with looming deadlines and overflowing lists of tasks it has led to a lot of frustration and burn out on my part. If it's an effect of trying to focus on harder problems now, it sure feels often like I'm just wasting time on unimportant details.

The Slovenian Open Data group has been a most welcome source of motivation when all other things seemed to move in a wrong way. It's incredibly inspiring to talk with people honestly doing their best to improve the world.

It's been the year when Kiberpipa was shut down and when I more or less lost contact with the Computer Museum.

A new Debian was released which in one way or another broke many work flows I have been using for years. It left a strong impression that desktop software is slowly going the way of the dodo. Together with the continuing confirmations of surveillance on the Internet it has contributed significantly to the feeling of impending doom and doubts regarding where technology is headed today.

Perhaps because of that I also spent more time than I want to admit on pastel colored cartoon ponies. Even though I occasionally fear that this subculture is all a massive viral marketing campaign it's been at times weirdly fascinating to explore. It was a fun way to forget more serious things for a while. It got me to experiment with drawing and writing fiction which was an interesting new experience, even if most of what I made is laughably unoriginal or has been described as too depressing.

"You're discussing cartoons while your country is falling apart" was a comment I once heard that probably contains more truth than I would wish and maybe sums it all up pretty well. 2013 for me has been mostly about vastly more ideas than time and energy to properly implement them and no good way to select that one idea out of nine that would be worth focusing on.

Posted by Tomaž | Categories: Life | Comments »

UHF receiver redesign

03.12.2013 16:10

I'm currently in the middle of designing a new version of the UHF receiver for VESNA sensor nodes. It has been over a year and a half since I designed the first version. In this time I learned a lot about spectrum sensing and so I now have a much better understanding of the state of the art in this field. It has been obvious for quite a while that the design needs to be upgraded in order to keep up with the latest research.

In this time also came to know the capabilities of the VESNA platform much better and can now work on a design that will have a much better match between what is done in hardware and what can be left to digital signal processing in software. The whole idea is to keep it as flexible as possible while staying compatible with low-powered systems like VESNA (and not go for a full-blown software-defined radio approach).

Unfortunately, this project of mine has been taking way too long, with work-related and personal things interfering at the most inconvenient times. Right now I'm optimistic that I will have the hardware design finalized by the end of the year.

Last Friday I should have had a presentation on the topic of the UHF receiver redesign for our research group at the Institute. Sadly I had to cancel, but I am now publishing the slides I prepared for it here.

SNE-ESHTER block diagram slide.

Get the slides in the PDF format.

Posted by Tomaž | Categories: Life | Comments »

VESNA reliability and failure modes

23.11.2013 22:08

As you might know from my previous writings and talks, Jožef Stefan Institute runs an experimental wireless communications testbed as part of an European FP7 CREW project. Testbed is located in Logatec, a small city around 30 km from Ljubljana is unimaginatively called Log-a-tec. It consists of 54 VESNA devices mounted outside on street lights.

Wireless sensor node in the Log-a-tec testbed.

Each node has 24-hour power supply, but no wired communication lines to other nodes. Instead it has three separate radios. One of them is used to connect to a ZigBee mesh network that is used for management purposes. The other two are used to set up experimental networks and perform various measurements of the usage of the radio frequency spectrum.

The testbed is divided into three separate clusters. One ZigBee coordinator node per cluster provides a gateway from the mesh network to the Internet.

Combined map of the Log-a-tec testbed.

The testbed was deployed in steps around June 2012. It has been operating continuously since and while its reliability has been patchy at best it has nevertheless supported several experiments.

In the near future we are planning the first major maintenance operation. Nodes that have failed since deployment have already been unmounted. They will have failed components replaced and will at one point be mounted back on their positions on street lights. Therefore I think now is the perfect time to look back at the last year and a half and see how well the testbed has been doing overall.

First, here are some basic reliability indicators for time between August 2012 and November 2013:

  • Average availability of nodes (ping): 44.6%
  • Average time between resets (uptime): 26 days
  • Number of nodes not seen once: 24% (= 13/54)

Following two graphs show availability and uptime per individual node, colored by cluster. 13 nodes that have never been seen on the network are not shown (they have 0% availability and 0 uptime). Also note that when a coordinator (node00) was down, that usually meant that the whole cluster was unreachable.

VESNA outdoor node availability from August 2012 to November 2013

VESNA outdoor node uptime from August 2012 to November 2013

I have also been working on diagnosing specific problems with failed nodes. Unfortunately because sometimes work has been somewhat rushed due to impending deadlines, my records are not as good as I would wish for. Hence I can't easily give an exact breakdown of how much downtime was due to what problem. If at one point I will have time to go through my mail archive and gather all my old notes I might write a more detailed report.

However, Since I am getting a lot of questions regarding what exactly went wrong with nodes, here is a more or less complete list of problems I found, divided between those that have been seen once and those that were occurring more frequently.

A box of unmounted VESNA sensor nodes.

Recurring failures, ordered roughly by severity:

  • Broken boxes. VESNA nodes have been mounted in boxes certified for outdoor use. Nevertheless, a lot of them have cracked since deployment. This often resulted in condensation and in at least one case a node that was submerged in water. A lot of other failures on this list were likely indirectly caused by this.
  • I have already written about problems with Atmel ZigBit modules. While intermittent serial line problems have been mostly worked around, the persistent corruption of ZigBit firmware was one of the most common reasons why a node would not be reachable on the network. A corrupted ZigBit module does not join the mesh and requires firmware reprogramming to restore, something that can not be done remotely.
  • There have been some problems with an old version of our network driver that would sometimes fall into an infinite loop while it kept resetting the watchdog. Since we have no means of remotely resetting a node in that case, this bug has caused a lot of downtime in the early days of deployment. It proved so hard to debug that I ended up rewriting the problematic part of the code from scratch.
  • Texas Instruments CC-series transceiver degradation. While this has not resulted in a node downtime (and is not counted in the statistics above) it has nonetheless rendered several nodes useless for experiments.
  • Failed microcontroller flash. Due to an unfortunate design of VESNA's bootloader, it reprograms a block of flash on each boot. For nodes that were rebooting frequently (often because of other problems) this feature commonly resulted in stuck bits and a failed node.
  • Failed SD card interface. For mass storage, VESNA uses an SD card and on several nodes it has become inoperable. Since the SD card itself can still be read on another device, I suspect the connector (which was not designed for outdoor use).
  • Failed MRAM interface. In addition to SD card there is a small amount of non-volatile MRAM on board and on several nodes it has failed for an unknown reason.
  • People unplugging UTP cables and other problems with Internet connectivity at the remote end beyond our control.

One-time failures:

  • Digi Connect ME module SSL implementation bug.
  • Failed Ethernet PHY on a Digi Connect ME module. While these two problems only occurred once each, they were responsible for a lot of downtime for the whole City center cluster.
  • Failed interrupt request line on a CC1101 transceiver. Unknown reason, could be bad soldering.
Posted by Tomaž | Categories: Life | Comments »

Masters of Doom

28.10.2013 19:16

Recently I finished reading Masters of Doom by David Kushner. It came on my radar because of a post on Hacker News that said this was a book that inspired Alexis Ohanian and Steve Huffman to make Reddit.

The story follows John Carmack and John Romero from childhood, through the founding of id software, later successes and failures of games they developed and concludes with the founding of Armadillo Aerospace. Compared to other books I read about ups and downs of US start-up companies (like The Facebook Effect or Dreaming in Code) it presents a more personal view of people in it. It often goes into first-person details of how someone felt about other people or the way some project was going. That makes for an interesting description of dynamics in a team and how they led their lives. It also makes me wonder how much of these details can genuinely be learned through interviews and how much has been added later to make for a more interesting read.

While this part of the book is quite well written in my opinion, the author fails horribly at describing technical details or any of Carmack's many breakthroughs in computer graphics. Even though I knew beforehand many details of id game engines I was constantly baffled by their descriptions in the book and went several times to Wikipedia to check my memory (by the way, the best description of Carmack's smooth-scrolling trick in Commander Keen I could find is on this Wikipedia talk page). Even more puzzling is the wrong explanation of gamer slang telefrag. Thankfully only a small part of the content is dedicated to technical topics, but it makes me wonder how such mistakes could have happened when the author describes himself in the epilogue as a hacker that was himself involved in the gaming culture.

In the end I still enjoyed reading the book. It included many events I remember reading about in magazines years back and presented them from the other point of view. The story also gives a quite good time line of events and gives a genuine impression of the amazing speed at which advances in technology happened at that time.

According to the book, Doom was half-jokingly made to be the number one cause of decreased productivity in businesses around the world. If designers of Reddit took that as inspiration for their website you could certainly say their success was along the same lines.

Posted by Tomaž | Categories: Life | Comments »

Comments closed

19.07.2013 9:38

Number of comments submitted to posts on this blog has gone through the roof recently as you can see on the graph below. Of course, practically all of these are spam. Unfortunately moderating this flood of crappy advertisements and link baits is now starting to take more of my time than I am willing to spend on it. Since I want to keep my little corner of the web a clean and friendly place I'm closing the comment submission until I come across some viable solution. In the mean time if you have a question or want to contribute something to one of my posts, feel free to sent me an email.

Number of submitted comments versus time.

While Akismet has been doing a pretty good job of automatically filtering comment spam for me, it's been letting a non-trivial amount of it through in the recent months. Considering the increase in volume, that might not even be due to decreased accuracy.

The kind of spam I'm seeing is kind of surprising. Spammer fetches the blog post that contains the comment submission form, submits a comment and fetches the post again to verify that his comment is visible. After these three HTTP requests the originating IP is never seen hitting my server again, making me think this is done via a botnet or some other distributed operation like that. There is no obvious sign of crawling so I don't know how they get the URLs to spam. They use realistic looking user agent headers and the only obvious difference to a real browser is that they don't fetch any of the resources (images, CSS, ...) referenced in the HTML document.

The content varies, but a lot of the comments I've been removing manually these days look like bug reports ("the sidebar is not rendering correctly on my browser", "search doesn't work" and such) that are only given away by the obvious keyword stuffing in the author name and the URL (or when they are complaining about bugs in features this website doesn't have). They target both new and old blog posts, so just shutting down comments on old posts doesn't seem to be a solution.

Posted by Tomaž | Categories: Life | Comments »

Missile Gap

13.07.2013 20:58

Recently I read Missile Gap by Charles Stross (first 9 chapters seem to be freely available on the web). It's a fascinating little hard-science fiction story that mixes Earth from the cold war era and a completely outrageous premise that the world has suddenly become a flat disc.

I can just imagine this started as a crazy idea in the form of "well, I wonder what would happen if the Earth was flat" and then brought to the logical conclusion, with the politics of the 70s thrown in to make for a more captivating story. I think Missile Gap shows in the best possible way how a science fiction story can start with a completely unbelievable event and then build a world and extrapolate a line of believable events around it that makes for an enjoyable read that doesn't force you to suspend the rational part of your mind. Many stories I come across these days have less outrageous plot devices, but then continue to break known laws of physics like crazy during their course.

What also kept me turning pages is the inclusion and logical continuation of quite real, but obscure research projects that both superpowers were working on at that time. For someone like me who has spent too many hours reading up on canceled concepts of nuclear powered airplanes and rockets this was like icing on a cake.

Visualization of Missile Gap by Charles Stross

Anyway, the other day I needed something to occupy my mind and having the book handy on my Kindle and an idle Python interpreter on my laptop, I drew the visualization above. It shows Missile Gap's 17 chapters in three colors, to show three separate personal stories the book revolves around. The length of the boxes is proportional to the number of words while the accumulative number of words is shown on the scale on the right (click on the image for a larger version).

Posted by Tomaž | Categories: Life | Comments »


10.07.2013 22:47

Last weekend Jure and I visited this year's iteration of the SIGINT conference in Köln, Germany. SIGINT is a conference organized by the Chaos Computer Club and like the Chaos Computer Congress has a bit of history. Previous years it felt more like a local event and I didn't consider visiting it. This year however I decided to give it a try since the announcement gave the impression that they were aiming for a more international audience, for instance with the preference for English talks in the Call for papers.

SIGINT 2013 logo

At the first impression, the event looked much like a summer version of the Congress. Instead of one big hall the conference was split between two buildings with three lecture rooms, two halls and an obligatory basement hack center with copious amounts of reasonably priced Club Mate. Beyond the Fairy dust you could see some usual suspects from past winter events in Hamburg and Berlin like the All Colors Are Beautiful blinking IKEA boxes installation, Rarity hacked Brother embroidery machine and Nick Farr in his trademark suit.

The talks were a mix of social and political topics, computer security and various other curiosities that I came to expect from hacker conferences like this. The society track was unsurprisingly dominated by the recent leaks about United States data collection. From these I can recommend watching the keynote by Meredith L. Patterson and the Politics of Surveillance by Rainey Reitman. On the computer security topic there were perhaps a few more talks by people that can read x86 assembly by heart than you could find at 29C3 (where I believe a lot of this crowd opted to go to BerlinSides instead). Embedded device security nightmares and Car immobilizer hacking rang close to home for me. Also worth watching once the video recordings are published is the Secure Exploit Payload Staging which gives a good impression of how little trace someone can leave after breaking into your server. From the retro-computing scene, I liked the The DRM of Pacman talk about vintage hardware copy protection schemes in game cabinets of old. And finally, I thoroughly enjoyed the Making music with a C compiler lecture, which made me think again about the complex synthesizer I implemented on VESNA. By the way, slides for my lightning talk on that topic are already on-line, although the original blog post is probably more informative.

In conclusion, it was a nice event with an appropriately lazy pace for an extended summer weekend. My only complaint would be that the crowd felt less open than what I'm used to at the Congresses. It was hard to strike an English conversation with someone and looking back I didn't really had any interesting chats at the event beyond me asking a few stupid questions regarding projects exhibited in the hallways. I couldn't help overhearing a few comments regarding how different the event was compared to previous years, so perhaps it's just a sign that most people there were still used to a more local audience. In any case that's a completely subjective feeling and it's perfectly possible that I wasn't in my most sociable mood either. I'm starting to fear that I might have slightly overbooked my travel plans for this summer.

Posted by Tomaž | Categories: Life | Comments »

Decline and fall of Kiberpipa

08.06.2013 16:50

I guess by this time it's a well known fact around here that Ljubljana's hackerspace Kiberpipa has come to the end of its days, at least in its current place and form. A farewell party has been held, good byes have been said and all it remains now is to start unplugging the server rack.

If you haven't been following the news, the simple story is that Kiberpipa's parent organization twice removed decided to convert the place into a restaurant. Destruction of a hackerspace is merely a collateral damage in a grand scheme of converting an old building full of non-profit student and art organizations into a very for-profit hotel in a sweet spot near the center of the city. As it's usual in such cases there's also a back story that involves removing opposition through legalistic procedures and suspicions of personal interests. It was all done under cover and the community found this out only after the contracts have been signed through rumors, hearsay and digging through meeting minutes. An official statement has only been made when media started asking questions even though Kiberpipa had a representative that should be kept up to date with such things.

Kiberpipa storage room.

I'm not and never was involved in the internal politics of Kiberpipa's tenuous relationship with its masters. For me, Kiberpipa was foremost a place to go to after lectures and later after work where I could meet the kind of people that enjoyed idly chatting about technology and various other geeky topics instead of sports events and daily politics. As I was involved in Kiberpipa from the start I did use to have daily responsibilities there, like administration of servers and taking care of network security. Kiberpipa was also the place of my attempt at running a serious free software project. Many hours were spent at weird hours in a cramped server room and I learned a lot from these jobs, but unlike other hackerspaces, Kiberpipa's attractiveness was rarely about having access to equipment that I wouldn't have otherwise. It was foremost the social aspect that kept me returning to the place. I found many valuable personal connections that later led me to start ups and other interesting volunteering work.

That said, Kiberpipa never felt like a tightly knit community. People that frequented the place or used its name on projects were always divided into groups that did not communicate well with each other. Contrary to most other hackerspaces, Kiberpipa was from the start tied to a relatively large non-profit that ran several other, mostly artistic operations, under control of the Student organization of the University of Ljubljana. For majority of my time in Kiberpipa they were kind of a fuzzy entity that only showed itself only when it exercised its power over some official aspect of the organization or left the place in ruin after an unannounced party. Ties between the more technical hacker crowd and arts communities were rarely relaxed. Often there was an unusual reversal of roles where artists were the ones supplying money through various public grants and technical people perceived as moochers playing with their toys. In its early days there was also a strong political activism side to Kiberpipa with which I didn't particularly identify myself either.

Kiberpipa server room.

When a rare project that involved collaboration happened, it was often setup and discussed outside of general channels like the member's mailing list. It's not surprising then that in all years of its existence and numerous formal and less formal meetings and discussions it was never possible to come up with a mission statement or give an answer what Kiberpipa was that everyone would agree with.

Even with hindsight it's hard to say what could have been done differently. It's doubtful that Kiberpipa would be this successful without its partnership with the student organization that ultimately led to its destruction. It provided an accessible, rent-free place and connections to government subsidies that removed the need for membership fees. With them the place would certainly attract a lot less people. Kiberpipa's community also showed a lot of flexibility, changing over the years its external face from mostly being a free cybercafé to a place to go to for lectures and workshops about various topics. Part of this probably comes from the fact that the community never learned how to transfer knowledge between generations, but still it's impressive enough that comments can be heard from old members that they never though the place would survive for 13 years.

Kovchek, Kiberpipa's old mobile video streaming server.

Although I mostly kept myself in the background and had my share of conflicts and grief there, Kiberpipa has been a big part of my life and I'm sad to see it end like this. Things may not be as bad as they look though. The latest generation of Kiberpipa's members are looking for ways of continuing the story in an independent fashion and although I'm not actively involved in that effort I hear that the outlook is good. I'm usually too pessimistic in such writings anyway. For better or worse I am quite certain though that Kiberpipa 2.0 will be quite different from the dark and smelly open source cellar we started 13 years ago.

Posted by Tomaž | Categories: Life | Comments »