74th Monthly Technical Session

Julian
henngeblog
Published in
5 min readApr 2, 2021

Monthly Technical Session (MTS) is HENNGE’s mini-conference. As the name implies, MTS is held monthly and its talks are (mostly) about technology.

With most people working from home, the 74th MTS was held online on September 18th, 2020.

“How Network I/O Is Handled Efficiently in Go and Rust” by Tanabe

Tanabe gave us a good overview of network I/O in Go and in Rust. First, he explained the different kinds of operations available and how to make it as efficient as possible. Then, he described the process in Go and in Rust, pointing out the differences between the two. In the end, Go and Rust have a similar runtime for async support, but despite Rust’s bright future, he’d recommend going with Go if there isn’t any specific requirement to use Rust.

“ViewModel to the Rescue” by Charles

First, Charles described the problem of Android legacy apps. Most Android apps tend to have a lot of unmodeled code, the UI and the logic are all mixed in the same files, which leads to unsafe and under-performant code. Then, he gave us a way to separate view code from business logic with MVVM (Model View ViewModel) and the benefits of it.

Finally, Charles explained how MVVM is rescuing legacy code. When legacy code is written without model separation, ViewModel makes it relatively painless to convert and refactor the code as time goes on.

“What You Need to Start a Service” by Okubo

Okubo started by giving us an overview of what is needed to start a new service, from a developer’s point of view. First, he introduced the Marketing and Sales tasks; some managed internally, some outsourced.
Then, he gave us advice on how to deal with the legal aspect of a service. Understanding the legal agreement is very important and we should be writing it ourselves.
We also need to comply with the law, such as the protection of personal information.
Security is also something we should care about. It’s important to establish trust with customers and also to protect our business. ISMS Certification is a good way to achieve security goals.
In Okubo’s experience, it’s difficult to make a business plan without doing anything. A business plan is built based on market data and indicators. Only then can we define the proper strategy to adopt.
There are many options to build a team, such as hiring new members or educating the team. An interesting option is to find outsourcers, depending on the current development and revenue of the service.
Customer support is also important, as client’s satisfaction can have an impact on revenue. We need to ask ourselves what customer satisfaction is in our service.
In conclusion, there is a lot of work and many people working together to develop a new service, but don’t give up on your dream!

“Pain Pain Pain, How Should We Verify if It’s Worth Solving” by Sai

Sai talked to us about customer pain, how to define it, which pain we should solve, and how we should answer it. First, before thinking of an idea, we need to identify the problem clearly. Sai suggested two questions that can help us here, “What problem are we solving?” and “Who is your customer?”. By answering these two questions we can find out if pain exists, how intensively and frequently, and decide if it’s worth solving. Then, Sai explained to us that gathering information about customer pain is important to understand how to solve it. We also need to be careful with the way we’re interviewing customers by listening and letting them express their problems. Finally, we can start thinking about solutions, pick-up potential ideas, and actually try to solve customer pain the best way we can. In conclusion, be a painkiller (or a vitamin), not a headache!

“Speed up UI Implementation With a Translator” by Cheng

Cheng presented us with a tool to translate UI design images to GUI skeleton implementations. The traditional process of UI implementation results in a gap between UI design and GUI components. The available solutions can be complex and time-consuming, so Cheng proposed another alternative: a translator to magically turn images into GUI implementations.

This tool is divided into three steps. First, a Convolutional Neural Network (CNN) maps and extracts features from the image. Then, the information is passed to a Recurrent Neural Network (RNN) encoder, outputting a summary vector C. Finally, a RNN decoder maps the summary vector C to the target tokens of a GUI skeleton. Overall, models scale well with increased GUI complexity, but there is room for improvement. Cheng’s conclusion is that it’s a good starting point for prototyping mobile apps and it can save developers a lot of time, especially at the early stage of development. However, it can’t be used to magically make a full app yet.

Lightning Talk From Lucas: PCB Business Card With Microprocessor

Lukas talked about how he built and designed a business card out of PCB and added a microprocessor to turn into a keyboard. Lukas used EasyEDA to create his schema and convert it to PCB. The rest is just connecting dots. To print the cards he used jlcpcb.com, all for a decent price. It was surprisingly easy.

Lightning Talk From Jonas: Some Problems & Solutions

Jonas talked about how he ended up writing a tiny Rust program for fun and profit. He wanted to run a command when a file was updated. As simple as it sounds, it turned out that the usual tools for that are over-complicated for such a small task. He decided to get his hands dirty and wrote his own code in Rust https://github.com/ojii/run-when-changed.

We had a party afterward, as is the tradition of MTS. Like the main event, this Beer Bash was held online. You can rest assured that it was fun!

--

--