Sunday, October 14, 2007

The IT Workforce in Sri Lanka

The IT workforce in Sri Lanka mainly comprise of IT Managers, Business Analysts, Project Managers, Software Architects/Software Engineers/QA Engineers, and Hardware/Network/System Engineers. Almost all of these categories are highly in demand, but short in supply.

Hardware, Network and System Engineers demand at least a Diploma in IT and several years of hands on experience; Software Engineers, Architects demand a Degree in IT and extends over to Masters level as well. IT Managers, Project Managers are expected to have at least a Management Degree along with an arsenal of communication and management skill sets.

When considering the demand and supply of the IT workforce, an obvious observation is that Sri Lanka doesn’t have the in-house capacity to produce the required IT workforce to meet the demand; This is the case, even when all the IT Engineers graduated from all our universities, combined with private institutions output are taken. However the quality of this small output can be considered to be on par with (if not better than) global IT workforces.

The Government has a huge responsibility in implementing a national strategy that will increase the annual IT workforce output continuously. Building new Universities specializing in IT, expanding existing universities to produce more IT workforce, encouraging/helping private IT institutes, introducing more IT related subject matter at school level, as well as to broaden the IT awareness among the public in general, are some of the measures that can be taken by the government. India’s national IT strategy and its success gives us a good indication of what needs to be done by the government to increase the IT productivity as a nation.

Universities have the responsibility of improving the quality of the IT workforce produced, as well as to broaden the IT awareness of the general public. Universities need to play a larger role in inspiring the younger generation at the school level, and to help them understand the opportunities available in the IT industry and the many benefits it can provide. In my opinion the current inspirations and ambitions towards the IT industry, at the school level, is very limited and needs some major uplifting. This can be done by Universities, by organizing more interactive sessions, workshops, presentations etc. with schools.

Also the Universities have a major role in improving the IT awareness of the general public and to cultivate a more favorable perception towards IT. I feel that the current IT exhibitions etc. done by the Universities are too technically oriented, and need to focus more on the people aspect and the business aspect of IT, demonstrating the opportunities available, the financial benefits, how IT is actually helping Sri Lankan businesses to grow etc. This improvement in perception, cannot be done alone by the Universities, and needs the government support.

The IT companies are the places where the IT workforce will actually engage in productive work and produce tangible benefits. Hence they have a high responsibility in grooming the IT workforce to reach global quality and efficiency standards. This can be done by having quality training programs, continuous improvements plans etc. IT companies also have the responsibility of guiding the Universities in bridging the gap of the produced graduates skills and the actual industry demands. For example the IT industry demands very strong team playing skills along with technical skills, so producing graduates with only a high technical skill set will not suffice. Programs like “Are-You-Ready” at the University of Moratuwa, helps in this matter.

Wednesday, September 5, 2007

Personal Firewall Nightmare

Recently I've been looking for a good personal firewall for my Windows XP laptop. My requirements, in order of importance, were as follows;

1. It should be stable! (no BSOD crashes please!)
- I don't mind having to turn off advanced application behavior monitoring stuff if it makes the firewall more stable; mostly these advance stuff cause too much instability than benefits.

2. It should be light weight.
- firewall is a background tool; it should behave as one!.. I don't want it to eat my CPU cycles or keep crunching my disk. I don't want a big bloated security suite forcing protection on me; at least I should be able to enable/disable the modules I want.

3. I should be able to simply enable/disable the firewall completely with a click of a button.
- hey it's my computer! Don't try to be too smart 'n force protection all the time! there are plenty of times when I simply need the firewall off my back.. completely.

4. ability to tell the firewall that an application is 'trusted', with a single click.
- I shouldn't have to answer multiple popups for the same application; hey, I told you once.. 'I trust firefox!'.. don't nag me again. of course the ability to edit that rule later and fine tune it if required, is a definite plus.

5. showing useful information like which applications are sending/receiving data at which rate etc.;
- I need to know which applications are sending data or eating my bandwidth behind my back.

Are these too much to ask from a firewall? I don't think so. These requirements are pretty basic, straightforward and what most people would need too.

* I'm not at all worried about being 100% secure; If the world's smartest hacker is going to hack me, he'll hack me anyway. What I don't need is my PC crashing on me while I'm doing some important work; but thats exactly what happens when firewalls try to be perfect and add all the security measures in the world! KISS - Keep It Simple Stupid!

The Painful Discoveries:

* ZoneAlarm Pro
- stable; easy to use.
- $$; takes too much CPU 'n crunches my disk too much.. hey I need my resources for productive work. also not much useful stats. (uninstalled after a week)

* Comodo Firewall 2.4
- free; easy to use; useful stats.
- too many BSODs. (conflicts with "folderlockbox"); takes too much CPU 'n crunches my disk too much. (uninstalled after a week)

* Jetico Firewall v1.x
- free. stable. light weight.
- way too complicated rules.. even for me! (I'm a software engineer!); they just have screwed up badly trying to create the "worlds most flexible rule set!".. (uninstalled after 2 days)

* Sunbelt Personal Firewall
- light weight; easy to use.
- $$; too many BSODs!! (uninstalled after a day!)

* Prisma Firewall
- ??
- didn't detect my USB ADSL.. didn't allow me to browse untill I uninstalled it! (uninstalled after 5 mins!)

* GhostWall
- free; very stable. ultra light weight!
- no application rules; less configurable. (uninstalled, but might end up using this again)

and I'm still looking for a decent firewall! ...

Wednesday, August 29, 2007

x264 (H.264) encoding for Pocket PC

I encode a lot of my music videos for viewing on my PPC. I used to encode to wmv until recently trying out x264. It gives much better quality at the same filsize. However you'll need a player such as CorePlayer v1.1 (commercial) to play them. (Anybody know of any good open-source PPC player for x264?)

I use MediaCoder (superb new open-source tool) for encoding. here are the settings I use:

- size=320x240; fps=15
- Audio: Nero HE-AAC, Target Quality; quality=25 (20-25 ok)
- Video: H.264,mp4, x264, quality based, quality=45 (40-50 ok)

video encoding command line:
".\codecs\x264.exe" "$(SourceFile)" --progress --no-psnr --no-ssim --thread-input --keyint 250 --bframes 3 --level 51 --direct spatial --crf 27 --threads auto --subme 5 --ref 1 --weightb --trellis 1 --me hex --merange 16 -o "$(DestFile)"

audio encoding command line:
codecs\neroAacEnc_SSE2.exe -q 0.25 -he -ignorelength -if - -of "$(DestFile)"

(please share any settings you might be using for your encodes..)

Friday, August 24, 2007

MediaCoder - the best video conversion,encoding,transcoding tool

If you have tried out video transcoding, you know how painful the task can be.

Commercial tools are easy to use, but the formats supported and their configurability aren't very good. I have used BlazeMedia, MPEG4 Direct Maker, Xilisoft Video Converter 3, divX convertor etc, which are good to start with, but soon you'll find limitations.

Free tools are much more configurable, but have steeper learning curves, and their own limitations. Another problem is that most tools are developed by single programmers in their free time, hence not actively developed and improved.

VirtualDub , the mostly used free tool, is pretty good, but supports only VFW and doesn't support DirectShow filters, which limits it's input video flexibility. It's such a pain when it says it can't open a file or crashes on you. Recently I came across a Xvid file which played perfectly in Windows Media Player (using ffdshow), but crashed VirtualDub. I'm not sure how difficult it is for VirtualDub to support DirectShow, but it's a badly needed feature for sure.
Other free tools I have used are "SUPER", which is easy to use but less configurable, "StaxRip" for x264 encoding, etc.

Recently I came across MediaCoder, which is open source, free, and is actively developed. It has a bit of a learning curve, but it's simply the best tool I have used so far. It's unbelievably configurable with almost all parameters of all codecs being configurable, and seems to be quite fault tolerant and stable too. It's actually a front-end for many other command line tools. It's surprising that it took me so long to know about this tool, and even a google search for encoding tools doesn't show this. So if you are into video transcoding, MediaCoder is definitely worth a try.

Please share your knowledge about any other tools, encoding formats, encoding settings etc.