Category: Uncategorized

  • Jumping ship as google is getting evil

    For many years google stood out of the big IT enterprises as an example of respecting their users and embracing open standards. Sadly, they are drifting away from that, and it looks as if they want to get as insidious as the others. Gone are the times of “do no evil”.

    Just recently, I wanted to upload a video to youtube. For some reason, it didn’t let me, unless I created a Google+ profile. WTF!!! This is insane. I don’t want your creepy, time wasting social platform. I just wanted to upload a video!

    Instant Messaging

    This week, I read in the news that they want to abandon XMPP in their GoogleTalk. This one is even worse. After Skype was assimilated by the evil empire, I was happy to find a better alternative. Long before that, I was unhappy with the closed proprietary nature of Skype. And with GoogleTalk I was not forced to use some crappy piece of proprietary software to chat with my friends.

    The good thing about such events, is that every time I learn a little something about the underlying technology. For instance, I just learned about the federated nature of XMPP. So far, I only used it to communicate with people on the same server. So I thought about running my own xmpp server, but then I created a jabber account on FSFE today. With this I’m able to chat with people on any standards conforming XMPP server….. Google is sadly soon no longer one of them. My xmpp address is  ulrichard@jabber.fsfe.org if you want to connect.

    PIM Syncronization

    Next thing was contacts and calendar synchronization. I used to do this directly via infrared or bluetooth between phone and computer. But when I bought my Android phone, it was just sooo convenient to use the Google services. That even outweighted the unease of having my private data on their servers. So far it has always been easy to download all my PIM data from the Google website to make backups and be prepared to use it somewhere else, just in case… Thanks for that Google, that is exemplary! But who knows what they are up to, next.

    To be prepared, I looked for alternatives, to have the same ease of use, but re-gaining control of my data. I didn’t want to set up a box with owncloud or something similar, as I have an ubuntu server running already. It didn’t take much duckducking to find davical. The installation is easy, but I’m sure the debian package could be made in a way that none of this manual configuration would be necessary. It used to be only for calendar, but with recent versions, they also added contacts.

    Setting it up in Evolution was also quickly done.  The only thing to find out was that apparently CardDAV and WebDAV are the same thing.

    Contrary to my expectation, Android 4.0 has no native support for CardDAV nor CalDAV. But the app’s from the market work well. I use CalDAV-Sync and CardDAV-Sync both from the same developer. They nicely synchronize the built in address book and calendar. He promised to opensource them, once he cleans up the code. I also tried Caldav Sync Free which is already opensource, but it currently has only one way sync.

    eMail

    I never used my gmail for much other than mailing lists. For the most part, I use my paraeasy address over imap. It is hosted at a regular provider and works good enough. It would offer webmail, but who needs webmail anyway? I made more than one attempt to set up an eMail server on my own server, but so far I’m not confident enough to use it publicly. From what I know, correctly maintaining an eMail server, and not ending up on a black-list is more difficult than a webserver. This is because spammers are happy to abuse it, if it is configured incorrectly. I tried different tutorials with varying degrees of success. Some tutorials are actually quite intimidating. Now today, I found iredmail which seems to be very easy to set up, but is meant only for freshly installed servers, and has some stuff that lives outside of the repository. As my server has been running for some years, was upgraded multiple times and runs a variety of services, it didn’t go so well. I will probably keep trying, but it has still no priority.

    Files

    I don’t use GoogleDrive nor UbuntuOne nor dropbox nor wuala nor anything similar to synchronize files. While I appreciate the ease of use, git suits me better. That’s right, git, the distributed version control system, a developer tool. It was not developed to synchronize the home folder, but it works very well for that purpose. Long before anybody talked about file synchronization (other than rsync alikes), I used subversion. I admit, there is some typing involved, but I have full control, full offline history and can compare revisions. That is on any device, and yes I run debian inside my Android phone. The master repository lives on my own server and is protected with a key that is stored on a smart card.

    Conclusion

    It’s sad to see Google services deteriorating, but there are alternatives

  • Jaguar headliners repair

    Remember the Asterix & Obelix comics, and that the only thing they feared was that heaven would fall on their heads? That happened to me lately. But it was not as bad as that might sound. Well, the joke doesn’t quite work in English. In German, we call the headliners of a car “heaven”. Last summer, when I had the power steering of my vintage Jaguar XJS repaired, the car was in the sun for a few weeks. Thus, the fabric on the inside of the roof loosened and hung down.

    Now, I finally had it repaired. I found a holstery  in Goldau (kk-cabrio). To bring the price down a bit, and also out of interest, we agreed that I would take a day off, and help with the tedious parts. While Kuschj would do the more complicated stuff that requires experience not to break anything.

    That worked out really well. I dismounted and mounted the misc stuff from the car, and helped with the headliners. To make sure the new fabric wouldn’t fall off again, I had to scrub off all the old glue from the pressed glass wool mold. Also the trims at the side of the roof got new fabric. There was a spot which had a hole, that was visible for all of the eleven years I have owned that car.

    In the afternoon, we disassembled the passenger seat. It was in need of sewing on the side.

    After everything is done, it’s now much more pleasant to sit into the old cat.

  • Variable fan speed for the camper

    The T3 VW camper vans came with a three step fan speed switch. Maybe it broke just like that, or maybe it was due to the kids playing with it endlessly. No matter what, the broken switch was a good opportunity for an upgrade. I ordered a 15A PWM motor speed controller which I thought should be big enough. Its potentiometer was broken on arrival, so I got a more rugged one from the local shop.

    Connecting it was more complicated than I thought. With the original three step switch, the motor was directly connected to ground, and the highest tier connected it directly to 12V. The other two tiers had resistors in series. My naive expectation was that the ground would be common between source and motor, in the PWM unit as well. But instead the plus was common and the minus was PWM switched. So I had to search the connection from the motor to ground and cut it.
    In the end, it works like a charm…

  • tinkering with the kids

    This Easter weekends the weather was really crap, so we stayed home. We had lots of time to spend with the kids, and we all enjoyed that. The boys are still a bit too young for the projects I usually do, but we just did our first electronics lession.. Even if Levin didn’t fully understand how a photon derails an electron in the silicon of the solar cell, he still liked to see how the prop blew more air when he better aligned the cell to the sun.

    What you need is just a pack of match sticks, some glue, a small solar cell and a tail boom of a broken RC helicopter.

    Levin also created a Triceratops. You see it on the photos, that’s the dinosaur with the three horns.

  • 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.