Category Archives: General

My oldest program

I recently got the first program to work, I can remember writing. I wrote the game in 1996 at the age of 12, on an 8-bit computer with a 10 MHz 8085 processor, that my father built a long time ago. Since it’s a custom and unique machine, the programs ran nowhere else.

There was no assembler or compiler, so I had to write the game in machine code, which wasn’t actually too hard, because the processor only has a very limited command set and even fewer were required to write the text adventure I called lambada.

In 2010 I wrote a 8085 emulator for Windows to make my old games run, which also supports the totally unique hardware of the original machine. That way I was able to run the game on a 2,4 GHz quadcore with a 64 bit Windows 7. 🙂

The game is a simple text adventure game, telling you a story which you can control by key presses. The whole game consists of only 520 bytes of machine code, that I wrote in a hex editor, and about 3kb of text for the rest of the game.

WordMix Android game in the Market

My first Android game is ready to be released in the Google Play Store (former Android Market).

The game is pretty simple and very similar to Toss Words, Spill and Spell, Perquackey or the German games Letra-Mix and Wörter Würfeln.

In the game you get a set of random letters and you have to arrange them in a limited time to valid words. The words are checked against a database of valid words using available spell checkers. After the first update, the game comes with support for English, German, Romanian, Spanish and French, both the dictionary and the localization of the user interface.

Get the game fresh from the Store, while it’s still hot: 🙂

https://play.google.com/store/apps/details?id=de.saschahlusiak.wordmix

T-Mobile ate my EXIF-Headers

I was debugging my Frupic Android app the other day, trying to rotate images according to the orientation stored in their exif headers.

The necessary Android class ExifInterface(String filename) to read exif information from local files was quickly set up, but I couldn’t get it to report the correct orientation, it always returned ORIENTATION_UNDEFINED (0).

After debugging my code for a while on my physical device, double and triple checking on my PC that the file to be downloaded actually contained correct exif information, I found out that the file on the phone was about 2kb smaller than the file on the PC and on the server.

I knew my phone was downloading the file over my German T-Mobile data connection, believing that T-Mobile does not touch the files when requesting the image directly. I also knew that T-Mobile does replace image URLs in HTML files to be able to cache requested images on a server close by and I also knew they might compress them. I assumed, T-Mobile would not binarily alter a file if it is directly requested.

Browsing to http://speed.telekom.de (only available from within their mobile data network), customers are able to alter the behaviour of T-Mobile’s transparent HTTP proxy:

  • Compress Picture- and Video transfers (this reduces quality and filesize)
  • Optimize transfer without loss in quality
  • No optimazion

Default is to optimize the transfer without loss in quality, which apparently does remove all exif headers from downloaded images but is also told to remove comments from HTML code and doing other micro optimazion stuff.

While I can choose to enable exif headers for slightly more traffic, it’s clear that my Android App can not rely on the exif information being available, unless the images are downloaded over SSL. I guess I am just one of few who have actually hit this limitation and I do not mind it being there. Could have saved me a lot of debugging time though.

Nokia’s idea of the user’s privacy

image

“You count
Nokia takes privacy serious. We collect information about your phone and it’s usage, to improve our products and their content.”

Nokia is just one of many, who are actually not taking user privacy serious. In above picture, taken from one of the new Nokia Lumina Windows phones, the two sentences even are an obvious contradiction to me.

Sure, Nokia values my privacy. That’s why they take it away from me. But don’t I worry, they only use it for their own purposes and promise to not give it away. I think,if I told that to a stranger and took his money, wouldn’t I be called a thief?

It is obvious that they do not value my privacy but their data, leaving the people stripped naked and helpless.

It is sick that the people, who create the privacy data, are not in control and actually do not own what is originally their’s. And why should we trust a company, being more interested in their profit than in me being able to protect my privacy?

Privacy begins in my toilet, and it should end there!

Not in a profit orientated multi million dollar compary.

google.cn in IPv6 world

Google China recently added AAAA records to it’s domains:

# host www.google.cn
www.google.cn has address 209.85.148.160
www.google.cn has IPv6 address 2a00:1450:4001:c01::a0

Google China does not offer search results through google.cn anymore since March 2010, redirecting their users to google.com.hk, which does not have AAAA records enabled.

Fortunately maps.google.cn still is available, generating lots of IPv6 traffic:

# host maps.google.cn
maps.google.cn is an alias for ditu.google.cn.
ditu.google.cn has address 209.85.148.160
ditu.google.cn has IPv6 address 2a00:1450:4001:c01::a0

This gives hope for this year’s World IPv6 Launch Day, June 6th, 2012. 🙂

FruPic App for Android

FruPic App in Google Play Store

 

Finally my second Android App is done, this time an image viewer and uploading app for the FruPic image sharing site: http://frupic.frubar.net.

The app shows the posted images in a nice grid-like overview or as a flingable gallery, offering abilities to download or re-share the posted images as well as upload pictures from your gallery to the site in two clicks.

I integrated an offline caching mechanism of the downloaded data, so you should be able to browse FruPics as far as they are previously cached.

Get the app fresh from the Google Play Store (former Android Market):
https://play.google.com/store/apps/details?id=de.saschahlusiak.frupic

And the source code of this thingy lives on github:
https://github.com/shlusiak/FruPic-App

 

Android App for HRW IT-Monitoring

Android App
HRW IT-Status in Google Play Store

Android is an interesting platform and it’s easy and fun to develop for. My first app is a very simple tool to query the IT-Monitoring state from the University of Ravensburg-Weingarten, as also available on their public website:

http://www.hs-weingarten.de/web/rechenzentrum/dienststatus

In the background, a complex Icinga installation provides the necessary data, making it available through a public XML interface.

The app is available in the Google Play Store (former Android Market)
https://play.google.com/store/apps/details?id=de.saschahlusiak.hrw.dienststatus

Source code is also available on GitHub:
https://github.com/shlusiak/HRW-Dienststatus

Total Commander 64 bit plugins

Total Commander 8 will be released soon, offering native 64 bit support for Windows. The author kindly asked to recompile the available plugins for 64 bit, offering bounties to plugin developers.

The plugins to encode and decode gif files and avi videos are available in 32 bit and 64 bit versions now, ready for download. While the gif plugin seems to work fine, the avi version is facing the windows codec hell all over again in 64 bit world. On a 32 bit system I recommend the use of the ffdshow-tryouts codec pack, on a 64 bit system I wish you good luck to find working VfW (Video for Windows) codecs for encoding and decoding. 🙂

I should probably rewrite the plugin to use either DirectShow or just wrap ffmpeg…

Homepage over IPv6

On June 8th, 2011 my webhoster participated on the World IPv6 day, making my homepage temporarily IPv6-enabled. Shortly after they went productive, so all my subdomains, the homepage, this blog and even the ftp have IPv6 records enabled by default.

www.saschahlusiak.de has address 80.67.17.142
www.saschahlusiak.de has IPv6 address 2a00:1158:0:300:8e72::1

Only the email servers don’t run IPv6 yet, but I’m sure that’ll come. Welcome to the future. 🙂