Stolen PC

My PC was stolen yesterday evening. This is not fun. I hope the perpetrator will rot in hell.
I had a presentation for tomorrow with many slides and a Data Warehouse reference architecture two third done which I had not backed up. I probably had a lot of other documents there not backed up. Fortunately I didn't have any sensitive info on the PC, at least I hope so.
These days you should save all your stuff in the cloud, not on the PC. Either in the cloud or on other servers.


Midsummer eve

Today it’s midsummer eve, it’s almost a sacred holiday in Sweden. We who live in Stockholm go out into the archipelago in the Baltic outside the town. Stockholm is almost empty, and the sun is up the entire days night.This year is different, the weather is unusually bad, rain rain dark clouds making it looks more like a day in the fall. For the first time in many years I’m alone in the city. I’m happy not being out in the islands this year.

Last year I rebuild the Linux system in the ETL server of the Data Warehouse on midsummer eve morning in an attempt to connect ODBC to Iseries DB2 systems. In the middle of this my siblings called me and told me they were waiting on me going out to the countryside. I stopped my rebuilding sure my tinkering could not possibly intervene with the normal operations of the ETL server. Of course it did, it killed all ETL jobs for the entire holiday. The guys responsible for the Data Warehouse had to work two days repair the damages, and they made me promise never to do ANYTHING  next midsummer eve or ever any midsummer eve after.


The Funnel

The Funnel a.k.a. Tratten (1976 - 2015-06-02)

The funnel a landing zone for program to program communication was conceived around 1976. This brilliant piece of software has served the company well for almost 40 years. It started it’s life as simple PDS store with a few simple API’s (store and get) later revamped into a full-fledged integration platform with a DB2 data store running. We were some that contributed to the funnel over the years, but there are three who deserves to be mentioned by name:
Ulf Nordin
Per-Erik Dahlberg

If some survivors can be assembled, we should have a funeral feast for the old workhorse.

Year 2000 a project started to replace the Funnel, and the plug was pulled 2015-06-02, unfortunately not without some hassle. Some purchase order flows were still going via the funnel. Those are now ported to the new integration platform.


Mobile Business Intelligence

The Data Warehouse is conceptually divided into one ETL backend, and frontend viewers. One of those viewers are Qlikview. We run Qlikview as web apps. The Qlikview web environment is device sensitive or adoptable, which means that you can run QV apps on a 27 inch hi resolution screen or a smartphone, you just need a web browser. Of course the user experience is much better on a 27 inch screen, but Qlikview does a good job of right scaling the app. We had the infrastructure for mobile BI in place for years but little or no interest from the users. But this is changing, lately mobile BI has got a lot of traction in the company.
How useful a BI app in a smartphone is remains to be seen. I feel it is more a gimmick than serving a useful purpose, the screen is too small. But for a dexterous person with small hands it might come handy on the road. My prediction is most likely wrong, in just a few years we all will run a lot of apps in our smartphones actually I’m doing it already. One thing that surprises me is how performant the Qlikview apps are in my smartphone, with 4G I have really good response times.

Security is a big concern for mobile BI.

As you can see below I pixelated parts of a smartphone BI screenshot, BI information is trade secrets, I have chosen a ‘harmless’ app, but I hide some of the information just to be on the safe side. BI is to analyse and compare the business, going outside of the firewall with this kind of information is not without risks. Curious guys are on the net fishing for information. National organisations like NSA, Unit 61398 or FRA, all such organisations are probably involved in industrial espionage to some extent, not to mention competitors and criminal organisations. You should protect BI information as the confidential business assets they are. Going mobile is a risk, and you should be aware of that.

A Qlikview small device screenshot:

Mobile BI - in action on my Samsung Galaxy S4


20:00 still at the office

I’m sitting alone in the office burning midnight oil got to finish a report, listening to Peter Green. Although I’m an atheist it struck me that Mr. Green should at least be part of the entertainment in the paradise. The music he creates is divine, pure magic.  


Mini vacation and meetings

Back to the office after Ascension Day mini-vacation. Beginning of last week I was in Örebro, discussing Master Data management with IT-architect colleagues and then two days free. But now I'm back again with a filled calendar and a lot of new meeting invites in the mail. I'm not a 'meeting-guy', more than two, three hours meeting a day is mental torture according to me. I have a feeling meeting getting more frequent by the year, these days all seems to be in meetings most of the work hours, and a lot of other hours as well, if you have telcos with people in Europe, US, Australia and China you sometime have to work at very odd hours. Anyway this week there is a lot of meetings for me.
Last week I discovered Canary Pete he is hilarious, he has got the essence of what meetings is all about:


RTFM, PHP closures revisited

Stockholm 2015-05-16

Some time ago I wrote two posts called Dynamic PHP code by closures and Dynamic PHP code 2. I complained about having to use the eval instruction when I created the closure, this was of course wrong. Now when I need to create another closure from a text script, I decided to read the manual. Instead of  using the function instruction as used in my previous attempt, I found out that create_function allows me to do what I want without eval. So without further ado:

Sometimes the SAP formats values a bit odd e.g. instead of responding 100 for one hundred percent SAP gives *0.00, this is not a value you can import in a numeric declared database column. To solve this and other formatting problems I decided to implement post formatting as PHP closures, an example:
This job executes the SAP bapi BAPI_CURRENCY_GETLIST. If you look at the <columnfunctions> You can see I added formatting functions for three columns; LONG_TEXT,CURRENCY and MESSAGE. 

The PHP code creating the closures from this looks like:
Running the job above results in the following MySQL table: