112th Monthly Technical Session

Vi Hsieh
henngeblog
Published in
5 min readApr 23, 2024

We had yet another session teeming with technical insights ranging from email authentication to video game trivia.

User Survey on HSB Desktop

Top batter Hayashi-san shared findings from a user survey he and Mariko-san conducted to gather feedback on HSB, HENNGE Secure Browser. This user survey was in fact, the first user survey ever conducted for HSB.

Hayashi-san detailing HSB’s security constraints.

It was a short survey with only two questions:

  1. What do you use HENNGE Secure Browser for? (multiple choice)
  2. What would you like to see improved? (free input)

457 responses were gathered for the first question, with email-related tasks being the top answer.

144 comments were collected for the second question.

Hayashi-san and Mariko-san went to work and classified these comments into eight categories, then prioritized improvements that could be implemented in the least amount of time.

Thanks to this strategy, ShoboSSO has already shipped two improvements that users can enjoy right now.

Gmail Sender Guidelines Updates

Next up, Nakatsu-san from the messaging business division gives an in-depth overview of new email sending guidelines to be implemented by Gmail in February 2024.

Additional requirements will be enforced on all email accounts that send greater than or equal to 5000 emails a day. Accounts that fail to meet these requirements will subsequently be marked as spam. This new policy enforcement raises many concerns from our customers, particularly in regard to the 5000 emails threshold and the conditions that would trigger Gmail to enforce these requirements.

Difference in treatment between the two categories of email sender accounts.

However, Nakatsu-san’s stance is simple. Email senders need to meet the additional requirements and not concern themselves with the arbitrary threshold of 5000 emails.

Distributed Hangman Game in Go

New intern Omar demonstrated key concepts in distributed systems with a hangman web app game.

First, Omar gave a concise explanation of what distributed systems aim to achieve:

Unbounded by the limitations of a single machine, a distributed system can have a theoretically infinite amount of machines that act as one machine to achieve a common goal.

With that, he then listed 3 major components that make up a distributed system.

  1. Consensus Algorithm
  2. Service Discovery
  3. Transportation Protocol

The consensus algorithm ensures each member of the system agrees on the same state, service discovery handles the orchestration of the system cluster, and the transportation protocol is the means for communication between members. Omar selected raft, serf, and gRPC respectively for his implementation.

Finally, Omar launched two servers serving the same hangman app, and demonstrated that a player’s guesses on one server is reflected on the other upon refresh.

Hangman on two tabs, each served on a different port

Source code

Enable Sandboxing of Native Components a Web Application Relies on

Dario, a researcher at the University of Bergamo, broke down security vulnerabilities with Javascript runtimes and walked us through a solution for filling in these security gaps.

The issue with Javascript runtimes is the lack of isolation between processes during executions in the native context, such as when a program runs. Deno.Command().

Dario and his fellow researchers published a solution called Natisand written in Rust which tackles the isolation issue by sandboxing native code.

Natisand

Training A.I to Learn like Humans

New GIP intern Kim gave a rather in-depth overview of the philosophy and the inner workings of reinforcement learning.

In simple terms, reinforcement learning is a form of machine learning in which an agent performs actions in a constrained environment and receives feedback in the form of rewards and penalties. The agent’s performance in one training session will, in turn, influence its inputs in the next session.

After an overview, Kim introduced us to two reinforcement algorithms: Q(uality)-learning, and policy optimization.

Two model-free reinforcement learning algorithms.

Finally, Kim concludes his talk with the strengths of reinforcement learning, including its potential to achieve artificial general intelligence.

Fast Inverse Square Root

Another new GIP intern, Suprit, talked with great enthusiasm about a very clever solution to a math problem that faced the popular video game Quake III.

3D graphics programs such as Quake III render lighting and shading by computing angles of reflection which require the use of inverse square roots. However, naively calculating inverse square roots typically result in several division operations of floating point numbers, which had high computational costs in the days of Quake III (the 1990s).

Quake III managed to achieve the calculation of inverse square roots with a single division step.

Suprit walked (ran) us through the reasoning of the method complete with math equations that mostly went over my head.

Quake III’s inverse square root implementation including comments from Wikipedia.

I couldn’t understand half of it, but it sure is very cool the way the developers of Quake III thought outside the box to work their way around the computational constraints of their time.

Introduction to LangChain

Working well with large language models (LLMs) has become a new, hot-topic skill to master.

Cheng, the final speaker of this MTS, introduced to us a powerful tool for utilizing LLMs: LangChain.

With LangChain, developers can build their own applications that leverage LLMs without needing to build their own prompt I/O or output parsers because it comes built-in with its own prompt formatters, LLMs (!!), and output parsers.

As always, this MTS was followed by raised glasses and loud cheers at the beer bash.

Thank you to all the speakers and MTS organizers for maintaining this highly valuable tradition at HENNGE!

--

--

Vi Hsieh
henngeblog

Backend Web Developer at HENNGE writing Golang.