The Knowledge Worker

Probably the most important contribution of Peter Drucker to modern management is his study on knowledge workers.

For most of us, the term “knowledge worker” may just be a fancy term for “white collar professional”, people with specialized training tasked to use information for different goals. For example, an engineer uses a client’s requirements to design structures, and a doctor interprets the symptoms of a patient to find the best way to treat the disease. But as Drucker would point out in his writings, most companies do not understand that knowledge workers are fundamentally different from their blue collar counterparts.

Here is a small (and by no means exhaustive) list of things about knowledge workers:
Continue reading “The Knowledge Worker”

More Necessary CS Skills

Body feels like heck today as a result of breaking demolishing a personal fitness record yesterday. The heat isn’t helping.

I’m not in the mood to conduct research so here’s a follow up to a previous cheat post.

Learning basic web development and photo editing is not enough to be competitive in the IT industry. Here are other necessary skills for a fresh grad to learn.

Google-fu

Practice your Google-fu.

I don’t really need to explain why you should learn how to efficiently use Google to find the information you need. Between finding answers to software problems up to stealing code, Google is an indispensable tool for a software developer.

Unfortunately, not a lot of people know how to choose the proper keywords or determine which keywords should be enclosed with quotation marks (I’ve even lost count of how many times I’ve seen this happen in my previous company). With a bit of practice, though, you could overcome this problem and eventually learn to stalk people find solutions in Google in no time.

Get enough Linux/SysAd/programming experience to install a LAMP server from scratch.

This might sound impractical to people working with .NET, Java, or any development tool whose primary audience does not use the LAMP platform, but the sheer amount of useful free/open source software built for LAMP makes it hard to ignore.

When you build a LAMP server, from installation of OS up to setting up some basic apps like WordPress and MediaWiki, you will learn a lot of basic skills in the process. Installing the OS is a no-brainer, but the other stuff aren’t so trivial especially to people used to working in Windows: using a shell (and optionally installing SSH to allow remote terminal access), using vi, emacs, nano, or any console based text editor; learning the Linux user security model e.g. setting file permissions, etc. The learning doesn’t stop once you get to the AMP part, as configuring Apache, MySQL, PHP, Perl, and Python for basic usage still requires a bit of research (and trial and error).

In line with learning LAMP, you might also want to learn how to create virtual machines via VirtualBox or VMWare Server to remove the need for dual booting or getting a dedicated machine. LAMP servers are lightweight compared to modern OSs so the host machine’s performance will probably not be affected by hosting a virtualized server.

Understand how the Internet works.

This one’s essential for web developers. No, I’m not saying you need to do crazy impractical stuff like memorize the OSI Model. What I’m saying is that as a person creating dynamic websites, you should at least know the basics of networking, especially HTTP.

People who know these stuff might find it funny that there are web developers who aren’t familiar with how browsers and servers interact via HTTP, but in reality, a lot of people don’t know these basics. I myself didn’t know the difference between POST and GET requests until my second year in the business.

Learning how to use common network related tools like packet sniffers and port scanners is also useful in web development. Having Wireshark in my machine actually gave me “unfair” advantage in my projects, allowing me to isolate and fix difficult bugs that other devs couldn’t handle.

Simple Six-Week Training Programs

100 push ups

Here are three simple six-week training programs designed for people who don’t have time to go to the gym and/or don’t want to buy exercise equipment:

I found the first one in a Lifehacker article last year. Since then, the site owner decided to expand (copy-paste :P ) the program to work on the abs and the thighs.

I’d like to give couple of comments about the programs. First off, always keep in mind that working out a body part will remove fat from it i.e. targeted fat loss doesn’t work. You’ll need to control your calorie intake for that. At most, these exercises will tighten/tone their respective body parts preventing the loose skin and fat from sagging.

The other thing about these programs is that the sit up and squat challenges are too easy compared to the push up challenge. This is because the muscle groups used in those exercises are large and as such, respond quickly to exercise. Heck, in my summer weight training class back in college, we were doing 4 sets of 500 crunches at the end of the 5th week.

On the other hand, push ups use both large muscle groups (chest, abs, and to a smaller degree, back) and small muscle groups (shoulders and triceps). Unless your push up stance is wide (which puts more effort on the chest) your progress will be hampered by the relatively slower responding shoulder muscles and triceps. Expect to repeat some weeks for 3 times or more.

Track PC usage with ManicTime

Manually logging stuff for future data analysis is annoying. I already mentioned in a previous post that calorie counting and logging expenses are tedious tasks, but one must do both if they are serious about reaching their fitness and financial goals.

Another case where manually logging data can be useful (but at the same time tedious) is tracking how much time you’re spending each day for various tasks. You can analyze this data at the end of the week and figure out where you can improve your efficiency. For example, you might realize that you’re spending too much time checking your mail or you might realize that you’re not putting enough effort on higher priority tasks.

Based on experience, however, manually logging effort data is a lot more tedious and error prone than calorie counting and logging expenses. Computerized effort logging, whether via stand alone app or web interface, doesn’t improve the experience much.

Fortunately, there are applications available that can help automate some of that data tracking. Applications like Slife, RescueTime, and Wakoopa automatically track your computer usage by taking advantage of the fact that it’s actually quite easy to determine the title of the active window in your workspace.

ManicTime - pr0n sites pixelated XD

I personally use ManicTime for tracking my computer usage. The main advantage it has over other similar applications is that the data is stored locally, meaning you don’t need an internet connection for it to work and you don’t have to worry about the odd chance that a hacker can see what pr0n series you’re watching.

There are downsides to ManicTime though. First off, it’s not a small app as it runs on top of .NET Framework 3.5. It may eat 30-60MB of memory, but it doesn’t slow down your machine until you view the daily or statistical data. Another downside is that it’s only for Windows. Mac users will have to make do with Slife for automated tracking.

Importance of Good PSUs

For most people, the Power Supply Unit (PSU) of a personal computer is just an afterthought, usually just getting a generic PSU when building a PC. Unfortunately, they’re missing a couple of important considerations when picking PSUs:

Generic PSUs always cheat on their “rated” power.

In other words, don’t expect a generic “500W” PSU to supply 500W of steady power to your computer. Corsair (who sells high quality PSUs made by Sea Sonic) even made a video of them pushing generic power supplies to just 75% of their limit:

Why a high-quality PSU is an essential purchase

Think it’s just a marketing trick from a PSU seller? Unfortunately, it’s not. Some power supplies, especially generic ones, do crash well below their rated power. For example, this power supply crashed at 75% load, with the second sample not even passing the 50% load test (another victim of HardOCP’s rigorous testing).

Cheap power supply makers usually cheat by put a lot of amperes (simply put, watt = ampere x volts) on the 3.3V and 5V rails of the power supply and allocating relatively less on the 12V rails. Now, modern PCs use the 12V rail for most of their components. Therefore, this technique allows the makers to rate the PSU’s power output higher than what the PSU can actually provide the PC.

You could easily verify this by comparing the label of a generic power supply with the label of a “brand name” power supply, say from Enermax, with similar rated power. The brand name PSU will have a much higher amperage at the 12V rails than the generic power supply.

In short, don’t even think of buying a generic power supply if you’re planning to build a gaming rig.

Cheap power supplies are less efficient.

Generic PSUs are cheap because they don’t have the same features as their brand name counterparts. They won’t have power factor correction and they will not reach the same amount of efficiency as the latter.

The thing about efficiency is that even just a 10% difference in efficiency of power supplies can affect your electricity bill, especially if that computer is on 24/7.

Cheaper power supplies are also more likely to fail than their counterparts because the former is made of lesser quality (cheaper) components. Reliability is an important factor for PSUs: anybody who has tried to troubleshoot a PC with weird problems (won’t boot up, suddenly shuts down) will know that it’s hard to isolate the problem to the PSU. (Not to mention that PSUs blowing up can damage the more expensive parts of the PC.)

Let me end this post by saying that there is nothing wrong with getting a generic power supply if your PC is the stereotypical “pang-Word at pang konting Internet lang” family PC. But if you’re planning to add some power hungry components like video cards, or if you’re planning to have your computer run 24/7 downloading torrents, you might want to invest in slightly more expensive PSUs.

As a side note, if you’re planning to build a PC (or if you don’t have an APC UPS), you can use eXtreme Power Supply Calculator to estimate power usage. Just remember that the wattage there would only be applicable to non-“cheating” power supply makers who rate their PSUs properly.