112th Monthly Technical Session
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.
It was a short survey with only two questions:
- What do you use HENNGE Secure Browser for? (multiple choice)
- 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.
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.
- Consensus Algorithm
- Service Discovery
- 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.
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.
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.
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.
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!