Super Urban Intelligent CArd

Suica (スイカ Suika) is a rechargeable contactless smart card, electronic money used as a fare card on train lines in Japan, launched on November 18, 2001. The card can be used interchangeably with JR West’s ICOCA in the Kansai region and San’yō region in Okayama, Hiroshima, and Yamaguchi Prefectures, and also with JR Central’s TOICA starting from spring of 2008, JR Kyushu’s SUGOCA, Nishitetsu’s Nimoca, and Fukuoka City Subway’s Hayakaken area in Fukuoka City and its suburb areas, starting from spring of 2010. The card is also increasingly being accepted as a form of electronic money for purchases at stores and kiosks, especially within train stations. As of October 2009, 30.01 million Suica are in circulation.

https://en.wikipedia.org/wiki/Suica

This time around we really made use of electronic payment and got around using cash whenever possible.

There where only a few occasions when we needed the physical credit card. Of course on a number of tourist spots further away from Tokyo centre cash was still king.

From my first trip to Japan to today a lot has changed and electronic payment was adopted very quickly. Compared to Germany: Lightning fast adoption in Japan!

The single best thing that has happened recently in this regard was that Apple Pay got available in Germany earlier this year. With the iPhone and Watch supporting SUICA already (you can get a card on the phone/watch) the availability of Apple Pay bridged the gap to add money to the SUICA card on the go. As a visitor to Japan you would mostly top up the SUICA card in convenience stores and train stations and mostly by cash. With the Apple Pay method you simply transfer money in the app from your credit card to the SUICA in an instant.

This whole electronic money concept is working end-2-end in Japan. Almost every shop takes it. You wipe your SUICA and be done. And not only for small amounts. Everything up to 20.000 JPY will work (about 150 Euro).

And when you run through a train station gate to pay for your trip it you hold your phone/watch up to the gate while walking past and this is it in realtime screen recorded:

I wish Germany would adopt this faster.

Oh, important fact: This whole SUICA thing is 100% anonymous. You get a card without giving out any information. You can top it up with cash without any link to you.

Purple Tentacle

There are some things that influenced us over time. I’ve never played a lot of computer games. But I’ve played adventure games. Most notably those of LucasArts.

The “Day of the Tentacle” – being the sequel to “Maniac Mansion” – was one adventure game that I have a lot of great memories of. I have played it through a lot of times since it’s release.

At the beginning of the game the main villain (the purple tentacle) of the game is making a statement:

Bernard: Ok, you’re free to go.
Green Tentacle: Thanks Bernard!
Purple Tentacle: Yes, thank you, naive human! Now I can finish taking over the world! Ha ha ha!
Green Tentacle: Wait!
Bernard: Oh, yeah. Now I remember. He’s incredibly evil, isn’t he?
Green Tentacle: Uh… I’ll try to talk him out of it.

LucasArts (June 1993). Day of the TentacleDOS.

And because of his aspiration to take over the world the picture of the scene this is being said ended up as my phones unlock screen background (and if lots of other places) ever since.

With the help of the internet, you can have it on yours as well. And since screen resolutions improve over time, have it in timeless vectors:

vectorialized by Chalda Pnuzig

The vectorized purple tentacle above has been kindly provided by: Chalda Pnuzig

Miataru – open source location tracking

Not a lot of things are more private than your location.

Yet sometimes you wish to share your location with friends and family. May it be during an event or regularly. Maybe you want to

To allow the tech-minded audience to be in full control of what data is aggregated and stored regarding these needs I’ve created Miataru back in 2013 as an open-source project from end-2-end.

With the protocol being completely open and ready to be integrated into any home automation interested users can either utilize the publicly available (stores-nothing-on-disk) server or host your own.

Everything from the server to the clients is available in source and there’s a ready-to-go version of the client app on the AppStore.

this is a location sharing session when the blue pin met the yellow pin

idea: in-flight convertible mini-quadcopter (add wings!)

About a year ago there were some very interesting reports about a german inventor and his invention: a highly futuristic, transforming smartphone airbag.

It would be attached to your phone and when you drop it, it would automatically deploy and dampen the impact.

Like so:

Impressive, right? There’s now a Kickstarter campaign behind this to deliver it as a product. All very nice and innovative.

I have no usue of a smartphone airbag of some sort. But hear me out on my train of thought:

I do partake in the hobby of quadcopter flying. I’ve built some myself in the past.

Now these quadcopters are very powerful and have very short flight times due to their power-dynamics. 4-5 Minutes and you’ve emptied a LiPo pack.

Model airplanes, essentially everything with wings, flys much much longer.

My thought now: Why not have a convertible drone.

When the pilot wants a switch could be flipped and it would convert a low-profile quadcopter to a low-profile quadcopter with wings. Similar to how the above mentioned smartphone “airbag”.

I don’t know anything about mechanics. I have no clue whatsoever. So go figure. But what I do know: the current path of the mini-quad industry is to create more powerful and bigger “mini”-quadcopters. And this is a good direction for some. It’s not for me. Having a 10kg 150km/h 50cm projectile in the air that also delivers a 1kg Lithium-Polymer, highly flammable and explosion-ready battery pack does frighten me.

Why not turn the wheel of innovation into the convertible-in-air-with-much-longer-flight-times direction and make the mini-quadcopters even more interesting?

the discordian calendar on your wrist

I’ve finished my little coding exercise today. With a good sunday afternoon used to understand and develop an iOS and Watch application from scratch I just handed it in for Apple AppStore approval.

The main purpose, aside from the obvious “learning how it’s done”, is that I actually needed a couple of complications on my watch that would show me the current day/date in the discordian calendar.

I have to say that the overall process of developing iOS and Watch applications is very streamlined. Much much easier than Android development.

The WatchKit development was probably the lesser great experience in this project. There simply is not a lot of code / documentation and examples for WatchKit yet. And most of them are in Swift – which I have not adapted yet. I keep to Objective-C for now still. With Swift at version 5 and lots of upgrades I would have done in the last years just to keep up with the language development… I guess with my choice to stick to Objective-C I’ve avoided a lot of work.

Anyhow! As soon as the app is through AppStore approval I will write again. Maybe somebody actually wants to use it also? :-)

With writing the app I just came up with the next idea for a complication I just really really would need.

In a nutshell: A complication that I can configure to track a certain calendar. And it will show the time in days/hours/minutes until the next appointment in that specific calendar. I will have it set up to show “how many hours till wakeing up”.

why I still can’t endure using Android

I own some Android devices as I am actively trying out Android every once in a while when a new version arrives.

While doing so the usability was always what eventually put me off and made me not use it.

This is indicative of my experience:

source: Twitter

Simple things like the scrolling or tapping never worked for me. Of course it worked after the 2nd or 3rd tap. But not as it “should” feel.

I own Google Nexus devices as well as 3rd party android tablets from Asus. The basics never worked.

Why is that?

and then there’s Chrome OS.

I recently wrote about how I am using ThinClients in our house to always have a ready-to-use working environment that get’s shared across different desks and work places.

To complete the zoo of devices I wanted to take the chance and write about another device we’re using when the purpose fits: ChromOS devices.

A little bit over a year ago I was given a HP Chromebook 11 G5 and this little thing is in use ever since.

The hardware itself is very average and works just right. The only two things that could be better are the display and the trackpad. With the trackpad you can help yourself with an external mouse.

The display works for the device size but the resolution being 1366×768 is definitely a limiting factor for some tasks.

What is not a limiting factor, astonishingly, is the operating system. I did not have any expectations at all when I first started using the Chromebook but everything just fell into place as expected. A device with almost no local storage and everything on the google cloud as well as a device that you can simply pick up and start using with just your google account may not sound crazy innovative. But let me tell you: if you start living that thin client, cloud stored life these Chrome OS devices hit the spot perfectly.

Everything updates in the background and as long as you are okay with web based applications or Android based applications you are good to go.

being productive?

Did I miss anything functionwise? Yes. At the beginning there was no real shell or Linux tools available for Chrome OS natively. This has changed.

Chrome OS comes with linux inside and exposed now.

Would I buy another one or do I recommend it and for whom? I would buy another one and I would recommend it for certain audiences.

I would recommend it for anyone who does not need to game anything not available in the Google Playstore – anything that can be done on the web can be done with the Chromebook. And as long as there is not the requirement of anything native or higher-spec that requires you to have “Windows-as-a-hobby” or a beefy MacOS device sitting around I guess these inexpensive Chrome OS devices really have their niche.

For kids – I guess this would make a great “my-first-notebook” as it works when you need it and does not lock you in too much if you wanted to start exploring. But then again: what do I know – I do not have kids.

exercise: develop a Watch app + complication

I’ve started to write a watch app for iOS/WatchOS which is going to display the current calendar information according to the discordian calendar.

Since there’s no watch support on any of the calendar apps in the AppStore and I wanted to have easy to use watchface support I had to try it myself.

I will update here on the progress but so far it looks like this:

using calendars to automate your home

When you want to make things happen on a schedule or log them down when they took place a calendar is a good option. Even more so if you are looking for an intuitive way to interact with your home automation system.

Calendars can be shared and your whole family can have them on their phones, tablets and computers to control the house.

In general I am using the Node-Red integration of Google Calendar to send and receive events between Node-Red and Google. I am using the node-red-node-google package which comes with a lot of different options.

Of course when you are using those nodes you need to configure the credentials

Part 1: Control

So you got those light switches scattered around. You got lots of things that can be switched on and off and controlled in all sorts of interesting ways.

And now you want to program a timer when things should happen.

For example: You want to control when a light is being switched on and when it’s then again been switched off.

I did create a separate calendar on google calendar in which I am going to add events to in a notation I came up with: those events have a start-datetime and of course an end-datetime.

When I now create an event with the name “test” in the calendar…

And in Node-Red you would configure the “google calendar in”-Node like so:

When you did wire this correctly everytime an event in this calendar starts you will get a message with all the details of the event, like so:

With this you can now go crazy on the actions. Like using the name to identify the switch to switch. Or the description to add extra information to your flow and actions to be taken. This is now fully flexible. And of course you can control it from your phone if you wanted.

Part 2: Information

So you also may want to have events that happened logged in the calendar rather than a plain logfile. This comes very handy as you can easily see this way for example when people arrived home or left home or when certain long running jobs started/ended.

To achieve this you can use the calendar out nodes for Node-Red and prepare a message using a function node like this:

var event = {
'summary': msg.payload,
'location': msg.location,
'description': msg.payload,
'start': {
'dateTime': msg.starttime,//'2015-05-28T09:00:00-07:00',
'timeZone': 'Europe/Berlin'
},
'end': {
'dateTime': msg.endtime,//'2015-05-28T17:00:00-07:00',
'timeZone': 'Europe/Berlin'
},
'recurrence': [
//'RRULE:FREQ=DAILY;COUNT=2'
],
'attendees': [
//{'email': 'lpage@example.com'},
//{'email': 'sbrin@example.com'}
],
'reminders': {
'useDefault': true,
'overrides': [
//{'method': 'email', 'minutes': 24 * 60},
//{'method': 'popup', 'minutes': 10}
]
}
};
msg.payload = event;
return msg;

And as said – we are using it for all sorts of things – like when the cat uses her litter box, when the washing machine, dryer, dishwasher starts and finishes. Or simply to count how many Nespresso coffees we’ve made. Things like when members of the household arrive and leave places like work or home. When movement is detected or anything out of order or noteable needs to be written down.

And of course it’s convenient as it can be – here’s the view of a recent saturday:

pushing notifications in home automation

I was asked recently how I did enable my home automation to send push notifications to members of the household.

The service I am using on which all of our notification needs are served by is PushOver.

Pushover gives you a simple API and a device management and allows you to trigger notifications with icons and text to be sent to either all or specific devices. It allows to specify a message priority so that more or most important push notifications even are being pushed to the front when your phone is set on do-not-disturb.

The device management and API, as said, is pretty simple and straight forward.

apparently we’re sending a lot of notifications to these devices…

As for the actual integration I am using the NodeRed integration of Pushover. You can find it here: node-red-contrib-pushover.

With the newest client for iOS it even got integration for Apple Watch. So you not only are limited to text and images. You can also send our a state that updates automatically on your watch face.

As Pushover seems consistent in service and bringing updates I don’t miss anything – yet I do not have extensively tested it on Android.

how to find out who needs to clear out the dishwasher

We use the term “smart home” lightly these days. It has become a term of marketing and phantastic stories.

Considering how readily available lots of different sensors, actors and personal-assistants are these days one would think that most people would start to expect more from the marketing “smart-home”.

I believe that the smart is to be found in the small and simple. There are a lot of small things that actually make something feel smart without it actually being smart about anything.

Being smart is something not achieved yet – not even by a far stretch of the sense of the word. So let’s put that to the sides of the discussion for now and move a simple thing in the middle of this article.

Have you ever had an argument about who should or should have cleared out the dishwasher after it’s finished?

We had.

So we outsourced the discussion and decision to a 3rd party. We made our house understand when the dishwasher starts and ends it’s task. And made it flip a coin.

There was already a power consumption monitoring in place for the dishwasher. Adding a hysteresis over that monitoring would yield a simple “starts running” / “stops running” state of the dishwasher.

Pictured above is said power consumption.

  • When the values enter the red area in the graph the dishwasher is considered to be running.
  • When it leaves that area the dishwasher is considered finished/not running

Now adding a bit of random coin-tossing by the computer and each time when the dishwasher is detected to have started work a message is sent out depending on the result of the coin-toss.

That message is published and automatically displayed on all active displays in the house (TVs/…) and sent as push notifications to all members that need to be informed of this conclusive and important decision.

In short:

Everyone gets a push notification who is going to clear out the dishwasher based upon a coin-toss by a computer every time the dishwasher starts.

The base of all of this is a Node-RED flow that that uses the power consumption MQTT messages as an input and outputs back to MQTT as well as pushes out the push notifications to phones, screens and watches.

Additionally it creates a calendar entry with the start-finish time of the dishwasher run as well as the total energy consumption for this run.

Node-RED flow

The flow works like this: on the right the message enters the flow from MQTT. The message itself contains just the value of the power consumed at this very moment. In this case consumed the dishwasher.

The power consumption is updated regularly, every couple of seconds this way. So every couple of seconds this flow runs and gets an updated value of

Next a hysteresis is applied. In simple terms this means: when the value goes above a certain threshold the dishwasher is considered to be running. When it goes below a certain threshold then it is considered finished.

When the dishwasher changed it’s state to “running” the flow will generate a random number between 0 and 1. This give a 50:50 chance for either Steffi or Daniel be the chosen one to clear out the dishwasher for this run. This message is sent out as push notification to all phones, watches and TVs.

When the dishwasher finishes it’s run the total energy consumption is taken and sent out as the “I am done message”. Also this information is added to the calendar. Voilá.

the real smart home has a calendar!

A calendar? Why a calendar you may ask. Oh well there are several reasons. Think of calendars as another way to interact with the house. All sorts of things happen on a timeline. A calendar is only a visual aid to interact with timelines.

May it be a home appliance running and motion being sensed for your home alarm system. All of that can be displayed in a calendar and thus automatically sync to all your devices capable to display this calendar.

And if you start adding entries to a calendar that the house uses to know what to do next… how about putting light on-off times into an actual calendar right on your phone instead of a complicated browser user interface like many of those marketing smart-homes want us to use?

Never confuse wisdom with luck.

44th Rule of Acquisition / Ferengi

disaster warning!!! This is just a test.

Apparently yesterday somebody pushed the wrong button. Twice.

Like most countries Germany got a system in place to broadcast out warnings to the public in case of disasters or else.

And it proved to be quite useful in the past when it comes to the occasional storm or heavy snowfall/rain/lightning.

Seeing that they run a test and then again send out an apology to have run a test is puzzling and funny at the same time. Everyone has a “bad hair” day, right?

Head Up Display esthetics

Many cars these days come with head up displays. These kind of displays are used to make information like the current speed appear “floating” over the street ahead right in your field of vision.

This has the clear advantage that the driver can stay focused on the street rather than looking away from the street and to the speedometer.

As practical as it seems these displays are not easy to build and seemingly not easy to design. Every time I came across one it’s built-in functionalities where limited in a way that I only can assume not a lot of thought had gone into what exactly would the driver like to see and how that would be displayed. There was always so much left to desire.

Apparently the technology behind these HUDs is at a point where it’s quite affordable to start playing with some ideas to retrofit a car with a more personal and likeable version.

So I started to take a look at what is available – smart phones have bright displays and I had never tried to see what happens when you try to utilize them to project information into the windshield. So I tried.

As you can see – bright enough, readable but hazy and not perfectly sharp. The reason is quite simple:

“In the special windshield normally used, the transparent plastic safety material sandwiched in between the two pieces of glass must have a slight and very precise wedge, so that the vehicle operator does not see a HUD double image.”

laserfocusworld

There are some retrofit adhesive film solutions available that claim to help with that. I have not tried any yet. To be honest: to my eye the difference is noticeable but not a deal-breaker.

So I’ve tried apps available. They work. But they do a lot of things different from how I would have expected or done them. They are bearable, but I think it could be done better.

tldr: I started prototyping away and made a list of things that need to be done about the existing HUD applications.

mirrored basic html prototype, not well adjusted, just to play…

Here’s my list of what I want to achieve:

  • display orientation according to driving direction – I had expected all HUD applications to do this. They know the driving direction. They know how the device is oriented in space. They can tell which direction the windshield is. They know how to correctly turn the screen. They do not do that. None of them.
  • fonts and numbers – I cannot stand the numbers jumping around when they change up and down
  • speed steps interpolation – GPS only delivers a speed update every second or so. In this time speed might jump up and down by more than +1. The display has 60 fps and gyros to play with and interpolate… I want smooth number transitions.
  • have an “eco-meter” – using gyros the HUD would be able to display harsh accelleration and breaking. Maybe display a color-coded bar and whatever is measured is reflected in the bar going left or right…
  • speed-limit display – apparently this is a huge issue looking at the data availability. There seems to be open-street-map data and options to contribute. Maybe that can be added.
  • have a non-hud mode – non mirrored to use for example to set speed limits and contribute to OpenStreetMap this way!
  • automatically switch between HUD and non-HUD mode – because the device knows it’s orientation in space – if you pick it up from the dashboard and look into it, why not automatically switch?
  • speed zones color coding – change the color of the speed display depending on configurable speed regions. 0-80 is green, 80-130 is yellow, 130-250 is red.
  • turn display off when car stopped – if there’s nothing displayed or needs to be displayed, for example because the car stopped the display can be turned off completely on it’s own.

Navigation is of limited value as the only way I could think of adding value would be a serious AR solution that uses the whole windshield. Now I’ve got these small low-power projectors around… that get’s me thinking…

What would you want to have in such a HUD in your car?

smart home use case #4 – being location aware is important

Now that you got your home entertainment reacting to you making a phone call (use case #1) as well as your current position in the played audiobook (use case #3) you might want to add some more location awareness to your house.

If your house is smart enough to know where you are, outside, inside, in what room, etc. – it might as well react on the spot.

So when you leave/enter the house:

– turn off music playing – pause it and resume when you come back
– shutdown unnecessary equipment to limit power consumption when not used and start-back up to the previous state (tvs, media centers, lights, heating) when back
– arm the cameras and motion sensors 
– start to run bandwidth intense tasks when no people using resources inside the house (like backing up machines, running updates)
– let the roomba do it’s thing
– switch communication coming from the house into different states since it’s different for notifications, managing lists and spoken commands and so on.

There’s a lot of things that that benefit from location awareness.

Bonus points for outside house awareness and representing that like a “Weasly clock”…“xxx is currently at work”.

Bonus points combo breaker for using an open-source service like Miataru (http://miataru.com/#tabr3) for location tracking outside the house.

APN Changer for iOS – when you’re abroad and in need of different mobile provider settings

When traveling you might find yourself in the situation that you get a new SIM card into your iPhone and it’ll start and do it’s automatic magic for you. And eventually you well end up with the right provider settings by default.

But there are some cases when it picks the wrong provider settings. Like in my case. It picked NTT docomo in Japan with the default NTT docomo settings. In my case I was using a reseller for NTT (as described here) and that demanded different provider settings to work.

Unfortunately in all it’s wisdom the iPhone did not allow me to set the carrier settings. It just displayed the “Automatic” choice. So I went to the APN Changer website, entered the settings and installed a custom provider setting to my device. This works without any Jailbreak with iPhones without SIM Lock.

Source: m.apnchanger.org

How to use the Tokyo public transportation system as a visitor

Being in Tokyo as a visitor brings a lot of challenges. Since you gotta use the public transport offers to get from A to B. Now we had the same challenge this May and this is how we tried to solve it.

Bildschirmfoto 2014-05-18 um 18.51.12

Problem: How do you know which train lines you take and where they are?

Solution: Use Google Maps (you need mobile internet access!) to find your route

The public transportation feature of Google Maps works like a charm. It’s accurate as it can be and offers even walking instructions to get to the right platform or train station.

Notice the colored lines next to the different stations. That’s the color you’re looking for on the train. They are color coded! To find your right platform just take the information that Google gives you and look out for it. It will be written on signs “Rinkai towards Tokyo Teleport”.

 

Problem: Okay I know which train I have to use. But before I enter the platform I have to pass the ticket gate. How do I buy a ticket? How do I know which one?

Solution: Get a Suica card and charge it! If you’re a group travelling: Look out for cheap group ticket offerings.

A Suica card (aka “Super Urban Intelligent Card”) can be used instead of buying a ticket. You can buy it where you can buy the tickets – most of the time it’s 500 Yen + charge. Charging it with some Yen is crucical since the gates will not let you in when your card is not at least charged with 210 Yen.

You may ask: If I buy a ticket from A to B I have to pay the price upfront. When I use the Suica how does it work then? Easy answer: When you enter the train station through the ticket gate you pass it with your Suica card. It will start a journey for you. When you exit it will end the journey. The card and system is intelligent enough to calculate all steps in between, add them up and substract the fare price from your Suica balance. It always takes the cheapest price for single travellers.

If you’re on your way as a group you might want to use the ticket machines before going through the ticket gates. The Suica is a personal card and only suited for one person to be used. So you cannot pass it through the ticket gate back and enter the ticket gate again without causing panic with the service personell.

To buy tickets for groups I suggest to switch the terminals to english – most of them will offer that option. You then have to specifically know where you want to go. Sometimes it’s the easiest way to just go to the counter and buy them there.

Sometimes when you bought tickets you find out that you made a mistake. Fear not! You can give them back and by doing so get your money back. Service personell is awesome and will help you at any time! DO NOT PANIC!

Another awesome feature you get ‘for free’ by having a Suica card is that you can use it with all the vending machines available everywhere in the train stations. Just pick the beverage you want and swipe the card. Done!

Beware: fill the card up before going out of the ticket gate when you used it all up!

If you happen to have a NFC enabled device (like most Android phones) you can install the Suica Reader app from the Google Store and get information about what happened to your card so far.

how to get mobile Internet (3G / LTE) in Japan

If you visit Japan the next time and you want to get perfectly good Internet access while there on your mobile phone I can recommend the b-mobile offer. On my last stay in Japan (May 2014) I tried their service for the first time and I was not let down.

They give you two options: The 1 GB prepaid option gives you 1 GB as fast as possible. The 14days prepaid gives you 14 days of limited speed coverage (300kbps).

Bildschirmfoto 2014-05-18 um 18.04.18

I went for the 14 days prepaid option knowing that I might get some usage depending on where I go. The 300kbps where faster than I thought – at no given time I experienced any speed problems. The coverage was awesome since it just dialed into NTT Docoms 3G/LTE network.

For just under € 30 this is an awesome option for any traveller. Even better: You can pick it up at the Airport or you can have it delivered to your hotel! We tried both and it worked both as expected. Fast delivery, perfect service!

Source: http://www.bmobile.ne.jp/english/product.html

MOSH (Mobile Shell) – fixing SSH for everyone

How many times did you experience a connection loss on your terminal window in the last week? Yeah I know – like everytime you close the lid of your notebook and move to a different place. So like a dozen times every day.

And everytime you reconnect to your servers and you use things like screen to keep your terminals open and your programs running while you’re disconnected.

On the other hand – did you ever curse the internet gods while you tried to do a very important check or bugfix to a machine whilst on a train or mobile roaming network? It’s not what I would call fun-times. When there are no constant disconnects the lag is just infuriating. MOSH also solves this since it’s predicting and responding way faster then vanilla SSH. Your terminal becomes useable again!

So there’s now MOSH to the rescue:

Remote terminal application that allows roaming, supports intermittent connectivity, and provides intelligent local echo and line editing of user keystrokes.
Mosh is a replacement for SSH. It’s more robust and responsive, especially over Wi-Fi, cellular, and long-distance links.
Mosh is free software, available for GNU/Linux, FreeBSD, Solaris, Mac OS X, and Android.

[youtube]http://www.youtube.com/watch?v=XsIxNYl0oyU[/youtube]

Install it on your servers and your clients and never lose a connection again.

Source 1: http://www.gnu.org/software/screen/
Source 2: http://mosh.mit.edu

“Compressing” JSON to JSON

JSON_logo
JSON Logo

The internet and all those browsers and javascript applications brought data structures that are pretty straight-forward. One of them is JSON.

The wikipedia tells about JSON:

“JSON (/ˈdʒeɪsɒn/ JAY-soun, /ˈdʒeɪsən/ JAY-son), or JavaScript Object Notation, is an open standard format that uses human-readable text to transmit data objects consisting of attribute–value pairs. It is used primarily to transmit data between a server and web application, as an alternative to XML.”

Unfortunately complex JSON can get a bit heavy on the structure itself with over and over repetitions of data-schemes and ids.

There’s RJSON to the rescue on this. It’s backwards compatible and makes your JSON more compressible:

“RJSON converts any JSON data collection into more compact recursive form. Compressed data is still JSON and can be parsed with JSON.parse. RJSON can compress not only homogeneous collections, but also any data sets with free structure.

RJSON is single-pass stream compressor, it extracts data schemes from document, assign each schema unique number and use this number instead of repeating same property names again and again.”

Of course this is all open-source and you can get your hands dirty here.

Source 1: http://en.wikipedia.org/wiki/JSON
Source 2: http://www.cliws.com/e/06pogA9VwXylo_GknPEeFA/
Source 3: https://github.com/dogada/RJSON

SMS Alarming for h.a.c.s.

I’ve added Alarming to hacs a while ago and I’ve now extended the built-in SMS gateway providers with the german telekom services called “Global SMS API”.

This API is offered through the Telekom own portal called developer garden and is as easy to use as it can possibly be. You only need to set-up the account with developergarden and after less than 5 minutes you can send and receive SMS and do a lot more. They got APIs for nearly everything you possible want to do … fancy some “talk to your house”-action? Would be easy to integrate into h.a.c.s. using their Speech2Text APIs.

They have a short video showing how to set it all up:

[youtube]http://www.youtube.com/watch?v=caRSafzMDK0[/youtube]

So I’ve added the SMS-send capabilities to the hacs internal alarming system with it’s own JSON configuration file looking like this:

Bildschirmfoto 2013-07-11 um 23.08.46

And this simple piece of configuration leads to SMS getting sent out as soon as – in this example – a window opens:

sms-alarming-ahcs

Before the Telekom Global SMS API I’ve used a different provider (SMS77) but since the delivery times of this provider varied like crazy (everything from 30 seconds to 5 minutes) and the provider had a lot of downtimes my thought was to give the market leader a try.

So now here it is – integrated. Get the source here.

Source 1: https://github.com/bietiekay/hacs
Source 2: https://www.developergarden.com/de/apis/apis-sdks/global-sms-api/

Photosynth now mobile…

It’s been some months years since the once Microsoft Research Project got public and Microsoft started offering it’s great Photosynth service to the public.

I’ve been using the Microsoft panoramic and Photosynth tools for years now and I tend to say that they are the best tools one can get to create fast, easy and high-quality panoramic images.

There is photosynth.net to store all those panoramic pictures like this one from 2008:

The photosynth technology itself contains several other interesting technologies like SeaDragon which allows high quality image zooming on current internet connection speeds.

This awesome technology is as of now available on the iPhone (3GS and upwards) and it’s better than all the other panoramic tools I’ve used on a phone.

the process of taking the images

after the pictures are taken additional stitching is needed

after the stitching completed a fairly impressive panoramic images is the result

Source 1: Photosynth articles from the past
Source 2: Photosynth in Wikipedia
Source 3: Photosynth on iPhone App Store

Achievement Unlocked: Scaring the hell out of people

Oh boy, it seems that Apple just screwed up big time when it comes to data privacy. Obviously everytime someone attaches an iOS device like the iPhone to a PC or Mac and it does a backup run this backup includes the location data of that iPhone of the last several months. Impressive logging on the one hand and a shame that they did not talk about that in public upfront on the other hand.

There’s a great tool available on GitHub which uses OpenStreetMap to visualize the logged data – it creates a quite impressive graphical representation of where I was the last 6 months…

Source 1: http://petewarden.github.com/iPhoneTracker/

great SIP Softphone for Linux and Windows

Thank goodness I can uninstall X-Lite! At sones we are using a SIP based telephony solution. And therefore some times a SIP softphone application is needed along with the obligatory hardware SIP telephones. Till today the only half-working software I knew for that task was X-Lite. But a colleague told me today that there is a better software which not even looks better but also works better than X-Lite.

It’s called “Ekiga” and it’s a GTK based open source application which can run on Windows and Linux. It looks clean and therefore nice and works great.

A special tip from me: Abort the Welcome Wizard because the only thing it does is registering you with ekigas’ own services.

Capture

Source: http://ekiga.org/

I am a space ship captain. Not.

So finally after years and years of hope and nerdy ideas I am able to hold a tablet device in my own hands and it’s not only as good as Picards tablet was back in that great “Star Trek: Next Generation” series, it’s better.

IMG_0964

Of course I had to import that particular iPad from the U.S. (thanks Alex!) – actually it was the first time I imported something that expensive. Beside some fun with the shipping company everything went fine. Since Apple just announced to delay the launch of the iPad in Europe for a month it’s nice to have a gadget just a few weeks after it was available in the U.S.

LUA is not only for WoW

It’s also suitable for anyone who wants to develop iPhone Applications.

hello-lua

“I started investigating how I might wire up — and then write native iPhone apps from — a scripting language. Lua was on my radar already. It’s compact, expressive, fast enough, and was designed to be embedded. Took only about 20 minutes to get the Lua interpreter running on the iPhone. The real work was to bridge Lua and all the Objective-C/CocoaTouch classes. The bridge had to work in two directions: it would need to be able to create CocoaTouch objects and also be able to respond to callbacks as part of the familiar delegate/protocol model.”

Source: Announcing iPhone WAX

Up-Grayed

Last week I upgraded my iPod touch to an iPhone… well actually I got a new iPhone 3GS aside the iPod.

IMG_7392

It’s a fast device – even noticeably faster than the 2nd gen iPod Touch. It’s got almost the same battery life like the touch for me and it was a plug-and-play experience to use it the first time.

What I wasn’t expecting is that the smooth experience suddenly came to a stop when I tried to plug the iPhone into my car – just where the iPod touch did the job for about 5 months (including that the touch got charged by the car along the way).

With the iPhone I got two error messages simultaneously:

IMG_0010

“Charging not supported by this accessory”

IMG_0009

“This accessory is not supported by iPhone”

Damn you Apple! What’s the problem? There’s a standard USB port which powered 2,5 inch hard disk drives previously and the iPhone just states that it cannot be charged with this accessory (e.g. the car).

On the other hand everything else just works as it was working with the iPod. I can browse my music library on the iDrive I can listen to music – everything works, beside those two error messages and the not-charging iPhone. Thank you Apple B-) Maybe I need to up-grayed my car too?

new GPS track analyzer found

My beloved GPS analyzer “GPS-Track” has been discontinued :-( I wasn’t able to locate an old version of it so I had to find a new tool which does the trick. On the other hand I upgraded my Windows Mobile phone to a newer version – resulting in the not-running of my previous gps logging tool. So I had to find another new tool.

First the GPS Logging tool:

It’s freeware, written in .NET and worked out of the box with my bluetooth gps. It’s called “GPS Cycle Computer” and has a lot of cool features like Google-Earth KML export, the obligatory GPX support and a great several display modes.

GPS-Cycle-Computer

The GPS Logger exports an .GPX file which then is imported into the Analyzer called “GPS-Track-Analyse.NET”. This tool – obviously designed to analyze hiking – allows you to view the data in different ways, edit waypoints and export it to several other formats.

Bild 1

Source 1: http://www.gps-freeware.de/Vorschau.aspx
Source 2: the previous GPS Tracker Tool I used
Source 3: the new Windows Mobile GPS Logger tool

der bi-em-double-you !

Ich fahre ja seit 2000 privat diesen wunderschönen SEAT Arosa. Nun ist das Auto Ende 1999 gebaut und damit auch nichtmehr das jüngste – eine kleine Excel Tabelle hat aufgezeigt dass das Auto de-facto durch die verschiedenen Durchsichten und Reparaturen mehr als zweimal komplett bezahlt wurde. Auch machte sich ein verstärkter Öl-Durst in den letzten Monaten eher unangenehm bemerkbar – unter anderem bekam ich erstmals die “nicht genug Öl”-Lampe zu sehen.

IMG_0973

Das Auto meiner Frau ist da noch viel schlimmer dran gewesen – als Baujahr 1997 und mit dem Geburtsfehler “Opel” ist es ein Wunder dass es überhaupt bis ins Jahr 2008 durchgehalten hat. Nicht ohne Blessuren: die gesamte Elektrik tut mehr oder weniger das was sie will, die Rad lager hören sich an als wären ein paar Stahlkugeln in einer Waschmaschine unterwegs und die Lenkung an sich zieht so böse nach rechts dass man sozusagen die ganze Zeit nach Links lenken muss um geradeaus zu fahren. Und da ist dieser Geburtsfehler: Die Hütte rostet dass man glaubt das wäre ein Hochseeschiff ohne Lackierung. Nun ja.

IMG_3770

Den Opel haben wir schon frühzeitig in 2008 dem Gebrauchtwagenmarkt zugeführt und auch – wie ich finde (meine Frau ist da etwas anderer Meinung) – reichlich Geld dafür bekommen. Für den SEAT Arosa haben wir uns ein anderes, endgültigeres Schicksal ausgedacht:

Im November 2008 klapperten wir die verschiedenen Autohändler in der Umgebung ab – all die üblichen Verdächtigen mussten befragt, begutachtet, bewertet und letztlich ausgewählt werden. Prinzipiell stellte sich die Frage: Ein Japaner oder ein deutsches Fabrikat?

Wir hatten einen Honda Civic im Auge – aber aufgrund glanzvoller Ignoranz der Händler und dem doch extrem schlechten Preis-Leistungsverhältnis haben wir uns schon frühzeitig entschieden: ein deutsches Auto soll es sein. Genauer gesagt ein BMW.

Die ersten Erfahrungen mit dem ortsansässigen BMW Händler haben dann auch recht schnell Herz und Brieftasche geöffnet. Schon nach dem ersten Besuch war die Probefahrt klar gemacht – wir hatten uns nämlich recht schnell auf einen “Einser” eingeschossen. Den gab es in der richtigen Größe und viel wichtiger: Mit der gewünschten Gadget-Dichte.

Am 08.11.2008 ging es also mit einem blauen 3 türigem 1er in den Thüringer Wald – gerade noch rechtzeitig vorm ersten großen Schnee. Wir haben natürlich die Gelegenheit für ein paar Fotos genutzt:

BMW_1er_Panorama_Steinbruch_2IMG_3556 IMG_3551 IMG_3552

Die Kaufentscheidung war getroffen – nun ging es an die Planung. Der BMW Konfigurator ist da ein ganz nettes Spielzeug, wenngleich ich mir da noch die ein oder andere Verbesserung gewünscht hätte. Über Weihnachten und im Januar wurde das Wunschauto konfiguriert und dann am 13. Januar mit der Hoffnung dass der Winter ein Herz mit uns haben möge gleich mit Sommerreifen auf den baldmöglichsten Termin bestellt. Abholen wollten wir das Auto nicht beim Händler sondern direkt in München in der BMW Welt.

Den Termin bekamen wir ein paar Tage später vom immer noch sehr zuvorkommenden, engagierten und überaus netten Händler – ja das ist nicht übertrieben, der Mann ist auf jede unserer Fragen eingegangen und hat sich speziell beim Rätsel-Thema “iPod-Integration” extra nochmal kundig gemacht.

Nun ging die wirklich anstrengende Phase des Projekts “BMW kaufen” los: das Warten.

IMG_3815

Da trudelten dann im Wochen-Rhythmus die Bestätigungen, die finalen Rechnungen und so wichtige Dinge wie Kennzeichen-Tragetaschen und Informationsmaterial zur Abholung ein. Alles in allem hat das die Vorfreude natürlich enorm gesteigert.

Am 12. März war es dann soweit. Unser BMW war gebaut, poliert und fertig zur Abholung. Wir sind an dem Tag extra früh aus dem Bett da die Abholung selbst auf 14:20 Uhr angesetzt war. Das ist natürlich reichlich spät wenn man hinterher noch eine BMW Stammwerksführung machen will. Deshalb haben wir die Werksführung vor die Auslieferung gezogen und mussten so recht früh (4 Uhr, urks!) raus und nach München. Wir waren rechtzeitig da und natürlich war wie erwartet ein wirklich schöner Tag für uns vorbereitet worden. Der Empfang, die Werksführung, die BMW Welt selbst, die Präsentation unseres Autos – da fällt einem nur ein “WOW!” ein.

IMG_4261_stitch
die Abholer-Premium-Lounge

IMG_4226_stitch

die “BMW Welt”

IMG_4246_stitch

die Treppe für die Abholenden – da geht man
gaaaaaanz langsam runter

Auf den Bildern ist ja auch diese Treppe zu sehen – da geht man nach dem Fahrzeug-Briefing – also dem Teil wo dem Abholer sein neues Auto in Theorie und Simulations-Praxis erklärt wird – gaaaanz gaaaanz langsam hinunter. Um dann direkt vor seinem Neuwagen zu stehen. Und ganz ehrlich, bei der ganzen Show ist das schon ein erinnerungswürdiger Moment wenn das Auto dann endlich vor einem auftaucht.

IMG_4338

Außen weiß und innen ganz in schwarz.

Endlich war das Warten vorbei! Wir haben uns dann direkt auf die Sommer-Socken gemacht. Die Fahrt versprach nämlich spannend, oder doch zumindest interessant zu werden: Schneeregen und Nebel war angesagt. Das kam dann auch, war aber nicht die Spur eines Problems – schön langsam und sicher sind wir nach einem ewig langen Tag wieder zuhause angekommen. Die Nacht war dann aber auch nicht besonders lang – denn nur zwei Tage später sind wir umgezogen. Ja da ist sozusagen die “Coole Sache Nummer 2”. Den Bericht gibts dann aber in einem anderen Artikel.

DIY Photo Frame (with a twist)

I got these two quite old Windows Mobile Professional phones (with touchscreen and everything) and beside the fact that they are my phones I am using them just to display my calendar entries on my desk. Now I thought it would be a great thing if those two QVGA devices would display personal pictures in a slideshow.

And it would be even better if they would get their pictures from the internet. And even better if there would be an application that would allow me or my wife to upload/delete pictures from the slideshow playing on all devices.

Thought said, and done. I did a little afterwork project today, taking me approx. 3 hours with everything from scratch.

So I made these parts:

  1. a webservice to upload, delete and retrieve the pictures

    This really is just a webservice very similar to the one I used in my DropBox application. It’s hosted on one of my machines and makes the pictures also available to the mobile clients.

  2. an upload tool to upload, delete the pictures comfortably

    I took the DropBox Application and customized it – it now resizes the pictures automatically before uploading and it can display a preview in the file browser.

    photoframe_upload_1

    photoframe_upload_2

  3. a small application running on my phones that displays this pictures using the webservice

    This one was made from scratch and consumes the webservice from above. It asks for the next picture URL, downloads this picture and displays it… and so on.

    photoframe_app_1 photoframe_app_2

Since it’s already up and running and looking great on my desk I wanted to share it with you. Don’t expect everything to work out-of-the-box but it’s a start for everyone who wants to have something like this. Oh – of course your windows mobile device needs to have internet access…

So as usual here’s the sourcecode of the whole package for your pleasure. Use it where ever and in what ever whay you want as long as you’re crediting.

PhotoFrame.zip (639,87 KB)

P.S: There’s a fun fact I did not know: I accidently double-clicked the windows mobile application on my Vista machine and guess what: It just runs! Yes, manage Windows Mobile Application running natively on Windows Vista:

funfact

Source 1: PhotoFrame.zip (639,87 KB)
Source 2: DropBox

How to create an m4b iTunes compatible audiobook from a cd

Let’s say you’re like me: You got several audiobooks on CD over the years and you even ripped several of these to listen to them in your MP3 player/car.

So what I have is a number of audiobooks ripped as mp3s on my harddisk looking something like this:

crnan1

If you only have the CD what you would like to do is rip the whole CD as ONE large m4a AAC encoded audiofile. We need it to be an m4a because we later want to inject chapter marks. If you have this big AAC file just skip the next few steps. But if you got those several small mp3 files – one for each chapter you want to merge them together and reencode them as m4a AAC.

There is a great free tool to merge these mp3 files together. It’s called (who would have thought) Merge MP3 and is available completely for free. It’ll create one big mp3 file out of your several small ones.

mergemp3nan

After you got that huge mp3 file you want to convert it into a m4a file with AAC encoding. I recommend using iTunes.

itunesconvertnan

When you got that one huge m4a file you want to load it into a tool called Chapter Master. It’s not free and will set you back $15 but it’s worth as I did not find anything else that was a) that cheap b) that comfortable c) working.

chaptermasternan

Load the m4a file into Chapter Master, add the chapters in the right order and at the right time. Eventually you want to add an album art picture. Click save and you’re done.

The resulting file is a m4b file recognized by iTunes as an audiobook with chapters.

Source 1: http://www.shchuka.com/software/mergemp3
Source 2: http://www.rightword.com.au/products/chaptermaster/download.asp