43rd Monthly Technical Session (MTS) was held on February 16th, 2018. MTS is a knowledge sharing event, in which HDE members present some topics and have QA sessions, both in English.
First session was brought by Arakawa. The topic was CMC Webhook #2, continuation of his previous CMC Webhook talk which can be found here. He briefly explained about webhook notification and compared it to polling method. He then demonstrated how it works.
Next speaker was Stephen. His presentation title was Can Cities Be Hacked? Stephen began his presentation with his personal experience of losing a phone number that was used as a 2FA device. He then wondered whether a city can be hacked, in this age that is very connected to the internet. He then found some example of cities getting hacked, such as the Ukraine Power Grid Attack. He then explained things that developers should do when developing IoT, such as:
- Penetration testing
- Consult with CSIRT/CERT
- Have manual override of the system in case things go bad
- Availability of basic service must be guaranteed
He then concluded his presentation as follows:
- IoT/Software should always be designed with security in mind
- Ethics in software engineering is very important
- Government regulations needs to play a key role in ensuring safety of citizens
Next in the list was Ogawa. His presentation was about Haskell programming language. He explained several things about Haskell:
- Purely functional programming language
- Static typing with type inference
- Pattern matching
- Lazy evaluation by default
- Type classes
- Green threads
He emphasized his presentation on Pattern Matching and Lazy Evaluation features of Haskell language as well as the cool development tool Stack that Haskell offers.
Iskandar was our 4th speaker. He presented his journey to Indonesia to attend first PyCon ever held in Indonesia, PyCon Indonesia 2017, as a speaker. He began his presentation by showing where the conference was held, some local language, and other interesting stories of how PyCon Indonesia was prepared. He then proceed with the project he presented at PyCon Indonesia. His project can be found here. The slides he presented at PyCon Indonesia can be found here.
After Iskandar we had Alisha, our Global Intern from India, gave a talk on functional programming in Python. She started the presentation with functional programming paradigm. She explained some features of true functional programming, such as no side effects, immutability, recursion instead of loops, lazy evaluation, etc. She then followed up the explanation by showing functional programming can be done in python with certain ways. She ended her presentation with some points that python lacks in functional programming, such as:
- No tail recursion optimization
- Mutable Variables
- Impossible to separate pure & non-pure functions
- No pattern matching (can use libraries though)
- No automatic partial application
The next speaker was our second Global Intern from New Zealand, Edwin, who gave a talk about his project as a university student. He explained, in a non-electrical engineer friendly way, how he built a simple wireless charging toy car. He started his explanation on power electronics, which is the foundation of his project, along with the symbols on related electrical circuit he's using. He then showed us the video of his toy car moving along the track and stops at the wireless charging station and then go again endlessly. After showing the video and explaining how it works, he shared some things that he needed to overcome to realize the project such as power loss during switching, dead beat, and reverse recovery current.
Last but not least, our last speaker was Wei-Ting from Taiwan, our third Global Intern. He explained the science behind self-driving car based on his project at his university. The topics covered several aspects of machine learning, which in his case he did the clustering part. In his case, he modeled the terrain, objects, etc. using LiDAR. After obtaining the model, they preprocess the LiDAR data by denoising, downsampling, and ground filtering the data. Then, they feed it to clustering algorithm to separate the objects from each other. Finally they feed the clustered data to a Convolutional Neural Network (CNN) classifier to identify the objects. He explained the clustering algorithms he used to cluster the objects, those are building the minimum spanning tree, breaking the edges, running depth first search algorithm, and finally running minimum bounding box algorithm. In a nutshell, he explains how to separate object like items from the preprocessed LiDAR data.
As usual, we had a party afterwards :)