My RSS Feed

This blog is solely for 1 purpose: to provide RSS feed to my personal web portal at http://diqiu.1111mb.com

Thursday, May 17, 2007

University student == gerenal labour job?

My friend in Civil Engineering is installing advertisement signs on the roof this summer; Another friend in Commerce is setting up tables in Chinatown; And I am applying a job in a warehouse now.

Is it so hard for university student to find a decent technical job that's related to what they are studying? Not that I don't like labour jobs, simply because they do no contribution to your future career. So I started some research of what can university student do to get a major related job, and in hope to bust the myth that university students are only good for flipping burgers.

Take example of myself, a student major in Electrical Engineering with good amount of computer knowledge. What's keeping me from getting a IT related job?

1. Knowing what you want to do. A lot of students like me simply search for "summer job+computer" on google, and end up getting a long list of ads/spams. There are many different areas of IT related jobs, ranging from Customer Support Technician, Website Developer, Network/Database Admin. and so on. Each of these requires a wide array of different skills. Of course you are unlikely to get a job if you don't even understand what you are looking for.

Suggestion: Go on some job searching website, or yellow pages, and look under the category of your "dream job". Look at what kind of skills/qualifications people are looking for out there in the industry, and ask yourself: "Do I know it? How long it take for me to learn it?" This not only helps for summer job, it's also a great asset for your future career.

2. Lack of certificate and/or experience. Certificates help you to get the job, and experience helps you to get the job done. Take the example of applying a Tech Support job, a high school kid who's interested in computer can do it. What's so special about the guy who get the job? He has certificate! Before your "will-be" boss knows what you can actually do, the best thing to look at is your certificate and experience.

Suggestion: Lots of times a simple certificate will help more than you think. Something like CCNA(Cisco Certified Network Associate) is very easy to get compare to most university courses and it will distinguish you and a high school kid. Also show people your experience. Take example of website design, a guy with an average portfolio is definitely more promising than someone with non? A good start usually means doing work for free. I am currently emailing around trying to offer free design for my high school, co-op placement and other places.

3. Plan Ahead!!!! This might be the most important part. Even if you read everything above and start doing it right away, you will still realize it's too late if you are already in 2nd year. Ideally everything should start at high school, where course load is not too much compare to university. But it's never too late. If you are planning to flip burgers or do yard works this summer, don't do it. General labour works not only don't help your career, but might also be potentially dangerous. Go learn something that's helpful to your career, even a lifeguard certificate will get you a $13/hr job in Toronto by just sitting there and watch bikini girls.

Here's my 2 cents for our younger generations :)

Monday, May 14, 2007

CPU frequency Scaling under Mandriva 2007

There are thousands of tutorials out there on this topic, why should I read this you ask. Because unlike most of the tutorials, which only gives simple commands and make you look like a typing machine, this one is actually going to let you "understand" the meaning behind the codes.

To make CPU frequency scaling work under linux, these thing are needed:
1. A CPU that supports frequency scaling. (of course!)
2. Proper kernel modules installed.
  • A kernel module is basically a file that tells the kernel how to handle certain type of hardware. In this case, the kernel module tells Linux kernel how to use CPU frequency scaling function. In most cases, these modules are installed by default.

3. Proper setup to load the module into kernel.
  • Why it's called kernel "module" is because it can be loaded as system need it. If you are having trouble with cpu frequency scaling, then most likely the kernel module for frequency scaling is not properly loaded. This is what I am going to talk about in detail.

The example is on my laptop with AMD Sempron 3000+ CPU, and has Mandriva 2007 installed. By default CPU frequency scaling is not properly setuped.

1. Check if the kernel modules files for frequency scaling is installed.

As root:
#ls /lib/modules/$(uname -r)/kernel/arch/i386/kernel/cpu/cpufreq
Output:
acpi-cpufreq.ko.gz p4-clockmod.ko.gz speedstep-centrino.ko.gz
cpufreq-nforce2.ko.gz powernow-k6.ko.gz speedstep-ich.ko.gz
gx-suspmod.ko.gz powernow-k7.ko.gz speedstep-lib.ko.gz
longrun.ko.gz powernow-k8.ko.gz speedstep-smi.ko.gz


The folder /lib/modules is usually where kernel modules are installed. If you are using different distro it might be slightly different, but explore under /lib/modules you will find it. Or alternatively you can do:
#find / -name acpi-cpufreq.ko.gz
which will search for acpi-cpufreq.ko.gz in your file system.

If nothing is found, chances are they are missing(which is highly unlikely). But luckily, there is always rpm or deb package for it. Do a quick google search on acpi-cpufreq.ko.gz+rpm+mandriva showed me a lot of results. Just install the package using yum, apt-get, urpmi or whatever package manager on your distro.

2. Test Load the kernel module into kernel
So which module should be loaded? It depends on your CPU, here is some reference:
powernow-k7
AMD Sempron/Athlon/MP ( K7 )
Socket Types: A, Slot A

powernow-k8
AMD Duron/Sempron/Athlon/Opteron 64 ( K8 )
Socket Types: 754, 939, 940, S1 ( 638 ), AM2 ( 940 ), F ( 1207 )

Intel Pentium 4 and Intel Celeron M
p4_clockmod

Intel Core Duo & Intel Pentium M
speedstep-centrino


You can also use $cat /proc/cpuinfo to get info on your CPU.

So once knowing which module to load, the next step is to load it. You can use:
#modprobe [respective name] As root
For my Sempron, it's
#modprobe powernow-k8
If you load the wrong module, kernel will not load it and instead complain with a error message. If all modules doesn't work, try acpi-cpufreq, as it's the "generic" one.

If no error message, you can check:
#cpufreq-info
Which gave me:
cpufrequtils 0.4: cpufreq-info (C) Dominik Brodowski 2004
Report errors and bugs to linux@brodo.de, please.
analyzing CPU 0:
driver: powernow-k8
CPUs which need to switch frequency at the same time: 0
hardware limits: 800 MHz - 1.80 GHz
available frequency steps: 1.80 GHz, 1.60 GHz, 800 MHz
available cpufreq governors: ondemand, userspace, performance
current policy: frequency should be within 800 MHz and 1.80 GHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency is 800 MHz.


I can see the message already shows me the cpu supports frequency scaling, and the kernel knows it.

Now it's very close to finish, just have to load another module to tell kernel when to scale cpu frequency, sort of like a "policy" for kernel to follow. Do:
#modprobe cpufreq_ondemand
#echo -e "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor


First line loads cpufreq_ondemand into kernel, there are other policies, such as:
cpufreq_conservative, cpufreq_ondemand, cpufreq_powersave, cpufreq_userspace
That are available.

Second line changes the content of /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
to "ondemand". This tells the kernel ondemand governor is used.

If you followed me all the way here, then your Linux kernel should be able to adjust cpu frequency now.

3. Load the same thing every time system restarts

These modules are not loaded by default. So every time you reboot, you need to load them again. There are many ways to let these modules load automatically, and here's one:

Add
modprobe powernow-k8 && modprobe cpufreq_ondemand
echo -e "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

into /etc/rc.local

content of /etc/rc.local will be executed every time system starts, so it ensure those modules to be loaded every time system restarts.

May 14, 2007 - Finished RSS Feed

May 12, 2007 - Site launched.