Tuesday, August 10, 2010

Knowledge Technology Week (Conference & Exhibition)

Event : Knowledge Technology Week (Conference & Exhibition)
Date :
26 July – 30 July 2010
Time :
9am – 5pm
Venue :
Damai Beach Resort, Kuching, Sarawak
Responsibility: Demo presenter





Saturday, August 07, 2010

Excellent Scientist Awarded 2005

“Saintis Cemerlang 2005” (Excellent Scientist) awarded by Ministry of Higher Education, 23 August 2005


Wednesday, June 30, 2010

What is Generics in C#?

1. Generics allow you to define type-safe data structures, without committing to actual data types.
2. Result higher quality of code by reuse data processing algorithm without duplicating type-specific code.
3. Generics allow you to define type-safe classes without compromising type safety, performance, or productivity.

Example:
.Net 1.1 way of implementing Stack data structure providing Push() and Pop() methods.
For general purpose of Stack, it used to store instances of various type. Old way using Object-based stack, which is amorphous object. This is because Object is canonical .NET base type, it able to hold any type of items.

Problem:
1. Performance in boxing and unboxing value types when pushing and popping process.
2. Type safety. Compiler allow anything cast from Object type. Hence, programmer losing compile-time type safety. Cast wrongly will raise an invalid cast exception at run time.

Hence, to solve this, old way is to create type-specific Stack data structure. For Interger, using InsStack, for String, use StringStack.

Writing type-specific data structures is a tedious, repetitive, and error-prone task.
In addition, there is no way to foresee the use of unknown or yet-undefined future types, so you have to keep an Object-based data structure as well.

Sample Code Download : Learn_Generics.zip

Hashtable Vs Arraylist

Arraylist:
1. A Collection of Items containing a Single Item.
2. Can Add any datatype value, every item in arraylist is treated as object.
3. It will dynamically expand and contract when you add/remove elements to it.

Hashtable:
1. Collection of key,value pairs.
2. Key Can be any data-type.
3. Key Cannot be null reference, but value can be.
4. Each element is a key/value pair stored in a DictionaryEntry object.

Retrieving by key in Hashtable is faster than retrieving in Arraylist.

Sample Code Download : Hashtable_Vs_ArrayList.zip

Tuesday, June 29, 2010

Event Vs Delegate

Event:
An event is a message sent by an object to signal the occurrence of an action. The object that raises the event is called the event sender. The object that captures the event and responds to it is called the event receiver. In event communication, the event sender class does not know which object or method will receive (handle) the events it raises. What is needed is an intermediary (or pointer-like mechanism) between the source and the receiver. The .NET Framework defines a special type (Delegate) that provides the functionality of a function pointer.

Delegate:
A delegate is a class that can hold a reference to a method.
A delegate class has a signature, and it can hold references only to methods that match its signature. Thus equivalent to a type-safe function pointer or a callback.

Sample Code Download : Event-Delegate-Learn.zip


Different Between Abstract Method And Virtual Method

Abstract method vs Virtual methods

Abstract method: When a class contains an abstract method, that class must be declared as abstract. The abstract method has no implementation and thus, classes that derive from that abstract class, must provide an implementation for this abstract method.

A subclass which derives from an abstract class and fails to implement abstract methods will fail to compile.

Virtual method: A class can have a virtual method. The virtual method has an implementation. When you inherit from a class that has a virtual method, you can override the virtual method and provide additional logic, or replace the logic with your own implementation.

Virtual methods allow subclasses to provide their own implementation of that method using the override keyword.

A member defined as virtual must be implemented in the base class, but may be optionally overridden in the derived lass if different behavior is required.

Sample Code Download : Learn_Abstract_Vs_Virtual.zip

What Is The Different Between Abstract Class And Interface

Abstract Base Vs Interface

Abstract class:
An Abstract class without any implementation just looks like an Interface; however there are lot of differences than similarities between an Abstract class and an Interface.
  • We cannot make instance of abstract class.
  • An abstract class is only to be sub-classed (inherited from).
  • In other words, it only allows other classes to inherit from it but cannot be instantiated.
The advantage is that it enforces certain hierarchies for all the subclasses. In simple words, t is a kind of contract that forces all the subclasses to carry on the same hierarchies or standards.

Interface concept:
An interface is not a class.
An interface has no implementation; it only has the signature.
It just the definition of the methods without the body.

Similarity between Abstract class and Interface:
They act as a contract that is used to define hierarchies for all their subclasses.

Different:
A class can implement more than one interface but can only inherit from one abstract class.
Since C# doesn't support multiple inheritance, interfaces are used to implement multiple inheritance.

Sample Code Download: AbstractBase_Vs_Interface.zip

Monday, June 28, 2010

Interview Question: Will Code In Finally Block Being Executed When There Is A 'Return' In Try Block

Will Code In Finally Block Being Executed When There Is A 'Return' In Try Block?

Finally block allow us to specify code that's guaranteed to execute no matter what kind of exception a thread throws.

Sample Code: Try_Catch_Finally.zip

Thursday, January 07, 2010

Robotic Eye Inside Pipe (REIP) - View Into Unreachable Place

Home-grown small pipeline inspection system to inspect pipeline interiors welding quality for pharmaceutical industry and food industry, diameter range from 12 mm to 75 mm.

Non-destructive video inspection is required from recent government law enforcement to above industry to increase safety standard and environmental contamination control on above industry facility pipe line and sewage system.

Video evident of the interiors of pipelines for welding defects such as surface discontinuity, corrosion fatigue cracking, creep of dissimilar weld joints and piping conditions such as leakage and blockage is done yearly by pipe line inspection service’s consultant company.

* This project was awarded with entrepreneurship (CIP) grant by CRADLE in year 2009





Wednesday, January 06, 2010

TE 8000 – Wafer Stencil Inspection System

This project is continue research and enhanced from ASIS PCB, Advance Stencil Inspection System in order to achieve new capabilities:
- System able to inspect 1 million apertures, with 1 time scan 8x8 inch wafer disk, by 3200dpi resolution and its accuracy achieve 7um
- System able to inspect 1 million apertures, with 1 time scan 12x12 inch wafer disk, by 2400dpi, resolution and its accuracy achieve 11um

* This project was awarded with entrepreneurship (CIP) grant by CRADLE in year 2008
Research & Developed Prototype In Inspecting Wafer Stencil (Die by Die Inspection) Demonstration:



Green color spot show dust / stain appear on wafer stencil, red color spot shows missing apeature detected.

Due to the wafer stencil surface is dirty, system detect a lot of stain from the image captured. Further research and implementation on hardware and software are required to reduce the errors detection.




Visualization Result On Wafer Map After Inspection Process Completed:

ASIS PCB, Advance Stencil Inspection System

Automatic human eye independent QC tool for stencil inspection

Capability:
Check missing, extra, position offset and area defective aperture

ASIS™ is a fully integrated, stand-alone measurement and inspection workstation for stencil and screen fabrication or other machined, etched or laser cut eform operations.

ASIS™ uses a PC Windows based software package integrated with a high-resolution, calibrated, A3 size flatbed scanner. This combination allows inspection of both stencils and screens for accuracy and the ability to inspect and measure 100% for absence/presence and correct size of apertures.

* Awarded with pre-seed entrepreneurship grant by MDEC.
Product sold to Hakko Sdn. Bhd., www.hakko.com and Ocular Sdn. Bhd. www.ocular.com.my

SZIS – Super Zoom Inspection System

SZIS is a super zoom microscope system with 50X to 500X zooming capability to inspect wire bond post quality.

Electronic Machine Inspection and Verification System

Software and hardware design in optical inspection technology effectively prevent human error in product labeling process in a manufacturing system. This technology consists of camera, video card, computer and image processing software to replace human eye and mental comparison process(brain), which is known for not reliable and error prone for repetitive task.

This proprietary solution prevent human mistake happen at the source, verify the source input data in text form against with machine first output unit. Therefore, it totally eliminate possibility of catastrophic product scrap cost, quality and reputation loss. Other competitors system provide solution in the area of “verify ‘first output actual unit’ against subsequence unit”. This comparison method only good for solving mix device and product segregation after mass production.

* This project was awarded with entrepreneurship (CIP) grant by CRADLE in year 2007

Hardware setup environment:


Software interface screen shots:

Saturday, November 15, 2008

Genetic Algorithm (GA) In Solving Multi Variants Problem Implemented In Ms. NET C# (Multivariate Genetic Algorithm Solution)

Year: 2008
Programming Language & Tools: Microsoft .NET C#
Source code / Request for customization: http://www.geneticalgorithm.biz/
Application For Test: Download

Optimization Using Genetic Algorithm In C#
This is a Multivariate Analysis and Solver using Genetic Algorithm methodology. Simulation application implemented in Ms. Net C#.

Assume we have certain number of farm lands (in area). Each land contain 2 types of insect. Assume we have certain number of fertilizer to be chosen to use where each of them having different cost (per area) and killing effectiveness (in %) for each type of insects.

By using Genetic Algorithm and Dynamic Programing technique, we want to find out, which fertilizer used for each land that satisfied minimum insects of number and also minimum cost of fertilizer.

Imagine if you have 50 farms and 30 types of fertilizer to choose. In order for you to obtain a promising solution by examining all possible combination, it will take years in the computational power we having now.

Using GA in solving multi-variant problem like this need a suitable data structure to represent the problem space. Representation of chromosome and DNA (element in each chromosome) need to be designed in a way to combine different farm lands with fertilizer. By randomly pair the farm land with the fertilizer, checking the fitness value in each chromosome, performing GA operation process to obtain a best fitness value chromosome. Then, the solution set can be obtain by retrieving the information in DNA from the chromosome.

You can go to: GA Project Coding Service for requesting the methodology document in details.

For understand another example of GA in solving shortest path problem, refer to:
Genetic Algorithm (GA) In Solving Vehicle Routing Problem

or access Genetic Algorithm (GA) In Solving Vehicle Routing Software Package

Genetic Algorithm process:
1. Perform a number of loops according to the generation.
2. For each loop:
a. Depend on the chance, perform Cross-Over operation.
b. Depend on the chance, Perform Overlapping operation.
c. Depend on the chance, perform Mutation operation.
d. Perform sort operation on the chromosome list.


Friday, May 23, 2008

Product Working In A Bioinformatics Company

Genseq is a start up company incorporated in Jersey (C.I.), which has been founded by two successful entrepreneurs to offer affordable genome sequencing and bioinformatics analysis of the resulting data. The first human genome sequencing was successfully complete in 2005 by the Human Genome Project, a US$3 billion public funded program and by Celera genomics, a private company at a cost of over US$300m. For more information, refer: www.genseq.co.uk

Product developed: www.MyFamilyHealth.com
How is it useful?
# Connect with your relatives to record and track an accurate and up-to-date family health history.
# Find out which diseases and health problems run in your family.
# Discover if you or your family members are at risk of certain diseases - even one's that might otherwise not be considered by your doctor.
# Discover if you or your family members need a specific diagnostic test.

Latest technology developed:
Provided a plug in engine, that able to provide the system in your own site.
This is the example: http://MyHealthyFamily.blogspot.com

Friday, June 29, 2007

Training Certificates 2006 - 2009

Business Plan Clinic by CRADLE Investment Program


Step Up Program For Entrepreneurs


Upgrading Web Development Skill From ASP to Microsoft ASP.NET

Getting Start With .NET


Certificate of Completion For "Introduction to UML"

Training Certificate For "Programming With C#"


Certificate Of Participation For "Architecting Entreprise Software"


Microsoft Certificate Of Achievement For Advance Windows Forms Technologies


Workshop For Microsoft Visual Studio 2005

Thursday, June 21, 2007

Image Processing Research Journey Started ...

Year: 16 Jun 2007
Programming Language: Microsoft .NET C#
Source Code: Email author ahyeek@gmail.com
Simulation Application For Test: Download

I always tell my friends that "Image Processing (IP)" technology can be translate as "The Ability For Machine To view". I considered it as 1 of the A.I knowledge in computer science and really interesting.

Below are some of the examples I did using C#. Below is the first example, which the example is research on 'Thresholding' technique (see Image [a]). In order to thresholding a color image, I translated the color code for the color image into a gray scale image first (see Image [b]) before doing any further filtering operation. The third example is doing the invert filtering (see Image [c]).

(Image [a] - Threshold Image Filtering Example)


(Image [b] - Gray Scale Image Filtering Example)


(Image [c] - Invert Image Filtering Example)

Monday, June 04, 2007

Certificates Of Acchievement & Award

Gold medal award of the Invention Exhibition of New Invention, Techniques and Products 2005, Geneva, 8 April 2005.

ITEX Bronze Medal award of the 16th International Invention Innovation Industrial Design & Technology Exhibition 2005 (ITEX 2005), Kuala Lumpur, Malaysia, 19th-21st May 2005.

“Saintis Cemerlang 2005” awarded by Ministry of Higher Education, 23 August 2005.

Degree Of Master Of Computer Science

Degree Of Bachelor Of Computer Science

Participated in MSC-Technopreneur Development Seminar & Workshop, 31st May 2004


Represented University Of Malaya in the ACM International Collegiate Programming Contest, Asia Region Contest held in Hong Kong in October 2000.


Participated in The IBM Industrial Training Program

Tuesday, April 17, 2007

ADALINE TDL Neural Network Simulation In CSharp (C#)

Year: 16 Apr 2007
Programming Language: Microsoft .NET C#
Source code / Request for customization / Request a new custom made simulation, you can email to author : ahyeek@gmail.com
Simulation Application For Test: Download
As we know, neural network is a mathematic model that can be trained in order to "learn" certain information and able to perform some so called "intelligent" decision such as recognizing certain data pattern or understand certain object in a picture.

This Tapped Delay Line (TDL) neural network is using the previous value on a graph to train it and used to predict a furture value. Given points from a graph as (x1, y1), (x2, y2), .... , (x(n-1), y(n-1)), TDL Nnet with (n-1) delay step is able to predict (x(n), y(n)) by giving it the (n-1)previous values. For each iteration, the Neural Net will get trained again and again in real time by suplying the actual value to the Neural Net. Hence, we consider TDL is a real time neural network because the training mechanism can be done in real time.
When you try to run the simulation application, try to observe that the average error values will decrease when the iteration increase. You can try to use differerent data set and observe how the ADALINE TDL neural net perform its prediction. The weight values of the neural net will become stable while the error of prediction value is low. Observing that the predicted value (graph blue in color) is not overlap with the actual value (graph in yellow color) at the beginining. However, it will slowly overlap each and other after some iteration. This is because the neural net has been trained and recongnize the pattern of the given graph.

Please refer to the demonstration for further information. This demonstration has been implemented in Java 4 years back: ADALINE with TDL Neural Network model. But now, the author implement it again in 2 weeks time with some enhancement (using moving graph component - CSharp (C#) Control Component - Moving Graph Control) in C#.

You will observe the predicted values from the simulation will become more and more accurate after some iteration. The average error value will reduce while the iteration increase. The neural network will become more and more 'intelligent' in predicting the next value of the graph after it has been thought for some time. You can choose different graph set to test out the Nnet using the simulator. By noting down the result, you actually can compare what properties values of the neural net are the best setting for obtaining fastest and lowest error value. The "Delay Step" and "Learning Rate" are the properties that determine how fast the neural network are able to be trained and how accurate the predicted value.


Sunday, April 08, 2007

CSharp (C#) Control Component - Moving Graph Control

Programming Language & Tools: Microsoft .NET C#
Year: Apr 2007Testing Application: Download
Source Code : ahyeek@gmail.com

Have you ever think to have a CSharp (C#) control that allow you to store and display your scientific calculation values computed from your research application? No doubt, if we can represent our numrical scientific calculation data in graph format, it will increse the efficiency in our research in term of examine the correctness of our algorithm as well as methematic models.
This Ver 1.0 graph component is build to cater this purpose. Below is the list of the avaialble features:
ExMovGraph Ver 1.0.0.0 Features:
  • Allow user to input 3 set of values at 1 time and display them on the graph. Each graph can be represented by using different colors. This enable user to compare 2 to 3 set of scientific calculated values under the same scale.
  • Allow user to set a graph scale (can take negative (-ve) value and minimum scale and positive value as maximum scale). For example, [-1 to 1].
  • Enable to turn on and off the horizontal and vertical grid display. User are allow to set the color and gap (in pixel) for the grid.
  • Enable user to set the size of the graph' drawing line.
  • Display total number of graph's point currently available in the graph component.
  • Allow user to set for auto scroll the graph display (display the latest input graph point) or scroll to the previoius or any portion of the graph at anytime. (By turning off the "Auto Scroll" indicator)
  • Allow user to set their own graph title with the color they like, as well as the scale display color and graph border color.
  • Allow user to set the graph display format, either as point form or as line form.
  • Allow user programatically clear the graph data or other graph properties setting at anytime.

A testing program of this graph components are available for download. Please feel free to test it out and post the author some comments. If you wish to use the component, please drop an email to the author.
P/S: Do not hesitate to email the author if you have any special idea or enhancement features you think you like, the author will get it implemented in the future version. Thanks!

Image Understanding (IU)

Throughout these years, the growth of digital media collections has been accelerating, particularly in still images. These artifacts repre...