book: “Lean Testing für C++ Programmierer”
Reading some developer-news lead to a quite interesting and practical brochure 840 pages) about software-testing in general and in regard to C++:
https://www.dpunkt.de/material/Testen/Openbook_Testen.pdf
The first glimpses about methodical, mutation-based test-case selection, (..) were interesting. Because fully comprehensive tests are (even with automation) not doable.
Will report after I have finished reading it – stay tuned.
edit 20180501: A bit disappointed, because I expected more. More content and more in-depth hints. In the end it looks just like the excerpt of one or two chapters of the book. Yes, it fans the flames for “more”, but … it looks like a cheap appetizer.
Create and maintain a shared, secure (family)-chronicle
When my daughter was born, I thought already for a longer time about how to set up a:
- shared,
- secure,
- remote-accessible platform to add stories, facts, media(!)
- which are more or less automatically time-stamped.
We wanted to save the current steps of firstborn’s development, but not hand over the control of the data to a company. So external providers – even when they promised to be secure and safe – were out of question.
Drawn by the experience with some wordpress, which I had set up on the Synology NAS, which was first more and later less frequently used due to the quirky access to write entries and upload media, I decided against another microblog.
Of course, I even wrapped my mind around the idea of “what would be necessary to write an Android-app which synchronizes against my own server(s)”.
And then it hit me: just (ab)use the group-chat-functionality of one of the already used, secure messengers!
Data is immediately shared; it is secure due to the API-changes two years ago; it is possible to export the chronicle (with all the media); we can even alter it (remove unwanted entries); it is time-stamped;
and it costed me just two minutes to set it up!
(By the way: we chose out of the two candiates we use (Signal and WhatsApp) WA).
(I avoided the use of timeline to prevent the invocation of some weird social media-thoughts ..).
The reader may ask himself now: Ok, so why the entry? Nothing created, nothing implemented?
But I present this as one of the best examples of how to avoid to re-invent the wheel, something I’ve seen so often in my career. People start to re-implement given functionality from libraries just because they want to avoid the include or because they want to do it themselves (better).
But most often it is not about the LoC, but about providing usable, easy solutions. We* don’t have the time to do everything with our own hands if we want to be magnificent.
* I
current workplace: new category for annalist reasons (chronicle)
Tools in use for daily development-tasks:
* development with C++11 & Qt 5.5 & boost 1.5.9
* Visual Studio 2015 and 2013 with Incredibuild and the power of ~100 PC as slaves
* QtCreator 4.6 for QML/Widgets/smaller projects
* MPC as buildsystem (converts to vcxproj/sln-files for VS)
* SVN (Tortoise SVN 1.9) for version-control company-wide
* Git (SmartGit 18.1) for our team-sources and better branching-control
* AutoIt-skripts for automation-tasks
* Agile/Scrum-like project-management (sprints; standups)
* daily stand-ups for the core-dev-team
* two weekly stand-ups for the full team
* Jira for tickets
* Crucible+FishEye for code-reviews
* MagicDraw/DOORS for modelling/test-cases
* pgAdmin for SQL-related things
* RapidEnvironmentEditor to edit conveniently environment variables
* cygwin/GNUwin32-tools as POSIX-bash-replacement
* Jenkins for the continuous build
* Notepad++ as helpful XML-editor
* medium-sized company; team-size 10-15
QT_MESSAGELOGCONTEXT: more detailed qDebug()
Add to your environment:
1 |
QT_MESSAGE_PATTERN="(%{file} : %{line}) :: %{message}" |
Windows: set either via “set” or via RapidEnvironmentEditor.
In case of a no-debug-build, add QT_MESSAGELOGCONTEXT to DEFINES in the pro-file.
(Open question: if there are just mpc/vcxproj-files, then how to trigger?)
related sources:
* https://woboq.com/blog/nice-debug-output-with-qt.html
* https://fecub.wordpress.com/2015/11/04/better-debug-output-using-qt_message_pattern/
* http://doc.qt.io/qt-5/qmessagelogcontext.html#details
robocopy: transfer huge repositories between PCs
Average rates of 24% on 1 GBit-connected PCs with SSD were achieved! 🙂
############################
my favorite parameters:
/NP – no status
/ETA
/E – with subdirs
/MIR – mirros (like /E with /PURGE)
/MT – multithreading
/XD – exclude the subversion-metadata
resulting command
1 |
robocopy source target /NP /MIR /MT:8 /XD .svn |
note: multithreading with 32 threads was slower than with just 8: 10 min vs. 7 min for 18 GiByte files of varying size
photo-backup:
1 |
robocopy C:\Users\MarcelP\Desktop\digikamResults\20201028_mixedLastYears\2019 Z:\2019 /MIR /MT:8 /E /PURGE |
You live and learn: study plans for 2018 (so far)
I have missed the chance to summarize the educational path I’ve taken in 2017 at the beginning of the new year. Just as little as I published my current plans. And I think this is quite unclever.
Make plans, publish them (to those who should know and be involved), then do them. This helps to gather support and maybe find a study buddy!
- April, 14th: start of the evening classes as preparation for English CAE-level (C1)
- April 21th: Seminar about the foundations of Quality Management in Engineering
- April, 22nd to 24th: IREB Requirements Engineering Foundation Level + exam for the certificate
- May, 12th: exam for the CAE-certificate (written part; oral is 6th May)
- May, 14th to 16th: paid educational leave for a seminar about “Python for users with a bit more experience”
Currently life is quite challenging while working full time. Being proud member of a young family and doing some physical exercises and ‘programming for fun and benefit’ (TM) to do some certificate-based education requires some effort. But I will do it and I want to do it!
edit 20180426: IREB RE-seminar is postponed to 11.-13. June due to the fact that the first vendor could not abide to his part of the contract. But in the end only the gained knowledge will matter and not the date ..
Convert *.pro to *.vcxproj (qmake to Visual Studio-project)
0. Change this particualar line inside the *.pro:
1 2 3 |
# app is working for build and processing with qtcreator, vcapp is for visual studio #TEMPLATE = app TEMPLATE = vcapp |
1. run qmake against that pro-file
2. load the vcxproj with Visual Studio
edit: or do it with the original pro-file just like the wiki.qt.io suggests:
1 |
qmake -tp vc test.pro |
Cullendula
Small program to pick out the best shots of the vast amount of taken pictures per session (excursion). The name itself is a wordplay of the plant Calendula and the activity “to cull” (slang for sorting the photos).
url for the repository: https://github.com/marcelpetrick/Cullendula/
development time for fully usable version 0.1: one day
used technologies: C++ and Qt – my favorite ones <3