Hackthevalley Hackathon 2017 Baar

Motivation

After the good experience last year at the six fintech hackathon, I was trilled to go to hack the valley which is even closer geographically and whose subject is even closer to Bitcoin. My goal was to gain experience with ethereum. So far I only completed the tutorials. I found the technology very interesting, but in the past, I couldn’t come up with a good idea how to make use of it. Neither did I learn of a killer product that went live. This is in stark contrast to Bitcoin. When I first learned about Bitcoin, it was immediately clear to me that this was something very special, something that I waited for without knowing.

Team formation

In contrast to the hackathon last year, most people already showed up as teams. I estimate that only about three of the fourteen teams were formed on site. I joined three guys from a bank in Paris, along with another French guy and a South African who lives in Zurich. First we had to decide on a project. We went through a list with a couple of ideas. But it turned out that for a lot of them it was hard to justify what benefit a blockchain would bring compared to a more traditional approach. That is something I see a lot in the current blockchain hype. Showing up as a team with a formulated idea is a big advantage, as the technology and possible problem areas can be explored before. But In both occasions I enjoyed it to meet new and interesting people and see what we can achieve together in this limited time.

Our project

We settled on the challenge “fighting fraud in the supply chain” with a project that puts smart locks on containers. The devices log all open and close operation on a blockchain. Unlocking operations would have to be authorized by a smart contract. The locks communicate with bluetooth low energy with an app on a smart phone. This in turn communicates to a backend that talks to the blockchain.

Implementation

Shortly after we had the rough concept, the other team members stated that they would feel more confident implementing the smart contract in java, rather than solidity. That’s why they voted for using hyperledger instead of ethereum. Setting it all up and getting the docker containers to work proved a lot more difficult than anybody anticipated. Not only had some team members Windows machines, but also on linux we faced a problem. Namely the docker containers were configured to use the google nameservers, while apparently all outside DNS was blocked by the Thomson Reuters network. The connectivity was generally very flaky.

Infrastructure

I enjoyed working with the team. But that we didn’t know the infrastructure we were working on, complicated our work considerably. The last time I programmed seriously with Java was probably 15 years ago. And we didn’t have good tool support within the environment. I’m sure it is possible to set everything up to work comfortably, but that would have cost us more time even than we lost with the complicated turnaround cycles. In the end, we couldn’t complete our prototype in time. Sure, that is is not a strict requirement of a hackathon. But it’s the pride and goal of every software developer to have the thing perform in a live demo.

Presentations and prize giving

As is common for events like this, the quality of the projects varies wildly. I think nobody in our team expected to be in the top ranks. Even though I must say the presentation looked better than my code.
The project that I liked the most was about subleasing parking spots while people don’t need them. I could imagine something like this generalized to become a decentralized form of AirBnB.
The winners were the same people that won the London HackEthon. During the presentation I thought it rather boring. It was about heart rate sensors publishing directly to ethereum. A smart contract would then take action if the data was out of order. Only after they received the price, I thought some more about it. In hindsight I can see the value in it, and that it was probably implemented better then most other projects.

Conclusion

Thanks to Thomson Reuters and all others involved for organizing this great event!
I hear a lot from Bitcoin maximalists that all other chains can’t compete with the one true blockchain. I’m also invested most in Bitcoin, but I want to be open to the possibilities of other blockchains and smart contract platforms in special. Although I must admit, I never saw a compelling reason for permissioned ledgers and private blockchains. A week before the event I learned about Bitcoin uncensored, and listened to a couple of the episodes. They essentially debunk most of the altcoins and blockchain projects. Calling them ponzi schemes and frauds. This made me skeptical of the blockchain boom, but all the more I was keen to discover good uses at and event full of blockchain hackers. I’m still positive that there are applications that can be improved with blockchains. But most of the ideas have to be descarded upon closer inspection. The only three practical uses for blockchain so far are monetary, timestamping and naming. I am looking forward to expand this list, but it’s not as easy as it seems at first.

Decentralized websites and more

“Cool idea, but to be of any use, it would need more functionality and more content” was my impression when I first looked into zeronet. Back then static web pages were all there was, and no UI support for any managing tasks. The next time I checked, probably more than half a year later, it had a blog engine, subscription on the welcome page, mail, chat, forums, wiki, boards and more. Blogs was what hooked me this time. The interesting feature was that you could subscribe, and have the news listed on the hello page. So I started to write new blog posts both on wordpress and on zeronet. True, wordpress has lots of more functionality than the zeronet blog engine. Some things are nice gimmicks, but none of it is really essential. ZeroBlog is really all you need.
Some people started to leave twister for zeronet, but I couldn’t quite understand why. For me, it filled another niche. They are both very nice in their own way.

How it works

To create a site, you can execute a python command on the commandline, or simply clone an existing zite. In both cases, a private key is generated that you need to later sign the content. Signing is really easy, but you better take good care for your private keys. Make sure not to share them, but do make backups for yourself. From the private key, a public key is derived and from that a BitCoin address. The BitCoin address serves as the unique identifier for your zite. If this identifier looks too complicated, you can register a shorter name on the NameCoin blockchain, and link it to your bitcoin address for the zite. Once you sign and publish your zite, you can give the address to your friends, or publish it where other people can pick it up. Whenever another zeronet user requests your address, he sends the query into the mesh. Whoever is closest, serves the files anonymously. Now the user who visited, becomes a seeder who also serves your content. No central server required. Now you can switch off all your computers, and your zite is available. Your zite stays online for as long as there is at least one other user seeding it.

Proxies

To visit zeronet sites, or simply zites as they are called, you should run the zeronet client. The software is written in python with few dependencies. So it is really easy to run. You can either run it locally, or on a personal server. Then just visit the entry page with the browser and navigate from there. But if you want to visit a zite without installing any software, there are also public proxies. There are many reasons why running the software is better than using these proxies, but I won’t go into the details now. And I don’t list the proxies here.

ZeroMe

Then came merger zites. I read about the concept before the release, and was really curious. Some things are not as easy to accomplish with a decentralized anonymous system as with a centralized architecture. But when I had my first play with ZeroMe, my reaction was “Wow this is what I have been waiting for”. I don’t use most social media because of the centralized architecture, and because they own all the data of the users and can make with it whatever they please. There have been decentralized social platforms before, but they were usually a hassle to install and maintain or not so great from a usability standpoint. Now with ZeroMe you choose a hub to store your data, an identity provider, and a presentation. So you have three orthogonal aspects to your experience.

Data Hub

You can subscribe to as many hubs as you wish, but store your data to only one of them per identity. They can be organized by region, language or interests. The more you subscribe to, the more data will be stored on your harddrive, and the more bandwidth will be consumed. You can also run your own hub, and use it only with your friends.

Identity

The identities existed for a while. You needed an identity to write a blog, to comment on other people’s blogs, to write and receive ZeroMail, to write to boards and chats and talks and wikis. Again different identity providers have different requirements. For ZeroId you have to register your handle on the namecoin blockchain. For Zeroverse you had to send a bitmessage. For KaffieId no external proof is required. You can maintain as many identities as you like. Some can be more credible, others totally anonymous.

Presentation

The official frontend is Me.ZeroNetwork.bit. But as it is all opensource. The first forks or clones started to appear. There is the darker themed Dark ZeroMe. There is ZeroMe Plus which adds some nice features.

Game modding with pen and paper

I have lots of good memories from youth camps. Some involve playing Donkey Kong and Mario Brothers while sitting on trees. Another classic video game was Asteroids. When I recently read an article in a German magazine about building an Asteroids clone with an Arduino and an OLED, lots of old memories resurfaced. The source code was provided, and the build was simple. As the control was used as digital, I didn’t use an analog joystick. When I gave it to the kids to play, they didn’t share the same enthusiasm that I had back then. But that’s probably because they grow up with lots more tiny computers than we had. So I wanted to involve them some more, and give them a sense of how this thing works. I don’t know how well they understood, when I explained them the concept of a pixel.
So I grabbed pen and paper, read the source code and drew the pixel art. Next, I told them they could modify the images to their liking, but still preserve the mechanics of the game. It was essentially the spaceship with one frame, the asteroid with three frames and the explosion with four frames. Seven year old Levin understood immediately, and painted his versions. For five year old Noah it might be a bit early, but he also participated enthusiastically.
All I had to do was transform their paintings back into source code and load it onto the AtMega chip. Now they were hooked a lot more to the game than before.

Why I still have no new notebook

It has been more than 14 months since my XPS 13DE notebook was stolen. Ever since, I was on the hunt for a replacement. I have just some simple requirements that seem so difficult to meet:

  • Linux pre-installed
  • Payment in BitCoin
  • Swiss German Keyboard with back light
  • Ultrabook (slim and powerful)

The natural choice would be to go with the successor of the model that I was so fond of. Dell does accept BitCoin, but only in the US, UK and Canada. Unfortunately they don’t sell Swiss keyboards in those markets, and I don’t know where to get a keyboard to retro fit.

There are a few vendors selling devices that fulfill some of the requirements, but I found only one so far that can achieve them all.

The best choice at the moment seems to be a Librem13 or Librem15 from purism. The 13inch model has only an i5 processor, and no backlit keyboard. So I would opt for the 15inch model. They have difficulties getting the display panels. And lots of the devices they shipped internationally didn’t reach their destination. This an unfortunate situation, but they seem very friendly and responsive. From what I can observe, they give their best to resolve the situation as good as they can. At the moment It looks like I have to wait two more months to get a Librem15.

Here are some devices that I considered:

Model Linux BitCoin Keyboard Ultrabook Remarks
Dell XPS13 Developer Edition yes no yes yes Very nice device
Purism Librem15 yes yes yes yes Waiting for display, and shipping problems
Tuxedo yes unknown no yes Only German Keyboards
Why yes no yes yes Out of stock

If you know of a device that fulfills my requirements, and is not listed here, please tell me.

SIX fintech hackathon

I learned of hackathons before. It sounded interesting, but either they were too far away, the topic was not interesting enough, or the date was already booked. This time was different. The topic is really what made it interesting enough. FinTech is about new technology in finance. I’m sure there was innovation in the financial industry in the last 50 years, but it was not very visible, and not as fast as in other industries. Recently I read about an employee in a bank that was asked upon his retirement, what was the biggest change in the last 40 years in his job. His answer was : “air conditioning”.

With the advent of BitCoin, the financial sector started feeling some pressure to innovate. I don’t really know how the term FinTech was born, but this all might have contributed. So one thing was clear for me about the hackathon from the beginning: The project had to be about BitCoin.

SIX is probably one of (if not the) biggest service providers in Swiss finance. They run the Swiss stock exchange, most card terminals in brick and mortar shops and PayNet where people can receive electronic invoices in their online banking. These are only the most visible products. They organized the hackathon for the first time a year ago. This time it was in two locations: Zürich and London. Watching last years videos I realized that the event would be organized much better than I expected. And the actual event was even better than the videos promised.

So I went to the Schiffbau which is a former ship building factory turned into theater. Everything was prepared, and we were welcomed with a dinner. The opening ceremony included a very entertaining speech from an editor of the Wired magazine. Next were presentations for the four workshops. I watched “Blockchain, Smart Contracts and Beyond” and “Cognitive Computing in Fintech”. Both were interesting, but not exactly what I expected.
Some teams were already formed, the others went to the match making session. Everybody who had an idea for a project could present it in a few sentences. Then the teams were formed. The Idea I presented to implement a bridge between PayNet and BitPay didn’t spark a lot of interest, so I helped implementing another endeavor.

Our team set out to implement a bridge between PayMit and BitCoin, thus we named it BitMit. I knew the name was familiar, but it took me a while to remember that BitMit was also the long defunct Marketplace that worked like eBay, but with BitCoin. The responsibilities were quickly found: Iwan would implement the IOS app, Mark would implement the management dashboard, Roger was responsible for the Presentation of our project and I implemented the backend.

IOS App
We received an API for PayMit that came with an example app. The app had buttons for buying certain products. So Iwan replaced the buttons for different denominations of popular crypto currencies. When a button was clicked, the app would first execute the payment using the PayMit API and then communicate with our BitMit backend. Finally it displays a receipt including the BitCoin transaction ID. Apparently working with Apple’s XCode is a very special experience that is far from intuitive.

Back-end
The back-end was responsible for providing a simple API for the IOS app, interacting with the BitCoin blockchain and managing a BitCoin hot wallet. We chose python and flask to do the task. Most members in our team were familiar with python and flask. I only implemented a very small project with flask a few years ago, but that knowledge was almost enough for the task at hand. I wanted to make use of electrum servers to have it lite weight. But Friday and Satturday we wanted to use the BitCoin testnet, and unfortunately there are no electrum servers for testnet. So I went with BitCoinCore.
At first we were not so sure where the backend would run. My notebook would be good enough for the time being. But then the guy from IBM offered to have it running on their cloud. He helped me setting everything up. When connecting with ssh to the ubuntu machine, I didn’t even realize that it ran inside a docker container. And the beast was fast! With the 48 cores and a fast internet connection, the BitCoin blockchain was synchronized in less than six hours.

Management Console
Compliance and auditing is very important for Banks. Thus our Service has to have a means of keeping track what is going on. Mark implemented the front-end using React. I certainly heard this buzzword before, but never saw actual code. It’s quite cool how simple the code looks when the task fits the framework.

Pitch
The presentation or pitch was allowed two minutes max. And a gong would terminate it abruptly on stage. The first iterations were roughly twice that long. It was hard to cut it down to the right duration. Too valuable all the information we wanted to communicate. Roger had a very good opening, which I don’t even know if it was still part of the final pitch.
Before entering the final, we gave the pitch a couple of times. Most important was the presentation to the jury. After the pitch the judges could ask us questions. One guy obviously had no clue about how BitCoin works. When this guy was later presented as member of the board and announced the winners, I felt our chances dramatically dwindling.
I took a video of the pitch Roger and Iwan gave for the final on the main stage. It is streaming from the ipfs.

Our project might be not the most novel idea, but it fills a need. Other projects that were presented sound very funny at first but after thinking it through you don’t think anybody would use it. Still others had only fancy slides but nothing functional to show. But there were also projects that made a really good impression. That is probably the expected outcome from a hackathlon.
For me it was a fun and entertaining experience. I will surely participate in other hackathlons. A big thanks to SIX for organizing the event and for all the good food and drinks we enjoyed.

An interesting fact that I observed was the computers used by the participants. About 90% of them were from apple. Most of the remaining computers ran some kind of flavor of linux. And I saw a single one running Windows.

an exact clock for a vintage car

Since I drive my vintage XJS not too often, I disconnect the battery. This is to prevent if from going flat before I want to use it the next time. Of course it would be better to install a special charger for classic cars. But there is no outlet in the underground car park. The car starts when I want to use it, so one could say: mission accomplished. If only there was no clock in the dashboard.  It doesn’t run when the battery is disconnected. Having to adjust the clock every time is not the solution I was looking for.

My first idea was to get a DFC77 radio clock with hands, and put it inside the case of the original dash clock. All the clocks that had hands were too big to fit into the case. So I ordered a small module with an LCD. The problem was that it had good reception at home, but not inside the car. The long waves seem to have a hard time penetrating the Faraday cage of the car body.

The next option that delivers exact time over the air is GPS. So I ordered a cheap GPS receiver from China, and built a prototype with an AtMega microcontroller and a small OLED. The prototype kind of worked, but after the first drive, the GPS module failed completely. So I ordered a better one from an AdaFruit reseller in Switzerland. This module still works very well, but I found out the hard way that it needs a very clean power source. The next problem were random failures and reboots of the micro controller. This turned out to be caused by memory overruns. They are harder to detect on a micro controller  than on a regular computer. The display needs a framebuffer in RAM, and for the GPS I need enough space to store and parse the full NMEA sentences. I tried to reuse and re-initialize the same memory for every reading, but that didn’t work out. Neither didn’t I find a similar controller with more RAM. If I was going to produce a number of devices I would for sure use a better controller, but as it is a one off prototype, I just used two AtMegas. One for the display, and one for the GPS.

GPS has no reception in tunnels and underground parking garages. So I planned to implement a simple counter that just increases the time when GPS reception was lost. But then I decided it was not important enough. Instead I wanted to proceed, and have the device ready in the car. But I couldn’t resist to display a leaper for when there is not reception.

In a classic car, everything should be in original condition, so I didn’t want to destroy the original clock. Instead I was looking to buy a used clock that didn’t have to be in working condition. The ones I found in Switzerland were too pricey for only the case. So I found one on ebay for £22 that was shipped from the UK.

The problem that remains is that the OLED sometimes initializes with a random dot pattern and stays that way until the next power cycle. It happened more when I had it connected directly to the main battery. But since I connected it the the dash back light, it never happened again. So maybe it is important how fast the voltage increases when power is switched on.

As usual, the code is on github.

image20150625_202655132 image20150625_201613328 IMG_2636 IMG_2638

the infinity mirror

Lately while browsing through thinkgeek, I stumbled upon the infinite dungeon corridor. It looks cool, but they still have no affordable shipping options. That got me thinking that it should be possible to make an infinite mirror with the kids. It didn’t take long to find a recipe for how to go about it. Finding a mirror was easy, but regular window glass is a bit harder these days. The first try was with plexiglass that I had laying around. The effect was really bad, because it had a matt finish. When I asked for real glass, I got security glass. Trying to cut it to the right size, it disintegrated into a thousand tiny parts. So it was plexiglass again, this time with clear finish. I also was not sure about the window film. I bought the film that is used to taint the car windows. An LED stripe was readily available and waiting for a new purpose.

The kids were involved in all construction steps. Cutting the wood for the case, drilling, screwing, sawing, cutting the mirror, tacking the LED stripe … But one thing was entirely up to them: Usually those infinite mirrors have the two windows relatively close. But to be in the style of the dungeon corridor, I created the case with some room where the kids could paint what should look like the walls of a castle.

The effect is not as good as we would have liked it to be. I’m not sure if it is because of the plexiglass, the increased distance or the wrong type of window film. But it works, and was fun to construct. Most importantly the kids learned not just how to construct such a thing, but also about optical illusions, and how light behaves.

IMG_2639 IMG_2647

A strange kind of holiday

It all started about two weeks ago when my wife discovered water on the kitchen floor that kept coming. The plumber who came immediately, found out that two parts of the waste pipe shifted out of each other, leaving a gap open. He told us that this must have happened two or three weeks earlier. During this time, the waste  water filled up the base of the kitchen, which turned out to be water tight. He sucked out all the water, and left one part of the base open, so that some air could ventilate. He also told us that probably we would get a giant hair drier installed to get the rest of the moisture out. Nothing happened for more than a week. The smell was disgusting, and we apologized to the guest at Levin’s birthday party. Our neighbour told us that the same thing happened to them last summer, and that they had 40° for some weeks in their kitchen as a result.

When the craftsmen came to inspect the kitchen, they discovered one giant mold fungus. Immediately, they sealed the kitchen from the rest of the flat and all the cupboards. They started to disassemble the kitchen and removed the appliances. Most of it would be replaced. They sprayed some poison to contain it. After they told us the whole flat would have to be sprayed, the house management together with the insurance decided that it would be best for us to move to a hotel for two weeks. The insurance organized it for us. It appears they asked some other hotels first which were fully booked. So we ended up in the best hotel in town, the Waldstätterhof. The breakfast is included, and it is a very nice and delicious buffet. The funniest part for us was the Prosecco bottle next to the fruit juices. We usually don’t make holidays in such exclusive places, but we know it from special events such as the Musical we go to almost every year.

The insurance even pays for the additional costs we have because we can’t cook at home. But he asked us not to eat at the noble restaurants downstairs all the time. Of course we don’t want to exploit the situation, but because Levin had a surgery the day before we had to leave home, we cannot go outside all the time. The first day we ordered some food from lieferservice.ch at seewendays.ch that I could pay with BitCoin. The second day, I bought a warm chicken in the local grocery store. For the rest of the week, Mirella organized to have the meals delivered from the hospital. I must confess, it feels awkward to walk into the lobby of a four star hotel with a hot chicken in the backpack to eat at the room. But yesterday we went to the restaurant downstairs for once. It wasn’t cheap, but delicious.

The kids enjoy the adventure, especially because we rarely have so much time to play with them. Levin got a dinosaur skeleton to excavate from Santa Claus the day we left. So we went to the big hotel terrace to carve out the artificial bones from the enclosing gypsum. He was totally excited as the bones started to get released. Yesterday, we assembled a KAKU robot. Putting the parts together was easy. I had to do most steps, but the boys could help here and there. Noah walks around full of pride with the enclosed emblem. As all the manuals and information I found are in Chinese, its not always easy to find the required information. But the programming system ArduBlocks is exactly what I have been waiting for since I learned about the Scratch programming language.

 

Trezor BitCoin HardwareWallet

Today I received my Trezor BitCoin HardwareWallet. When I ordered it in June 2013, the expected delivery Date was October. But as it happens all that often with BitCoin related hardware, the dates get pushed back. They offered a device with plastic case for XBT 1 and one with an alloy case for XBT 3. After the Bitcoin price skyrocketed end of last year, they stopped taking pre-orders. The devices we early backers received, have a nice “First Edition” label at the back.

The trezor is the first hardware wallet for BitCoin that is mass produced. It has a small screen, two buttons and a microUSB connector. So it is actually a lot more secure than if you just stored the private key on a SmartCard, as could be done with a HW1 or a YubiKey NEO if the software was finally released. You can see the balances on the different addresses in the client on the computer. When you want to send some coins, you see the receiving address and the ammount on the small screen of the trezor. Once you confirm using two button presses, the trezor signs the transaction, and the client on the computer propagates it to the BitCoin network.

Build quality and form factor look quite nice. It is actually a bit smaller than I expected, which is a good thing. Fifteen Swiss Francs in Coins would require about the same space. I guess it helps in that regard that it doesn’t require a battery, but is powered from USB.

The first thing I did was setting it up with the browser plugin from https://mytrezor.com. It’s an easy process where you have to write down the seed which consists of 24 words. Then I sent a small amount back and forth. Only after seeing this succeed, I transferred bigger amounts to the addresses of the device.
Then I wanted to test the electrum plugin that slush recently noted, would be merged soon. I found it in a pull request on github. It didn’t work initially, but several people were quick to help. After all issues were sorted out, also sending with the trezor from electrum works fine.

It wouldn’t be a security device if it worked without entering some kind of secret. Entering the secret on the computer would make it less secure, as some malicious software could record it. Entering it on the device with only two buttons would be cumbersome, as not that many people these days are fluent in morse code. So, I was curious, how they solved that problem. The solution they came up with is actually quite nice. They display a 3×3 grid of buttons with question marks on the cumputer, while the trezor shows a 3×3 grid with digits 1 to 9 in random positions. That way, you enter your pin on the computer using a mouse or touch screen, using the positions found on the trezor screen. Even after playing with the trezor for only some hours, it’s evident that a lot of thought went into it.

I wonder what will happen next in that space.
I was not fully convinced by the HardBit. Indeed it turned out, somebody found out how to activate WiFi and bluetooth of the repurposed SmartPhone. That makes it way less secure. The developers seem eager and friendly, but it might be just not the most secure platform to begin with.
Recently I backed an interesting project called PRISMicide on Indiegogo, but with only 8% funding after half the time, it looks as if they won’t make it.
The picture and description of the BitSave from ButterflyLabs look really slick. But they have a history of overpromising and delivering late.
And finally, I’m sure SatishiLabs, the creators of trezor, will work on a follow up device that is even smaller and communicates with SmartPhones.

Smart Radios

For a couple of years I have been running mpd (music player daemon) on an Alix, connected to a stereo in the office. The Alix runs headless, but I have a variety of options to control it: gmpc on the notebook, Droid MPD client on the phone and fookebox in the browser. Over the years I read a multitude of articles about home built jukeboxes based on something like a RaspberryPi, a simple display and some buttons. I thought, that’s cool, but I didn’t have the requirement for this in the office.

Some time last year, I thought it would be cool, if my wife could access our full music collection from the kitchen. As her old radio started to disintegrate, I had an idea for christmas. So the first idea was to build something myself. But the kitchen is not the ideal place for something thrown together with loose wires, and I couldn’t expect her to reboot it in case something locks up. So I was looking for something pre-made and a bit more consumer friendly. I didn’t want to loose freedom though, so the ideal would be if it was also based on mpd. I didn’t find the device I was looking for, but the device that came up most in my searches was the UE Smart Radio from Logitech. It seemed to cost a lot more than a RaspberryPi with some additional components, so I looked further and went to several shops. The selection in this area is very sparse, which surprised me a lot. All the other devices in the shops, except the insanely expensive ones, sounded like through a long cardboard tunnel. But the UE (Ultimate Ears) one, although mono, sounded really good. Another feature that made it stand appart from much of the competition is, that in addition to the WIFI, it also offered connectivity through an ethernet port. This one was a must, since my Wife is very concerned about electro smog.

So I went for the UE Smart Radio from Logitech. It was received well by my wife. At first we only used it to listen to live streams of radio stations around the world. It worked perfectly for that. But connecting it to our music library didn’t work out so well. I assumed, It could just access the files over a network share. So I set up a samba share on the server that contained all the music files. After all, that’s how the media players fetch the movies as well. I just couldn’t figure out how to find the music from the radio. All it said was to install some proprietary software on the computer and the phone. I don’t particularly like such proprietary stuff, and always try to find ways around, but this time I had to bite the bullet. The android app gave some additional configuration and remote control options, but insisted on installing also something on a computer to be able to stream the private music collection. So I had a look at http://www.uesmartradio.com. It offers the download only for Windows and Mac. Now this is where I started to question the purchase. I agree that some clueless managers might be familiar with only these two options on the desktop. But do they really insist on everybody having their desktop computer running just to listen to their music in another room? No way!!! I think by now at least a NAS system if not a small server is in most households that care to have their music available electronically for devices like this radio. And what operating system do they usually run? Windows? MacOS? They must be joking!

At first, I wanted to dissect the Windows package in the hopes to being able to reverse engineer it to get something workable. But all information I found about that package on the internet, indicated that it is an unholy mess consisting of a multitude of dlls and executables. So I checked on the MacOs package. The information I found indicated something perl based and much cleaner than the Windows version, but I had no tools readily available to decompress it. Luckily I found a forum thread where other people already complained about the very same issue. One pointed out that there are unofficial nightly builds for a range of other targets, one of them being a debian package. That solved the problem for the moment. Installation was smooth, and so was setup and operation. The only soar point that remains was also confirmed by the Logitech support: The packages for the more useful platforms are not officially supported and they don’t know if they will continue to build them at all.

K810 Bluetooth Keyboard

With a keyboard also from Logitech I had a similar issue. I have always preferred standards such as Bluetooth over proprietary protocols such as Logitech’s Unifying. So I was delighted when I spotted a slim, nice looking bluetooth keyboard in a store some years ago. It was meant for the iPad, but I thought, if it’s bluetooth, it should work with my computer and phone too. Pairing was no problem, as was operation under Android. The problem arose when I wanted to use it with the Computer. The keys that were there, worked perfectly, but the problem was the missing function keys (F1 – F12).  Without them it’s very hard to operate just about any debugger in an IDE that I know of.

So, I was even more delighted, when I discovered the K810 in a store last year. It can pair with three devices, and easily switch between them. So I could for example use it with the workstation, the notebook and the phone without having to re-pair each time. The first one I bought was for the office. And I became a huge fan of this keyboard. So I bought also one for at home. I noticed in the office, that the default mapping of the function keys is awkward to say the least. By default, the alternative functions like the brightness of the key back light or the multimedia controls are activated, and to use the regular function keys, you have to press the FN key. It’s hard to guess what they smoked when they decided to make this the default. Imagine your mother wants to refresh the page in her browser by hitting F5 and instead the keys get brighter. Or imagine she wants to rename a file by hitting F2, and instead the keyboard disconnects from the computer and sends subsequent key-presses to the phone. Let alone operating a debugger. Luckily this setting is easy to change with the Logitech SetPoint software….. unless …. there is no SetPoint software for everything but Windows and MacOS.

Luckily somebody already reverse engineered the relevant information, and compiled a small utility program, that corrects this setting. Thanks Mario for sharing. Your utility saved my day.