Uitzicht over Putrajaya

Vanuit mijn hotelkamer kijk ik uit over Putrajaya. De ingang van de IOI city mall. Ik dacht dat dit een grote mall was, tot ik de andere malls in Kuala Lumpur zag. Fonteinen en overdekt relax-ruimtes. Bouwwerkzaamheden even verderop – een nieuw stuk land wordt gereed gemaakt voor bebouwing. In de verte twee grote gebouwen die onnatuurlijk lijken op te rijzen uit de grond. Deze gebouwen staan nog leeg. In de omgeving worden enorme nieuwe appartementsgebouwen neergezet. Als de bomen in de stad door het asfalt breken, zo barsten hier de flats de grond uit.

Natuurgeweld in de stad

Het lijkt soms alsof de bomen hier in Kuala Lumpur door het asfalt heen zijn geknald. En struiken vreten zich een weg omhoog langs de muren. Als je er één keer op begint te letten zie je opeens hoe de natuur zich hier vastgrijpt aan de menselijke inrichting van de stad.

Net zo vaak zie je trouwens dat de mens bomen en struiken heeft laten staan, onduidelijk of achteloosheid of ontzag voor de natuur het motief daarbij is. In Nederland zouden we deze obstakels zonder veel poeha omver halen.

Op een of andere manier ontstaat een straatbeeld waaruit ontzag voor de natuur blijkt.

Slagerij op straat

Als je vroeg genoeg in de straten van Kuala Lumpur bent, kan je leuke dingen zien. Pudu market is daar één van maar ook de aanleveraars aan restaurants en winkels kunnen interessant zijn. De slagers op straat kennen we met onze westerse hygiëne eisen niet meer. In Kuala Lumpur kom je ze deze ‘s ochtend vroeg het en der tegen. Fotograferen is geen probleem. Ze willen wel poseren ook.

Kuala Lumpur’s Old China Cafe

I eat at Old China Cafe, on the recommendation of my Malaysian colleague. The booklet was also positive about it. It is indeed a cozy little brown restaurant with old pictures of Malaysia on the wall, just around the corner from the hectic Petaling Street. It is smaller than it appeared to me in the pictures. I ask for a table for one. The man points out a table. But he has yet to clean it if I will be patient. Indeed, it looks like a proverbial bomb has exploded at that table. A small toddler (the high chair is still there) has really managed to make an unimaginable mess. The high chair is buried under the mess.

Kuala Lumpur explored (2): from Pudu to Chinatown

I walk on. In the streets behind the Pudu market, birds and fish are sold. Not for consumption, but as pets, or for decoration perhaps. Long tables along the streets with bags of fish and bird cages.

The Pudu ICC is a place where Malaysians, mostly Chinese, eat breakfast. In a large hall under an apartment building is a huge space. In the middle of the hall are tables to eat and drink at, and along the sides many stores selling various specialty foods. Here too, as the only Westerner, I am a bit conspicuous. I walk around and try to find out how things work here. Not a word of English here. Chinese, Malay here and there.

I order a filter coffee and some kind of fried sweet potato. The coffee is prepared in great haste and too weak. The sweet potato with crispy crust is tasty.

I stroll through the streets in the direction of Bukit Bintang. This is apparently where the print shops are located—one print shop after another. The printing is on the sidewalk. Besides the machines, there is hardly any space in the buildings themselves.

Behind the former Prison Gate, which is recommended in my booklet, is a huge construction site.

I walk on, past the stadium. A very popular boy band from Korea is playing here tonight. Extraordinary that a Korean band can be so popular here. We in the West sometimes hardly know about what goes on in Asia. Like those Bollywood movies that can attract more visitors worldwide in one weekend than their American counterparts. That’s what you have with 1 billion Indians. Then, the Chinese have yet to come. The band plays tonight, but at the entrance to the stadium now, around noon, hordes of excited girls are already walking.

Next to the stadium is another huge construction site.

Inside Pudu Wet Market: experiencing authentic Malaysian food preparation

Woke up early. Quickly cobbled together breakfast in the room. Later in town, we’ll have something to eat, first to Pudu Wet Market.

It seems that the Grab driver only manages to find the place after crossing some backstreets. Pudu Market is a so-called wet market. That means it sells fresh produce—fresh fruits and vegetables—but also fresh animals. That means they are brought in alive whenever possible and turned into products on the spot.

I walk through the covered section first. It is a bit stuffy, and there is little light. I attach the flash to my camera. The people are terribly nice. This could certainly be because I am really the only Westerner in that whole market. I walk around with a camera on my belly. Hardly anyone refuses when I ask if I can take a picture. In fact, they often pose with thumbs up and V signs.

There is mostly fish and shellfish, both live and dead. The fish that are not yet dead are killed and cleaned upon request. I see a barrel of large frogs.

At a stand in the corner, live chickens are processed into the bare bodies we know from our store. The chicken is lifted from a crate, and its throat is cut. The dead chicken is thrown into a barrel and a little later, at the follow-up stage, into a container of hot water. This stainless steel barrel is somewhat reminiscent of a centrifuge. It also spins around, but more slowly. So the chicken is put through the hot water for about a minute and then thrown into the plucking machine.

A creepy process to the Westerner, for whom a slaughtered chicken is as sterile a thing as whole wheat bread.

OLYMPUS DIGITAL CAMERA

Rainy days, Japanese to Satay

It’s raining again. The second day in a row with rain. Not a lot, but almost continuously. At the guard’s booth, an Indian stranger offers to walk the last bit to the entrance of the building with him under the umbrella.

Food is a thing here. Gary takes me to a Japanese restaurant at noon. By the way, eating out in the afternoon and evening is more common here than cooking for yourself. By the way 2, we like to leave early because of the traffic on the road that will cause the walk to Friday afternoon prayers in the mosques nearby. Indeed, later, the cars are two rows thick along the road.

We ate a light meal in the Japanese restaurant, and I paid for the two of us. In retaliation, Gary took me to a nearby Malaysian restaurant in the evening to taste the excellent satay.

In the mall around the corner, there is a noodle restaurant where noodles are made the traditional way.

Daily commute in KL: Grab and Asam Boi

Grab is great. The Über of Asia. Maybe even better.

I ride back and forth to work daily for about 10 MYR per ride (just over 2 euros?). The cars and drivers are clean and tidy. All they ask of you is to give them a 5-star rating in the app. The cars are mostly Proton, a local Malaysian brand. “Never buy one,” the owners let me know.

I understand it is a sport here to maximize your motorcycle by stripping it completely of all unnecessary accessories, including the brakes. These stripped motorcycles are then raced on the highways. On the news, I heard that today, the 10th youngster in a short time has killed himself in this sport. “They never learn,” says my colleague.

At lunch, I drink Asam Boi, a local drink made from lemonade and pickled plums. The combination of the lemonade’s sweetness and the plums’ sourness is perfect.

Asam Boi

Programming languages and what’s next

My review of programming languages I learned in during my years in IT.

BASIC

On the TI99-4a.
Could do everything with it. Especially in combination with PEEK and POKE. Nice for building small games.
Impossible to maintain.
GOTO is unavoidable.

Assembler

In various variants.
Z80, 6802, PDP 11, System 390.
Fast, furious, unreadable, unmaintainable.

Algol 68

Liked this language. REF!
Have only seen it run on DEC 10. Mainly used in academic environments (in the Netherlands?)?

Pascal

Well. Structured. Pretty popular in the early 90s.
Again is this widely adopted?

COBOL

Old. Never programmed extensively in it – just for year 2000.
Totally Readable.
Funny (rediculous) numbering scheme.
Seems to be necessary to use GOTO in some cases which I do not believe.

Smalltalk

Beautiful language.
Should have become the de facto OO programming language but failed for unclear reasons.
Probably because it was way ahead of it’s time with it’s OO base.

Java

Totally nitty gritty programming language.
Productivity based on frameworks, which no one knows which to use.
Never understood why this language was so widely adopted – besides it’s openness and platform independency.
Should never have become the de facto OO programming language but did so because Sun made it open (good move).
Far too many framework needed. J(2)EE add more complexity than it resolves.
Always upgrade issues. (Proud programmer: We run Java! Fed up business person: Which Java?)

Rexx

Can do everything quickly.
But nothing structurally.
Ugly code. Readable but ugly.
Some very very strong concepts.

Php

Hodge-podgy language of programming and html.
Likely high programmer productivity if you maintain a stark discipline of programming standards. Stark danger of creating unmaintainable crap code mix of html and php.

Python

Nice structured language.
Difficult to set up and reuse.
Can be productive if nitty gritty setup issues can be overcome.

Ruby (on Rails or off-track)

Nice, probably the most elegant OO language. Too nitty gritty to my taste still. Like it though.
I would start with this language if I had to start today.

What is next?

Visual programming? Clicking building blocks together?

In programming we should maybe separate the construction of applications from the coding of functions (or objects, or whatever you call the lower level blocks of code.

Programming complex algorithms (efficiently) will probably always remain a craft for specialists.

Constructing applications from the pieces should be brought to a higher level.

The industry (well – the software selling industry) is looking at microservices but that gives operational issues and becomes too distributed. We need a way to build a house from software bricks and doors and windows and roof elements.

Probably we need more standards for that.

Some bold statements

AI systems “programming” themselves is nonsense (I have not seen a shred of evidence).
AI systems are stochastical systems.
Programming is imperical.

In summary, up to today you can not build software without getting into the nitty gritty very quickly.
It’s like building a house but having find your own tree and rocks first to cut wood and blicks from.
And then construct nails and screws.
A better approach to that would help.

What do you think is the programming language of the future? What need should it address.

In Layman’s Terms: (Visa) Format-Preserving Encryption

One of my clients asked me about Visa Format-Preserving Encryption. Could look into this. I am sharing a summary here.

FPE is …

Format-Preserving Encryption (FPE) is about encrypting so-called structured data, such as credit card or Social Security numbers.

With FPE you can encrypt data in such a way that does it not alter the data format.

Your data may be credit card numbers, account numbers, social insurance numbers, addresses, postal code, FPE will encrypt the data and the outcome will look like a credit card number, account number, social insurance number, address, postal code.

That’s it.

With this you can encrypt data per field without having to make big modifications to your existing application.

Then we come to the real goal.
We can have better data privacy and security. We can agree and adhere to certain industry standards for data privacy and security, such as PCI DSS in the Payment Card industry.

And the Visa?

Visa have invented and patented an algorithm to realize FPE and use this in their card handling. Called VISA Format-Preserving Encryption.visa format-preserving encryption

Why do we need this format preservation?

Sensitive data must be encrypted so that malicious people can not read that data. In financial transactions this is of course very important.

A problem is that with encryption the format of field could change. Traditional encryption algorithms take data as a byte stream, and turn it into another byte stream.

If you have a string of text, such as a name, after encryption this encrypted field may become larger than the original field, it may contain numbers or funny characters, or it may have become be a bigger field. Or if you have an account number, after encryption there may be characters in the result. Or there may be more digits in the result than in the account number.

This change of format of fields can cause several issues in applications.

Column sizes in databases may be too small to contain encryption results.
Fields in programs may become too small
Test data for application can become problematic.
It can become impossible to implement if these fields are used as keys in relational databases.
Your analytics may become problematic.

To prevent all these issues Format Preserving Encryption was invented. With it we can encrypt fields, but process these field in the programs as if they were not encrypted. The program is not aware of the encryption.

Clearly I am leaving out details. Fill me in where you feel necessary, I’s appreciate it.