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! 💪
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.
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
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! 🙂
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
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).
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.
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
Given the following (annoying) behavior: when you start Lotus Notes 8.5, you ALWAYS have to enter the password. There is no way around this. Research and discussion with colleagues showed that no one knows a way.
Idea: automate this!
(In detail what needs to be done: start Lotus Notes with the current parameters; wait until the logon-window appears; enter the password; press manually the Enter-Button in the input-mask, because just sending the Enter-key creates another issue).
So, I used the AutoIt-recorder (just in earlier versions available, so refer to this stack overflow-post how to download), recorded my user-actions (instead of specifying it myself command-by-command); compiled it to a x86-exe, and pinned a link to the Windows taskbar (as replacement for the Lotus Notes-starter).
Let’s prevent that this blog turns into pure rants and finalize some articles which were (almost) finished for weeks.
I had a spare 2 TiByte 3.5″-SATA-drive from the NAS (replaced with 4 TiByte each), but did not want to use it in my PC. Why? An SSD with 128 GiByte is enough. I don’t want to replicate the archive.org ..
So I decided to make an Apple-fanboi happy: external drive for TimeMachine (tm!) XD