Saturday, October 27, 2007

Week 1 (22 Oct 26 Oct)

Monday, 22 October 2007
Our reporting time was 9am. But we arrived slightly later as we got lost en route. Missing the Shell petrol station which the email indicated for us to look out for (we only noticed it at the end of the day on the way home), we managed to get into IHPC at around 9.20am.

We were introduced to Mr Kevin Veragoo and Cheng Teng, the two other people who are attached to our project. Nothing much can be said about the project I suppose, as a NDA-like document has been signed.

After a tour of the office and being introduced to each member of the AC department, we visited the brain of the network powering IHPC. With computers stacked in racks cooled by powerful air-conditioning, they hummed softly in contrast to their computational intensive processes which ran within them.

Lastly, we were introduced to the COVE, where we will be spending the next 16 weeks there. As well as our two laptops, which were were not in the best condition in terms of capacity and looks, but nevertheless functional. Mr Kevin and Cheng Teng ran through with us the project, refurnishing and being slightly more detailed as Mr Lim's description back in the meeting room.

Being introduced to Fedora was something similar to being back in OPSY labs with Mr. Lai. I believe that he will be pleased to know that I still remember that the "Command Prompt" is referred to as "Terminal" in Linux. :) [But please do not tell him that that is the only thing i remember from his class]

It was like learning how to walk again, learning to ropes of BASH commands and the GUI of Fedora 7. The final machine where the project will be implemented is on a Mac OS X (Tiger) output on 4 projectors on a screen.

We had lunch with the rest of the guys of AC department and the two admin clerks at the food court opposite Ginza plaza with the help of the free lunch shuttle. Modest meal of $2 chicken rice. Oh well.

The rest of the day was spent getting lost in Fedora.




Tuesday, 23 October 2007
We got our own user accounts on the Mac computer. Cheng Teng was kind enough to teach us how to SSH and VNC to the Mac computer. After which, we were informed that for the project, we will be using the OpenCV library, which Cheng Teng also did a mini-lecture about the functionality of the library for us and the rest we had to find out by ourselves. [Even Kevin was a student of CT's lecture, this goes to show that learning never stops] :)


So, left to our own devices, we surfed around the net to download the OpenCV libraries and installed them onto our machines using the ./configure, make and (sudo) make install (and sudo ldconfig for machine wide availability done in root account).

Apart from that, Kevin has also mentioned that while CT and himself were used to doing C programming on simple text editors (these guys are the pros!), we could make use of IDEs which we were more familiar. With that in mind, we downloaded Eclipse CDT version, only to realise that it needed Java JRE to run as well.

In all my life, I have only installed programs via a .exe icon. But that day, I had to install Java's JRE via command line (Terminal). After much fumbling around, I managed to get it installed. (during the rest of my attachment, I realized that what I had just done was an oh-so-simple everyday thing to do in a linux environment.


With IDE and OpenCV, we were challenged to write a simple HelloWorld program in C. Using cut and paste of course! :)

#include <stdio.h>
int main()
{
printf( "Hello World!" );
return 0;
}


But cut and paste aside, this was one of our first programs written in C, a programming language totally not taught in school but used in the industry for its speed and stability.

Some links used today:
http://opencvlibrary.sourceforge.net/InstallGuide_Linux
http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html




Wednesday , 24 October 2007

I still remember Chewy saying this line when I was attached to the MIC:
What better way to learn something than diving deep into it and getting your hands all dirty?

Too true indeed, jumping right into the fray with guns drawn was probably the best way to learn about OpenCV and C Programming (save for the ponytails and backpack in Tomb Raider). Unfortunately, before we could do so, I had cleverly tripped the power of the room, triggering two circuit breakers in the process. Thankfully, the "circuit master" of the place managed to get things back and running in no time and we resumed our progress.

The rest of the day, though short, was rather interesting as we played with OpenCV and a webcam, which I used to take a screen shot of JL, my SIP partner, and myself. :)


Another interesting thing learnt is Mac's MVC model used for its desktop - Closing a window only minimizes it, but the process is still running in the background (similar to minimize button for windows) the program's window will disappear but its process will appear on the dock [task bar equivalent] in the form of an icon). Quitting the application will terminate the task, similar to 'closing' the application in windows.


Homework for today:
Reading about CVS vs SVN

Notes to myself:
/usr/local/include/opencv and /usr/local (place where OpenCV libraries are stored)
/etc/ld.config (file to add in the directory where OpenCV files are)




Thursday, 25 October 2007

Everyday we learn so many new things.

Today, we were given a talk by Kevin about SSH vs Telnet and the differences between them. After which, we were given more time to find out more about CVS and SVN. Kevin brought us to lunch today at NUS followed by a talk today about "The Right to Privacy and Personal Data Protection in Singapore" given by a fellow A*Star employee in the Biomedical side (I believe), which talked a bit about the Odex case, which is of interest to us as IT people. Interesting and educational.

Back at COVE, JL's C program could not seem to run and with Kevin's help, we managed to identify that he was missing some devel (pronounced as "devil", but means developer) tools to compile his codes. We were then introduced to the BASH command "yum install package_name" to download the necessary packages with the help of PBone to define the exact package name.

After which, we played around a little more with SVN and learnt more about KDE and Gnone Windows Manager in Linux and their history on how it evolved.

Homework:
Finding out how the IDE Eclipse created Makefile and compiled C files




Friday, 26 October 2007
A great mystery indeed, about Makefiles. We had deduced that Makefiles were generated dynamically and automatically by the IDE, choosing to distribute its Makefile components into 3 other files which were included into the main Makefile. After much trial and error, as well as analyzing the sub-makefiles, we all (Kevin, JL and myself) managed to create our own Makefiles and port it over to the Mac, but not before CT had already beaten us to it. :)

After lunch, we watched "Pirates of the Silicon Valley" [basically a story about how Bill Gates and Steve Jobs started off their companies]. An interesting watch as it talked in detail about the two men, their perception of things and evolving with changes, and making changes, in the technology sector.

After which, it was back to Fedora land. I Landed myself in a KDE IRC Channel #KDE where people went to chat about KDE problems with technical people there to help baffled users.


Something interesting: I found out that with the ability to stretch the vector-based file icons on the desktop, it will actually show the first few lines of content within the icon (see picture below). Pretty cool huh?






Reflection for the week:

When I look back at the week, it all seems to pass so fast and during this short 5 days, I have learnt so much things, perhaps not as detailed as some of my other modules in school, which are not taught in school.

I can still remember my CVS lab in school, where due to a technical fault in the CVS setup, we were unable to finish the lab. Losing valuable experience in understanding and getting hands on about how CVS worked. But CVS was still covered in the lecture, right?

Many times during the week at IHPC, I had thanked my teachers for teaching a bit here and there about some things, such as Fedora, CVS and Bash Commands (mkdir, rm, ls, etc) which I found very useful. Though by now the knowledge would have been slightly outdated, they were nevertheless still useful in some way. I also found out that somethings that I have learnt during my participations in competitions paid off, such as the use of Eclipse, open libraries and some command line commands (such as ipconfig in linux is /sbin/ifconfig).

On the other hand, I had also wished that I had learnt more during my school semesters - about SSH/Telnet, SVN, C Programming, OpenCV, just to name a few. But as Mr. Yeak has mentioned before, we are not taught about a specific topic in school; we are taught how to learn independently. And in many situations of my friends in other attachments where they are tasked to do things unrelated to what is taught in school, though they complain (we all do, right?) but all of us learn well.

:)

No comments: