#Google Analytic Tracker

Pages

Mar 11, 2008

My First Experience with xUbuntu

Awhile ago, I promised my sister I would format her laptop. Her laptop, a SONY VAIO FX340 (800Mhz), has a broken LAN port and a broken memory slot. Her laptop can only run on 256 MB RAM max and has connect to Internet though D-Link 650 Express card.

Minimum Requirements

Initially, I downloaded Ubuntu and tried to install it.  However, every time I select the "Start and Install Ubuntu" or the "VGA Mode" in the boot up screen, I only got a blank screen. After doing some researches,  it turns out that Ubuntu needs a minimum of 387 MB.  I stumbled upon a forum about xUbuntu. It turns out that there are number of "spin-off" projects that based on Ubuntu.

xUbuntu uses a different desktop environment call Xfce. I am guessing this interface require less memory, because its minimum requirement is 128 MB.

Download

Download Ubuntu is easy and extreme fast. Using P2P Bit Torrent, I got up to 600kB/sec from my cable Internet. Man, I never see this kind of speed before using cable internet. I am so glad I switch from ADSL to cable! There are many peers and seeds out there so you won't have issue downloading it.

Installation

First, I used to start up xUbuntu using the first boot option. Well, it didn't work, it definitely related to the video card.  So I start up xUbuntu using VGA mode. After 10 minutes of loading... it loaded! a very small 640 x480 screen shows up.

The reason why it takes awhile to load is because it loads the core system to your RAM only. This mean you can literally run Ubuntu from a CD ROM without effecting your Windows XP system. This is an EXCELLENT idea, because it allows me to test and experience Ubuntu before I decided to install it onto the harddrive!

i.e. if you can't run Ubuntu just from Live CD, you may have trouble installing it. You are better to do more research before installing it.

However, it was impossible to run the installation with 640 x 480 screen. The installation dialogue box was much larger (no resize available) than the screen resolution. After some clicking around, I find that going though Applications->Settings->Screens and Graphics allows me to change the video card. Fortunately, xUbuntu comes with a number of video drive. The laptop uses Intel 815, which I quickly find it. After changed the video and resolution. xUbuntu requests me to logout so that changes can take effect.

Ah ha! Here was the problem. After I logout to the main screen, I have no idea how to log back in because I don't know the default user. I tried login as root and xUbuntu disallow me to log on using Xfce Session. The ultimate solution is to restart the machine. However, my video card setting didn't get persisted after restart.

To work around this issue, I created another user.  Luckily 80% of the Create User dialogue box fit on the screen.  After I changed the video setting, log out, and log back on, everything works accordingly. Btw, I did figured out that the default user is "ubuntu" by random guesses.

Installation is very easy, only 7 steps!  There was no interruption, other than it complained it can't get the latest security update because it had no Internet connection.

Also, my D-Link 640 was automatically detected and ready to use. It seamlessly installed the driver for it.

Desktop Screenshot

In the screenshot, GIMP is a very featured graphical editor. It supports layering and many effects you can use, and it is FREE!

Add/Remove Application

xUbuntu comes with this nice application call "Add/Remove Application", similar to Windows Add/Remove.

I opened it up, and the first trouble I had with xUbuntu was downloading new applications, even though it showed me a list of available application.  My problem is exactly mentioned here:

http://ubuntuforums.org/showthread.php?t=629621

Thanks to the strong community, it was that hard to find the solution.

Unlike like MS Windows, where you have to go online and click download for new software, the Linux community has setup a free applications repository for download. You can easy browse all available software and install the one that you selected.

I was surprised the number of freebie you can download. It even comes with the popularity rating.

Add Remove Application Screenshot

The Terminal

The one last problem that I needed to resolve was a crashing Terminal. Here is the problem and solution:

http://ubuntuforums.org/showthread.php?t=417661

I was surprised Linux would have a problem when opening a terminal. Terminal in Linux is essential for administrative works.

Notice that since my terminal doesn't work, I have to logon to Failsafe Terminal Session in the logon screen so that I can edit the configuration file using my all time favour editor, pico.

Menu Screenshot

Reasons why you want to use Ubuntu

A. You got tire of Windows XP (note that I didn't say XP is bad or worst than Linux, XP has many advantages too).

B. You need an OS that run fast though highly customization on a relatively slow machine.

C. You want to startup a business with low budget that still uses legitimate software. (you SHOULD use legitimate software) You can download a lot of free Linux software!

Is Ubuntu Ready for the Average Joe?

Well, I say Ubuntu is getting there, but not quiet yet. From the Desktop user interface perspective, it is definitely ready. Anyone who has experience with Windows XP should have much problem using Ubuntu. 

However, there is some fundamental ideas that the average XP desktop user need understand.

1. It is the idea of security, the different between root user and standard user.

2. User will need be comfortable editing configuration files.  There still a lot of configuration issue that can only be solved without a friendly Graphical User Interface (GUI).

3. The file system. The idea of mount to a physical storage, instead of the Window drivers from A to Z.

File Manager

Note there is no C, D, or E drive in the screenshot. Only directories or folders.

Linux Desktop environment has get to the point where you barely need to do command line. Thanks to the Linux community and the open source projects.  A lot more average joes can use Linux OS.

Nevertheless, MS Windows will still be dominated OS.  MS had spend a lot of money and marketing to get software company to write drivers for it, and ensure that its OS works in almost every PC.  This is what consumer pay for, it is the services and consistent support of the software. That is also one of the ways for open-source developers to earn money, it is the services and business solutions they provide.

Mar 6, 2008

Funny FireFox Bookmark Rendering!

I don't know when did it happen, but I better not play badminton!

In case you didn't get my joke from my above statement. Basically what happen is that FireFox incorrectly used the Coding Horror icon for my Calgary badminton link. Notice that I have subscribed to the Coding Horror RSS. The icon should be used beside the Code Horror RSS.

image

Hopefully this won't happen in FireFox 3. Maybe I should put this on "This is Broken".

Feb 5, 2008

What is Software Engineering

Recently, I find an interesting article on Slashdot about software engineer in Canada. Basically in Canada, the title "Engineer" is reserved specifically for licensed engineer under CCPE (Canadian Council of Professional Engineers). I read one person comment about saying that there is not such thing as software engineering.

I totally disagree, so I wrote the following comment:

" Hi, I have to disagree the following points that you made about software engineering:

A. "there's no way to learn software engineering the way Engineering disciplines are learned."

B. [Software] discipline simple doesn't exist.

C. "cannot use mathematics" design system software.

From my study in my computer engineering courses, we learn what is software engineering. Software Engineering doesn't mean just "programming", it involves many other aspect of software development, like collecting specifications, designing, implementation, testing and software maintenance.

In design phrase, software engineers have to consider the cost, quality, reliability, delivery time and many other matters just like any other engineer in the traditional disciplines.

Although it seems to there is no mathematically involve in general software design, but if you take computer science courses, you learn that your software performance rely on mathematical calculation (i.e. O(n)). If you are working on assembly level software development, you definitely require mathematically skills to solve complex problem because your software is limited by your hardware performance (memory and speed).

Just like any other engineering, software quality also based on statistic and software engineering models. Think about highway engineering, the quality of the road material is mostly base on statistical calculation. In software engineering, we have Lines of Codes, function-points, function metrics measurement and many others determine the software quality, maintainability and flexibility.

So, what is the obvious difference comparing to other traditional engineering fields? 1. The cost of correcting an engineering mistake is a lot less. If your bridge design is incorrectly, it will cost a lot rebuild or re-enforce bridge compare with solving software deflect. 2. Software “usually” doesn't have a direct impact on public safety. Billing system maybe a bad example, but think others, like automobile, airplane, traffic light, it is controlled by software. If the software crashes, it could cause death.

Unfortunately because software engineering doesn't have a total clear understand among the public, and mostly not even to CCPE I bet, therefore it is hard to distinguish one from a software engineer to just a programmer. It is probably very hard to have regulation on software that require engineer's stamp because the definition is not clear.

Does medical charting software require an engineering stamp before it can be use in a hospital? What happen if there is a defect in the software and doctor incorrectly prescribes drugs which cause a patient to die?

It is pretty much impossible to write a useful software that is flawless, even a bridge cannot participate every possible environmental hazards and combinations. It can be statistically said a bridge can last for 200 years, but it is not definite.

If you do claim yourself to be a software engineer, you have to do your job professionally with high standard and due diligence. This is a standard and common ground for all engineers in Canada. And yes, software engineering stream (usually from Computer Engineering discipline) does exist in a number of Universities in Canada. "