Weekly breakdown – 22w49d1



Have you ever had luck/cry/luck to maintain C++ ABI compatibility between different linkable codebases, and found it fun? πŸ™‚

The more I worked with C, the more quirks popped up. Some fun, some not-so-much.

This text is a must read to anyone trying to maintain compatibility between platforms with useful insights from the wild.

And very rare praise to Microsoft as de-facto kings in platform backward compatibility.


While we are still on C language and its quirks, what ??!??! operator does in C? πŸ™‚

I would not be surprised if this popped up as a question on ‘good’ interviews, which I would like to steer clear.

Recommended Tools


I came across this tool long time ago and found it quite handy, especially when working in C++ codebase.

Why? It has potential to one-time reduce your compile time insanely, by just removing include lines that have zero references from current code.
This is quite handy in C++ to limit number of translation units to be compiled, especially when small change in one header triggers big-but-unnecessary re-compilation chain.
And there is insane amount of header-only libraries or code-heavy headers that will exponentially fast increase compile time if not being careful what you include.



Interesting opinion about staying relevant with FOSS.

Weekly breakdown – 22w37d3



Listen to the podcast episode and replace mentions of games with i.e. cars.
It should raise a lot of eyebrows.

It is really not hard to image black market for all kinds of:

  • Standard: Enabling features
    Example with BMW’s subscription for more smart headlights, or Tesla’s back seat warmers.
  • Scarier: Disabling features
    Usual theft protection, but also removing any safety limitations, like speed limit, alcohol checks, hands-off-steer check, etc.
    Even now you can buy speed limit disabling feature for even most expensive electric bikes with top-of-line security features that allows you to go from limit of 25 km/h to over 40 km/h where only limit is the battery capacity.

All of this already exists, but at the moment, is not the most scalable business.
To ‘pimp-up’ your current generation cars, you would need to go to a ‘guy’ or a shady shop to make changes.

But the cars are becoming ‘smarter’. Over-the-air updates and all new fancy features allows you to make changes remotely from any part of the world.

And there lies huge black-market opportunity for finding bugs and loopholes, as no software and protection is perfect.
Just check yearly Android bug-list and their severity, even if it is owned developed by all-mighty Google.

If there is a sprawling market for cheats for 50$ games, imagine an opportunity for ‘cheats’ in 50000$+ car.

It is not hard to imagine a 100% online subscription service that will allow you to receive all kinds of un-official ’improvements’ applied automatically to your car.

Thanks goes to Patrik ThunstrΓΆm for sharing this podcast gem and fun discussion πŸ™‚



Another way how to look at code complexity and how to prevent it during design or in refactor.

As with everything, it should not be followed blindly, as the original complexity could end up moving into ever-evolving wrapper classes.
Check Law of Demeter for more information.

Big tech monopoly


One more take on how big tech companies have taken over internet from original intent.
If you have ever found legitimate mail ending up in spam folder of your free mail service out of sudden, or not delivered, this is primary reason.

Old but gold: When the product is free, you are the product.



For the ones with kids or feel like one πŸ™‚

Fragile Manifesto

Go-to manifest, more often than not πŸ™‚

Weekly breakdown – 22w36d2



Important reminder to anyone writing C APIs and for the ones learning to use it.
It is also major source of security and stability issues when not handled correctly.
As a helpful guide when writing complex C APIs:

  • Explicitly define ownership of handled memory AND memory lifetime in API documentation
  • Always sanitize and check for correctness input parameters to API
  • Provide both at least one happy-case and multiple negative examples for using the API before any release
    When writing them, try to ask yourself what you would ask Stackoverflow πŸ™‚
    This will help you understand usage patterns

    Note: The easiest part is to create an API, the hardest is to change it in production.


Finally the C language it getting proper modern ‘face-lift’ that will potentially help and alleviate bunch of manual work and increase quality of written code.
Lets see if it will fizzle-out, or it will gain traction (looking at you, compiler vendors πŸ˜‰ ).


Highly informative document for anyone switching between C and C++ and pitfalls of using same or similar approaches from one language into another.


To anyone interested in learning C++, with focus on usage in embedded environment.
Good comments especially valid to all related constraints and best practices for embedded implementation.



Fun use of GPT-3 to automate ‘handling’ of recruiter messaging πŸ™‚

Weekly breakdown – 22w32d1



For the ones writing low-level and/or in ‘unsafe’ languages, Valgrind is one of the tool suites to use regularly.

Linked text from one of the creators of Valgrind provides brief of its interesting history, and more importantly, links to high quality papers describing how Valgrind actually works under the hood and is able to to what it does.

Note that Valgrind is not the only good tool that Nicholas and Julian have made.



This is expected development since obfuscation-as-a-security method failed spectacularly in hack of Intel Management Engine in the motherboard chip-sets.



One of the first big names in car industry to be ‘eaten’ by software.

As all modern car manufacturers are moving to become software first company, they are also learning hard lessons that:

Current state of software engineering is less engineering and more craftsmanship, with all its implications on quality, planning, timelines and ‘manufacturing’.

The software craftsmanship is a separate topic for another day πŸ™‚

Weekly breakdown – 22w24d3



The more cars Tesla sells, the more issues will be found, and not just technical ones.

It is hard to escape law of large numbers and Gaussian bell curve, especially the more organization grows.

And the below quote paints potentially damning decision how ‘Autopilot’ functionality handles itself in accident situations.

(really short rant ahead)

In general terms I consider Elon Musk as a quite smart guy with extremely good sales and marketing talent.

But sales is usually selling features that are not (yet) there and/or overblown capability of existing functionality.

Just look at the naming of ‘Autopilot’ feature of Tesla cars with actual level 2 autonomy.
If you check the meaning of level 2 autonomy, ‘Autopilot’ is in no way autonomous and ‘auto’ as the name strongly suggest.

Heck, Tesla has been already surpassed by Mercedes and Honda with limited, but legally approved level 3 automation mode, where the car manufacturer is actually responsible in case of accident when it is enabled and running in command.

Old-school car manufacturer juggernauts are slow (some will crash and burn), but will eventually catch-up and overwhelm Tesla unless it comes up with something radical, and so far nothing is announced.
And if it we’re, Musk is famous for over-promising and under-delivering on those, for those who follow.

And the famous Tesla bots will not be able to help it.

But I have been wrong, and it will be fun to watch πŸ™‚



Make your own fully functioning Lego computer block πŸ™‚

Weekly breakdown – 22w22d3


Highly distilled and valuable knowledge about security and securing software from-first person audit experience.
Anyone who is interested in improving security (and everyone should) should at least glance through.

Notable results:

Sandbox escape on Tesla Model 3 Infotainment System – Important due to fact that significant amount of car information is consumed, but also produced by the infotainment system, possibly leading to much significant compromise of safety relevant components of a car

Sandbox escape on Microsoft Teams – Important due to enormous presence of Teams in high variety of companies due to free(ish) model included in Office suite.

How security improvement can have not-so-good side-effects when setting up your standard WordPress (or other web apps) installation.

Free quality lectures going through fundamentals of security and hands-on approach on gaining security experience. And students from few countries can apply for course access in full and free.
Best learning is when you get your hands dirty πŸ™‚


Sort-of-recursion πŸ™‚

Weekly breakdown – 22w20d2


More and more successful real-life attacks will happen on Bluetooth protocol features unless additional layer of security is used.

Even though security was thought of when Bluetooth was originally introduced (year 1998.), state of security considerations and possible attacks were not the ‘most important’ items on the list. Further improvements resolved some problems, but fundamental issues with the protocol itself cannot be solved without breaking backward compatibility.

As one of the speakers at EU Tech Chamber session about IoT vulnerabilities last year, I had luck to listen to presentation from Maximilian about broken fundamentals in Bluetooth standard.
Just check KNOB Attack how easy is to manipulate Bluetooth key negotiation to reduce attack space.

Artificial intelligence

AI is becoming more and more important tool in all kinds of applications.

For any application that touches safety, security and actual real-life implications, it should be paramount to understand why AI system came to the specific conclusion, something like a train-of-thought.
Imagine (near) future situation when (it is not if) autonomously driven car causes an accident, it would be beneficial to have such kind of logs when investigating without complex proprietary technology needed for each car vendor.
Or imagine medical AI assistant decides that some person has some illness, the doctor should have information why it has deduced such conclusion. Sometimes AI assistant would be wrong, but sometimes it can actually remind doctor about different possibilities.

I would not be surprised, and probably it should be pushed for quite heavily, that some kind of legal framework is put on top of safety and security related AI systems in which they are required to produce something like standardized decision-tree for their actions or inactions.


With current prices of electricity, it is not not so far fetch idea to have your own pond of algae on stand-by, just in case πŸ™‚

Weekly breakdown – 22w19d4

New day, new assortment of links πŸ™‚

Thanks to old colleague Ivica for always good comments.
And for C and C++ lovers and practitioners, in case that you still have not found his blog, please check it out at:


As someone who has written not-so-small number of C++ lines, there are million ways to write bad C++ code, but only a few correct ones.


When there is a will, there is a way.


What Futurama character is your preferred language?


‘Fun’ take on NDAs, even when its purpose is purposeless in real-life situation.


To the lovers of D&D games, a comment from my friend, summarized by one word: “WOW”


Fun take on creating evolving typeface carved in the tree trunk and how it evolves through years.

Weekly breakdown – 22w17

New week, new useful, interesting, or plain fun links found, at least for me πŸ™‚

And also a way to offload and preserve good information stored in way-too-many Firefox tabs πŸ™‚


Good and clean methodology breakdown how to approach software development for Web/SaaS apps, but most of the ‘rules’ are also applicable for all kinds of software areas, even all the way down to embedded (i.e. IoT devices).

On surface, TCP is ‘simple’ protocol. But depending on underlying network behavior, different configuration options and TCP congestion control protocols used can have enormous impact on your networks performance and throughput.
Link above tests different TCP CCP protocols with Starlink internet service with surprising results.
Check ‘Conclusions‘ chapter for breakdown.
Note: It could be fun experiment to test different CCP protocols in noisy 2.4 and 5 GHz environments and WiFi versions. And people are already thinking about it in 5G and beyond mobile networks.

Funny, yet highly informative graphic breakdown of different (mostly web oriented, but again, web is everywhere) security ‘bugs’ and help information.

Where the future is already moving for the ASICs, since gigahertz fight has plateaued long time ago.

Short, informative info about (sad) state of research impact in software engineering.
(Topic for another day, but my take on software engineering is that it is less engineering and more old-school apprenticeship)

Short but useful information what to think about when wanting to setup your own web presence and server in current day and age from decades of experience.

New approach to search and graph connection between terms and topics.


Breaking: Helicopter spots extra-terrestrial ‘trash’ on Mars πŸ™‚

Informative breakdown of human social network sizes and its impact.
Companies (especially larger ones) could use extracts from available information to optimize different workflows: from meeting sizes and its effectiveness (magic number 5?), to sizes of complete ARTs (magic number 150?).

If you ever wondered what fire is, in way more details that you need and even understand πŸ™‚


One example of what happens when financial people take total control from engineers and push for shareholder and short term gains only through outsourcing, stock buybacks, lack of motivation for innovation, etc.
Same thing happened to Boeing and Sony.

One way of looking into inflation and its uneven impact.