Daily Tech Observations

Some technology related observations from the last few days in these exceptional times we are facing at the moment. A lot of positive actions and activities going on.

COVID-19 Apps

A number of organizations try to build apps that help to control the spread or inform affected people. Most ideas take personal data protection into consideration and allow transfer of data to authorities or servers only upon consent and approval. Though nothing has been releases yet at a larger scale.

  • CoEpi: Community Epidemiology In Action (link)
  • geoHealthApp: Spread the app not the virus (link)
  • ebolaApp: Its team tries to reuse an existing app (link)

Google Playstore and COVID-19 Apps

With hackers, malware and virus producers jumping on the train to misuse the situation (just to mention the ransomware that people behind coronavirusapp[.]site trying to spread an app that locks mobile phones), Google decided not to release any apps in this context until they find appropiate ones. Until a few days ago you did not find any app when searching for the term. By now you find only 1 app in the Germany Play Store with a app released by Singapore government funded app.


Put smart people together and let them work in short time on ideas, this time solely virtually.

  • #WirVsVirus Hackathon by the German government last weekend (link)
    Not less than 42.000 people attended in one way or another.
  • Hack the crisis – Accelerate Estonia (link)
  • AI for mankind hackathon (link)
  • Not to forget to mention the Kaggle Competition (link)

Transparent Prices for panic-buying products

While supermarkets run out of toiletpaper and a few other more important products, mainly due to distribution and logistic problems, the net revelead a whole universe of profiteers via the usual selling and market platforms or through self-created shop websites. Interesting to observe the price development, two weeks ago it was very much wild west with skyrocketing prices, by now the market platforms try to remove and ban any ridicolously priced offers and shops. The below screenshots from a local price tracking shows only samples of “reasonable” increased prices.
Good to see other companies like car manufacturers jumping in and trying to produce equipment in high demand (which hopefully can be produced b y non-medical companies). (Link)

Toiletpaper prices up 40%
Desinfection (hand sanitizer) price tripled

Still it need someone to buy these items and willing to pay the price or being very desperate. Open market physics..

Apps in Trend

Now communication apps like Zoom, Skype, Teams, etc are seeing more downloads. Also streaming apps like Netflix and Amazon Prime Video. But some trending apps are rather weird, like the game Plague Inc. in the current top 10 of games. The game was released in 2012 (not to blame the company) and was not updated since Feb 2019 but getting downloaded more often now. Not sure who wants to play this while we face it for real without a “restart game” button..

Quote description: “Can you infect the world? Plague Inc. is a unique mix of high strategy and terrifyingly realistic simulation. Your pathogen has just infected ‘Patient Zero’. Now you must bring about the end of human history by evolving a deadly, global Plague whilst adapting against everything humanity can do to defend itself.

Hardware Hands-On

You have little chance today to get your hands dirty with electronics or computer hardware, either we deal with small devices like mobile phones, tablet and notebooks which are not made to be opened and tinkered with or our hardware is virtual only and sits in the cloud (no screwdriver required). Few people now still own a desktop size PC where one can add or change hardware (major hardware companies claiming massive loss due to dropping sales in this market).
During my studies in the 90’s we still dealt with CPU’s at a very low level which helped to ‘see’ and understand what’s going on.

If time allows I am doing some DIY  projects with Arduino or Raspberry Pi, 2 electronic platforms which seam to be similar at the first glance, but operating very differently.

The Arduino is a progammable microcontroller, designed to work with sensors or to control external components like relays or motors. Is a very hardware oriented device, no OS or whatsoever included. It does basically what you program it to do. More info and getting started at http://arduino.cc



The Raspberry Pi on the opposite end is rather a miniature computer, running an OS from a SD card and equipped with ethernet, HDMI and USB plugs. It is clearly more a software platform which can be used for more powerful applications than the Arduino. More info and getting started at http://www.raspberrypi.org

You have the option to combine both, to have processing power of a computer and the myriad of inputs and outputs to the real physcial world.

Raspberry Pi

Raspberry Pi

Noise in LinkedIn versus Stackoverflow

The internet is huge dump ground full of knowledge and knowhow sharing. A market and meeting place. Given the trillions of websites one must be selective where you spend your time. Certainly StackOverflow is good investement (both to query and to answer).

You ever noticed that you pretty much dont see any jam postings on StackOverflow ?
I also joined LinkedIn (already a few years back) and I still dont understand how many so-called professional groups get flooded with rubbish postings, usually offering jobs where you earn a bomb by filling out surveys and other nonsense. Not sure why either LinkedIn is not capable to sort this out or the group owners let anyone in even without any profile.

For the fun of it (internet forensic for starters)I did a little background check on one of this postings. Quite often posted by someone without public profile, always a woman with a attractive looking profile picture and some fancy names (Cindy H., Evelyn P.,..). The URL in the posting are usually dating sites or other drive surf-by virus sites. You can backtrack an image and check with TinEye where the image is used in the web. I did it with a person called Jessica P. and put the image link into TinEye. It leads to Ukrainian Dating Site. Her name is Irina from Yalta and she is interested in dancing, swimming, shaping, aerobics, travelling. What would she do in an IT forum ? Supposedly she work as a translator. I suspect even this is fake. Anyway you can do the same with these 2..3 simple steps. Continue reading

On Simulation and Engines

I love technical simulations, such as flight or driving simulators, specifically that ones aiming to simulate real physical entities, in contrast to game software where the focus is entertainment and not realistic behavior. Of course, nowadays you cant draw a clear borderline between gaming and simulation  (for the PC market, not the industrial purpose simulator). Amazing to observe the development and evolution of software and underlying physics and graphics rendering engines over the last 30 years, I still remember getting my hands on Microsoft’s first version of the Flight Simulator from 1982 (its version history ended in 2006 with Flight Simulator X).
Due the hardware limitation of that time (typically 4.77 MHz IBM PC, 64K memory, 360K floppy , no harddisk !) the graphics were rather simple, not to say extremely simple, but still it made us being overly excited to use this simulator in the early 80’s. The software focused from the first version to be accurate on flying physics and navigation.

MS flight Simulator 1.0 Screenshot

30 years later we have such high level of graphical and physical rendering quality, that we almost simulate reality as-is. Hardware build in phones surpasses easily the capabilities of hardware of 80’s, you even get simulation software for tablets today.

The above screenshot is from the website  fshistory.simflight.com (the copyright belongs to them) and I ask you to drop by the website setup by Jos Grupping, unfortunately there are no updates since 2007, as well the Wikipedia entry.

Comparing to visual impact of the version X from 2006.

MS Flight Simulator X

On a side note: Microsoft restarted their effort to build a flight simulator with MS Flight, this time targeting the mass market with a more entertaining version. It is FREE to play, but Microsoft decided again to cease development and scrapped the project in July 2012. Download from here. Wikipedia Info.

In this series I will look further into the simulation software and underlying engines for Windows and Linux.

OpenSource Hardware

OSS is nothing really new anymore, even Microsoft announced 60% of their software (they use!) is OSS. But OpenSource Hardware is still fairly new, at least on a broader market. Over the years I read about various initiatives to launch this kind of products. I believe only geeks and hackers are attracted by hardware they can build, program and configure to their needs and ideas. Many years back I did some electronics (during my studies), but often started from the scratch with simple stuff to control household devices, as simple as dimming the light with a remote, etc.

I came across the Arduino board which gives you a micro-controller platform that you can connect to your Windows, Mac or Linux desktop to program it and let it run independently. It is all open and documented, you can control something simple like a LED but can go to the extend of reading acceleration, temperature, controlling cameras, an almost infinitive field of appliances. Google for Arduino projects and you find amazing stuff, built on top of a 29$ device.

I recommend at least some basic knowledge of electronics, but even without any clue, you can get started, there are plenty of books and websites with tutorials.

Get started here: www.arduino.cc and buy the device from here, and if you live in Singapore from SGBotics.

Arduino Platform

SnipplrScout Release 0.1

A little sunday afternoon project, mixing Java and Groovy into a Swing application that reads your favorite code snippets from snipplr.com. The website has an XML-RPC based API, so a good exercise with this rather old API technology. I am storing both sourcecode and jar file on bitBucket (which is now under Atlassian). Learning the Mercurial way.

Download the tool from: http://bitbucket.org/javadude/snipplrscout/downloads

SnipplrScout 0.1A

Project: Visualizing Trac Wiki Pages (Part 2)

More information before we start with the implementation:

Graph requirements:

  • Display all wikipages as nodes
  • Show direction (links are uni-directional)

Option Requirements:

  • Highlight direct connected wikipages
  • Display content (in separate browser window)

Wiki Graph

The XML for prefuse graphs look like this sample (our groovy script needs to produce this):

<?xml version="1.0" encoding="UTF-8"?><graphml xmlns="http://graphml.graphdrawing.org/xmlns">
 <graph edgedefault="directed">
 <key id="wname" for="node" attr.name="wname" attr.type="string"/>
 <node id="1">
 <data key="wname">WikiStart</data>
 <node id="2">
 <data key="wname">IdeOverview</data>
 <node id="3">
 <data key="wname">JavaEE</data>
 <edge source="1" target="3"/>
 <edge source="1" target="4"/>
 <edge source="1" target="5"/>
 <edge source="1" target="6"/>
 <edge source="1" target="7"/>
 <edge source="1" target="13"/>
 <edge source="3" target="4"/>

The prefuse xml file contains the metadata for the nodes, all nodes and all edges linking the nodes.

Using the backup function of Trac we need to process input like this sample:

INSERT INTO "wiki" VALUES('wikiPage1',2,1246948793,'user','',' * MySQL on Server xyz * Evaluate Firebird and Oracle. (schema and timestamp issue)','',0);

The SQL file contains the complete wiki content. Following the sample we need to filter with

  • type: INSERT INTO ‘wiki’ (filter out all others)
  • page title: ‘wikiPage1
  • version: ‘2‘ (search for the highest version)
  • wiki user: ‘user‘ (filter out all ‘trac’ entries)
  • content: ‘* MySQL on Server xyz * Evaluate Firebird and Oracle. (schema and timestamp issue)

Project: Visualizing Trac Wiki Pages (Part 1)

We are using Trac as Wiki and after a couple of months using it as main know-how repository, we tend to loose the overview of the myriad of pages and how they are linked to each other. A graph representing the relation between the pages would be very useful.

I could not find any plugin or tool, so it would be a good exercise to create a tool that convert a trac wiki into a graph.


  • Use Java or Groovy. I choose Groovy because less boilerplate for standard tasks, such as creating xml, reading text files, etc.
  • XML-RPC to access the wiki directly. I tried to create a mockup in Java, but failed due to the cryptic error messages and hard to debug.
  • Trac backup to retrieve wiki data: You can create a backup in form of an INSERT sql file containing the complete structure of the wiki (inclusive of non-user content and all revisions of the wiki. I choose this as a starting point until I get the XML-RPC problem solved (maybe in Groovy).
  • Visualization in JGraph, InfoVis, Prefuse or other toolkits. I decide for Prefuse because it is feature complete, powerful and I created simple applications previously.

Current Implementation:

  • A simple Groovy script that works in 2 stages, a) reading and processing the sql backup file and b) creating a xml file that my prefuse viewer can display.

Future Plans:

  • Create a standalone SwingXBuilder application
  • Create a Netbeans Plugin

Sunday Afternoon Projects

I love 3D engines and the concepts of simuation of real world scenarios with realistic looking software. Most of the 3D engines are heavily infested with C, C++ or C# (due to higher performance) and almost all of them have a hefty learning curve, if you want to go beyond the click-and-play editor of the simple game engines. I dont really have time to get involved in technology that is too far away from Java and Java is not really known for powerful 3D graphics…until I found this:

  • JMonkeyEngine (JME is a highperformance 3D scene graph based graphics API)

    Josh Slack (the brain behind JMonkeyEngine) at Java One 2008

And if you want to have a simpler start into the world of physics, you can play with Phys2D. I even someone implementing a simple game in JavaFX using this ! Will share more on this on the next sunday afternoon sesion.