Rubber Band Launcher. Phew, Phew, Phew!

Last month, I went to School of Computing, NUS to attend the third School of Computing Term Project Showcase (STePS). During the event, I got the opportunity to meet Jonathan Sim from Team Annikken. He was also there to take a look at the cool student projects.

Team Annikken is part of the Singapore based company, Piasim Corporation. Piasim Corporation is currently a distributor and integrator of laser and optice devices. In order to explore into other fields, they formed the Team Annikken in 2010.

I came to know about Annikken in the Google DevFest Singapore 2013. Their key product, Annikken Andee, was introduced by Harish Pillay from Red Hat. He said he was very excited about this product because it was made by a group of talented engineers in Singapore. So, what exactly is Annikken Andee?



Annikken Andee provides a solution for the developers to easily build a smartphone app to interact with the Arduino. Without Annikken Andee, developers normally need to work on both the smartphone app programming and the Arduino programming. Now, with the help of Annikken Andee as the Bluetooth shield between the smartphone and Arduino, the developers can skip the time-consuming smartphone app programming part and directly work on the Arduino programming. This is all because Annikken Andee also comes with their own libary for the Arduino IDE.

Annikken Andee can work well with different types of Arduino, such as Uno, Leonardo, and Mega. At the smartphone side, Annikken Andee offers a free Android app to download. After downloading the app from the Play Store, we can just choose the Annikken Andee that we want to connect to via Bluetooth. Then a corresponding GUI will appear on the app itself.

Rubber Band Launcher
Rubber Band Launcher

Before the closing of the STePS, Jonathan happily demonstrated a toy that he built with Annikken Andee. It is basically a rubber band launcher. By putting the rubber band on the machine, he easily controlled the position and behavior of the launcher via an Android phone. So, the launcher will face different direction and then fire the rubber band based on the commands it receives.

Jonathan Sim from Team Annikken was giving explanation to the students on how Annikken Andee worked.
Jonathan Sim from Team Annikken was giving explanation to the students on how Annikken Andee worked.

There were students watching Jonathan’s Annikken Andee demo also. The students were really actively showing their interest by asking questions. I’m guessing with the help of both Arduino and Annikken Andee, the schools will be able to get more students to show more interest in Computer Engineering. What I heard from Jonathan is that there are already many polytechnics in Singapore are interested in Annikken Andee and Arduino. That is a good news. =)

Google DevFest Singapore 2013

I attended the first Google DevFest in 2008. It should be the first Google hackathon in South East Aaia (Oops, Asia). During the event, we got the chance to try out the new APIs, such as Google Maps API and YouTube API. That was how I started one of my favourite personal projects, the YouTube RePlayer (latest version is hosted on OpenShift at http://replayer-chunlin.rhcloud.com/).

The GUI of YouTube Re-Player (Localhost) 1.0
YouTube Re-Player (Localhost) 1.0, the first version of the app which was done after attending Google DevFest 2008

This year, Google DevFest was back to Singapore again on last Saturday. So, I decided to attend to get inspired and explore new ideas and opportunities to network. The topics of this year event are listed below.

  1. Intro to OpenCV in Android;
  2. Android Permission Architecture: Invisible Security Threats;
  3. Managing Arduinos with Androids;
  4. Running Android OS on Raspberry Pi (nothing much covered);
  5. Angular JS (I skipped the AngularJS talk to take some rest);
  6. Google BigQuery with Cloud Storage;
  7. Google Developers.

Before going into each of the topics above, I would like to comment about the (free) food offered in the event. In the 2008 event, the organizer dabao Singapore chicken rice only for us as dinner. This year, they provided delicious breakfast, lunch, and afternoon tea!

Talk #1: Intro to OpenCV in Android

The talk was given by Badrinath Kulkarni, an Android developer from GDG Bangalore. The talk basically just covered some general image processing functions available in OpenCV as well as steps to install the OpenCV library in Eclipse for Android app development.

He started the tutorial by showing us a simple and frequently used image processing operation, image smoothing. He demo it using the medianBlur() to reduce noise of the image taken with a smartphone camera.

Image Registration is also covered in this talk. The reason to do Image Registration is to find out a geometrical transformation that aligns points in one view of an object in an image with corresponding points in another view of that object. There are some online resources that discuss Image Registration in detail.

In short, this is more like a talk about image processing. However, the speaker does have an interesting blog at http://ibadrinath.in/.

Talk #2: Android Permission Architecture: Invisible Security Threats

Even though Android applications by default do not have access to phone number, browser history, and other user’s private information on the phone, the applications can request for access to this information at install time. The options that the users can choose are only grant all access requested or not install the application. So, this talk basically covered the problems of having over-privileged Android applications in the market.

The talk was delivered by Jiten Jain from India. During his talk, he further demonstrated how he could easily get the contact information, messages, and account usernames of the users using his Android app. Yup, now it is important to find out what the apps on our phone can actually do. Not just graphical implementation of the apps, but all the tasks that can be done by the apps.

Talk #3: Managing Arduinos with Androids

This is another interesting talk in the event. In fact, it’s very enjoyable. It was given by Harish Pillay from Red Hat. I think he was named a SPRING Singapore’s award recipient just three months ago.

The talk basically focused on how Annikken Andee, an Arduino bluetooth add-on shield, gives developers an easier way to make Android to interact with the physical world. Annikken Andee can communicate with the Annikken Andee Android app via bluetooth.

Here is a 2-minute short interesting video explaining what Annikken Andee is.

By the way, just a fun fact: The language that we use to program the Arduino board is C/C++ but the IDE is written in Java.

Fun fact #2: Even high school students in Malaysia know Arduino. So please learn Arduino if you don’t know about it. =P

Talk #4: Google BigQuery with Cloud Storage

The first lesson learnt from this talk given by Dr S P T Krishnan from I²R is that Google BigQuery is not a magic wand. Hmm, I thought it was a magic. Oh well.

The first time I heard about Big Data was during the Linus Lee’s talk on Analytics Stack at Twitter back in January. He shared with us the role and responsibilities of a data scientist and the working evironment in Twitter. For more details about his talk, there is an online article about it at e27.

After Linus Lee’s talk, I tried out Google BigQuery at https://bigquery.cloud.google.com/. If you would like to play with Google BigQuery, perhaps you can find more about BigQuery and go through the quickstarts first.

Talk #5: Google Developers

The cool applications done by developers is available at https://developers.google.com/showcase/.

There was a YouTube video shared with us during the talk also. It is about how Google Play helps Colopl, a very cool Japanese company.

A Fruitful Event

Because of Google DevFest 2008, I got to know more about the cool Google APIs, which later help me on developing many useful applications on my own. This time, the event once again opens my eyes to the exciting new technologies out there. Yup, so I am looking forward to the next Google DevFest. =)

Presentation Materials from Google DevFest Singapore 2013

Morning Sessions

Afternoon Sessions

Photos of the Event

https://plus.google.com/photos/118002244286788294009/albums/5934101450469153025?sqi=116183805383104277986&sqsi=569a5eaf-3753-4187-9983-ff0fd7d8d371

Computing Workshops @ Kuala Lumpur High School

This year, I once again travelled to Kuala Lumpur. Same as two years ago, I was fortunate enough to get the chance to join the computing workshops organized by NUS School of Computing (SoC) and Chong Hwa Chinese Independent High School at Kuala Lumpur (CHKL).

Again, thanks to my boss, he happily allowed me to take leave to join the 4-day SoC computing workshops.

Introduction
The workshops were organized for the students from Malaysia Chinese independent high schools. During the event, the students got the opportunity to listen to the talks given by SoC lecturers on several interesting topics, such as PHP programming, E-commerce, Android app development, Arduino and so on. Before the event, when I read through the list of talks, I was so surprised that students nowadays were so fortunate to learn about all these exciting technology when they were still studying in high school.

There were other several interesting topics about algorithm, Facebook and iPad app development modules, and so on. I won’t talk about them here since I will be sharing more about the app development workshops in the 4-day event.

Learning Android App Development
I like how they chose MIT App Inventor as the tool for the students to learn building an Android app. App Inventor uses a graphical interface. Thus, instead of writing codes in text, students could just drag-and-drop the blocks to “write” their program. The blocks are actually those statements and expressions like if…else, assignment, for loop and so on. It is similar to Alice, a 3D  programming environment, that we used in last year workshop. So now programming becomes easier because the students can just build their Android apps without writing single line of code and the whole experience is just like playing Tetris.

Students Showing Their Android App to Dr Chia
Students were showing their Android app to Dr Chia
A simple counting program written and designed by Nan Wei (Keat Hwa High School)
A simple counting program written and designed by Nan Wei (Keat Hwa High School)

Having Fun with Arduino
In order to let the students have a little idea about the world of Computer Engineering, we had Arduino for the students to play. Arduino is a prototyping platform. It comes with an IDE which allows the user to compile their code and then upload it to the Arduino Board. So with the tools, students could easily write their simple C++ program to control the LED on the board. Some of the students learnt quite fast and they were able to do some amazing stuff like playing music and controlling LED brightness with the help of sensors. It’s amazing to see how the students nowadays get so much learning opportunity. When I was a student in SoC, I didn’t even know what Arduino was. Haiz.


Arduino demo proudly brought to you by Nan Wei and Yek Xian (Foon Yew High School)

Arduino Programming Exercises Done by Students
Arduino programming exercises done by the students

Not Just Coding, But Also Thinking
During the 4-day workshops, students also got to learn building a simple E-commerce website. Many of the students didn’t have PHP background. Due to the time constraint, the lecturer didn’t manage to cover everything in details. Luckily there was two lab sessions for the students to ask questions. Interestingly, some of their questions were actually quite good because from their questions, we could tell that the students really think a lot. One of the students even went further to learn JavaScript and came up with a beautiful website.

Cheng En and His PHP Web App (The one with extra features done in JS)
Cheng En (CHKL) and his PHP web app (The one with extra features done in JS)

Fun
Before the end of the workshops, one of the student helpers asked me whether I would join the workshops again as student helper next year. Well… I do hope that I will be invited by the school again. Frankly speaking, event or workshop like this is very tiring, especially for those who have to go back to work on next day of the event. However, it’s still fun to talk to the high school students and share our campus life experience with them. It’s also glad to see that most of them actually liked learning very much (Note: The students actually travelled from different cities across Malaysia just to participate in the workshops. Also that was during their school holiday).