Google Analytics

Search This Blog

Friday, April 30, 2010

Retina-X Studios' Mobile Spy - Mixed Feelings

I had been a vice president of marketing of a startup software company before, and if the management had insisted that I used a blackberry phone with Mobile Spy installed, I wouldn't quit the job, but I will buy another mobile phone side by side.

Even if you had bought your kids similar phone, very high chances they will try to save enough money to invest in another phone for a more personal experience.

Despite its noble intention, I do feel that Retina-X Studio's Mobile Spy is good for the economy as such that:
  • Some companies will invest in it
  • People who feel that privacy has been invaded will invest in other phones

This is similar to the concept of Apple computer where if you had an Apple computer, high chances you will have a PC side by side.

Wednesday, April 28, 2010

CIMB Group wins Asian Banker award for best risk management project

SAS, the leader in Business Analytics software and services, on Monday 20 April won a joint award with CIMB Bank for the bank’s implementation of SAS® Credit Risk Management.

According to Dato’ Dr. Gan Wee Beng, Deputy Chief Executive Officer, Group Risk Management, CIMB Group, the recognition reflects CIMB Group’s commitment in fortifying credit risk management.

He says, “The bank has always viewed comprehensive and advanced credit risk management as a key area of differentiation in its effort to live up to its slogan, ‘Forward Banking’.”

Check out details.

Indonesia’s XL Axiata Chooses Juniper Networks SRX for Major Gateway Upgrade

Juniper Networks’ high-end firewalls have been deployed by Indonesian mobile service provider PT XL Axiata Tbk (XL) – which is 86.5% owned by Axiata Group Bhd, and 13.3% by Emirates Telecommunications Corp (Etisalat) - to expand the capacity of its Internet access gateway infrastructure.

Implementation of the award-winning Juniper Networks SRX5800 Services Gateways paves the way for XL to continue the aggressive expansion of its customer base and support rapidly rising demand for data services.

PT XL Axiata Tbk (formerly PT Excelcomindo Pratama Tbk), also known as XL, is an Indonesia-based mobile telecommunications services operator. The operator's coverage includes Java, Bali and Lombok as well as the principal cities in and around Sumatra, Kalimantan and Sulawesi. XL offers data communication, broadband Internet, mobile communication and 3G services over GSM 900, GSM 1800 networks. XL was the first private mobile services operator in the country, starting commercial operations on 8 October 1996.

Check out details.

Microsoft Certified Professional Developer Training for RM 6,500 (Guidance View)

Guidance View is currently having promotion, offering Microsoft Certified Professional Developer (MCPD) Fast Track training course for just RM 6,500.

Check out details.
About Guidance View:

Guidance View is purely a “Made in Malaysia” training provider established in 2001, located right across Mid-Valley Megamall, Mid Valley City, Kuala Lumpur.

Strengths:

1.) Microsoft – we are Microsoft Gold Certified Partner for Learning Solutions (CPLS)
  • Infrastructure
  • Development
  • Database
  • MS Office Trainings
2.) ORACLE-SUN – we are Authorized SUN Education Centre (ASEC)

3.) EPI – we are authorized to provide Data Centre and IT Management trainings.
  • Data Centre Tracks
  • IT Management Tracks

4.) IBM – authorized training provider.

Other Leverages:

1.) HRDF – approved training centre. ATP by PSMB.

2.) Prometric|VUE – authorized testing centre.

3.) MDeC Programs – closely working with MDeC with various programs ( Job Camp, USP, TTT, Career Development Program-Professional Development)

Please visit the website for the list of trainings that we have. Besides IT trainings, Guidance View do have soft skills training, covering management, finance, leaderships, planning and so much more and they also offer lab rental in case you want to organize any trainings or events.

Thursday, April 22, 2010

Agricultural Bank of China Chooses Juniper Networks for New National Backbone

Juniper Networks® announced that Agricultural Bank of China Limited, the country’s fourth largest lender, has deployed Juniper Networks M Series Multiservice Edge Routers in a new, nationwide backbone network to support its internal operations. Juniper’s M Series provide the bank with a high-bandwidth, low-latency and highly reliable platform upon which to drive increased operational efficiency.

The Agricultural Bank of China (ABC) is the last of China’s Big Four lenders to be prepared for public listing. It was transformed into a joint stock-company in January 2009 and is expected to launch an initial public offering later this year. With its strong presence in China’s rural economic sector, the ABC operates the country’s largest branch network – comprised of 24,064 branches, sub-branches and outlets that serve over 350 million customers – driving the need for a large, high-performance backbone network.

A matrix of Juniper Networks M320 routers have been installed at ABC’s head office to form the network core while pairs of Juniper Networks M120 routers, deployed at 36 nodes across the country, form an access layer connected to the core via redundant ATM links. This new high-performance infrastructure replaces a legacy network that, according to ABC, was too inflexible to meet its future requirements and also carried high maintenance costs.

Check out details.

Huawei Symantec Unveils OCEANSPACE and SECOSPACE

Oceanspace and Secospace are essentially hardware products (with software) that address dynamic scalability and green IT.

The ‘Oceanspace’ range of storage products for the Malaysia market were specifically designed to overcome the long-time bottleneck issues faced by Small Medium Enterprises (SMEs) in their storage space and architecture – where databases, emails, files and ERP applications are demanding more and more space. ‘Oceanspace’ encapsulates a converged storage strategy that mitigates complicated IT maintenance and energy-consumption issues, and keeps cost low by combining capacity and security into a single overhead.

Oceanspace series is essentially NAS.

Meanwhile, ‘Secospace’ is a new-generation hardware firewall range that works seamlessly with enterprise storage system to protect data during the peaks of network traffic, driven by both traditional applications (data transmission, VoIP and virtual private networks) and Internet-based services (such as net surfing, online games, video calling and social networking).

Secospace series is essentially firewall.

Therefore, the combination of these two products targets the growing markets of cloud computing and virtualization.

According to IDC,“Cloud Computing in an enterprise setting promises flexibility, cost optimization and faster turnaround. Worldwide IT spending on cloud services is set to reach USD42 billion by 2012 as this virtualization technology offers a much cheaper way for businesses to buy and use IT, and store data.”

The good news at local is that Jaring has just announced an initiative to create nationwide cloud computing facility.

The even better news is that Microsoft is taking cloud computing seriously, something which Google hopes to lead over Microsoft. Windows Azure was announced by Microsoft during the launched of Visual Studio 2010 and this suggests that cloud computing is going to take a lot of momentum.

A press conference was held, where it was announced that Oceanspace and Secospace will be offered to the local market via one of its appointed Malaysian IT distributors, ACA Pacific Technology (M) Sdn Bhd (‘ACA Pacific’).


(From left to right):Alan Goh, South Pacific Solutions Manager of Huawei Symantec, Eric Ho, Storage Business Manager of ACA Pacific and Jay Chan, Product Manager of ACA Pacific

Despite the large potential, ACA Pacific is targeting SME market as well. And thus, even small cloud can benefit from these two products.

SecospaceOceanspace
UserPrice Range(RM Per System)UserPrice Range(RM Per System)
Small Medium Enterprise (SME)2, 000 to 100 ,000 Small Medium Enterprise (SME)20,000 to 500,000
Large Enterprise100,000 to 1,000,000Large Enterprises500,000 to 5,000,000

Check out details.

Andrew Peters, Singapore’s resident social media marketing guru, moves on to Heaven 2.0

Andrew Peters, Singapore-based social media marketing guru, passed away at 4.45am (NZ time) on Tuesday 13 April in Christchurch in his native New Zealand at the age of 47, after losing a secret battle with cancer.

With 25 years’ experience in publishing, public relations, sales and marketing for leading industry brands, he worked in Sydney in the second half of the 1980’s with ICL and Wang Computers, then with Anixter, Australian Consolidated Press and Project Media in the 1990’s, before setting up a branch in Singapore in 1999 for public relations agency McCorkell & Associates, as Vice President, Asia Pacific.

He was laid to rest on 16th April in Christchurch, and his life and work is to be commemorated at a gathering of friends and collaborators in Singapore on 24th April.

Check out details.

Tuesday, April 20, 2010

What's New In CIP 500

I was at the Cradle Info talk today briefly. Just to check things out.

According to the speaker (Jonathan) about CIP 500.
  • CIP 500 is awarded for companies with at least 51% of Malaysian
  • The clause about 3 years track records only applies to the particular product which you want to use to apply for CIP 500. Which means that any 20 years old company can still be eligible for CIP 500.
  • CIP 500 will only award up to 85% of the total amount, you have to invest the 15%.
  • Since its inception (Jan 2010), there were too many applicants while there isn't a single application has been approved to get the grant yet. Now is April 2010.
  • CIP 500 application can take a longer time that expected, one of the surety is that it will take at least 90 days upon the date of completion-of-application and not application. Means that the consultant will grill through your application until they certify that your application is certified as fit to be presented to the committee.It is only from that moment onwards which the 90 days count will start.
It is also interesting to note the almost full house attendance of the talk consists mostly of older adults. There are even some foreigners. This kind of suggests some indications about the state of the market.

Thursday, April 15, 2010

uCertify 20% Promotional Code for Spring Session

Ok, great news.

Currently, uCertify is celebrating and welcoming spring with a Spring Sale. uCertify is offering a 20% discount on all Prepkits. A user can select from extensive selection of over 200 PrepKits to help prepare for their IT certification exam(s).
  1. Duration of Sale: Monday, April 8, 2010 and ends on April 20, 2010.
  2. To avail sale price: Type 'SPRING' as the discount code during checkout.

For more details, check out this URL.

More on uCertify.

Tuesday, April 13, 2010

Ariantec Boosts Up IT Capability with Australian Support

Ariantec Global Bhd, an ACE listed ICT company with core business activities on the following areas:
  1. Network Infrastructure Optimization
  2. Security Solution
  3. Professional Services
What I really admire about them is the availability of Ariantec Maintenance Support and Services (AMSS), which is a support services provided 24 x 7 for network infrastructure support.

Today, they announced a boost up of next level partnership with existing vendor Australia-based Exinda, who is a major global brand in the IT area of Wide Area Network (WAN) optimization and application acceleration platforms.

Ariantec and Exinda started their vendor-reseller relationship since 3 years ago, thanks to the business match up efforts exercised by Austrade.

Today's boost up next level partnership which is accompanied by a Memorandum of Understanding (MoU) signing witnessed by Austrade's Senior Trade Investment Commissioner, Mr. Paul Martins.

Following this MoU, Ariantec and Exinda will be able to work more closely with each other on the technology side, much to technical collaborations on a more 'intimacy' basis rather than just trading. This can be recognized in terms of solutions and product integrations, best practices sharing, joint R & D efforts and etc.

The idea of WAN optimization is really about complementing the slow network infrastructure for business purposes, particularly in Malaysia. The network will always be slower if no optimization is done on it, due to unregulated usage of networking resources.

This is particular true when an organization has a WAN network which consists of the HQ and branches over an given geographical area. By implementing WAN optimization and application acceleration solution, such organizations are able to optimize their investments on leased line network infrastructures and there is a also a trend happening which customers may opt to switch from leased line network to public sharing network for better cost saving.

Exinda's products come into the picture of WAN optimization and application acceleration in three major benefits:
  1. Provide visibility using monitoring tools.
  2. Provide control such as regulating capacity.
  3. Provide optimization in terms of acceleration and prioritization.
Exinda products work by having your to-be-optimized network infrastructure merging into a single point of access and control which is called the Exinda Service Delivery Point (SDP).

According to Exinda's CEO (Con Nikolouzakis), WAN optimization is a 2.5 billion dollar business.

Ariantec hopes to leverage on such collaboration to generate a 30% growth and is targeting the financial institution as the more optimistic market sector.

Monday, April 12, 2010

Juniper Networks Announces Definitive Agreement to Acquire Ankeena Networks; Expands Junos-Ready Software Portfolio

According to CIMI research, 22 of the top 23 service providers are planning or building content delivery services. In addition, most managed video delivery companies (cable, satellite, IPTV) are developing 3 screen solutions. As CIMI research indicates that video will account for 81 percent of network traffic growth by 2014, Juniper’s service provider customers have to be ready to efficiently store, distribute and deliver rich media at scale.

With existing relationships with the world’s top 100 service providers, Juniper is working closely with customers to deliver high-performance new media solutions optimized for the next-generation service provider network. Ankeena and Juniper partnered in 2009 to develop innovative solutions for new media delivery - solutions that ensure a superior television-like viewing user experience and significantly improved economics.

Juniper’s acquisition of Ankeena Networks - leveraging Ankeena technology and Junos Ready software, will make Juniper’s product portfolio highly competitive in existing and future CDN build outs and 3 screen media delivery solutions (mobile devices, PCs, STBs) in alignment with Juniper’s vision for the “New Network”. The Ankeena technology makes Juniper a leading provider and competitor in this fast-growing market.

For more information about today's news, please refer to the following resources:

Check out details.

Visual Studio 2010 Launching At Sunway Convention Center

Ok, I checked myself into the launching of Visual Studio 2010 by Microsoft.

According to speaker Dave Mendlen, that his team has been working on VS 2010 for the past 3 years.

Basically, Visual Studio 2010 will just have more features which include:
  • Multi monitor support for developers. Now you can open code in one monitor and the user interface for the same object in another monitor.
  • Zoom in and out capability
  • Intellisense support for frameworks like JQuery and AJAX frameworks.
Above all, Visual Studio 2010 provides libraries for Windows 7 development which include:
  • Multi-touch support
  • Animation support
  • Ribbon support
All these are implying that Visual Studio 2010 is going all out for Windows Presentation Foundation, a new UI (user interface) technology from Microsoft which provides more flexibility for developers.

The best part of the keynote is about cloud computing.

Cloud computing is a concept where applications get to scale dynamically (based on infrastructure). And Microsoft is introducing the thing called Windows Azure.

Windows Azure is a platform for cloud computing, in short it is about a platform which you have access to a large number of computers or servers.

Speaker David Chappell explains a new wave coming. The way I see it, Windows Azure is going to be a hit because of the following reasons:
  1. First of all, Visual Studio is considered to be the most successful software development tool in the world and with integration with a cloud computing, it means that now with a few clicks, any developers can develop application for cloud computing. In this manner, integration is king.
  2. Windows Azure only charges for every hours when cloud computing resources are being used, otherwise, there is no charge for hosting. This means that it is like having credit card, you only use when requires and only pay for the usage while you have the credits at your disposal all the time.
  3. For startups which wanted to try luck on large scale applications, there is no need to concern about data center.
  4. Applications which requires on-demand large scale computing resources or parallel computing resources such as artificial intelligence, 3D imaging and etc
  5. A development team can become smaller and smaller, it fact, it may even be possible to run an IT firm with large scale deployment all by yourself.
All these are painting a better and practical reality of on-demand, never has on-demand been more threatening than now. This is because if Windows Azure runs well, it may scale down other things like:
  • Web hosting - because lesser investments will be made to acquire hosting which may not be fully utilized
  • Web development - web development used to be more pain than desktop development because you need to have more components like server, web server, hosting and etc. Now with Visual Studio integration with cloud computing platform, you can create web application at a faster pace.
With Windows Azure, just think about on-demand.

On-demand large scale, on-demand parallel, on-demand storage, on-demand high reliability and on-demand integration.

As David Chappell puts it, the cloud computing is going to be a new wave because it is a new computing platform after the mobile phone, server, PC, minicomputer and mainframe.

Friday, April 09, 2010

Troubleshoot CPU Utilization Using Profiler (Windows Software Development)

This applies to Windows platform.

To determine bottlenecks, you need a profiler.

Download

Visual Studio Profiler is only available from Visual Studio® Team System Development Edition or Visual Studio Team Suite

It is not available under Visual Studio Professional Edition.

However, there is a free one provided by Microsoft itself and is called 'Visual Studio 2008 Service Pack 1 Stand-Alone Profiler'. It is not integrated with your Visual Studio and hence it will only profile exe instead of the source code, you just need to compile the program into exe and then run with profiler.

Since it is not integrated with Visual Studio, it will not be able to open the generated output file (.vsp), you need to generate vsp file into csv files which you can then open it using Microsoft Excel.

Download here.

To install it, just run the exe file in order to install it using GUI.


And installation is successful.


The profiler and associated files will be installed at the following location (with assumption that you have installed Visual Studio 9.0 on C:\Program Files\Microsoft Visual Studio 9.0\)

C:\Program Files\Microsoft Visual Studio 9.0\Team Tools\Performance Tools

After installation is successful, let's try to do profiling on the this sample code (VB.NET Visual Studio 2008 SP1).

Also refer to 'How to reduce CPU Utilization (Windows Software Development) ?'

Before proceeding to using profiler, please make sure you run CPU-Sample-2.exe and click 'Generate Data' first (so that data is generated to the database). Then close the program. And before that, please make sure that appropriate database and tables are created.

Running Profiler

You have to run it using command prompt.

If you are using Windows Vista, make sure 'Run as administrator'.

1. Set path

set path=%path%;C:\Program Files\Microsoft Visual Studio 9.0\Team Tools\Performance Tools

2. set the appropriate environment variables

'VSPerfCLREnv /sampleon'


3. Go to the application exe directory and start sampling. Save the output file as 'CPU-Sample-2-1.vsp'



Start 'Non Optimized' and run 'Run using custom threadpool'.

4. Make sure the process is finished running.


Then close 'CPU-Sample-2.exe'

5. Shutdown 'VsPerfCmd'

'VsPerfCmd /shutdown'

6. Sample off

'VsPerfCLREnv /sampleoff'


7. set path and create symbols repository (Assuming that you have created a location in the D drive D:\Workspace\Symbols).

'set _NT_SYMBOL_PATH=srv*D:\Workspace\Symbols*http://msdl.microsoft.com/downloads/symbols'


If you have run it for the first time, it will be downloaded to D:\Workspace\Symbols automatically.

8. Generate the report based on the '.vsp' file.

'VSPerfReport /U CPU-Sample-2-1.vsp /summary:all'


A set of cvs files will be generated.


9. Open generated report file (cvs) using Microsoft Excel.

Repeat the same process by running the 'Optimize Code', save the report file as 'CPU-Sample-2-2.vsp' and then generate another set of cvs files.

Analyzing Reports

Open CPU-Sample-2-1_FunctionSummary.cvs (Non-optimized)

Sort the record according to 'Inclusive Samples %' and 'Exclusive Samples %'

You will notice that what you can control (the codes for CPU-Sample-2) are having high CPU utilization.
  • CPU_Sample_2.Form2.RetrieveTransDB(class ADODB.Connection,class CPU_Sample_2.clsCustomer)
  • CPU_Sample_2.Form2.ReadData(class ADODB.Connection)
  • CPU_Sample_2.Form2._Lambda$__2(object)
  • CPU_Sample_2.Form2.TestRoutine2()


Now, compare with CPU-Sample-2-2_FunctionSummary.cvs (Optimized)

You will notice that those in the percentile of 40th to 50th will no longer be those which we have coded in CPU-Sample-2.exe.


While those four bottlenecks (listed above) discovered in CPU-Sample-2-1_FunctionSummary.cvs now have had the CPU utilization reduced.



More Reference

Refer to this URL for more reference.

Coming Soon To Your iPhone: Junos Pulse

(locally attributable to Wan Ahmad Kamal, Country Manager, Juniper Networks Malaysia):

“Some great news for enterprises came from Apple today in the form of the iPhone OS 4 announcement. In addition to a myriad of new and exciting end-user tools, including over 100 new features such as games and multitasking, Apple is taking a few steps to improve the iPhone’s ability to help enterprises manage the information flowing to and from their networks. One such feature will be the OS 4 support of SSL VPN applications, including Juniper’s.

Apple held a press event at its Cupertino, CA headquarters (April 8) to offer a sneak peek at the latest updates to the iPhone OS 4 software. During this event and in Apple’s press release, Apple mentioned that the new iPhone OS will support Juniper’s SSL VPN. The application that Juniper is developing for the iPhone OS 4 release is Junos® Pulse. What this means is that future support for Juniper’s industry leading SSL VPN and Junos Pulse will come to the iPhone. Today’s announcement is obviously very exciting for us – we are working hand-in-hand with Apple to pioneer SSL VPN support on yet another mobile platform, and this is a significant announcement for our enterprise and service provider customers, as we can now have clear discussions around SSL VPN, Junos Pulse and the iPhone with them.

A little background on Junos Pulse: It is the industry’s first downloadable client software that provides secure connections across smartphones, notebooks, netbooks as well as non-mobile devices to a broad range of corporate applications. Leveraging the world’s most scalable SSL VPN technology, Junos Pulse ensures a better, simpler experience for users where they may be. At Mobile World Congress 2010, we announced Junos Pulse support for Microsoft Windows phones and Nokia Symbian OS devices.

When fully released, OS 4 will have integrated, world-class SSL VPN capabilities versus just supporting IPSec VPNs. All the advantages of an SSL VPN, decreased deployment and support costs while delivering identity-enabled, secure mobile network access, will be available on the iPhone.

At Juniper, we talk a lot about “The New Network” and taxing load new, ubiquitous mobile devices and video place on the network infrastructure carrying them. However, the problem with protecting those networks, and the sensitive information transported on them, is just as paramount. Today’s announcement is the first step in a process that will assure a user’s corporate managed and personal iPhone meets corporate policies prior to network access. This means increased productivity by enabling the secure access of company applications and assets via their iPhones.”

Thursday, April 08, 2010

How to reduce CPU Utilization (Windows Software Development) ?

The topic of CPU utilization is pretty challenging. I researched this for the benefits of the project and my team.

This applies to Windows platform.

Definition of CPU Utilization ?

Percentage of elapsed time that all of the threads of this process used the processor to execute instructions. An instruction is the basic unit of execution in a computer, a thread is the object that executes instructions, and a process is the object created when a program is run. Code executed to handle some hardware interrupts and trap conditions is included in this count.

Refer to this URL under 'PercentProcessorTime'


The screen capture above shows total CPU usage is 30%. This is the total 'PercentProcessorTime' of both processes and services.

Thus, CPU utilization is actually a measure of duration.


Multithreading Works In Queue

Understand that Multithreading works in queue. If you start a thread process using Threadstart or default Threadpool, everything will eventually being managed by the main process queue (which queued processes will be subjected to time-slicing). Some people called it the message pump or message loop, others call it main loop.

Number of Processor

Understand that the number of active thread (foreground thread) at a single time must not be more than the number of processor.

This implies that even though we are talking about Multithreading, but it doesn't mean that you can create as many threads as you like or when requires. For instance, if you want to generate a report of 30 days, you can't actually create 30 threads at a single time to process the data into reports and hope that you can calculate one month's report in a split second.

The fact is that if you have a duo core processor, you should only have two active threads (foreground threads) at a single time. And if you create more than two active threads, you will create bottlenecks.

Number of active threads (foreground threads) must not be bigger than the number of processor. Background threads(like those executing threads being executed via default Threadpool.) are those with lower priority than foreground threads.

Refer to this URL.

Default Threadpool

This explains why default Threadpool (system.threading.threadpool) is only suitable for short processes.

--> Because if even though Threadpool starts process requests in a queue, it doesn't have intelligent to evaluate bottlenecks in the main queue before launching the next queued process request. In other words, if you have started 50 threads (process requests) via Threadpool, these 50 requests will be started one after another immediately. It will not take the first request in the queue, start a thread to process it and then wait for the CPU utilization to be proper before starting the next request in the queue.

Thus, this will create a bottleneck because you should only have 2 threads running at a single time. And when there is bottlenecks, CPU utilization will go up (refer to the definition of CPU utilization).

But then why there is this default Threadpool ? It is useful when these 50 processes are short processes, means that if each of these 50 processes can finish within a very short time, then bottleneck can be avoided.

But when these 50 processes require longer time to finish what should you do ?

Custom Threadpool

The solution is to create custom Threadpool.

A custom Threadpool can be implemented in many creative ways, the idea is create thread using 'Threadstart' and implement a mechanism to limit the number of active threads equal to or not more than the number of processor available. (i.e Duo Core = 2)

Benchmark

What percentage level of CPU utilization is considered acceptable ? Based on Photoshop Image Merge automation process, single threaded environment (VB6), and ISO-recorder and even Adobe's LogTransport2.exe where ....


Adobe Photoshop performing image merge.


VB6 environment (single thread environment)


ISO recorder creating ISO image.


Adobe's LogTransport2.exe collecting data

25% to 50% is considered good enough.

Referring to this URL, 75% is considered to be having bottlenecks (or long queues).

Thus, if your CPU utilization ever reaches 75%, you need to optimize it.

CPU Utilization Vs Bottleneck ?

Therefore, if your CPU utilization is high it means there are bottlenecks. By reducing bottlenecks, you will reduce CPU utilization.

How to reduce bottlenecks ?:
  • Implement custom threadpool.
  • In terms of database, use ADO.NET instead of ADODB(especially for insert operation).
  • Reduce object and property deferencing.
  • Improve algorithm such as reducing the number of loops
  • A good way of quick fixing (without improving the algorithm or processes) of high CPU utilization is to slow down the processing.
Sample Code:

Refer to sample code (VB.NET Visual Studio 2008 SP 1).

This code will simulate side by side, on how two set of codes (optimized and not optimized) both which will perform the same objective, affects the CPU utilization.

Please refer to 'Document\UserSetupGuides.doc' in the zip file for details.

This sample successfully simulated that..

With Non optimized code:
  • Run using custom Threadpool, max CPU utilization = < 40%
  • Run using default Threadpool, max CPU utilization = < 70%
with Optimized code:
  • Run using custom Threadpool,max CPU utilization = < 20%
  • Run using default Threadpool,max CPU utilization = < 30%
Stay tune on next topic on how to discover bottlenecks using profiler.

Multimedia University Student is SAS Malaysian ‘Student Ambassador’

26-year old Somaye Gharibvan will be representing Malaysia at the upcoming SAS Global Forum in Seattle, Washington from April 11th to 14th.

The second year Masters of Business Administration (MBA) student is amongst just nine (9) other student ambassadors selected from a global basis, as SAS Student Ambassador from their respective countries, to present their research thesis on Analytics at the yearly SAS Global Forum.

Dr Wan Fadzilah, Dean, Faculty of Management says, “The mature teaching infrastructure of MMU as a private tertiary institution has contributed to the success where students have good access to excellent business-IT applications and learning facilities. We are very proud of Somaye for her success in the stiff competition to be a SAS Student Ambassador.”

Tan Siew Ling, Academic Program Manager of SAS Malaysia says, “Actually this is a significant 3-party achievement - for Somaye, MMU and SAS Malaysia, as Somaye’s win distinguished her from the 41 other participants worldwide.”

“It has been an SAS annual tradition for the past 35 years that only 10 students are chosen to present their research thesis at the yearly SAS Global Forum. This program recognizes students’ research leveraging SAS Business Analytics technologies in some of the most innovative ways that can benefit various commercial industries, as well as in the areas of Research and Development.”

Check out details.

Wednesday, April 07, 2010

National University of Singapore Migrates WAN to Juniper Networks

Juniper Networks® announced that the National University of Singapore (NUS) has migrated its wide area networking (WAN) infrastructure to robust routers running the Junos® operating system. Deployment of Juniper Networks' MX-Series Universal Edge Routers and M-Series Multiservice Edge Routers has enabled NUS to simplify its WAN while increasing capacity and reliability and also paving the way for the use of IPv6.

NUS has experienced a huge increase in IP network traffic in recent years, particularly in delay-sensitive voice and video payloads. Unlike most other universities, however, NUS operates an international network with points-of-presence in Hong Kong, Los Angeles, and provides the Singapore Open Exchange (SOX), a carrier-neutral Internet exchange point for the local Internet community to exchange traffic freely.


Check out details.

The Next Gold Rush - Don't Miss It

Check out my earlier prediction on mobile computing trends.

And also my appreciation of what came out of Nokia Innovation Day on Forum Nokia (5 April 2010).

Make no mistake, the business world is a tough one and the software business is tougher because today I can be selling 1 million copies of software, next year I am obsolete, maybe because some big boys have made something free again. But we can't really blame them, without technologies from big boys, big risks taker-entrepreneur like me will not even stand a chance of making any difference. Thus, we have to give and take.

The fact is that the only way to make money is to have people to buy something, and that don't assume that if you can create a great software or product (today), someone is going to buy it tomorrow. It is all about trends.

In Malaysia, I would say the biggest cake is in accounting software, payroll and that sort. The general idea is that in a typical company, you will need all kind of software, but most will only pay for a few.

I think the trend of mobile apps where people buy apps at low cost may boom soon, thanks to iPhone's AppStore, now we are seeing everybody is following suit.

But this gold rush (if it comes true), will not ensure a longevity income for you. Because the moment it reaches peak, there is basically not much money margin to make anymore. Unless you have a game which people like it so much that you keep creating a new version, but this belongs to the big boys.

So, let's wait for others to announce their AppStore, whilst Nokia has just launced N900 (alongside its OVI store) which is still pretty much a luxury, I still think that software developers have a timeline of 1 to 2 years to prepare for the mining.

Start building your passion application for mobile phones and hopefully you can reap a big chunk of cash in this coming 2 years. It is counting every second.

This is your another chance (at least) since dot-com.

Maybe you want to retire after this war.

And if you have succeeded (after these 2 years), don't go and buy luxuries, switch to bicycle. Lead a simple and less stressful life. However, you must promise me to keep working for good. Don't get wasted on the beach or at The Library.

If you are employed full time, secretly work out something during the weekends. Or just sleep, eat and play less (for 2 years).

I can assure you that it is going to be painful, you have to bear it.

Whenever you feel like giving up, don't. Come back to read this blog or send me email (team@it-sideways.com).

Good luck!

Tuesday, April 06, 2010

Nokia N900, Maemo, MeeGo, WRT, QT and Trends

Ok, I was at Nokia Innovation day held at Jalan Ampang (management house) on 5 April 2010.

It was fun to meet up with some old tech nerds that I have known for years. And these people are still doing programming. That's good to hear.

The event was kicked off pretty much on time and I think the co-organizers Nokia and MDec organized it well, thumbs up!

Just a quick appreciation about the speakers from Nokia APAC team.
  • Gary Chan (Developer Relations Manager for Forum Nokia APAC) is really a great speaker and I like his English. He has got good blend of styles and charisma.
  • Glen Cha (Head of Product Management, Singapore , Malaysia and Brunei) is more humble and exhibits some comedic acts. It works well too.
  • Nicholas Foo (Head of Technical services and consultancy, APAC) is much more mature and requires serious attention. He speaks equally well and usually straight to the point.

Let's go straight to the point.

Nokia realy admitted that they are late into the game of mobile apps.

All of us understood that culture of developing mobile apps and allow users to not just download but pay for it via the 'AppStore' or in Nokia sense the OVI store is the current gold rush for software developers.

Bear in mind, the software business is a tough one. It is not easy to get users to buy software these days. And it is all about trends.

So, Nokia understood that to compete well in this culture where iPhone seems to lead, they have to create something similar.

For your information, 4 billion people have mobile devices while 1.3 billion out of it are using Nokias. In the smart phone category, 43% are Nokia follow Blackberry, Apple, Android and Microsoft.

And there are 450 million mobile internet users which translates to 1 in 4 people in total.

Thus, to get the ball rolling, Nokia announced it as company strategy since the past 2 years to make mobile application development as the pillar of focus for the company. Nokia realized that this is the culture and is the gold rush for developers and hence it is a good blend.

So, they created a totally new software platform roadmap.
  • Services level : OVI services
  • Apps level: Web runtime (WRT), QT(Native runtime)
  • Platform level: Symbian, Maemo, MeeGo
In short, there will be just three operation systems (Symbian, Maemo, MeeGo) and developers only need to learn two types of programming; WRT and QT.

WRT offers a way to develop apps for Nokia phone using standard web based technology like HTML, AJAX, Javascript and etc. And these apps are called Widgets.

QT offers a way to harness the power of the devices, hence it is suitable for games.

For your information, QT is just like Java and Nokia just recently acquired.

I can understand the reason they do that, that is to do-away with Java and create for Nokia a so-called Nokia Java. This is important in order to fight against competition and also in many ways, is beneficial to the economy.

More surprisingly is that they are also making QT open source.

To add more to on-going excitements, on 27 Jan 2010, Nokia also announced the availability of OVI Maps with free navigational capabilities for free. What this means is that if you buy the latest Nokia smart phones, you will get free GPRS for life. What a great way to kill competitors ?

Actually, the reason behind it is to empower developers, just like 'Facebook Connect' which allows developers to connect to so many Facebook users (as data), OVI Maps via it APIs will allow developers to reach users (as data), particularly useful for LBS (Location Based) application.

In other words, Nokia is just about to start a revolution which everybody can be online for 24 hours for the rest of our lives, because you can be tracked anywhere in the world.

To kick start this uncharted territory, Nokia has just recently launched the N900. A fully multi-tasking smart phone with built-in QT runtime.

This is a gold rush for software developers and your first gold site is myPrize.

Sunday, April 04, 2010

System.Timers.Timer Vs System.Threading.Timer

I researched this topic for the benefits of my team in current software development project (Time Attendance & Door Security System) because the books and online resources are not very direct about this topic. It is impossible for a single book or resources to tell-all because there are just too much to explain.

Ok, let's begin.

Similarities
  • Both are timers (non GUI based).
  • Both will create thread process using worker thread via threadpool.
Unique Characteristics

System.timers.timer:
  • 'Start' and 'stop' method
  • Interval cannot be dynamically set while process is running
System.threading.timers:
  • No 'start' and 'stop' method
  • Cater for interval to be dynamically set at anytime

Application

So, when should you use system.timers.timer and system.threading.timers ?

System.timers.timer:
  • When you need a timer process which requires start and stop.
  • When you have a timer process which have a longer interval (i.e 30 minutes).
  • When you have a process which block (synchronous process)
System.threading.timer:
  • When you need a timer which you wanted to dynamically change the interval at any moment of the process.
  • When you need a timer which runs at a short interval (i.e 10 miliseconds)
  • When you have a process which doesn't block (asynchronous process)
  • For non GUI processes.
Precaution/Note

Since both rely on the threadpool to start the thread process, you have to make sure that thread-concurrency is properly implemented.

It is a common mistake to assume that when executing thread processes via threadpool, there is no need to perform thread-concurrency. Especially if you are using system.threading.timer.

This is because even though threadpool queues the thread processes, it is hard to control in terms of atomic timing accuracy, how the queued processes will race-condition against each other. Just take my word, implement thread-concurrency even if you are using threadpool.

MSDN relates this to the concept of 'reentrant'. Go check it out.

Download sample code (VB.NET Visual Studio 2008 SP1).In this sample, it explores implementation of both timers for the same task.

Please also refer to System.Timers.Timer Hung or Hangs

Also refer to methods for thread concurrency.

Saturday, April 03, 2010

Facebook Is Hiring Software Engineer in Malaysia

Every software developers are so excited about it.

Check out the job posting.

And I think there is only one opening.

Whenever I see job postings, especially those apply to big companies like Microsoft, Google, Facebook, Apple and etc, I will pay attention to the requirements because I wanted to be as smart as they are.

Here are the requirements.

Responsibilities
  • Design, implement, and maintain services that improve user acquisition
  • Code primarily using PHP
Requirements
  • Rapid learner who thrives in a fast-paced environment
  • Knowledge in fundamental web technologies such as ....
  • HTTP protocol, HTML, DOM and regular expressions
  • Knowledge of relational databases and SQL
  • 1-5 years experience with building and maintaining scalable services
  • Prior experience with various web APIs and web crawling a plus

Best of luck to those who applied.

Friday, April 02, 2010

A Software Joke : Actually the Software Is Not Easy To Use

Someone made a software, sold it to a boss. He told the users, I have a good news and bad one. Good is the software is very easy to use, so no worries. Bad is you all may suffer pay cut because you will be too free later. Then users feedback the boss, software is very high tech, but they are very smart enough to handle it, no worries. Boss happy, everybody happy.

--> Actually the software is not easy to use.

Malaysia PM Datuk Seri Najib Launched Portal for Government Tenders

The portal is called 'MyProcurement'

Previously, there was another similar portal called eTender.com.my.

The newly launched portal is not just a portal to exercise the concept of open tender, it is also a mechanism to enforce integrity as quoted below.

To further boost government integri­ty, bidders will from now on have to pledge their commitment to ensure projects awarded to them are executed responsibly and are “graft-free”.

According to TheStar, you can access the portal via the url.

http://myprocurement.treasury.gov.my/

Thursday, April 01, 2010

Intel Xeon 7500 - 16 Logical Processors

Check this out.

Based on the Nehalem architecture, the Xeon 7500 series is noteworthy because it integrates all eight cores onto the die. Together with HyperThreading, this gives it a total of 16 logical processors.

What 16 logical processors can mean to you in terms of software programming ?

First of all, if you have a duo core processor, it means that there are two processors and Quad core means four.

And if you are creating a multi-threading application, the number of foreground thread you can start at a single time should be the number of processor you are having; if you are doing it on a duo core machine, it should be two.

However, that doesn't mean that you can't start more than two foreground threads at one go, just that only two will be running at one time while others will wait. As a result, this will increase your CPU utilization.

Check out MSDN documentation.

Thus, with 16 logical processors, you can start 16 foreground threads at a single time.

Tech Blog Malaysia Statistics (Mar 2010)

As usual, check out the analysis for 2009.

For month of Jan 2010.
For month of Feb 2010.

For the month of Mar 2010, we have the followings:
  • The brand of this blog
  • A proposed broadband initiative by TM
  • World largest online music store
  • A crystal report 8.5 issue
  • A .NET programming issue
  • Support number for the largest broadband provider in Malaysia
  • Malaysia's broadband initiative
  • A common Windows live issue
Overview:
  • Total monthly traffic increased by as much as 27.31%
  • Traffic from referring sites decreased by 1.76%
  • Google still top contributor (64.25%). Down from last month.
  • Top 5 countries (Malaysia, US, UK, India, Singapore).
  • New visitors 88.92% (down from last month).
Now check out the most popular contents.

Singaporean Gaming Resort Secures Information Infrastructure with Juniper Networks

Another APAC success implementation from Juniper Networks.

Juniper Networks® , the leader in high-performance networking, today announced that Resorts World Sentosa Private Limited (RWS) has selected a portfolio of Juniper Networks security solutions to protect its information infrastructure. Resorts World Sentosa is a 49-hectare integrated gaming and tourist development on Singapore’s holiday island of Sentosa. In addition to its casino, Resorts World Sentosa includes six hotels, Universal Studios Singapore, Marine Life Park and a museum of maritime history.

Check out details.