55th Monthly Technical Session (MTS) Report
HENNGE’s 55th Monthly Technical Session (MTS) was held last month on February 22nd. This recurring event consists of talks given by members of different teams in the company about various topics, with the goal to share knowledge to every attendee.
“Defense Against the Dark Arts: Protecting Neural Networks from Adversarial Attacks” by NH
The first talk was given by our intern NH. He analyzes attacks to neural networks, more specifically about attacks on image recognition. He started by explaining that captchas that are commonly used today are actually not really effective anymore. Computer vision is getting better and better at replicating a human’s response to captcha.
We can introduce noise to images to make it harder for them to parse images correctly. But on the other end of the spectrum, we also want computer visions to get better, for example for self-driving camera’s eyes. Once it becomes mainstream, any pranks or attacks will bring heavy casualties to human lives (e.g. causing the car to ignore road signs).
He continued by explaining some methods we can do to defend against those attacks, which includes adversary data training and input transformation.
“How to Talk to Cars: CAN, OBD-II, and more” by Steven Miller
In his talk, Steven describes the communication protocol that cars use to communicate with external devices and internally between components. CAN Bus is similar to a human’s nervous system, and it works like Ethernet connection (you listen to specific info and discard the rest). OBD-II is like the application layer on a network structure, which can be accessed from your car’s OBD-II port (also used for emission testing). He also explains how to parse the data inside an OBD-II exchange.
Steven continues to discuss real-world cases related to vehicle communication. He mentioned the Jeep Grand Cherokee UConnect hack and Volkswagen’s emission scandal. The takeaway from these cases is that CAN communications are insecure, and we should prepare security measures when allowing internet access to a vehicle’s mechanism. We might also need to make these pieces of information available to the public, or at least regulators, to prevent car makers doing unethical things with this technology.
“The Art of Solitude” by Michelle
Michelle brings to our attention human’s nature of easily getting bored. Ever since the beginning of human history, people invent activities like sports to relieve themselves of boredom. In fact, there was an experiment that shows that people would prefer to be subjected to minor pain rather than having to cope with boredom.
By nature, humans do not want to be alone. We view being alone as a symptom for boredom. In actuality, being alone does not necessarily mean we have to feel lonely. Often when we’re doing something, our mind is thinking about something else, either our past or future instead of focusing on what’s ahead of us. If we stop for a moment and take some time to rest, we can find there are many interesting things happening around us. She believes we owe ourselves some solitary time to lay back and reflect upon ourselves, and we proceeded to spend some time in silence.
“How to (Not) Lie with Data” by Dauren
Dauren shares some cases where seemingly random data might not be random at all. With examples such as the Monty Hall problem, birthday paradox, and inspection paradox, we can see the same information can be interpreted very differently by various parties, due to different exposure to the issue. As an example, after a survey, we found out that most families have one child, but most children have siblings. This is because, for families with more than one children, each one of the children contributes to the score.
Armed with this knowledge, we now understand that we need to analyze the information given to us more thoroughly. Using Prometheus as an example, if we inquire the average page loading time, the information it tells us might not be the one we wanted. Because Prometheus stores data inside buckets instead of individual values, the average we get might be skewed depending on the bucket size and distribution.
“HTML5 Game Development pt. 2: From the Moon to the Browser” by Sacha
Sacha continues his previous talk where he started studying game development. He started by explaining the fundamentals of game development by drawing an analogy to stop-motion film. The game’s logic is just data, drawn to the screen multiple times per second while taking into account user input and collisions between objects.
Javascript is his language of choice due to its ubiquity, flexibility, and access to canvas API. It does have some caveats to watch for including lack of static typing, cross-browser issues, and browser updates that might break the game. He showed us the game he made, porting it from Lua with Love framework into Javascript. Since he uses vanilla JS to make the game, he ended up having to do more things originally taken care by the framework such as renderer and state management system.
At the end of the session, we have beer bash — as always! :)