5
CONTENTS 6
Data Warehousing – A Primer
By Gogula G. Aryalingam
An introduction to Data Warehousing and how well-designed data wa of benefit to businesses.
Introduction to Cloud Computing
By Tharaka de Alwis
An excellent introduction to cloud computing and its main layers.
9
8
Financial Managem Individuals and Fam By N. J. Perera (Ex Banker)
The Financial Management practices c individuals and family units along with e decision making in terms of income and
Has Social Media Optimisation Kille Search Engine Optimisation? By Logan Nathan
10
This article discusses the growing popularity of SMO and the demand and innovative online marketing tools along with the differentiation bet SMO and SEO.
12
Speed Matters in SEO By Chaman Ipalawatta
The importance of a properly SEO’d website, how different aspects of a website SEO and the importance of website speed.
Health, Wealth & Happiness through Healthy Lifestyle By Dr. Mahen Wijesuriya
The importance of good nutrition and adequate exercise in order to lead a healthy lifestyle while balancing a busy work schedule.
14
Shop & Office
By Ramanee Ipalawatta
A discussion of the legal right Shop and Office Act.
15 Starting out as a Digital Artist
16
By Nuclear Ambitions
What to expect when starting out as a Digital Artist and how to deal with the challenges of the industry.
Why you should think before you Type
arehouses can be
By Chris Tompkins, www.gochrisonline.com
ment for mily Units
currently followed by external factors affecting d expenditure.
ed
d for new tween
18
13 Tips to Comment your Code By JosĂŠ M. Aguilar
20
e affects
17
The significance of online interactions and building your online reputation with each word you type.
Android based Mobile Application Development By Tharaka de Alwis
This article is a comprehensive review of the Android operating system and its significance in terms of mobile application development.
22
Communication Issues
Field Experience
This article looks at the importance of clear communication in the business context, how the lack of which leads to a lot of complications and how you can overcome them.
A recount of the experience of an IT specialist hired to develop a web based disaster management system to monitor and speed up transactions among various parties involved in the northern IDP relief activities.
By Rukmal Hettiarachchi
By L.W.C Nirosh
Employees Leave Entitlements
a, LL B, Attorney-at-Law & Notary Public
ts and entitlements of the white collar workers as stated in the
23
Review – Twitter Event Sharing Platform
EDITORIAL Editor-in-Chief
Chaman Ipalawatta chaman@nerds-n-geeks.com
Technical Editor
Tharaka de Alwis ndealwis@gmail.com
Sub-Editors
Ramanee Ipalawatta Nirmala Perera Namalie Ipalawatta
Contributors
Gogula G. Aryalingam José M. Aguilar Rukmal Hettiarachchi N.J. Perera Nuclear Ambitions Logan Nathan Dr. Mahen Wijesuriya Ramanee Ipalawatta Tharaka de Alwis Chris Tompkins L.W.C. Nirosh
DESIGN Chief Designer
Logo Design
SerQ IT Shanaka Kulasinghe Email: skulasinghe@serq.biz Web: www.serq.biz NuClear Ambitions & Lalintha Perera
PRODUCTION Publisher
Printer
Nerds N’ Geeks 49B, Woodland Avenue Kohuwala Nugegoda Sri Lanka Gunaratne Offset Limited 235/10, Avissawella Road Orugodawatte Sri Lanka
ADVERTISING Advertising inquiries: 077 363 3327-8 011 282 8944 Website: www.nerds-n-geeks.com/advertisements
Ladies and Gentlemen, It is with great pleasure that I present Nerds N’ Geeks IT Magazine to you. It has been a long rough road that our great team travelled, to bring you this, one of a kind, IT magazine! After many years of working in the IT industry, I realized that many fresh graduates who step into the “real” world of IT, lack basic knowledge of software development principles and practices even though they complete three to four years of college/university education. With the goal of minimizing this problem, as a stepping stone, it was decided to publish this IT Magazine, Nerds N’ Geeks, covering the industry’s best practices, processes and standards amongst many other critical information that will help university students and fresh graduates to enhance their skills that are required to be successful in the ever-changing IT industry. Heading towards my vision to make this the most sought after IT publication in Sri Lanka which is superior in terms of content and print, I strongly believe, a publication like this opens avenues of opportunity to many communities, starting with one of the most important sectors, “students”. I trust, students will take full advantage of the focussed content available in this magazine, and make use of the forum provided by Nerds N’ Geeks to discuss their issues with industry experts. Let me take this opportunity to make known to you the extent of involvement of the IT experts to drive this magazine to required heights, in order to educate the potential IT workforce, so that they will have a better knowledge of the industry and be equipped with many more skills than the freshers of today. Last but not least, I would like to thank everyone who supported me in many ways to jump this first hurdle to make a difference for the Sri Lankan youth. Without my wife’s constant encouragement, I would never have come this far. She has been my strength and vision throughout the process to keep me on track. My parents and my wife’s parents too gave me their unconditional support and dedication to get me through. I must also thank my dear friend Tharaka de Alwis for giving his fullest support to review articles despite his extremely busy schedule at work and my partner in crime :-), Shanaka Kulasinghe of SerQ IT for working on the design of the publication as if it was his own. A special appreciation goes out to all the contributors for sharing their valuable knowledge at short notice. Thank you everybody from the bottom of my heart for all the support extended to me, to make this a success!
CONTACT US Email: chaman@nerds-n-geeks.com Web: www.nerds-n-geeks.com Phone: 011 282 8944 Street: 49B, Woodland Avenue, Kohuwala, Nugegoda
ISSUE 1 JUNE 2010
Chaman Ipalawatta Editor-in-Chief
PERMISSIONS AND REPRINTS Material in Nerds N’ Geeks IT Magazine may not be reproduced in any form without the written consent of the copyright holders. Nerds N’ Geeks logos are property of Nerds N’ Geeks.
tools hosted on the provider’s infrastructure[2]. Developers create applications on the provider’s platform over the Internet. PaaS providers may use APIs, portals or gateway software installed on the customer’s computer. Google Apps is an example of PaaS. Developers need to know that currently, there are no standards for interoperability or data portability in the cloud. Some providers will not allow software created by their customers to be moved off the provider’s platform. • Software-as-a-Service (SaaS) In the Software-as-a-Service cloud model, the vendor supplies the hardware infrastructure, the software product and interacts with the user through a front-end portal. End users only need a browser to make use of the software over the Internet. Services can be anything from Webbased email to inventory control and database processing.
Introduction to
CLOUD COMPUTING T
By Tharaka de Alwis
oday cloud computing is one of the hot topics within the industry. People will give many definitions for cloud computing. Here’s one that is more relevant. Cloud computing could be defined as Internet-based computing, where shared resources, software and information are provided to computers and other devices on-demand like a public utility[1]. For example, if you get electricity from the national grid, you don’t need to know the internals on how electricity is generated and transmitted. You consume electricity from the given infrastructure by the Electricity Board and pay the bills at the end of the month. Cloud computing follows the same principle. Your services, software or infrastructure is hosted somewhere on the Internet. You don’t know where they are or how the services are implemented. You access them over the Internet and consume them on demand basis. Some services are free and some are not. The name cloud computing was inspired by the cloud symbol that’s used to represent the Internet in flow chart diagrams[2]. One of the best examples of usage of cloud computing is Google Docs software. It provides the same set of services provided by Microsoft Office/Open Office. However, the difference is that it is a web based application that could be used by anyone where people could create or manage word docs, spread sheets or presentation slides. Users don’t have to install any software on their PCs and they don’t require to
www.nerds-n-geeks.com
The real benefits of cloud computing is that you cut down costs on infrastructure, platforms and software license. If you have a stable Internet connection, you can make use of these services on demand basis. In the future, most of the software you used to install on your PC will be hosted in a cloud and accessed by a browser. Rather than spending millions of rupees on purchasing servers and software in the traditional model, cloud computing allows users to spend a few thousands of rupees and pay on a monthly basis to make use of severs and software on demand. In the next issue, I hope to discuss how to make use of Infrastructure-as-a-Service (IaaS) to create and manage virtual servers and storage provided on Amazon web service APIs.
know the physical location of where these documents are created and stored. It is accessed as a public utility service. Google manages this web application deployed over a million of servers making sure all public users are served without any service disruptions. Cloud computing services can be divided into three categories: • Infrastructure-as-a-Service (IaaS) In Infrastructure-as-a-Service cloud model, service providers like Amazon allows to create and manage virtual server instances and storage on demand for end users. Customers use the Amazon’s API (* API is interface implemented by a software program to enable its interaction with other software) to start, stop, access and configure their virtual servers and storage. This allows end users to pay for only as much server or storage capacity as is needed, and bring more online as soon as required. User has the option of increasing computation power, memory and capacity of the servers (scalability options) which makes infrastructure provisioning a very easy step. • Platform-as-a-Service (PaaS) Platform-as-a-Service in the cloud is defined as a set of software and product development
“The real benefits of cloud
computing is that you cut down costs on infrastructure, platforms and software license.
”
References:
[1] http://en.wikipedia.org/wiki/Cloud_computing [2] http://searchcloudcomputing.techtarget.com/ sDefinition/0,,sid201_gci1287881,00.html
Tharaka de Alwis
has been in the IT industry for over six years and currently he is working at Sabre Technologies playing the Tech Lead role on Java, Java EE, Mobile, SAP e-commerce and Cloud Computing - SaaS projects. page5
Data Warehousing – A By Gogula G. Aryalingam
D
ata Warehousing is something that has suddenly been picked up by a lot of organizations. Don’t get me wrong; the concept of data warehousing has been around for quite some time, but only a few organizations have actually used it. However, due to the rise in popularity of Business Intelligence, everyone now wants a data warehouse. More and more people are now building data warehouses to take advantage of business intelligence. This article will take an introductory look at what a data warehouse is. A data warehouse is a database. Yet, the way it is designed is different from that of a “normal” database. In order to learn about a data warehouse, let us first take a look at what is not given to us by a “normal” database and why we actually need a data warehouse. We all know what a “normal” database is and how it is designed. By “normal”, I mean a transactional database. Even when learning about databases in IT classes, you are taught to build transactional databases. These transactional databases are designed in such a way that, it makes storing large amounts of transactions, very fast. A transaction is a set of records that have to be stored as a single unit. These are some of the main traits of a transactional database: • A well designed transactional database does not store duplicate data. • Data in a transactional database is what you would call normalized.
www.nerds-n-geeks.com
•
Data in a transactional database is current. This means you only have data that date back a few years (sometimes only months). After that, the data is not used in your transactional system anymore. You may delete the old data, or archive them. Take, for example, a system which records all the internet sales that your company does: A customer registers on your site and then orders a digital camera that you sell. What happens behind the scene is that several tables are updated with data. The orders table will get updated with a record of the order placed by the customer. This record would have the status column set with a value “pending”. A few related tables may also get updated. In a few days, when the digital camera is shipped to the customer, the orders table will be updated and the status column showing “pending” will be changed to “shipped”, and the shipping table will be populated with some data. Once the entire transaction is complete, all records relating to this transaction will not be used anymore, until one day, someone wants to run some reports to do some sales comparison. To do this sales comparison, this particular person needs records as far back as 10 years ago. Now, that is a whole lot of data! So what do you do? Well, there are a few things that can be done. Consider the following example: • For one particular transaction (like in many standard transactional databases) let’s say you have around 12 tables.
• • •
Also let’s say that you have a million to two million records each on eight of these tables. As mentioned earlier the report requires 10 years data. Also, do not forget that the internet application that your database is serving, serves around 1000 – 2000 transactions from customers around the world per minute.
When 8 (tables) x 10 (years) x (1 – 2 million) records are retrieved with joins and calculations, imagine the amount of time that you will have to wait for the data to appear in your report, not to mention the strain that it would put on the system when there are so many customers accessing it. They may experience outages, slowness and non-responsiveness from the application. Would you like to lose customers just because you want to run a report? I don’t think so. Enter data warehouse! Wait, there’s another little scenario that I need to explain before that. Now, an organization has a transactional system to record their internet based sales. Likewise, they also have another transactional system that keeps track of their outlet based sales, purchases and stocks. All this data has to be consolidated into one place, so that different people in the organization can perform analysis on it whenever they want. For instance, a sales manager might want to compare sales data from his region (which is in the Oracle page6
joins and faster queries. By de-normalizing, we are introducing redundant (duplicate) data. This is fine because all of it is properly structured. The tables in a data warehouse have only fields required for analysis and reporting, and the tables are grouped based on subject area as internet sales, outlet sales, stocks, purchases and so on. This makes it easier to retrieve the correct data for analysis and reporting. Data is consolidated and consistent: No matter how each data source stores its data, when data is pumped into the data warehouse everything will be properly combined, which means the sales manager can get correct sales data for his reports and that too by still using product names and outlet owner
area or department of an organization, such as a data mart for the marketing department where all the data is marketing data, or the HR department where only HR related data is stored. As time goes by, all data marts in the organization are combined to form a data warehouse. By now, I hope you have received somewhat of an idea as to what a data warehouse is and why we use one. The bottom-line to remember is that a transactional database is for day-to-day transactions, which is optimized for quick writing of data, while a data warehouse is for analysis and reporting, which is optimized for retrieving data. Neither can replace the other since they are both built for two separate purposes.
Primer database) with the sales targets that he had been assigned (which is in the Office Excel file on his laptop) and then compare that figure with some data from eight years ago (from the dBase III+ system). Enough to drive a sane man mad, right? Well, there’s more. The sales managers use product names and the surnames of the outlet owners in their spreadsheets, whereas the Oracle system uses product codes and outlet codes to keep track of the same. So how on earth are the sales managers going to get sales figures into their reports if they cannot properly link to the correct data? Puzzling isn’t it!
Enter data warehouse A data warehouse is a database that is used for analysis (and reporting) of data. It is so designed that the retrieval of data is made easier and very much faster. A data warehouse stores historical data: usually data from the beginning of the organization’s existence. Data from heterogeneous (meaning: diverse or various, different) data sources; all stored in one central place, and that too in an organized way. This data is ideally complete transactions. Data is easier and very much faster to retrieve: By storing data in tables which have a very much flatter structure (de-normalized) than a normalized structure, we are reducing the number of tables. This means we will have lesser number of
www.nerds-n-geeks.com
surnames. By creating data warehouses properly, you get to have “One version of the truth”. This means, if two or three systems in the organization have different sales figures for a particular month, and you are confused as to which figure to go with; go to the data warehouse. It will have the correct figure. How does a data warehouse get its data? Three letters: ETL. Extract, Transform and Load. ETL is a concept to extract data from heterogeneous data sources, clean and convert them to the proper structure, and then load it on to the data warehouse. The ETL process is considered to be the most challenging and time-consuming task in building data warehouses. There are so many tools that can be used to accomplish ETL, such as Microsoft SQL Server Integration Services, Informatica PowerCenter, Ab Initio and Oracle Data Integrator. During the ETL process, data is first extracted from the different sources. Care is taken when doing this as not to cause system slowdown. Usually data extraction is done during the nights or when system activity is at its lowest. Also, not all data is extracted. Only new data and data that had changed since the last extract are pulled out. Once data is pulled out, connections are closed at once, so as not to hold on to any resources of the data source. The extracted data is then cleaned, converted and combined to fit the data warehouse. This is done while keeping the extracted data in memory or by dumping it onto a temporary database. Once the data is transformed, it is loaded onto the warehouse. Data Marts: Data marts are similar to data warehouses, but they focus on one particular subject
Data warehousing is a subject that is diverse. Many people have many theories, concepts and ideas about it. You might sometimes find that one person’s view about data warehousing is completely different and sometimes offensive to another! Many “holy wars” are “fought” between data warehouse enthusiasts. Every data warehouse implementation is unique. What I have given here in my article is my understanding of a data warehouse. If you need to learn more about data warehousing, I would first recommend Wikipedia (http://en.wikipedia.org/wiki/Data_warehouse).
You can visit the following sites to learn more: Bill Inmon’s resources on B-eye-Network:http:// www.b-eye-network.com/channels/1134 Articles and Papers from Kimball Group:http://www. kimballgroup.com/html/articles.html TDWI (The Data Warehousing Institute):http://tdwi.org
Gogula works as a Technical Lead for a software house in Colombo. He is a Microsoft Most Valuable Professional and is active in the local Microsoft technical community scene. He is the co-founder of the SQL Server community website SQLServerUniverse. com and the SQL Server Sri Lanka User Group. He is also a Microsoft Certified IT Professional. page7
Financial Management for Individuals and Family Units By N. J. Perera (Ex Banker)
F
inancial Management plays a vital role among the various tactics individuals and families adopt for a successful and comfortable day to day existence. Procedures adopted by Governments for controls on state revenue and expenditure, and by companies and institutions for financial control, vary from those adopted by individuals and family units. In developing countries the state sector generally makes forecasts of estimated annual expenditure to determine expected income. Supplementary provisions for balancing of income and expenditure are formulated thereafter. Income and expenditure is balanced by direct and indirect taxes, local and foreign loans and through foreign aid. Some companies and institutions plan annual expenditure and new investments on forecasts of annual income while others obtain provisions required to implement such plans by increase in Share Capital, Bank and Directors loans, etc. Management of income and expenditure by individuals and family units are different to the above. Individuals and family income can be divided into two categories. Whilst the monthly income from permanent employment generally remains unchanged, increases can be expected from annual increments and promotions. A drop in income is not expected usually. Those who depend on returns from businesses cannot expect a fixed monthly income. A change would depend on the success or faliure of the business. The economy of the country and other external forces may have an adverse influence on the expected income or profits. A better standard of living can be expected by individuals or families by proper financial management. This allows efficient management of expenditure based on income received. In addition, making sufficient investments will result in an increase of fixed assets. Varied patterns of behaviour can be observed in management of finances by individuals and families. Some opt for a higher standard of living, paying little or no attention to investments. Others concentrate on accumulating assets through investments whilst maintaining a hand to mouth existence. Another category spends to maintain a very high standard of living, in addition to heavy investments on assets which are not compatible with their income and they resort to heavy borrowing from Banks and other Financial Institutions resulting in excessive debt. All above mentioned behavioural patterns are not conducive to a healthy lifestyle. Better financial controls help balance expenditure on consumption and investments with the total income a person or family receives. It is important that the fixed income is taken into account in order to determine how
www.nerds-n-geeks.com
much to spend on consumption and investments, in other words, “to cut your coat according to your cloth.� There are instances where some fall into grave financial difficulties by basing fixed expenditure against temporary income, ie investing in fixed assets for long term instalments or applying for housing loans based on temporary income such as overtime payments. Generally, people spend the total income received, a little less or more. The purchasing power increases or decreases according to a person’s income. Personal finance management helps to control this purchasing power. Ways and means of developing better financial discipline by those earning a fixed monthly income will be discussed in the next issue.
page8
Has Social Media Optimisation
Killed
Search Engine Optimisation? By Logan Nathan
G
etting a website ranked on the first page of search engines is the dream of all businesses that rely on the internet to drive traffic and generate sales. There are many strategies to achieve this objective, including Pay-per-click advertising, article marketing, linking and Search Engine Optimisation (SEO). While Pay-per-click marketing can get results faster, search engine optimisation is slow, but has the advantage of steady sustained results. Internet marketing experts have devoted years in honing their skills to perfect the science of Search Engine Optimisation. Businesses that have invested in SEO have derived significant benefits with their websites shooting up from nowhere to the first page on organic search listings.
The growing popularity of SMO While there is no doubt that SEO is a powerful weapon in the hands of webmasters, there is now a new tool that offers tremendous potential to online marketers. Called Social Media Optimisation (SMO), the concept involves implementing strategic changes in order to optimise a site so that it becomes easier to link to, achieves high visibility in social media searches on niche search engines such as Technorati, and get included frequently in relevant posts - on blogs, vlogs and podcasts. The result is that the website optimised using SMO gains more visibility, greater exposure on Technorati, more inbound links and an increase in targeted traffic. As always, the underlying factor is to have content that offers value and creates a pleasurable visitor experience.
www.nerds-n-geeks.com
Marketers are looking for new online channels While Google continues to dominate the way searches are conducted, marketers are looking for innovative alternatives and additional channels to distribute their content and marketing messages. Social search is one such alternative. Some bloggers have begun calling SMO the next level of SEO. While there will be technical issues to resolve, it’s the multi channel and creative aspects of creating a “marketing pull” that seems to be defining the future direction of SEO. Interestingly, as more people go online, they are looking for alternatives to Google generated traffic. They’ve optimised Google and other leading search engines, but want alternative sources of “free” traffic. SMO provides that option. Twitter, LinkedIn, FaceBook, MySpace, Digg, and YouTube are some such viral traffic generators.
How SMO is different from SEO In its most basic form, SEO is a process involving three steps. The first step is to break down robot crawling barriers and help the search engines to efficiently index the website. The second step involves crafting content that is keyword-targeted so that it appeals to both search engines and also visitors alike. The third and most critical step is link-building for targeted search phrases and terms. SMO, on the other hand basically involves breaking down the walls of content that is user-generated with the objective of being recognised a dynamic member
of an online community. This is quite a complex process and takes time. Simply adding a “Digg This” button to a blog or website doesn’t imply every post or product offering is compelling enough to be considered buzzworthy. SMO is simply another content optimisation tactic to lure in thousands of new visitors and also hundreds of inbound links. While it is scalable when it works, it doesn’t always work predictably. The correct link bait, presented at the correct time, to the targeted audience, with the right message can deliver amazingly targeted traffic to a website or blog. For a new website, simply getting on Digg’s front page can offer instant credibility and exposure. For an established website, social media optimisation can help in strengthening the brand and draw in a completely new online audience. The secret to succeeding with social media marketing is to know how to and when to leverage an online community to meet targeted goals while being a member of that community. To achieve that, one needs to know their audience and clearly be able to set some measurable goals.
An authority on using Social Media for Business, Logan Nathan has written an eBook on Twitter Secrets for Your Business which can be purchased online via http:// twittersecretsforyourbusiness.com page9
Health, Wealth & Happiness through Healthy Lifestyle By Dr. Mahen Wijesuriya
G
ood health is essential to pursue an active lifestyle as it gives freedom to pursue your aspirations. Any significant health problem whether chronic or acute, limits expectations and curtails one’s activities.
Most often, our aspirations are based on wrong premises; “a pursuit of golden pastures”, which we feel will give us wealth and prosperity. In our haste to achieve this illusive happiness, the right priorities of balancing health with wealth creation, are often underplayed. It is easy to adopt this modern lifestyle to attain this perceived state of happiness and forget the priorities which protects one’s health. Happiness through a state of contentment, adds to a balanced state of health, both in mind and body. Good nutrition and adequate exercise are complementary to stress control and together lead to a healthy lifestyle. Often, the need for proper nutrition is forgotten in the light of educational and occupational requirements. Work, in turn, is often sedentary, high stress and consumes a large proportion of the time of an individual, thus ignoring the need for the meals to be consumed at the right time, the right quantity and to be of the right quality. It is often thought by us that any food at any time through any source is adequate to maintain health. This is a wrong notion and should be corrected. The three components to proper nutrition are Quality, Quantity and Timing. High quality food consists of high fiber, carbohydrates, vegetables, fruits, fish and chicken. Avoidance of highly polished refined foods such as white bread,polished white rice, sugars, and red and processed meat products high in saturated
fats is very important. Home cooked meals give greater flexibility and is better in quality than commercial food preparations. The quantities consumed should be modest to satisfy hunger and meet with current energy requirements. Any excess will result in fat deposition leading to obesity with a high tendency to develop diabetes, heart disease and hypertension.
Stress is the scourge of modern life. It has three components, namely, nutritional deprivation, psychosocial problems affecting home and work, and infections. A contended, balanced and happy mind minimizes the effects of stress on the individual. This is achieved through moderation of expectation and your ability to be happy with your “lot” in life. Healthy mind in a healthy body leads to health, wealth and happiness.
Timing of your meals is of utmost importance as delayed meals accentuate hunger which, in turn, increases the quantity consumed. Alcohol, in addition to being a high calorie product, has the same effect on hunger and excessive intake leading to weight gain. Regular meals could be interspersed with healthy snacks to minimize hunger and overeating in an energetic person. The preferred snack should be a fresh fruit, soup, high fiber biscuit or salad. Exercise complements good nutrition to maintain ideal weight and good health. An individualized exercise regime both aerobic and non aerobic is recommended. Allocation of time for exercise and choice of exercise is important so that exercise regime is sustained in the long term. Continuous exercise such as walking, running, swimming, dancing, active sports for 30 – 45 minutes, 3 -5 times per week is recommended while an exercise regime with family and friends may take away boredom to ensure compliance.
Dr. Mahen Wijesuriya, Secretary of the Diabetes Association of Sri Lanka & Director of the National Diabetes Centre
Speed matters in
SE
‘‘
Having a properly SEO’d site is as important as having an eye catching, usable design and a robust, efficient code base.
’’
Having said that, if we move on to our hot topic, one can ask the question “Does website speed matter in SEO?”. The answer to that question is not that straight forward. According to latest news from search giant Google[1], speed has become a factor (or a signal) if you want to get your site to the top of the search result list. Let me try to explain how this works with an example:
EO By Chaman Ipalawatta
A
s you probably know by now, having a website on the Internet alone is as good as having nothing. Search Engine Optimization (SEO) is essential (consider it as one of those things you MUST do) to have your website showing up on top of the search results of Google, Yahoo!, Bing, etc. Search algorithms of search giants like Google, Yahoo! and Microsoft are extremely complicated and take many factors (or signals) into consideration when indexing websites. Every search engine goes through a process called indexing. Indexing is a process where small programs called “crawlers” go through a huge list of websites to find the most efficient and valid (we are talking about valid Cascade Style Sheet (CSS) scripts and valid XHTML) websites and their individual pages and add to the search index with a score that is calculated by the search algorithm. This is one of the main reasons why you will require to write efficient, robust, clean, valid and standard coding when you are developing websites and applications. In addition to writing super codes, you need to make sure the design of the website is efficient as well. For example, having large, unoptimized images in a website can reduce the speed of the site drastically. We will discuss how speed becomes a very important factor in a little while. I would like to discuss what kind of an impression some people have when they talk about SEO before moving on to our hot topic. During my career, I have met so
many tech savvy people and when conversing with them on the SEO topic (especially in Sri Lanka), some think when you type your company name on Google search and hit enter and if you see your company website somewhere in the result set, that you have a SEO’d website. I am not a SEO guru nor do I have a super intelligent shade of the colour blue for my aura, but I can guarantee you that it’s not what we want to have. Let’s take a real example. I created a website for my client’s interior designing business called http://idesigns.lk. It is not the best SEO’d website, but I tried following the basic rules of SEO. If I type “i-designs” on google search that website comes up on 5th place. But the questions we need to ask ourselves are, “is this what we want?” “Does everyone know our company name to search with?” “Will it be more beneficial to us if someone can find us by searching for ‘kitchen designs sri lanka’ or ‘bathroom designs sri lanka’ or even ‘interior designers sri lanka’?”. In my opinion, if you do your SEO properly, you should be able to attract more visitors to your site with queries like the above instead of showing your site in results only when someone searches by the company name itself. Having a properly SEO’d site is as important as having an eye catching, usable design and a robust, efficient code base.
In a nutshell, if you have two websites (website A and B) with equal scores for page ranking, and as an example, let’s assume website A is faster than website B. When we take Google Search “site speed” signal into consideration, site A will be above site B. Please do not misunderstand this concept. To clarify, if we take the above mentioned example from a different angle, let’s say, site A is faster than site B, but site B is more relevant to the search query than site A, the result would be, site B will show up above site A on the search result list simply because Google Search algorithm still gives priority to “relevance of a page” attribute over their latest “site speed” attribute. It is important to see how Amit Singhal goes on explaining in his blog article[2] why improving website speed is a win-win situation for website owners, visitors, as well as Google. One idea of having a website is to attract visitors, and then we want to keep the visitors in our site for as long as we can. But when a website responds slowly, visitors spend less time there. Amit Singhal[2] says “Faster sites don’t just improve user experience; recent data shows that improving site speed also reduces operating costs”. If I elaborate more on the benefits of speeding up your site, you can see that by improving the speed of your website, it will bring more visitors to the site, visitors will be happy to browse through your site and will be happy to return to your site while Google will be able to index more websites with a lesser time frame, which brings the giant more money. To wrap up everything, we looked at what is SEO, what we should expect from SEO and what sort of invalid ideas we should cast away. From a software engineering point of view, having a clean, valid and standard code base can help improve your website rankings on search engines. Not only that, website designers need to make sure they come up with optimized content such as images, which will help the website to reach its highest response speed which has become the latest attribute in Googles Search Algorithm.
Further Reading: • Learn how to make your web faster, the Google • • •
way! - http://code.google.com/speed/ Google webmaster central blog: Heaps of articles on crawling and indexing for the google index http://googlewebmastercentral.blogspot.com/ Google webmaster central YouTube video channel http://www.youtube.com/user/ GoogleWebmasterHelp Velocity 2009 - Good source of presentation videos/slides - http://en.oreilly.com/velocity2009
Reference:
[1] Amit Singhal, Using site speed in page ranking, http://googlewebmastercentral.blogspot.com/,12 April 2010 [2] http://googlewebmastercentral.blogspot.com/
Chaman Ipalawatta has been in the IT industry for
over five years and he is the founder of Nerds N’ Geeks.
Shop & Office
Employees Leave Entitlements By Ramanee Ipalawatta, LL B, Attorney-at-Law & Notary Public
T
his Act is considered as the “Charter of Rights” of the white collar workers in the country, and its objective is to provide for the regulation of employment, hours of work, leave, holidays and remuneration of persons in shops and offices, and for matters connected therewith. All the employees in shops and offices of the private sector in the entire island are entitled to the rights and privileges provided for them under this Act.
1st Year of Employment
A person shall be entitled to utilize only one day of paid leave every two months, which is called Casual Leave. There is no Annual Leave entitlement that could be taken during the first year of employment.
2nd Year of Employment
A person is entitled to seven days of Casual Leave during the second year of employment that could be taken for personal reasons. The number of days Annual Leave a person will be entitled to, will be as follows :
Commencement of Employment
Entitlement
Between 01st January & 31st March
14 days
Between 01st April & 30th June
10 days
Between 01st July & 30th September
07 days
On or after 01st October
04 days
3rd & Subsequent Years of Employment
Seven days of Casual Leave could be taken for personal reasons. Fourteen days of Annual Leave of which a minimum of seven shall be consecutive days.
Resignation or Termination of Employment
When a person resigns from employment or is terminated, such person shall be entitled to take Annual Leave or get paid in lieu, depending on the number of months worked for that year, as follows : • One day in respect of each complete month if date of termination is prior to 1st November, for example, if the resignation is effective from 1st June, then the entitlement will be five days. • Full fourteen days if such period is more than ten months, for example, if the resignation is effective from 15th November, then the entitlement will be fourteen days. The above entitlement will be in addition to the Annual Leave earned in the previous year.
Medical Leave
There is no provision of Medical Leave under the Shop & Office Employees Act. However, some companies allow employees to take leave with pay on grounds of sickness though it is purely at the employer’s discretion, and the manner in which such leave is granted varies from employer to employer.
The next issue will cover details of EPF & ETF Contributions.
www.nerds-n-geeks.com
page14
Digital Artist
know, Adobe Systems Inc. acquired Macromedia in 2005 which means Flash, Dreamweaver and Fireworks are now included in their application bundles called Suites. Along with After Effects, Premiere, InDesign and Audition, the Adobe Master Collection is almost impenetrable as a full option solution to all things Print, Web and Multimedia. You now need to play with your apps as much as you can, and find quick and easy ways to get things done. Learn keyboard shortcuts (you will understand how handy they are when you are working on big projects), read tutorials (it always helps to sign on for a few very good resource websites. Abduzeedo design magazine and Tuts+ network are amazing networks of creative resources and creative individuals helping each other out).
The creative industry in Sri Lanka (in a nutshell):
Starting out as a By Nuclear Ambitions
Well, sure it won’t be like working at Google. There’s a lot of red tape, a lot of throat slitting and certainly an endless bunch of know-it-alls waiting to criticise you. You need to survive your first few years without losing grip on sanity. To do this, you need to blend in and go with the flow. You simply need to take advice as advice, and remember your position as a fresher. Don’t let that stop your creative juices from flowing. If you recall what I said earlier, make use of your proactiveness wherever applicable. Do some freelance work for your friends. Find work outside of your 9-5 and do them with creative control in your hand. But you might want to re-read your contract document though; a lot of agencies will not allow you to lend your creative abilities to parties outside for money. You need to be at the top of your game with not only design and creative capabilities, but you need to be all savvy with your know-how in the area you work in. You don’t have to be a jack of all trades and master of none, but have to make sure you know the inner workings of all creative things, from conceiving an idea to the process that concedes the final output.
Client Handling:
T
h i s article is for the ones with aspirations to start off their careers in the creative industry. If you are finishing up school with a penchant for all things, art and a nosy itch towards digital media, the following tips may help you align yourself with the challenges and the need-to-knows of the trade when you are starting out as a graphic designer or, in a broader sense, a digital artist.
In the beginning:
Composition is everything. You don’t need to be a guru in design applications (yet!). If your composition is well thought through, your grasp of the task at hand is much more important than how good you are with your tools (that’s not meant to sound corny, but it does matter). Write your ideas down clearly in point form. You don’t have all the time in the world. When you’re starting out, take the maximum advantage of your ability to be proactive. You can sit and chill, and order people around when you’re a creative director. So, snap out that thought, and always be fast and swift but take time to go over your delivery or “pitch” as they call it (weird!) carefully. I’d advise you to draw up your composition on paper, but it does, however, help to compose your artwork on the design application itself to save time. It depends on how simple or complicated your task is.
Start your engines:
You already know what each design application does. Thanks to the internet and torrents (cough), we have access to an arsenal of design apps. But my friend, you can’t mess with the Gods, by name they are Adobe Systems Inc. & Corel Corporation. They have ruled the design galaxy for as long as I have known digital design existed. As you may already
www.nerds-n-geeks.com
If you’ve done what I’ve done for this many years, you would have obviously come across clients whose creativity knows no bounds. I call this “The Douche” phenomenon. It’s one thing for clients to give you creative pointers, but another to completely mess up what you’ve conceptualized. If you’re an amateur designer with a start-up portfolio, sadly you have to realize they are probably right, and bite the bullet. But if you’re a hardened creative individual who has exposure to current trends and industry standards, you should make sure your voice is heard.
In Conclusion: • It’s a wonderful industry to be in. You’re a free thinking artistic spirit • •
•
•
in your own right. But when you’re working in an agency, you have to wear many hats; follow through and execute concepts through various stages, from flows to wireframes to final visuals. Be unafraid to challenge design assumptions and put the product first. You have to be absolutely sure about what the client wants and how they want it delivered. New technologies come and go at the speed of light. Look at Facebook, for example. It’s the bomb right now. But there will be something to replace that mammoth of a social network one day, just like that! Learn new trends and keep an eye out for new technologies. The sooner you start experimenting with new tech, the sooner you can apply them to your solutions. Being redundant in a fast moving industry will be your end. Don’t copy! Copy in order to practice an application or a technique. But please don’t copy concepts of work that other people have produced and won praise for. It’s ugly. Be creative and be inspired by other people’s work but don’t mimic them in order to move faster through your career. It won’t work. Learn how your industry works. Read about how best you can deliver what is needed from you and the team you are in. This is essential for your career advancement. The more you know the inner workings of your specific industry, the more you are open to other options of combining talents and skills and building a repertoire and a name for yourself.
page15
Why You Should Think Before You
H
uman nature is a very complicated thing, and many times, our emotions can rule our actions. I’m sure, everyone, at one time or another, has had an awful day and snapped at someone at the office, on the phone or even over the dinner table. Now, these instances happen in real time, where the interaction is not documented (unless there is a hidden camera at the water cooler). So, if you make a mistake, you can apologize and smoothen out the situation. Moreover, you can even improve on a poor first impression. But when it comes to online interactions, it isn’t as simple. Your words last forever and can be seen by millions. There have been many high profile stories in the news about everything from children finding out about their parents’ divorce by reading their mother’s Facebook profile (yes, real story) to job seekers losing their opportunity, based on the negative things they “tweeted” about their interview on Twitter. So, the first points to consider are not only to think before you write, but also to make sure that you don’t mind everyone seeing what you are writing. When choosing to interact with others online, you are in a way “going public” with your profile and building your (online) reputation. Yep, even if you are playing on Facebook, your online footprint is being documented. That being said, when it comes to interacting and marketing online, your reputation is the most important thing in the world. And this reputation goes further than your profile page or online resume/CV. What your online reputation consists of is, everything you write, every interaction, every message you send, every person you connect with, etc. Your reputation will fuel what people say and think about you, with many of these opinions never being shared with you. As your reputation is built around interaction, let’s talk about something to be weary of – negativity. Every person you interact with online is part of your virtual community. So whether they are directly connected with you or not, you share common contacts and associations (many of whom can be unbeknowns to you). So, it is important to be mindful of your words. Let’s take Linkedin for example. When you go into your favorite group and read through the latest discussions, you find one that peaks your interest. You click through, read the article and when you are halfway through, discover that you completely disagree with the points being shared. They are totally wrong! Why? Because in your experience this is not true. Great! That’s what Linkedin discussions are all about, sharing different points-of-view, insights and experiences. Who knows, your point could change the point-of-view of the person posting the discussion. Your information is pretty powerful. But, how do you make your point? Remember, Linkedin is a professional site. Do you insult the person? Speak in a condescending tone? Send them a private message telling them that they are silly and
Type way off point? If this sounds like you, please be careful with what you write (and this goes for all of the other social sites as well)! When you want to share your point-of-view, do it in a productive professional manner. Remembering that this is a public forum, watch your words. If you don’t agree, don’t just say that. Make a case, share your wisdom and experience. By engaging with others (especially if the person you are interacting with, has a large following) you have a prime opportunity to grow your own online visibility. The point is that you want to build your reputation, not tarnish it. Being consistently negative can result in word of your behavior spreading, people will discuss it, you may be ignored and more. The worst part? Many times you won’t even know it is happening until it’s too late. If someone irritates you, ignore them or remove them as a connection. This constant refinement will also help you get the most out of your time online. Sending them a message telling them you don’t like them is not the answer. And guess what? Sometimes these “hate mails” get forwarded, shared and discussed. Again, this activity is something that you won’t know is occurring. Now don’t get me wrong, I’m not saying you shouldn’t have your say. Opinions are crucial in the social media space. My point is to make your contributions online productive and aligned with your professional acumen. This will help you build a strong, credible profile and help your business grow. Being negative and antagonistic isn’t the answer. With that said, many of the so-called social media rules are not new, groundbreaking or even shocking. They are based on the fundamentals of communication and interaction. So whether you are using the online media for personal or business reasons, treat others as you would like to be treated.
By Chris Tompkins, www.gochrisonline.com
This article is published with the permission of the author. The author is the CEO of Go! Media International (www.gomediaonline. com), Social Media Fanatic, Web Design Lover, Avid Classic TV Viewer
ANDROID
based mobile application development
What is Android?
Android is an operating system for mobile phones which offers powerful tools to access the internet and let developers write their own mobile apps. It has a kernel, based on Linux operating system which is a free and open source software released under Apache version 2.0 license that runs under Google Inc. Android has started to revolutionize the mobile platform industry, same as Google did with the search engine paradigm. Currently, every mobile handset manufacturer has released or is in the process of manufacturing Android based phones. The market will be flooded with Android based touch phones in the near future. This platform has given more opportunities for developers to hack the operating system and develop new generation mobile apps.
Why Android is good for mobile application developers?
It hasn’t been profitable to develop mobile apps for smart phones due to the fragmentation of platforms, proprietary software stacks and closed networks. Developers had to master SDKs of different platforms (Java ME – CLDC, iPhone SDK, Windows Mobile and BlackBerry SDK) and get used to the APIs that varied from phone to phone. At times, porting on to different handsets of the same SDK was a nightmare for mobile developers. Experts believe Android has the potential for removing barriers of the existing mobile application development industry. Google and 33 other companies announced the formation of the Open Handset Alliance on November 5, 2007. This alliance shares a common goal of bringing innovation to mobile devices and giving consumers a far better user experience than
www.nerds-n-geeks.com
much of what is available on today’s mobile platforms. Currently, handset provider companies such as HTC, T-Mobile and Motorola have already released Android based phones to the market and a few more are on the way! This has allowed Android mobile application developers to develop whatever creative mobile applications they can think of, and they are free to market them to Android mobile phone owners. Android Marketplace has been the standard sellout point for developers to make their apps free or commercial, and distribute it to the rest of the world.
By Tharaka de Alwis
How to get started on Android development?
Android application development is done using Eclipse IDE and the programming language is Java. Google has given the free version of Android SDK supporting different platform versions that run on Windows, Linux and Mac. Using Android Eclipse plug-in, developers can generate Android based Java projects where they need to apply the Java sources and images according to the Android Java framework specification. The SDK comes with an in-built emulator where you could customize its behavior based on the target handset. Images need to be optimized according to Android Icon/Image optimization guidelines. You need to pay USD 25 to get a developer license to upload your Android app on Android Marketplace. Google allows commercial or free apps to be uploaded by any developer. No rigorous quality checks will be performed by Android Marketplace authority. For a commercial app, a developer gets 70% and Google will keep 30% from its net price. Currently, there are over 50,000 Android mobile apps being published on Marketplace.
Portions of this page are reproduced from work created and shared by Google (http://code.google.com/policies.html) and used according to terms described in the Creative Commons 3.0 Attribution License (http://creativecommons.org/licenses/ by/3.0/). References http://en.wikipedia.org/wiki/ Android_%28operating_system%29
Tharaka de Alwis
has been in the IT industry for over six years and currently he is working at Sabre Technologies playing the Tech Lead role on Java, Java EE, Mobile, SAP e-commerce and Cloud Computing - SaaS projects. page17
1
tips to comme
by José M. 1. Comment each level
4. Don’t insult the reader’s intelligence
Comment each code block, using an uniform approach for each level. For example:
Avoid obvious comments such as:
• •
if (a == 5) // if (a) equals 5 counter = 0; // set the counter to zero
for each class, include a brief description, author and date of last modification. for each method, include a description of its purpose, functions, parameters and results.
Adopting comment standards is important when working with a team. Of course, it is acceptable and even advisable to use comment conventions and tools (such as XML in C# or Javadoc for Java) to facilitate this task.
2. Use paragraph comments Break code blocks into multiple “paragraphs” that each performs a single task, then add a comment at the beginning of each block to instruct the reader on what is about to happen. // Check that all data records // are correct for each (Record record in records) { if (rec.checkStatus()==Status.OK) { . . . } } // Now we begin to perform // transactions Context ctx = new ApplicationContext(); ctx.BeginTransaction(); . . .
3. Align comments in consecutive lines For multiple lines of code with trailing comments, align the comments so they will be easy to read. const MAX_ITEMS = 10; // maximum number of packets const MASK = 0x1F; // mask bit TCP Some developers use tabs to align comments, while others use spaces. Because tab stops can vary among editors and IDEs, the best approach is to use spaces.
This wastes your time, writing needless comments and distracts the reader with details that can be easily deduced from the code.
5. Be polite Avoid rude comments like, “Notice the stupid user has entered a negative number” or “This fixes the side effect produced by the pathetically inept implementation of the initial developer.” Such comments do not reflect well upon their author, and you never know who may read these comments in the future: it could be your boss, a customer, or the pathetically inept developer himself you just insulted.
6. Get to the point Don’t write more in comments than is needed to convey the idea. Avoid ASCII art, jokes, poetry and hyperverbosity (http://worsethanfailure.com/Articles/Hyperverbosity-. aspx). In short, keep the comments simple and direct.
7. Use a consistent style Some people believe that comments should be written so that non-programmers can understand them. Others believe that comments should be directed at developers only. In any event, as stated in Successful Strategies for Commenting Code (http://particletree.com/features/successful-strategies-for-commenting-code/),what matters is that comments are consistent and always targeted to the same audience. Personally, I doubt many non-developers will be reading code, so comments should target other developers.
8. Use special tags for internal use When working on code as a team, adopt a consistent set of tags to communicate amongst programmers. For example, many teams use a “TODO:” tag to indicate a section of code that requires additional work:
13
ent your code
. Aguilar int Estimate(int x, int y) { // TODO: implement the calculations return 0; } Tag comments don’t explain code; rather they seek attention or deliver a message. But if you use this technique, remember to follow up and actually do what the message is asking.
9. Comment code while writing it Add comments while you write the code and it’s fresh in your memory. If you leave comments until the end, it will take you twice as long, if you do it at all. “I have no time to comment,” “I’m in a hurry,” and “The project is delayed” are all simply excuses to avoid documenting your code. Some developers believe you should write comments before the code (http://freshmeat.net/articles/view/238/) as a way to plan out your ultimate solution. For example: public { // // // // }
void ProcessOrder() Make sure the products are available Check that the customer is valid Send the order to the store Generate bill
10. Write comments as if they were for you (in fact, they are) When it comes to commenting code, think not only about the developers who will maintain your code in the future, but also think about yourself. In the words of great Phil Haack (http://haacked.com/archive/2007/06/25/understanding-productivity-differe nces-between-developers.aspx): “As soon as a line of code is laid on the screen, you’re in maintenance mode on that piece of code.” As a result, we ourselves will be the first beneficiaries (or victims) of our good (or bad) comments.
11. Update comments when you update the code There is no point in commenting correctly on the code if the comments are not changed with the code. Both code and comments must move in parallel, otherwise
the comments will actually make life more difficult for developers who maintain your code. Pay special attention to refactoring tools that automatically update code but leave comments unchanged and hence obsolete in the same instant.
12. The golden rule of comments: readable code One of the basic principles for many developers: Let your code speak for itself. Although one suspects this movement is led by programmers who do not like to write comments, it is true that self-explanatory code can go a long way towards making code that’s easier to understand and can even render comments unnecessary. For example, the code in my Fluid Interfaces (http://www.variablenotfound.com/2007/11/ interfaces-fluidos-fluent-interfaces.html - in Spanish) article shows how clear selfexplanatory codes can be: Calculator calc = new Calculator(); calc.Set(0); calc.Add(10); calc.Multiply(2); calc.Subtract(4); Console.WriteLine( “Result: {0}”, calc.Get() ); In this example, comments are not needed and would probably violate tip #4. To facilitate readable code, you might consider using proper names (as described in the classic Ottinger’s Rules - http://www.objectmentor.com/resources/articles/naming. htm), to ensure correct indentation, and adopt coding style guides. Failure to comply with this tip may result in comments that seem to express regret for bad code.
13. Share these tips with your colleagues Although tip #10 shows how we ourselves benefit immediately from good comments, these tips will benefit all developers, especially in the context of teams working together. Therefore, feel free to share these commenting tips with your colleagues to create a code that is easier to understand and maintain.
This article was written by José M. Aguilar in Spanish on his excellent blog http://www.variablenotfound.com, translated and edited by Timm Martin (http://www.devtopics.com) and republished here, with permission from Mr. Aguilar.
COMMUNICAT ISSUE Today communication is all about winning. It is about winning businesses, people, audiences, and even elections. But real communication is a two way thing. Talking, without shaping your speech by responding to your listener/s will get you nothing. And you can lose everything. A good communicator must always read the audience and must respond to their friendly gestures by carefully organizing his speech. Communication, one said, is pretty simple. I plan and communicate, then you listen and understand. But contrary to that, how many times have you been in low productive communications (with a friend, in meetings or listening to lectures/presentations/ discussions/seminars)? You were hearing nothing but “wa-wa-waa-wawaa” continuously till the end. Weren’t you counting the seconds to free yourself? In such a case, you would have asked, was that an issue of my communication or was it the presenter’s presentation
www.nerds-n-geeks.com
skills. I am not willing to commit for an unwise answer here. But I am definite that communication is ‘listening’ too. Today, in the context of Information Communication Technology (ICT), the written and oral communication skills have unfolded into many other paradigms. This is a time we say, just having a good command of English is not satisfactory. The professionals around you are well equipped with its derivative skills such as the ones listed below: • General Communication Skills • Presentation Skills • Team Building • Leadership Skills • Customer Servicing • Managing Skills It does not matter what skills you possess or want to possess, there is a golden rule that governs all, and that is ‘the ability to effectively transfer knowledge’.
In the competitive market, in winning a business (or negotiating with a customer) with your communication skills, things get a little more complicated than that. The more skills you possess, the more you stay ahead in the competition. “Having more weapons in his armoury, didn’t Indrajith use ‘Naga Paasha’ (a weapon made of million snakes), the most ferocious weapon of his armoury, to get both Rama and Lakshmana paralyzed, making the very immortals tremble with fear?” – Ramayana. So, for you, would it hurt to have a couple of more tricks to add to your armoury? In order to become a lifelong learner, you need to understand the importance of self-evaluation. So let’s do a self-evaluation before we go into detail. Your direct aim has to be, to honestly find out how many of those noted below, apply to you.
page20
TION ES
By L.W.C Nirosh
• You feel very uncomfortable and confused in any type of communication. • You are well known as one who creates utter chaos when communicating. • You like to be the silent one. You are not comfortable convincing or proving a point, hence opt to be silent in discussions or meetings. • You enjoy talking, but not others who are around you. It’s like, you just want to release everything compressed in your mind to whoever wants to listen. In this regard, you don’t care even if nobody listens. • Others don’t hear you. You said something and at the end, people start asking so many questions as if they never heard you at the start. • You find it hard to answer something the first time. You expect an answer to a question you raised earlier (let’s say in a forum or in a news group), but only find another question being raised by someone else asking for more details about the question you raised.
www.nerds-n-geeks.com
• You are not good at resolving issues. You send an e-mail to resolve an issue, but end up not solving but creating many other issues. • You get it wrong the first time. Your e-mail is followed by another carrying something you missed before or you get an immediate response from the receiver questioning about something, which you missed to clarify in the first place. • You hate questions. You naturally hate questions and always use your loud voice and professional status as a shield to stop people from asking questions. • You are lazy. You, yourself know that you don’t make any sense, but you still bear your poor communication skills. If you are in tune, then I have a confidential message for you “You Do Have Communication Issues”. The ‘communication issue’ is not one of those incurable deceases. A willingness to try to be better and continuous learning will bring you success.
More on “Communication Issues” in the next publication L.W.C. Nirosh works as a Tech Lead for Sabre Technologies (Pvt) Ltd.
page21
Field Experience
By Rukmal Hettiarachchi
A
bout an year ago, I was hired as a programmer to develop a web based disaster management system to monitor and speed up transactions among various parties involved in the northern IDP relief activities. It was a hectic time as a large number of people from un-cleared areas had just arrived at the Vavuniya IDP camps. The government was involved with many local & international organizations, and monitoring such transactions through a web based system can be a daunting task when everyone is really busy with other work. As we had a great team of developers, everything went smoothly. The project was concluded within three months and everyone was excited about what our next task would be. We were told that working in the field of humanitarian relief was one of the most difficult jobs to do. I was thinking whether it is really that hard as they say, until they combined our group with an ongoing project. The government was involved in a survey on the overall IDP population in Vavuniya camps in order to get an idea on how they would resettle them. The team we were joining had already finished conducting the survey and had commenced entering data into the system. Data entry had commenced in two locations where one was using MS Access, while the other was using a PHP Web Interface with MySQL for data entry. The main purpose of our team was to clean up inconsistent and invalid data and help the other team in generating reports on IDP groups such as disabled people, number of people arriving from different geographical locations, etc. It was difficult for both teams to work in separate locations as internet facilities weren’t that good in Vavuniya, so we were required to join the other team in Vavuniya. We had less direct experience in the field of data cleaning. We arrived in Vavuniya and joined our new group members and they gave us an idea on problems they were facing while conducting a large scale survey. One of the major issues they had was the amount
www.nerds-n-geeks.com
of invalid data that had been entered in the data entry process. They had not been that keen on implementing data validation for certain fields in the forms as this would lengthen the process of data entry. The downfall of this approach was that too much invalid/inconsistent data was left in the end, to validate and clean up. Also, there were large amounts of duplicate and erroneous data which simply had to be discarded resulting in data loss. Then, there was the problem of converting MySQL data to MS Access and vice versa. Unless you have a very good software tool in hand, errors occurring at data conversion are unavoidable. Some of our colleagues working in the software industry recommended a tool called Kettle (A Pentaho Tool Open Source Software) for achieving the above data transformation and data cleansing tasks. However, we had very limited time to reach our goals, and due to our inexperience, using this software simply took more time to resolve errors. In the end, we decided to use our own PHP scripts to identify erroneous data and then use different formatting methods to bring them back to the expected format. Needless to say, this approach also has a lot of drawbacks. As you discover more variations of invalid data, you’d have to think of new ways of eliminating them. However, after a long struggle, we were able to eliminate a large number of data errors and convert about 90% of invalid data into acceptable formats. Still it took us a lot more time than expected but we were happy that we could at least finish the job to this extent. Apart from having less job experience, working at a remote location was another challenge for us. We did not have the luxury of working inside an AC room like in Colombo. Cramped up in a place crowded with people, with temperatures going above 30o wasn’t the ideal work environment. Vavuniya town is a very small place in comparison to other towns and finding a place to get a decent meal was also difficult. Then,
there was the problem of sleeping at night under high temperatures with mosquitoes. However, the whole team was very enthusiastic till the end, despite facing all these difficulties. We could see that we were lucky to at least find a place to do our job when some people simply had to work outside under harsh weather conditions for very long time periods. The local and international aid workers were doing a great job to improve the living conditions of the IDPs and their motivation and dedication was simply unbelievable. Overall, this was a good experience for us. The approach of limiting data validation in order to decrease time taken for data entry should be adopted only after careful consideration. Will this approach result in a longer time period for data cleaning operations in comparison to the additional data entry time taken when comprehensive data validation methods are used? The best method, I guess, would be to use data validation in an intelligent manner. When a data field is selected, the system should automatically pick & fill certain other relevant data fields, eg when an user selects his/her GN division of residence, the system should automatically pick the matching DS division, district and the province for this entry. Also, the system should automatically format data when an expected format is missing, which is an acceptable technique in this respect. So, with fair use of data validation together with methods described above, data entry errors could be minimized, and time taken for data entry reduced, which would also result in less time taken for cleaning up inconsistent/invalid data.
Rukmal currently works as an IT specialist for the National Project Office, Ministry of Resettlement . He is involved in the development of web based disaster management systems and administration of Ministry database systems. page22
Review Twitter Event Sharing Platform
A brand new event sharing platform has arrived on the social media scene with the launch of TweetMyEvents (http://www.tweetmyevents.com/) on 12th April, 2010. TweetMyEvents is a real-time event sharing platform for the social web. The free service allows users to broadcast their events to the world through Twitter, the popular micro-blogging platform. The service is aimed primarily at event organizers/ internet marketers looking to promote their events and also business organizations seeking to inform prospects, customers, suppliers and staff about upcoming events. By using this service, event organizers and businesses will be able to reach a larger target audience in realtime and save hours that they would otherwise have
spent sending out email invitations to their prospects, customers, suppliers or staff. Individuals and companies are also on the lookout for suitable training programs for self-development and improved staff performance respectively. TweetMyEvents allows such users to find specific events in their field of interest easily and register for such with the simple click of a button. The interface is extremely easy to use and does not require a separate sign-up process. Users can log in through their Twitter accounts, list their events in the “Dashboard� and tweet them out instantly. Event details can also be easily modified or deleted. Published events can be viewed at a glance, and users can also nominate their favourite events.
&
&
Affix Stamp Here
Nerds N’ Geeks t Shir T eky ord e g his crossw . t n wi e ge h a o t t p g t e anc pletin he nex h c t A om by c zzle on pu
49B, Woodland Avenue Kohuwala Nugegoda Sri Lanka
Crossword Puzzle
Complete the
Crossword puzzle
and try to be the lucky winner of this geeky T-Shirt
!
ACROSS 1. Internet-based computing, whereby shared resources, software and information are provided to computers and other devices on-demand. 2. A mobile phone that offers more advanced computing ability and connectivity than a basic ‘feature phone’. 3. A social networking and microblogging service that enables its users to send and read messages known as tweets. 4. A home video game console released by Nintendo on November 19, 2006. 5. In computing, it is the central component of most computer operating systems; it is a bridge between applications and the actual data processing done at the hardware level. 6. It consists of the buying and selling of products or services over electronic systems such as the Internet and other computer networks. DOWN 2. Email that is unsolicited and sent in bulk. 3. Home planet of Anakin Skywalker and Luke Skywalker. 7. An operating system and software stack for mobile devices that includes middleware and key applications, and uses a modified version of the Linux kernel. It is currently maintained by Google. 8. The last name of facebook’s CEO. 9. A trap set to detect, deflect, or in some manner counteract attempts aganist unauthorized use of information systems. 10. The first name of Apple’s CEO. 11. The latest search engine by Microsoft. 12. A multi-gigabit speed wireless communications technology operating over the unlicensed 60 GHz frequency band.
DIRECTIONS TO ENTER THE RAFFLE DRAW : Please complete the crossword puzzle below, fill in the personal information form and post the slip to us on or before 9th August 2010. A raffle will be drawn with the correct entries and the winner will be announced on our website www.nerds-n-geeks.com on the 16th of August. PARTICIPANTS : Sri Lankan citizens only.
2
7
PERSONAL INFORMATION
A
FULL NAME 3 8
12 9
1
11
H
ADDRESS
C
4
10
CONTACT NUMBER T-SHIRT SIZE
SMALL
MEDIUM
LARGE
5
6
www.nerds-n-geeks.com
page24