upgrade complete

Qt6: preview is available and usable

Written by  on September 8, 2020

After reading this blog-entry https://www.qt.io/blog/qt-6.0-feature-freeze-milestone-reached I wanted to give it a try and see how much effort it would make to transition from Qt 5 (5.12 or 5.15) to 6.
Hands on-approach: installed Qt6 via the maintenance tool (1 hr and 39 GiByte later ..), took my Cullendula-app and added a new target within QtCreator 4.12.

First clean build with MSVC2019_64bit gave a weird warning about
qtmaind.lib(qtmain_win.cpp.obj) : warning LNK4099: PDB 'WinMain.pdb' was not found with 'qtmaind.lib(qtmain_win.cpp.obj)' or at 'C:\Users\husband-boy\Desktop\coding\Cullendula\debug\WinMain.pdb'; linking object as if no debug info
where I still found no solution. But it works. Not a single line of code had to be changed πŸ™‚ If anyone ever transitioned from 3 to 4 (big ugh), or 4 to 5 (small ugh), you know the pain.

Bravo, I am positively impressed. Nothing worse than stagnation.

ISAQB CPSA FL: seminar & exam

Written by  on August 25, 2020

Passed the exam successfully :party: Proof can be found here: https://www.certible.com/de/verify/fc832c0524c8711b8871e1c645944583
I’d like to thank Stephan Christmann for the preparation and my dear wife for the support.

Strive for quality incrementally and iteratively πŸ™‚
#isaqb #cpsa #softwarearchitecture #youliveandlearn

Certible page with the proof.

Some of the profits from this seminar ‘practive acting before an issue would turn into a problem’, ‘strong cohesion, loose coupling’, ‘the biggest leverage for guaranteed quality after software engineering and testing is done properly: requirements engineering and software architecture’.

20200827 – day 4
Long recapitulation of the lecture from yesterday, then the last chapter about support tools and static code analysis. Afterwards some discussion about a real world example from one of the participants.
The early closure left enough time to prepare for the exam (scheduled friday 12:00).
The exam took place online, I had to prepare a totally clean desk, proof by moving the camera that there is no one else in the room and then solved 41 questions within a maximum time limit of 75 minutes.

20200826 – day 3
Sadly, I haven’t written about that day directly afterwards, so the summary will a bit shorter: recap of day 2, then we learnt about metrics and FMEA and risk-evaluation. Then we solved and sicsussed 37 test-questions for the exam. Of course, they were not identical to the official questions. But came quite close πŸ˜‰

20200825 – day 2
Day started with the homework-questions we had to prepare and some recapitulation. Works well, but I am already a bit overwhelmed of how much is there to learn. The more you see, the more you know, you know nothing. For my whole life I’ve done monoliths on different OS and with different technologies, ok, twice some message-based architecture. But there is so much more. I should definitely get myself more invested in server-architecture, REST and microservices. Today we covered architecture patterns and approaches, how to reduce dependencies, .. and did several exercises. BTW: I’ve forgotten to mention that I take digital notes as Markdown (see github). Again homework and much to learn and read. And my book “Zertifizierung fΓΌr Software-Architekten” from Starke/Hruschka arrived.

20200824 – day 1
The seminar takes solely place in Zoom, trainer is Stephan Christmann and he does his job quite well. We are just a bunch of four apprentices, which is ok, because then the exercises (and there are some) are not crowded and we can utter questions whenever we like. Of course, the first day is loaded with definitions after some “soft” start into the topic. Looks like a software architect (abbreviated SA later on) needs more or less the same personality traits like a requirements engineer (see IREB) or a test engineer (see ISTQB): resilience, curiosity and communicative skils and a proactive mindset. We even got homework, yay!

20200823 – before the seminar
in the past, ive not done this. that i recapitulated much about everx seminar or workshop. if i did, then it was most of the time areview of the successful participation. but, reality is different. before something starts, there is the tesnion and the fear of not being well prepared, while doing there is the fun to lear some new insights, see your capabilities grow, learning stress, befor he test the testion is almost a t maximum and then the release. after seein a successfuly test rulst. htherefore i want to cover the following four days of this chapter of my learning journy.

Retrospective view at 2018

Written by  on February 1, 2019

The first month of 2019 already passed. And we passed it with flying colors!
But let’s have a look at 2018 – a year full of challenges and success: I’ve worked full-time, organized and participated in advanced courses for Python and in Requirements Engineering (officially: IREB Requirements Engineering Foundation Level-approved) and pursued a new employment as software engineer.

And I wrote some software in my spare-time, as you can see in the graph for the public github-repositories. The gaps in the commits can be explained with the birth of my daughter and the time where I acquired the new job and moved nearly 900 km across the country. Yay! Nice personal projects were and are Cullendula and the Daily Coding Challenges, which I solve mostly with fully Unit-tested Python (3).

More new, hands-on knowledge was gained in the area of CMake and Qt-charts.
Well – 2018 was great. Let me make 2019 greater! πŸ’ͺ

Python-advanced level-seminar: lifelong learning

Written by  on May 9, 2018

I am currently traveling back from my very first paid educational leave. Proper selection, arrangement and preparation lead to some awesome impressions: about the capabilities of Python and about the city of Detmold.
Daniel Warner lead us – an assembly of five inquisitive men in the age-range from 30 to 60 – along the details and
specialties of that programming language. I learned much, in detail:

  • basic structures; list comprehension
  • classes; objects; overrides; imports; representation; init-method
  • dictionaries for caching results (memoisation)
  • decorators (nice for for printing, caching and thread-safety)
  • descriptors, properties and slots, kwargs
  • (multi-)inheritance and its quirks
  • recursive functions; functional programming
  • threads, synchronisation, atomic access

I put all the exercises (full script with my own annotations) into a Git-repository right from the beginning and published it:Β https://github.com/marcelpetrick/Python_FortgeschrittenenSeminar/.
Which also makes a nice view of the github-history πŸ™‚

Python was chosen by me by intent: I see and plan for ways to use it with artifical intelligence (TensorFlow-binding ..); microcontroller-programming (ESP can run MicroPython) and for the Raspberry (currently the tumblr-upload-script for the catcam is also Python); for daily data-manipulation-tasks which are currently done more or less on Bash or AutoIt or Batch – and then: write it once, run it both on Linux and Win).
This was a great choice! And I want to thank my wife for supporting these stays absent from home and my plan to achieve the wanted education πŸ™‚ And I got a small certificate – but that’s just icing on the cake.

My plan as first real exercise is to re-implement the “find all islands in the given map”-programming challenge. This will be fun. Getting to know some specialties and what properties/slots mean in Python-context (compared to the Qt-ones) was nice. And the decorators are a really powerful way to add special functionality to methods without bloating them and without blocking the view to the busines logic.

business card: put everything technically possible in the balance

Written by  on May 8, 2018

Some weeks ago I thought that it would be nice to have some business cards and then I started to think about the data I want to share, the design and what could underline my claim to be above-average?

A paper-card with all data: standard.
Adding QR-codes to lead the user to my homepage: nice.
Adding another, bigger QR-code to the back to give him all the aforementioned data plus address: better.
Putting a NFC NTAG216-sticker on the back which delivers on reading ALL information with the slightest effort: my level!

And yes, I think you noticed my pride. I am pleased with the result πŸ™‚

hint: created the QR-codes with the help of QR-monkey – well designed and comfortable to use

ESP32: the future is now!

Written by  on May 3, 2018

Ok, the first drafts of the ESP32 (successor of the ESP8266) as presoldered boards (mostly called development-board) appeared 2016, so acquiring something like this in the current year is nothing special. BUT: I’ve had my hands on an ESP8266-board (nodeMCU v3 – if I remember correctly) and I was astonished! Integrated wifi on such a tiny board and then even micro-USB for flashing, wow. For someone who played with the MSP430-chips from Texas Instruments for his bachelor thesis, this is finally something affordable. “Smaller” than the RPi, but I see alot of potential for gathering and preparing data and the final distribution of information.

So, today I ordered from China (why buy from local or european shops, when you can save 60% if you have time?):

  • 2 x ESP32S (240 MHz DualCore from Tensilica, 4 MiByte integrated flash memory, Wifi, Bluetooth)
  • 2 x DHT22 temperature and humidity-sensor
  • 2 x MAX7219 modules (8×8 LED)
  • 2 x MAX7219 modules with 4 blocks in line (32×8 if you want to call it that way)
  • 2 x 0.96″ OLED displays RGB(!) and 128×64 pixel

Alltogether for less than 40 €, which is really crazy. Let us hope everything arrives well and in the next five weeks and then the tinkering can start πŸ™‚ Have two “weather sensor-stations” in mind. Maybe a Raspberry as sink for the data. Maybe some Android-app via Blynk. Let us see…

I have the skill(s) – give me the hardware! πŸ™‚

Catcam upgraded!

Written by  on March 13, 2018

Terminator is watching you!

Finally! The old catcam-setup of a RPi 3 with a NoIR v2.1-camera was working for almost one and ahalf years without any issues. I’ve had improved the PiCamGifForTumblr-script several times, also changed location – never any issues. More than 40.000 GIF were uploaded.
But then I decided to buy a new, fancy case in black (of course) which should add some camera-support. And then two weeks afterwards it stopped working. Sporadically frozen. Sometimes 10 min after start, sometimes during the night. I checked the casing, if all power connectors were tightly fit, I installed netdata on it, I did longterm temperature-measurements (never over 54 Β°C even with closed case), I ran with minimal setup or with cam attached.
Then it became clearer: the camera was working for singleshot-mode, but for the 30 pictures every ten minutes, it broke. So, it was time to order a new camera, 1080p (5 MPixel) were enough, but for four more Euro I could get two IR-illuminators … so, why not? The focal distance of the objective is adjustable, it looks like it works (long time-test needed). But I am happy. And we can watch cats (and family) in darkness :3

Learning how to solder – a hot iron

Written by  on February 28, 2018

Bought myself a soldering iron and a small kit for practising purposes: 28 led, 9 resistors, 2 capacitors and 2 transistors waited to be soldered. And hey, the result is more than I had hoped for :’) It’s never too late to learn new skills! #growyourownhappiness
This is/was part of my 2018-campaign to acquire more experiences with discrete electronics. Software is nice, but we need something which moves and blinks (to impress people).

I need a new mp3-player: why not buy again a (used) Sansa Clip+ and Rockbox it?

Written by  on November 18, 2017

Guide is still valid.
Downloading the firmware-binary and running the Rockbox-installer (now at version 3.14) under Linux was not a problem.

Five minutes later I got a “new” working player. Still prefer it to the (smart-)phone while doing fitness.

Certify yourself!

Written by  on October 22, 2017

Ok, I am in the situation that I have a university-degree in computer science, gained some years of experience as professional software-designer for desktop applications, speak English fluently (because of daily conversation with my wife) and also dug into several different aspects of IT (raspberry, system configuration, build systems and deployment, software architecture, Android, ..) out of pure interest.
BUT: I can’t prove that. Ok, the degree – yes. But else?*

Therefore I attended this year already several seminars dealing with project management, Lasten-/Pflichtenheft, work ethics, 3d printing, ..
In November a full-week seminar will introduce me to Python.
In December I will do the Cambridge B2-level-certificate (officially called: First Certificate in English), for what I attend courses after work.
And 2018 will offer even more opportunities …
So stay tuned. I will improve!

Hopefully also with writing enthusiastically articles which don’t sound so bad when proofread πŸ˜‰

*: ok, yes, some mini-projects on github prove that software is part of my daily life. Even after closing hours, but still