Author: ulrichard

  • BitCoin hits CHF 100 mark

    Yesterday one BitCoin was, for the first time, worth more than CHF 100!

    When I first learned about BitCoin in early 2011, CPU mining was still enabled in the default client. I mined for a few days, but it was probably already too late for the CPU. GPU’s took over before that. Last year, you needed FPGA’s to profitably mine, and now it’s shifting over to fully custom ASIC’s. I still sometimes mine with the GPU in the background while the Computer is running anyway, and I don’t use the GPU for anything else. It didn’t find a block so far. But for me that’s kind of like playing the lottery. The chances are slim, but if my computer could find the proper hash, that would cash in 25 BTC at the moment which would equate to CHF 2’500. And that slim chance starts over roughly every ten minutes.

    There is a site somewhere on the net (I forgot the location) where you get free BTC. Back in those days, you got 0.05 BTC. That’s how I started off. This would now equate to CHF 5, but these days you get much less.

    Since July 2011, I accept BitCoins as payment for the paraeasy.ch paragliding tandem flights. In fact only one guy payed that way so far. In October 2011 the flight cost 75 BTC at a rate of less than CHF 3 per BTC. If I still had those 75 BTC, they would be worth a whopping CHF 7’500 today.

    I was thrilled last August, when it had an 80% increase within two weeks. But what happened this year was just insane. The price went from CHF 11 to CHF 110 in just three months. There were weeks with 10 to 15% increase every day.

    The other day I walked past a local bank, and saw an advertisement for a defensive savings plan with an 8 year obligation where you get 1% profit. Of course it’s an unfair comparison. Noone knows what will happen next to the BTC value. It could drop any day for any number of reasons, or it could keep rising. I wouldn’t invest my savings so far.

    There is a lot of speculation going on about the future value of BTC, and how certain events could influence that. Last week I read an interesting article about that. But there is also a lot of speculation about a bubble about to burst. Indeed the recent rise in value was so unnaturally fast, that it looks like a bubble. But such a bubble already bursted in 2011, and BTC recovered remarkably well.

    Let’s not concentrate on the value itself. I think for BTC it would actually be better if the value was a bit more stable. The system was designed as a means to transfer money quick and easy. The main motivator was being able to transfer funds around the globe without waiting for a couple of days to arrive, and paying ridiculous transfer fees, as with current bank wire transfers, credit cards or paypal. That’s where BTC really shines. Of course it’s nice to see the value of your Coins rise, but I hope a possible bubble will not harm the system too much, and I strongly hope if that bubble should really burst, BTC will recover even stronger.

    Update : additional links to good articles:

    The bitcoin bubble and the future of currency

    Are BitCoins the future?

    The target value of BitCoin

    BitCoin in the 3rd world

  • Adding a display to rfid time tracking

    More than a year ago, I blogged here about using RFID to track presence times in the BORM ERP system. I used the system a lot since then. But the BlinkM was really limited as the only immediate feedback channel. To use it with multiple users, a display was needed. The default Arduino compatible displays seemed a bit overpriced, and the Nokia phone that I disassembled didn’t have the same display as I used for the spectrum analyzer. But these displays are available for a bargain from china. The only problem was that the bifferboard didn’t have enough GPIO pins available to drive the “SPI plus extras” interface. But i2c was already configured for the BlinkM.

    So, the most obvious solution was to use an AtMega8 as an intermediary. I defined a simple protocol and implemented it as i2c and uart on the AVR. I also wrote a small python class to interface it from the client side. As I buffer only one complete command, I had to add some delays in the python script to make sure the AVR can complete the command before the next one arrives. Apart from that, it all worked well when testing on an Alix or RaspberryPi. But i2c communication refused to work entirely when testing with the bifferboard. Not even i2cdetect could locate the device. That was bad, since I wanted to use it with the Bifferboard, and the other two were only for testing during the development. I checked with the oscilloscope, and found out that the i2c clock on the bifferboard runs with only 33kHz while the other two run at the standard 100kHz. So I tried to adjust the i2c clock settings on the AVR, as well as different options with the external oscillators and clock settings, but I was still still out of luck. Then I replaced the AtMega8 with an AtMega168 and it immediately worked. Next, I tried another AtMega8 and this one also worked with the Bifferboard. I switched back and forth and re-flashed them with the exact same settings. Still, one of them worked with all tested linux devices, while the other one still refused to work with the Bifferboard. So I concluded, one of these cheap AVR’s from china must be flaky, and I just used the other one. Seems like that’s what you get for one 6th of the price you pay for these chips in Switzerland.

    Apart from the display, I also added an RGB LED that behaves like the BlinkM before. And on top of that a small piezo buzzer. But since I could hardly hear it’s sound when driven with 3.3V, I didn’t bother re-soldering it when it fell off.

    Now, my co-workers also started logging their times with RFID.

    The code is still on github.

  • Wallis Ski Holiday

    Last week we spent a ski holiday in the Wallis. We stayed with Mirella’s mother. Most days we went to Bürchen to practice skiing with Levin, and have some sledge rides with Noah. Levin went to the ski school for half a day, but he didn’t like it at all. He preferred being taught by us.

    I did two flights from the Ski area above to Bürchen. Both were in downward wind. At the later one, the wind was blowing down so strong, that I inflated in the lee of a small building, and then skied really fast to get airborne. The icy wind was a good test for my new down insulation layer jacket.

    Mirella and me took one day off, and went to Zermatt for skiing. We were mildly shocked when we saw the price for a one day ski pass. That’s roughly CHF 80. But we were never before on the small Matterhorn, and the snow as well as the weather was perfect. The cablecar for the small Matterhorn runs up to 3880 meters above sea level. Well, one could say the Jungfrau Joch is not as high, has no ski slopes and costs even more. We had lunch up at the top and could feel the altitude. Then we descended into Italy before returning back to Switzerland.

    And then there was one day with clouds forecasted. As all others had better weather, we made a break. But still, the sun was shining when we walked around the town.

  • GPGPU programming class

    It’s already a while back that I completed the coursera class “Heterogeneous Parallel Programming“. It was mainly concerned with cuda, which is Nvidia’s GPGPU framework. GPGPU is about running common computations on the graphics card. The class also quickly covered OpenCL, OpenACC, C++AMP and MPI.

    In the programming assignments, we juggled a lot with low level details such as distributing the work load to thread blocks, which I almost didn’t care about when using OpenCL so far. After seeing cuda and OpenCL, it was a little surprise, that C++AMP is indeed a more convenient programming model, and not just a C++ compiler for the graphics card. Let’s hope that it gets ported to other platforms soon.

    The most eye opening revelation for me was, that it is possible to parallelize prefix sum computation. When I was first presented with the problem, I thought that’s a showcase for serial execution. But apparently it’s not. Making it parallel is a two step process. First make a number of blocks, and compute the sum at the boundary for each one using something like a tree structure (in parallel). Once you have that, it’s more obvious, how to parallelize the rest.

  • Skiweekend in Hasliberg

    Last weekend I was in Hasliberg wih the ski club “Schneefreaks” from Steinhausen. They booked two full days of tandem flights. So I did ten flights with skis and two with snow board. The weather was almost perfect and so was the snow.

  • minimalist lasershow

    For a long time I marvelled at sites with self built laser shows. There is truly amazing stuff out there. But most of them look like really lots of work. And with simple commercial units getting cheaper, I don’t know if all that effort can be justified. So I had a look at the commercial ones, and found out that DMX units are not enough if you want real-time control. I would need an ILDA connection for that. These units start at about CHF300. I’m considering it, but I’m not quite ready for the investment. To get started I wanted to toy a bit really cheap. I saw the posts where they glue mirrors onto loudspeakers for a long time, but that didn’t convince me. Then I saw someone using the lens mechanism of a CD-ROM for both axis simultaneously. That looked more interesting. Too bad, I disposed a CD-Rom drive just a week before seeing this.

    I wasnt keen enough to drive the coils directly from the micro controller as in the instructable. Coils, like motors and relays are inductive loads that can induce high voltages in the opposite direction, once stopped. As the mechanism goes both ways, a h-bridge seemed appropriate. I had some L293D here which fitted the bill perfectly. To draw simple patterns, an AtMega8 should be enough, I thought. Because I had no more fitting sockets, I soldered it directly onto the PCB, hoping I wouldn’t have to remove it.

    As I had no suitable mirror around, I cut out a small piece of a CD. I hot-glued it to a part of a paper clip, which ran through a hole of another small PCB, and hot-glued the other end to the lens. Applying voltage to the coils moved the mirror.

    I wanted to draw a circle, but what I saw at the wall didn’t resemble to a circle at all. Debugging the thing, I discovered, that one of the four PWM outputs of the micro controller didn’t work at all. I read in the Arduino docs, that some PWM pins could be slower, so I avoided these from the start, but one didn’t work at all. I tried a couple of alternatives, also the slower ones, but no. Then I found out that the AtMega8 has only three PWM channels, and I only looked at the Arduino docs for the AtMega168 with which I did the first tests.

    I’m sure with an AVR that has 4 PWM’s and a bit of tweaking, I should get better patterns. But with this design I’ll never get real-time laser show control, and it’s not suitable for ILDA test patterns. But it was fun experimenting nonetheless.

    As usual, the code is at GitHub.

  • One legged speed flying

    Today, I took a day off, to go to the Gemsstock for speed flying. It was almost as sunny as the forecast predicted. The cirrus became dense in the afternoon. Although the prevailing wind was north west, sometimes it blew down the slope, especially in the lower parts. But it was well within the comfort zone. The first few runs were from the galcier to the Gurschen (the middle station), along the glacier ski slope. Once the sun was higher, I switched to the Felsental (rock valley) which runs from the top all the way to Andermatt. That’s about 1’500 meters altitude difference and takes less than five minutes with the speed wing.

    I did lots of touch n goes and some longer skiing sections along the different terrace steps. Then, all of a sudden in a straight section that didn’t look so bad, one ski jumped off my foot and stayed there in the deep snow. The next two terrace steps were not suited for landing, and I was too fast anyway. Walking up from farther down in the deep snow of the steep slopes seemed too exhausting. So I flew down to Andermatt, intending to try and fly to the place where I lost the ski. I was not sure how easy it would be to take off with only one ski. Turns out, I succeeded at the first try without any problem. No idea if every attempt would go so well. I looked for a good place where I could slope land in the tight valley, close to where I anticipated the ski. Again, the one foot landing went smooth. But then I walked around in the deep snow for more than half an hour searching for the missing ski. Walking one of these slopes uphill was indeed exhausting. So I took the one ski and descended to the next terrace step. When it was too steep, I sat on it, almost like a sledge. Once I found it, the rest of the descent was a lot easier…

  • my first package in the official debian repository

    I have created deb packages for a couple of years now. Primarily for software that I created myself, or was somehow involved. But sometimes I also packaged stuff that I just used, and wanted to be able to conveniently install and upgrade on different systems. One of these was printrun, a host software for reprap 3d printers. I packaged it, and provided packages for ubuntu in my ppa, and packages for debian in my own little repository. Then one day, Scott, a debian developer contacted me, asking if I was interested in getting the package to a state ready for inclusion in the official debian repository. The debian standards are very high, and so far, my packages didn’t need to meet those standards. But I wanted to improve my packaging skills anyway, and that looked like a great opportunity to learn from someone experienced. (more…)

  • locally encrypted remote storage

    Unlike the ordinary users, tech savy people are well aware of what can happen to your data, if you store it on cloud services such as dropbox. There are services that promise to encrypt your data locally, so that they can’t access them, a prominent one being wuala. On one hand, I don’t know if their client is open source, thus if you can check that you are really the only one capable of decrypting your data. And on the other hand it’s a paid service.

    Usually, you can do almost everything that commercial products or services offer, free of cost but with a little investigative and manual effort on linux. This one seemed harder than usual, though. (more…)

  • switching the christmas tree online

    The first time I got interested in home automation, was when browsing the arduino libraries. That was all about X10, which communicates over power lines. There are switches that can replace the regular light switches and are pretty cheap in the US. If you want such switches here in Switzerland, you’ll be surprised how expensive they are. And routers with X10 to make it accessible from your smart phone start at CHF 400. But what is easier to get here are the plugs with 433Mhz rf controllers. I got a set with one remote and three plugs for CHF 15 at hornbach. Then I ordered two different transmitters from China. One with the nRF905 chipset and an SPI interface. And one for sort of bit banging. I thought the one with SPI was going to be easier to use. I also found some code to interface it. But first I had to know what I need to send.

    My first Idea was to use the DVB-T dongle with GnuRadio to sniff the rf protocol. (more…)