Skip to main content

Posts

On Marshall

Nobel peace price winner most known as state secretary and the Marshall plan, George C. Marshall, was one of the pillars on which the US military might founds on today As army chief of staff, Marshall was responsible for who to fire and who to keep. When he stepped into the office on the day Germany attacked Poland, The US army was old dated, and their military tactics were as well. The US was a third rate military power. Less than 200k men and a handful of tanks and bombers. On his reign, it grew to be a force of 9 million and to be the world's most powerful army. His contributions to the war effort were so significant in his peers' eyes that President Franklin Roosevelt said that "I could not sleep at night with you out of Washington" How did he do it? Before the US got involved in the second world war, he was to retire hundreds of senior leadership. They did not fit the Marshall profile. In essence, it is a handful of character traits. 1. G...

Torchpassing

I was working on the first part of the year on a project wherein the five-person team, there were members from Portugal and the US east coast. Since we were on the starting time zone, the workday went as follows: We started to work here in Finland, where the US left off. They left a descriptive torch pass message on what they were doing, and we continued from there. At some point in the afternoon, the Portuguese joined, and we worked together. Our day ended in the daily, which was pretty much our torch pass to the US part of the team. This resulted in pretty much 16-hour work cycles, or in other words, two shifts. It was very efficient for a couple of reasons Strong team. We were all capable of independent work and made decisions on the fly. Direction. We did not have detailed stories or Jira tickets, but the course was clear Strong PO and scrum master. They protected us, and we did not waste any time in pointless meetings. 5/5 would recommend working in a team ...

Goroutines

Goroutine is an abstraction of go runtime for parallelism and concurrency. Go on runtime has its scheduler, which distributes goroutines to OS threads. The scheduler is split for each native OS thread scheduler, and each scheduler can steal work from others. I have done quite a lot of actor programming and know a little about different concurrency models. Go's goroutines can be compared to green threads or Erlang VM's processes, although the go community avoids making such comparisons. The best part of go concurrency is that it is not based on relatively inefficient OS threads. Creating a thread and switching between them is an expensive operation both in CPU cycles and memory terms. Goroutines should communicate with each other by messaging and not sharing memory. The Effective Go guide states that  Do not communicate by sharing memory; instead, share memory by communicating.  A Gouroutine can use a message channel to communicate with other goroutines. Sim...

Programming challenge websites

To maintain my limited Elixir programming skills, I use coding challenge websites such as Hackerrank, Codewars, and, more recently, Exercism. The sites offer puzzles that can be solved in different coding languages. The websites have a decent online editor so you can get right into coding. While the exercises certainly aid me in keeping up rudimentary skills in Elixir, the tasks are mostly brain teasers, which require minimal coding. Unfortunately, it is difficult to find any exercises which are about the issues I face in my daily work — things as manipulating complex data structures, mapping them to new ones, and so on. Practicing programming like this has the same issues as using these kinds of puzzles as interview questions. Interviewee with a decade of experience is demeaned and humiliated by a seemingly simple task under the stressful circumstances. I have seen this over and over again when giving interviews, and nowadays, I am firmly against live coding. One of the better e...

Arduino air quality sensor

After some facade renovations, some of the air vents in some residents in the condominium I live in have complained about bad air quality. I have not noticed any changes but thought that it would be good to check if the air quality in my apartment is acceptable. The commercial CO2 monitors are rather expensive, so I decided to build my own with the Arduino I already own and with an inexpensive analog gas sensor MQ-135. With a few lines of code, the monitoring was set-up by getting an average reading of the air quality sensor in one-minute intervals. The Arduino sends the measurements via serial port to my computer, which then creates a CSV file of the result with a python script. https://github.com/jjylik/arduino-airquality

Flutter summer project

As a summer project, I helped out a team at my local university in a project combining open data with students seeking an apartment to rent, especially when moving to a new city. They designed a mobile app for this task, and I was to implement it. I decided to try out Flutter this time instead of react-native. Again, there are several blog posts and even official documentation on how to transform from native or react-native development into using Flutter.  Here are my two cents though Dart. Google's solution for building UI:s. The syntax is familiar looking. I like the way how it is not limited to any particular form of programming, but the guideline for Flutter enforces a specific declarative style. One of the best parts of Flutter development is the named arguments. Development environment. One of the better setup experiences. A self-contained diagnostic tool which alerts if something is not set correctly. Updating is a simple git pull and some installation scripts. I had...

Speaking to students

Given there is a chance, I'm eager to give a tech talk to any kind of audience which is willing to have a listen. Part of the fun of giving a speech is of course also learning something about the subject and also, improving myself as a speaker.  Two of the most recent talks I've held this year have been to the local university IT students. Having been one of them in the past, I knew that giving them something uninspiring to do would be something they are used to. The challenge would be to figure out something actually fun which can be accomplished in a matter of a couple of hours. There are countless blog posts and tutorials about how to talk to students, but I decided to ignore them and wing it. I gave two assignments to choose from. First one was to make a DVD screen saver with JS. There was a short-lived internet meme about it earlier this year, and I thought that hey this could be fun. It turned out to be quite amusing to watch at least especially when mixe...