80th Monthly Technical Session

Iskandar Setiadi
henngeblog
Published in
5 min readMay 12, 2021

This month, we celebrated the 80th installment of the Monthly Technical Session (MTS) in HENNGE. This event serves as a platform for HENNGE members to share a wide variety of technical topics. As the COVID-19 situation continues, this MTS was held online via Zoom on March 19th (Fri), 2021.

We had 5 speakers who brought various topics, ranging from revisiting git rebase feature, learning experience from outsourcing a project (CHROMO, creating a map visualization with Cartopy, building own mechanical keyboard, and investigating Chromebook compatibility with Android development.

Git Rebase by Lukas Reineke

Git rebase presentation slide by Lukas Reineke
Lukas Reineke

In the first talk, Lukas introduced us to git rebase features and some git commands that might be helpful for daily development life.

Git rebase allows us to change the base of our branch from one commit to another. In a collaborative work environment, git rebase is useful to maintain clean commit history as git rebase will rewrite history and keep a linear timeline of project history. Several types of rebasing command that is commonly used:

  • Basic rebase: git rebase master topic
  • Rebase with detached head: git rebase master HEAD
  • Rebase onto: git rebase --onto master topicA topicB
  • Keep base rebase: git rebase --keep-base master topic
  • Interactive rebase: git rebase -i --keep-base master

In addition, Lukas introduced several useful git configurations that we might be interested in:

  • Do rebase instead of merging when pulling remote changes: git config --global pull.rebase true
  • Git rebase with auto stash: git config --global rebase.autoStash true
  • Reapply the same patch for the same conflict in git-rebase: git config --global rerere.enabled true

CHROMO Transition from Offshore Outsourcing to In-house Development by Peter Chojnowski

Learning experience from outsourcing CHROMO project by Peter Chojnowski
Peter Chojnowski

The second talk was presented by Peter from HDE division. CHROMO (https://chromo.jp/) is one the latest HENNGE service which tries to bridge communication between local governments and residents in Japan.

Peter shared various insights that they have learned during the development of CHROMO. The project itself started back in 2018 as an MVP (Minimum Viable Product), and the team needed more development power after the first customer acquisition around April 2019. Afterward, they decided to add more development power via outsourcing to a third-party company abroad.

One of the major challenges is communication. Since the main customer is local government, requirements gathering took time since different local governments might have different requirements. On the development side, different main languages and timezone also created another challenge. As we have never outsourced our projects abroad, this project became a prime example of our HENNGE (変化 — henka means change) culture.

Regardless of the bumpy road that CHROMO team has experienced during product development, CHROMO is currently used by a number of local governments with more than 30,000 users. In addition, the team has decided to move CHROMO project into the next phase, which is a full in-house development.

Draw a Map with Python by Takehiko Kodama

Cartopy introduction by Takehiko Kodama
Takehiko Kodama

Kodama introduced us to Cartopy, a Python library that allows us to draw maps for geospatial data processing.

Kodama has a university degree in Meteorology, which requires him to do a lot of geospatial visualization for weather forecasting and other analytical purposes. To start with, Cartopy can be installed with Anaconda via “conda install -c conda-forge cartopy” command. For better clarity, Kodama introduced us to a simple visualization tutorial with Cartopy.

Japan Meteorological Agency (JMA) provides us with weather information from ~1000 sites in Japan. The dataset contains various details, ranging from temperature, precipitation quantity, humidity, snow depth, and so on. For this tutorial, we will only utilize temperature data for visualization purposes. After several pre-processing with Panda, we finally arrive at the following image as a result:

Temperature Plot with Cartopy (March 18th, 2021)

The full Jupyter Notebook example can be accessed at https://github.com/takehikokodama/cartopy-very-basic.

Building an Infinity Ergodox in 2020 by Trapsilo Bumi

Building own Infinity Ergodox keyboard by Trapsilo Bumi
Trapsilo Bumi

Bumi brought us an interesting story of his experience building a mechanical keyboard. After going through some forums (r/MechanicalKeyboards), he finally decided to build Infinity Ergodox, a variant of Ergodox split keyboard.

Infinity Ergodox

The journey was definitely a harsh one, as Infinity Ergodox is quite old and Bumi couldn’t find a complete kit in various online stores. Therefore, he decided to procure various parts by himself. Since it’s quite hard to get everything from a single store, he purchased them from various sources, such as AliExpress, DigiKey, and Kaneyoshi.

After receiving all the parts, he proceeded with assembling the PCB and he realized that he couldn’t simply flash the firmware to the keyboard as it didn’t have a bootloader in the first place. In order to do so, he needed to purchase a Bus Pirate and JTAG connector. Afterward, he shared various tricks and tips on sourcing the acrylic case and finally showed his finished product:

Infinity Ergodox, Built by Bumi

Chromebook for Development? by Charles Bond

Charles Bond

In the final section, Charles told us about his experience playing around with Chromebook for Android development. He got interested in Chromebook since the price is quite cheap while it can support Android apps natively.

After various experimentation, Charles arrived at several conclusions. First, Chromebooks can actually be used for Android development, but not all Chromebooks was born equal. Android studio cannot be run with an older version of Chromebook since older ones don’t have enough CPU capability, RAM, or storage capacity. Second, if the application is built with Flutter, it means you cannot test iOS builds. Third, incomplete Linux support in Chromebook might hinder some parts of the development process.

Overall, while Chromebook doesn’t seem like a good option for time being, it has a promising future since:

  • Chromebook can support native Android apps
  • Chromebook is cheap compared to Mac
  • More users will have Chromebook and developers can easily test apps that are targeted for ChromeOS directly

As usual, we closed the event with a blast virtual beer bash on Zoom. Hopefully, the COVID-19 situation will get better soon so that we can have a face-to-face gathering in the office!

MTS #80 after party
After party!

--

--

Iskandar Setiadi
henngeblog

Software Engineer from Indonesia. Currently working in Japan. Animation Enthusiast. https://github.com/freedomofkeima