Kotlin Koans

Kotlin is an interesting language originally invented by JetBrains. Also you may be tempted to say that it’s a “new” language it’s in development for some time now and has already reached a decent level of maturity. I’ve became interested in Kotlin when it was first officially announced by JetBrains a while ago. Unfortunately I haven’t had much time to look into it. At the moment Kotlin gains more and more attention by developers.
Read more

Resource: Tutorial how to get into embedded software development

If you want to get into embedded development beyond Arduino I will point you to a series of articles on the embedded.fm blog. In the series EMBEDDED WEDNESDAYS: GETTING STARTED IN EMBEDDED SYSTEMS you will find a very good introduction into developing embedded software using C on a STM32 MCU containing an ARM Cortex-M4F core. The series starts by getting an introduction into the C programming language. Without getting too deep into the language you will learn enough to get started and implement your first projects that go well beyond the usual blinking LED (also this example is also included as an article).
Read more

[100 Days of Code] Day 065: June 24, 2017

I haven’t published my progress in the last few days also I’ve been working on my Project. This is due to the fact that I have been working on getting I2C working on my STM32 and just didn’t get it. Today I started a last try and finally was able to talk to let my STM32 talk to my BME280 environment sensor. I will post my findings in a separate post.
Read more

Use a Docker container to run a shell

If you need to run a shell script in a specific environment than your current host you can use a temporary Docker container and link it to the current directory. For example if you want to run a bash script on ubuntu you can store the script file in the current directory and start a temporary ubuntu container: $ docker container run --rm -v $(pwd):/root -it ubuntu /bin/bash Inside the container you can then access the script in the /root directory:
Read more

Extract XML node values using grep

To extract the value(s) of XML nodes with a specified name you can use grep and a regular expression: $ grep -oP "(?<=<mytag>)[^<]+" <file> To limit the number of nodes that are examined you can specify a maximum number: $ grep -oPm1 "(?<=<mytag>)[^<]+" <file>

[100 Days of Code] Day 064: June 20, 2017

Today’s Progress: Setup the project on a new board and rewired everything. This allows me to move the project around more easily. I’ve also been looking into more I2C code. Things I’ve learned: I’ve seen the interior of a breadboard :) Finally… Things I’ve planned for tomorrow: Continue on I2C code. Link(s) to work:

[100 Days of Code] Day 063: June 19, 2017

Today’s Progress: Started to write I2C code. Unfortunately it’s not running yet. Although the examples are working well, using these for an own project is not that easy. Things I’ve learned: How to configure I2C on an STM32. Specially when it comes to more modern STM32 like the L4 family some things are different compared to the more mature families like the F1 or F4. Things I’ve planned for tomorrow: Continue with I2C code.
Read more

[100 Days of Code] Day 062: June 18, 2017

After struggling with the security server integration tests the last days (or weeks?) and being sick for the last days I decided to continue on my second project wich aims at reading and processing environmental data with a STM32 MCU. Today I setup the circuit and got into the Digilent Analog Discovery 2. Today’s Progress: Setting up the circuit and testing an I2C display with an Arduino which I will use as a Hello World tool.
Read more

[100 Days of Code] Day 061: June 15, 2017

Today’s Progress: Still no solution for the flickering integration tests. Things I’ve learned: Nothing new. Things I’ve planned for tomorrow: I will continue until I eventually find the reason. Link(s) to work: security-server

[100 Days of Code] Day 060: June 14, 2017

Unfortunately I had some important things to manage in the last days and therefore have not been able to work a lot on my projects. However since I’m doing this challenge to motivate myself and to have constant progress in my project I will continue where I left off a few days ago. Today’s Progress: Managed to get Jenkins collect all test results. Still don’t know why the integration tests are flickering.
Read more