Showing posts with label Ruiwen. Show all posts
Showing posts with label Ruiwen. Show all posts

Monday, September 22, 2008

Way of the Penguin

Linux.

That's an interesting word. Have you heard of it? Maybe you have. Maybe it's floating around somewhere in the back seat of your subconscious, lurking in the shadows. You know it's there, you've heard of it, but you just don't know what it is, or what it looks like. Or maybe you have. In a lecture somewhere, perhaps. Or maybe you've read about it online. You know, that operating system. The free one. You do know it's an operating system right?


Tux, the Linux mascot,
tends to hide in the shadows

Well, anyway, if you said yes, you'd be wrong.

Technically, "Linux" is the kernel of the operating system, first written by Linus Torvalds when he was a student, back in 1991. But hey, we don't want to nit-pick, so for the purposes of this post, we'll just use "Linux" to generically refer to that whole group of OSes that use Linux as its kernel. You might have heard of some of them before, Ubuntu, Fedora, Debian, openSUSE... any one ring a bell? Or hey, you might even be running Linux on your computer right now. If so, good for you!

The thing is, not many people are using Linux at this point in time. Correspondingly, not many people have even heard about it, much less used it. As such, Linux is still out there, lurking at the fringes, and sometimes peeking its head out a little. Unfortunately, Linux still isn't really what you might call "mainstream" at this point, and what this means, is that a large majority (including even SoC students) of the population is unfamiliar with Linux, and what it is, or what it looks like or what it can do. And we all know people are afraid of what's unfamiliar to them.

So tell you what. Let's use this post to bring Linux out into the light. Don't be afraid, Tux won't bite.

Maybe I'll start off with a little myth that I've heard about Linux in general. Mention Linux to Joe User on the street and you'll probably get the opinion that Linux is only for geeks and technical users. They say it's difficult to use command line based, and all around user unfriendly. Does that scare you? An OS that is "techical"? Wait, which faculty did you say you were from again? Oh, the School of Computing. The School of Computing? And you're afraid of getting your hands dirty with technical details? All right, in my next post, I'll let the Dentistry students know to stop looking at teeth, all right?


Compiling software on Linux.
Who's afraid of the big, bad terminal?


Jokes aside though, that's outright wrong. Today, Linux-based OSes have progressed to a stage where their graphical user interfaces (GUI) are as, if not more, user friendly than either of the other two market-leading OSes. People tend to judge on appearances, hence, how good or bad something looks, determines what people think of it. Granted, earlier versions of Linux might have been seriously butt-ugly, but not any more. Allow me to show you what I mean.



This is Linux
Screenshot by STAR_LIGHT2007 on Flickr





And so is this
Screenshot by enlightener on Flickr





Oh, and this too
Screenshot by Vulturo on Flickr




Guess what this is. Definitely Linux.
Screenshot by Filip Knežić on Flickr

(For more eye candy goodness, check out Flickr)


Ugly? Command line only? Difficult to use? Really?

Well, of course, eye candy alone does not make a good operating system. What's the use of looking good if you don't have the substance to back it up, right? People often ask me, "So, what's so good about Linux anyway? How does it compare to Windows, or OS X?" Usually, they're worried about ease of use, and more importantly, compatibility with the other OSes. For students, it's usually worries about being able to use Linux for their assignments, whether its able to handle the Microsoft document formats and so on. I tend to use myself as an example most of the time in my replies. I've survived four years in NUS, including one year spent abroad, and I've never had any problems with submitting assignments or reports of any kind. Most Linux distributions come with the requisite software out of the box to get almost anything you'd want done. OpenOffice churns out documents and reports, GIMP does decent image editing, and Pidgin handles all your instant message needs without breaking a sweat. Oh and just for the Computing students, you'll be delighted to know that it's almost ridiculously easy to set up a development environment for your favourite programming language and/or framework in Linux. Java? Check. C/C++? Check. Python? Ruby (on Rails)? PHP? Perl? Erlang? Checkcheckcheckcheckcheck. Apache, Tomcat, Postfix, MySQL? Oh yes, indeed. Oh, and did I mention that even the most basic text editor provided in most Linux distributions has support for syntax highlighting and auto indentation for code?


Download what, ah?

I hear this most often during development projects. When we're about to begin coding, friends who are using other operating systems (especially the one developed in Redmond), usually start by running around the web downloading all sorts of packages from vendors' websites to get themselves going. All right, we need the MySQL server and MySQL Administrator from here, PHP from here, Apache from there.. and so on. And then of course, sometimes there's the "Eh, you got Dreamweaver? Can lend me? Got crack?" And once they've got them all downloaded, we start the installation doubleclick-yesyesyes-doubleclick-yesyesyes-doubleclickdoubleclick..

Linux users, comparatively, and contrary to common belief, simply need to point and click their way through a GUI, selecting the packages they want installed, hit Apply, and then sit back and let the machine download, install and configure the necessary software, all at one go. That's the best bit about using Linux and its related software, really. Thanks to the distributions' huge software repositories (stores of software packages usually maintained by the distribution's maintainers), Linux users are able to find almost any bit of software they need to get their job done with almost indecent ease. A sampling of the repository I'm looking at lists about 25,000 software packages, all of which can be installed via a simple point-and-click GUI.


Screenshot of the Synaptic Package Management GUI on Ubuntu Linux

And not only do you get easy access to loads of software, because software packages downloaded from the official repositories are digitally signed, you can rest assured that whatever you are downloading is reliable and trustworthy, and not riddled with spyware and what-not. Furthermore, because we're all about Free (as in speech) software, all the software packages found on the repository are unencumbered by restrictive licensing and are therefore great candidates for redistribution and sharing. No worries about hunting down cracked license keys there.


How to connect, ah?

Apart from being friends to programmers, Linux distributions also play nicely with remote servers. I once took a module in which we had to deploy our projects onto the Solaris Zones provided by SoC. Now, anyone who's worked with one of these Zones before, will know that just about the only way in to manage the files on the Zone is via ssh. Now that's all well and good until you realise that you'll need to edit the files on the Zone. How might you do this then? Should you copy the file onto your harddrive, edit as required, then copy it back to the Zone? That's all and good for a single file, but remember, you're dealing with an entire project here. Or perhaps, you could use one of the built-in editors in the Zone's environment and just edit them on the Zone itself. Anyone remember vi? Either way, such scenarios are too complex and aren't too appealing to most of us. Especially when we've got a deadline hanging over our heads, and two other projects due at the same time.

Thankfully, for those of us who need to deal with files on remote servers, there is a solution. Most Linux distributions offer a way to seamlessly mount a remote server such that it appears as just another directory in the file system. From there, copying and moving files between different machines is as easy as transferring them between two directories. Drag and drop easy, in fact. What's more, since the remote server is now represented like a local directory, code editors can now seamlessly open, edit and save remote files just as easily as they would local files. To the programmer, apart from a slight lag due to network latency incurred while saving the file, the fact that the file actually resides on a different machine is entirely transparent. What's more, most of the common network protocols are supported. You could just as easily mount a remote server over SSH, as you can FTP, as you can Windows file sharing and even WebDav. This of course means you save loads of time simply by not needing manually manage your files. Oh wait, did I copy that over? Maybe I should just copy it over again. Oh wait, do I have the latest version? You get what I mean.


Right-click menu showing option to edit a file
on a mounted remote server (simulated using a virtual machine)



Drag and drop copying of files from one
remote server to another


So how?

As you can see, there are indeed advantages of using a Linux system, as compared to other more "mainstream" operating systems. Of course, these are only two features, out of a host of many, many more, far too many to ever cover in a single blog post. However, the point of it all, at least, is to show that Linux is at this time, a viable alternative to the other OSes you find on the market. A large majority of people are afraid to venture into the unknown, and as a result, miss out on giving things like Linux a try. Now that I've introduced a few features of a Linux system that I find handy, perhaps you might find that you'd like to give it a try as well. As they say, don't knock it till you try it, you never know, you might like it!

Anyway, Linux really isn't a new thing to the computing world. Since its birth in 1991, it's been steadily growing in terms of functionality, stability and usability (and all other forms of -ity's). While you might not see it often on the consumer desktop at this point, it's handy to know that Linux has now become the server operating system of choice for a number of goverment agencies worldwide. The list includes the Swedish Armed Forces, the Government of Switzerland and the Government of Japan. The city governments of Berlin and Munich in Germany also announced that it plans to use Linux on all their desktops. The National Security Agency (NSA) and the National Aeronautics and Space Administration (NASA) in the USA also use Linux in their operations. And of course, the (most likely!) largest Linux user of all, Google.

Like it or not, Linux and other free and open source technologies are slowly gaining ground. For the pragmatic folk, if you're looking for a job in the tech industry after graduation, you know what you should be brushing up on. For the rest of us, it's always good to gain a little more exposure to available technologies instead of being locked into a proprietary monoculture, oblivious to anything else.

--
There are a number of ways to get started with Linux, and the easiest of which is via a LiveCD. A LiveCD is simply a Linux installation on a bootable CD. Just boot off the CD, and when that's done, you'll be running Linux. Not to worry though, LiveCDs won't touch the existing data on your harddrive, and the Linux environment you see is only temporarily loaded in memory. Take the time to explore the system, play around with the applications and take the time to get comfortable. When you've seen enough, all you need to do is to reboot your computer, remove the LiveCD, and you'll find yourself back where you started. One of the more popular Linux distributions, Ubuntu, provides a LiveCD for download. Should you wish to install Ubuntu on your computer, the live environment has a handy Install icon on the desktop that you can click to initiate the installation process. Needless to say, as with any other major operation on your computer, back up your data safely before you commence the installation process.

For more resources on Linux in NUS:
--
Notes:
  • With the exception of the screenshots taken from Flickr, all screenshots taken on Ubuntu 8.04 Hardy Heron.
  • If you'd like to reuse the screenshots from Flickr, I've linked them to their Flickr page where you can find licensing information
  • Screenshots used were licensed under forms of the Creative Commons license that allow reuse and have been attributed to their owners.

- Ruiwen

Thursday, September 18, 2008

Openness in Education

Hands up, if you've heard about MIT's OpenCourseWare initiative. Anyone?

All right, for those not in the know, here's a description of OpenCourseWare from the project's About page:


What is MIT OpenCourseWare?
MIT OpenCourseWare is a free publication of MIT course materials that reflects almost all the undergraduate and graduate subjects taught at MIT.

  • OCW is not an MIT education.
  • OCW does not grant degrees or certificates.
  • OCW does not provide access to MIT faculty.
  • Materials may not reflect entire content of the course.

So, in essence, they're putting up (almost) all their course material online, for the general public to view and download.

And they have a huge range of courses too, somewhere in the region of 1800 different courses.

All right, now hands up, those who thought, "Hey cool. Why doesn't NUS have something like that?" Good question, really. I have no idea. Of course, if NUS does indeed have something like MIT's OpenCourseWare, then this post is all hot air, so feel free to flame me in the comments. =)

Otherwise though, it does seem for now that NUS' course material exists in the walled and gated garden of IVLE. Oh wait, it's not even a garden where you can roam around freely after you're past the gates. I think, maybe.. dungeon.. is more the appropriate word. With securely segregated cells into which nobody may enter without explicit permission. Have you faced this situation before? You'd like to check out the course material for a module that you're not taking at this particular moment, but when you try to access its Workin on IVLE, but all you get is a sign saying you do not have access rights to view its contents. All right, that was helpful.

I'm not sure I understand the restriction of access to course materials though, especially to students of NUS. I had the impression that Universities were institutes of learning, and exploration, and not of restriction. Even if course material is not opened to the public like MITs OpenCourseWare (which, I guess, would be the ideal scenario), why are students restricted from viewing course materials by default? In an article on ZDNet Asia, dated 20 Febuary 2008, Ravi Chandran of the Centre for Instructional Technology here at NUS mentioned that the University left it to the lecturers to make the decision on whether or not to open up their course material, citing a "bottom-up approach". And indeed, certain lecturers do have their course materials listed on the open web (CS2105: Introduction to Computer Networks, was actually the only one I found in a short survey of about 10 module pages. Eg. http://www.comp.nus.edu.sg/~cs2105). Also in the article, Chandran mentions that, "while laudable, open education appears to be more advantageous for educators, who [can] now reference other material while developing course material. Students... may not fully experience the learning by just downloading content from the Web". He also expressed concern that learners may face difficulties in discerning the "authenticity or accuracy" of said material. But surely, even if you may not have the lecturer standing in front of you, it helps to be able to reference the material as and when you need it? I presume, as University students, we don't exactly need our lecturers to spoonfeed us if we are to learn. Besides, if the material were published on an established source, for example, on the University's OpenCourseWare project page, from the University's lecturers, I guess, just maybe, we as students, could put a little trust in the "authenticity and accuracy" of that material?


Screenshot of the CS2105 public webpage

In this day and age, I (to the best of my knowledge, at least. I acknowledge the fact that there may be factors at play of which I am ignorant) see no reason why educational material should be kept under lock and key, or in IVLE's case, user-id and password. I have heard it mentioned that course material like lecture notes are not freely distributed due to issues of intellectual property rights. But what intellectual property are we talking about here? Are there concepts discussed in the notes that have been invented by NUS teaching staff but have not been published in a public, peer-reviewed journal? If not, why the secrecy? I guess the claim about protecting intellectual property rights is valid if there was licensed content bought from other providers and used in lecture notes, to which NUS or its teaching staff do not have the rights. After all, even the MIT OpenCourseWare page states that material on the site "may not reflect the entire content of the course". Apart from that, however, I make the assumption that most, if not all, the concept taught in lectures are public knowledge anyway, and there should therefore be no reason to restrict access to them.

So here's a hope for the future: that course material for NUS modules will eventually be put up one day in a fashion similar to MIT's OpenCourseWare. After all, if we would like to make the claim that we are a world class institution, I guess it wouldn't hurt to take a page out of MIT's book?

--
For more information regarding the OpenCourseWare and other similar initiatives, here are a few resources that might be handy:
--
So yup, once again, if I've missed out on anything, do feel free to point me in the correct direction in the comments.

- Ruiwen

Wednesday, September 17, 2008

Learn and Explore

I'd have to say, one of the more defining moments in my time here in NUS would have been being accepted into the NUS Overseas College (NOC) Programme back in 2006. I'd have to say, that at the very least, going on the NOC Programme allowed me to experience life outside of Singapore for an entire year and to open my eyes to the world. On the other end of the spectrum, I could say that the experience on the Programme was pretty much life changing.

In brief, the NOC Programme hopes to help students develop a sense of entrepreneurship by sending them off to work in various locations around the world, namely, Silicon Valley, Bio Valley (Philadelphia, USA), Shanghai and Stockholm. (A fifth location, Bangalore, is also available, but only for graduate students via the Graduate Research and Internship Programme (GRIP), also offered by the NUS Overseas Colleges) While overseas, these students work in various startup companies, take courses in the local partner universities, and at the same time organise and attend events that focus on entrepreneurship.

Just a short disclaimer though. I currently serve as Vice-President, Events, on the NOC Alumni Executive Committee. However, once again, the views expressed in this post are entirely mine.

Initially, I never quite gave the NOC Programme much thought. Sure, I'd heard of it, but honestly, it was never one of my priorities. To me, one year abroad was just time away from friends and family, and away from my life here in Singapore. And life was going pretty well for me at that point. linuxNUS was just founded, and I was scraping through coping with my modules. When the time came though, I sent in my application all the same. I didn't harbour too high hopes of being admitted into the programme at that time I guess. I wasn't a scholar, wasn't a Dean's Lister, and I simply wasn't anywhere close to being an 'A' student. And then, a few weeks later, I received an email telling me that I had been selected. Good grades or not, looks like I made it through.

As I soon found out, being an intern on the NOC Programme is far from the traditional concept people tend to have of "interns" in general. Far from being tasked with menial and mundane chores like filing paperwork and photocopying documents, NOC interns are often given projects to work on that involve the operations of the company. And far from being "just another worker", there are times when the companies would have just been founded, and the intern ends up being directly involved with helping the company establish itself.

Now that's all well and good, but some of you might be asking, "What does that have anything to do with being an SoC student? I study Computing, not how to start companies."

True, but the real value, I feel, lies in being made to overstep your own boundaries. Which, frankly, is a terrifying thought for quite a number of people. Here in Singapore, we're all conditioned very well to respect the boundaries. The boundaries are sacred lines that should never be crossed and the boundaries are law. Over time, however, certain boundaries if enforced too often, become our own limits. Similar to the dog so used to being chained up that even if it is removed, he never learns to move beyond the length of his chain. We should avoid becoming that dog and recognise that there is a whole world beyond what we sometimes limit ourselves to.

Take for example, the use of a certain programming language in development projects here in SoC. We start our basic courses like CS1101 with Java. Then CS1102, in Java. Then CS2103, also in Java. Or at least that's how it went for me. And the list goes on to higher level modules. However, sometimes, what this arrangement results in, are students in the third or fourth year, who are more or less only familiar with Java. Not that there's anything wrong with the language. It's just that after three to four years in the school that provides education in what is perhaps the fastest moving industry, some SoC students are familiar with only one single technology. These students have become so comfortable with what they are familiar with, that they have never learnt to explore outside their comfort zone and end up being trapped within their own limits. Programming languages is just an example of course, but the scenario described is pretty real.

So, even as a Computing students, we really shouldn't restrict ourselves just to the world of technology any more than we should restrict our own learning to the technologies taught in the lecture hall. Information technology pervades all aspects of the world today, and gaining an insight into as many fields as possible, business administration, marketing, publicity, may well put you in a position to see the proverbial "bigger picture". After all, aside from pure academic research, technical knowledge is best used when applied to a particular field. How would I use IT to improve a business process? How can my knowledge of web technologies be used in helping the company with its marketing efforts? Indeed, overstepping those boundaries, while initially uncomfortable perhaps, may well lead to greater insight in the "real world". Besides, if you never gave yourself the chance to try something new, you might never find out what possibilities lay beyond. As a personal example, I started off as the normal SoC student, having done projects mainly in Java. I hadn't much web programming experience, and I tended to stay away from web technologies at that point in time. However, one of the first projects given to me while at my internship company was to develop a web-based system. I sat down to pick up the technology, and have since come to realise I enjoy developing web applications instead.

So indeed, it doesn't really matter if you like it eventually or not. More importantly I guess, is the experience gained from going beyond familiar ground. Just like our poor chained dog. Without the chain, he is free to explore beyond his usual territory. If he likes it outside, well and good. And if he doesn't, there's always the familiar and comfortable ground to retreat to.

And the great part about the NOC programme is that is provides exactly these kinds of opportunities for students to explore new ground. I suppose, speaking from the perspective of a person who has lived in Singapore all his life, that spending a year abroad was almost the symbolic loss of the chain that bound me to what was familiar. If anything at all, it was an opportunity to start afresh, so to speak, free of the walls that I had so comfortable lived within my whole life. Furthermore, when you allow yourself to be immersed in so many new experiences, and speak to so many new people (loads of opportunities to network while on the NOC programme), you begin to realise that the world is a whole lot larger than just what we can see from our little island in the sun. As you speak to the people you meet (they might be startup founders and CEOs, or maybe venture capitalists, or maybe industry veterans), they might share their experience with you, and from there you gain. While in Stockholm, we were lucky enough to speak to people like Joe Armstrong, one of the creators of the Erlang programming language, Henrik Torstensson from Stardoll and Andy Smith from Jaiku (Jaiku was acquired by Google in Oct 2007), among many others, and to hear their stories.

Hej! 2007 about to start

Time in University is best spent learning, but then again, we cannot learn if we restrict our horizon to the confines of the tutorial room or lecture hall, or even the campus grounds. Similarly, we cannot learn about the world by staring at our feet. So yes, I would like to encourage you, dear reader, to learn by exploring and experiencing as much as possible. If there's something that you really find interesting, maybe you could always skip your next lecture to go explore that interest. And if you're game for it, why not apply for the NOC Programme?

- Ruiwen

Tuesday, September 16, 2008

Greetings

Hello there! I hope this post finds you well!

Some introductions first of course. I'm Ruiwen. I'm currently in my fourth-and-a-half year in SoC, and majoring in ECommerce. I ended up having to extend my studies for another semester to accommodate my stint on the NUS Overseas College programme (I spent a year in Stockholm, Sweden), an work-study-learning programme that I absolutely must, must, must recommend to everyone out there. Go for it, you will never regret it. On the side, I also take an interest in web technology, design and photography.

Today, I get the honour to kick off a week of guest blogging on the NUS SoC blog. Thank you Juliana, once again, for inviting me.

So. Where shall I start? Four and a half years is quite a long time to be part of SoC, and since I won't be part of SoC much longer, perhaps I shall start with reflecting on my journey through the tube.

I'll keep this post short and just introductory though.

Originally, I joined SoC with the intention of doing the then Communication and Media course. Mid-way through, I switched streams to E-Commerce, where I am till today. I joined the E-Commerce stream with the hope of learning more about the business side of technology. Of course, the convenient side-effect of the switch is that I no longer had to take any Math modules, which was good, since I am absolutely horrid at math anyway.

In the beginning of my second year in NUS, a group of friends and I founded the current incarnation of the NUS Linux User Group,  linuxNUS. I say it's the "current incarnation" because there have been Linux User Groups in NUS before, and we're only the most recent. linuxNUS was founded to provide help and support for Linux users in NUS, while at the same time to promote the use of Linux and open source software. <shameless plug>If you'd like to find out more about linuxNUS, do check out our contact page.</shameless plug>

The year after, I applied to, and was accepted into, the NUS Overseas College Programme, and spent a year in the NUS Overseas College in Stockholm, Sweden. There, I worked at Mobile Sorcery, the company behind the cross platform mobile application development tookit, MoSync. I was also a part of nuStart, the student entrepreneurship organisation made up of students in Stockholm on the NOC Programme. nuStart was the organisation behind events in Stockholm featuring Web2.0 (Hej! 2007), mobile convergence (Hubbub 07), virtual reality (Hej Världen!) and the Facebook Garage Stockholm. (However, I was only personally involved with Hej! 2007. The other events were organised by later batches. Job well done, guys!)

I returned from Stockholm to Singapore in August 2007.

In January 2008, I was volunteered for elected Vice-President, Events on the NOC Alumni Executive Committee, in which capacity I serve to this date.

--
Well, that was a very short introduction, which would hopefully provide some context to some later posts. Stay tuned!

- Ruiwen