Thứ Tư, 16 tháng 12, 2009

You don’t end up being an astrounaut by mistake


By tlahuicalva

I always had been an advocate of CEO’s ability to move seamlessly across industries getting companies to succeed no matter what. If you can make and sell bread you can make and sell toothpaste, right? Not so…

Since I had done it in the past, I thought doing it again, in a new country and field was just a matter of focus. How mistaken I was.

So I went into the IT field and used all the “beginners luck” credit I had. In less than 3 years I was able to turn Blue Ball into a profitable company with over 40 engineers.Then luck dried off.

It wasn’t in my hands to prevent a coup d’état, but I certainly wasn’t ready to face one. If I had just studied enough Thai history I would have learned that political crisis here are as common as their green papaya salad. As a CEO you can’t be only informed about current issues, but you must learn what has happened in the country you are working for at least 50 years.

And it wasn’t only the coup, Thailand went on having no government for over a year! (which in any other country would spell disaster). Temporary governments resilient as wet toilet paper followed, massive demonstrations, society broken into coloured pieces (yellows against reds), international airports closed and as a result? A stalled economy, consumer trust on the floor and international investing all but non-existing.

Top it all with the worst global crisis in the last 80 years and that we just had invested to set up a company in Vietnam.

We just had become a fat, ugly over-stretched cow, and if we didn’t do something fast, we would have died in no time.

We realize that growing fast means growing fat. The first years were so good that I cared very little for the side effects of non-planned growth and the consequences of inefficiency. When money is abundant you stop counting the cents

We were in need of a fast and surely enough painful transition, that would put a lot of pressure on me and my teams, but ultimately would transform the company into a highly efficient, highly focused company that would take us out of mediocrity (no matter how big the profits were) and into the top leagues (no matter when the big profits will come).

So what did we do? What did we learn?

Control, control and then control a bit more. What to control? Everything. Yes, in the good times you cannot compromise opportunities by trying to control everything, but don’t just forget about it. The higher you build the heavier your fall will be. I strongly believe that if times are being good, you should allocate resources to bring experts into areas of management, operations, quality and finances. Establish processes and detect weaknesses. Use the money you are receiving to build structures, otherwise you will use all that money rying to stop the bleeding when bad times come. And believe me, they will come.

Improve efficiency. If you have never tried to improve efficiency in your company most certainly means that your company is terribly inefficient. If you have tried, it still means that you have a good chance to improve by 50%. If you had done the above it means that there is still room for improvement. If you have statistical data of all your processes you are really getting there!

Outsource as much as you can. Give the job to the specialist and get involved with them. Do not just through the ball to someone else. Sit with the outsourcing providers and discuss your aim, make sure they understand what you want them to achieve. Then meet them periodically. No matter how important you think you are or how busy your schedule is, make time for it, or pay the consequences. What should you outsource? Accounting, system development, design and e-marketing are some areas that most can outsource. Your business may have other needs that can be too delegated to outside providers.

Systematize. No matter how cheap labour is in your country, invest on systems. They may look expensive, but on the long run, labor end up being more expensive, not reliable, never repeatable and subject to all the bad things relative to human nature. Once a system is there, it is there for good and it generates valuable data that if well read, can help your company succeed or at worse survive when the bad times come.

Go for added value services. Yes, it is easy to make money the easy way, but if it is that easy, means that almost everyone can do it. That is why there is a zillion of mediocre IT companies and freelancers. You must distinguish yourself adding value to what you do. This is not a guarantee for immediate success but is a good start, you will still need to find educated buyers, but they come with deeper pockets.

Concentrate your efforts. Detect your segments and your markets. It will improve your products and services and it will save you tons of money on sales and marketing, maybe even production. Also try to do less. Reduce your range of products and services, remember, these are the good times, now you have the time to analyze and define your strategy for the future. The more vertical your expertise is the easier to sell, the better price you charge and the easier to market it effectively.

Do marketing. Do not fall in the temptation of not developing a marketing strategy just because you are doing well! Your aim is not to sell more now, but to make sure you develop a strategy that will keep your company healthy when good time ain’t there anymore. Nothing was more difficult to me that developing international marketing when the company had ZERO resources to pay for it. Invest time understanding your company, make sure the person for your marketing is 110% with you and if not, cut his head and replace. Make sure to get the best website money can buy, it is your window to the world. Make sure to go and pay for SEO.

Do not depend on a single big customer. Looking back, I should had sacrificed short term growth to favor medium term growth with a larger pool of customers. Again, you must try to find the balance between getting the benefits of today’s opportunities and building the opportunities for tomorrow. They don’t go hand in hand unless you have a plan.

Blue Ball is not out of the woods just yet, but we are definitely on the path. We are still implementing the same points I just talked about. Having operations in different countries and customers in 8 different countries forces you to improve on daily bases.

We are leaner than ever but we can be more so. Quality is high, really high, but we want higher. Our controls are good, but still not world class, the balance between growth, investment, cash flow, inside pressure, expectations and performance is one that require all my attention and dedication. I learn the hard way, you don’t become an astronaut by mistake, neither you become a decent CEO by having the 3 letters under your name on a name card.

Blueball.co.ltd

http://www.blueballgroup.com

Tlahui Calva – CEO

Has extensive experience on the field of IT offshoring

Tel: +66 8 9699 3358

Email: tlahui@blueballgroup.com

tlahui@yahoo.com

Our Office

Thailand Head Office
Vietnam Production Center

Mexico
Special Developments

Thailand
Head Office
252/94 Muang Thai Phatra Complex,
Tower 2, 17th floor, Ratchadapisek Rd,
Huay Kwang, 10310, Bangkok Thailand
T:026932940
F:026932941

Vietnam
Production Center
Quang Trung Software Park, Ground floor,
Anna building, Ho Chi Minh City, Vietnam
T: 084371032
F: 084371033

Find IT outsourcing and more useful information about outsourcing, offshoring on< IT Services & Outsourcing.

Thứ Năm, 12 tháng 11, 2009

.NET Framework

What is .Net Framework?
The .NET Framework is an integral Windows component that supports building and running the next generation of applications and XML Web services. The .NET Framework is designed to fulfill the following objectives:

* To provide a consistent object-oriented programming environment whether object code is stored and executed locally, executed locally but Internet-distributed, or executed remotely.
* To provide a code-execution environment that minimizes software deployment and versioning conflicts.
* To provide a code-execution environment that promotes safe execution of code, including code created by an unknown or semi-trusted third party.
* To provide a code-execution environment that eliminates the performance problems of scripted or interpreted environments.
* To make the developer experience consistent across widely varying types of applications, such as Windows-based applications and Web-based applications.
* To build all communication on industry standards to ensure that code based on the .NET Framework can integrate with any other code.

The .Net development services signify the development of web applications with the help of .Net Architecture released by the Microsoft Corporation. A bunch of the web application development work that is being outsourced to low cost locations is generally framed on the .Net framework.

The .NET Framework can be hosted by unmanaged components that load the common language runtime into their processes and initiate the execution of managed code, thereby creating a software environment that can exploit both managed and unmanaged features. The .NET Framework not only provides several runtime hosts, but also supports the development of third-party runtime hosts.

For example, ASP.NET hosts the runtime to provide a scalable, server-side environment for managed code. ASP.NET works directly with the runtime to enable ASP.NET applications and XML Web services, both of which are discussed later in this topic.

ASP.NET is a programming framework that is built on the common language runtime and can be used on a server to build powerful web applications. At Blue Ball we deploy world-class .net web services strategy to connect information, systems and services through software. Our team of professional developers having years of experience in ASP.NET make the best use of their knowledge in order to meet your needs at any level of customised web application services as well as maintenance work in ASP.NET.

Blueball's Framework, F3.0 is a general application framework that provides Rapid Application Development for templatable, skinnable,
multilanguage applications, that can be loosely integrated through and independent workflow.

Blueball's new framework F3.0 is more orientated than ever to let you start programming now!

The new features our latest version has over F2.0 are:

* F3.0 is and MVC (framework for rapid application development over PHP
* While F2.0 provided an event model similar to .net, F3.0 pushes
for a cleaner, more pure MVC
* F3.0 looks forward to reduce coding on presentation layer by
implementing re-usable view strategies
* F3.0 also looks for cleaner, purer OO code models

Blueball.co.ltd
http://www.blueballgroup.com
Tlahui Calva – CEO
Has extensive experience on the field of IT offshoring
Tel: +66 8 9699 3358
Email: tlahui@blueballgroup.com
tlahui@yahoo.com
Our Office
Thailand Head Office
Vietnam Production Center
Mexico Special Developments
Thailand
Head Office
252/94 Muang Thai Phatra Complex,
Tower 2, 17th floor, Ratchadapisek Rd,
Huay Kwang, 10310, Bangkok Thailand
T:026932940
F:026932941
Vietnam
Production Center
Quang Trung Software Park, Ground floor,
Anna building, Ho Chi Minh City, Vietnam
T: 084371032
F: 084371033

Find IT outsourcing and more useful information about outsourcing, offshoring on IT Services & Outsourcing.

Thứ Năm, 29 tháng 10, 2009

Web Multi Level Marketing System MLM software


A back-end system that calculate comission, handling of users, billing and ordering while allowing the members access to real time information
about their sales, comissions and history through a user friendly front-end, that will make their jobs a breeze.

System Overview:

System Features (Core Package):

o Support multiple members' group (e.i. MLM 1 account or MLM 4
accounts)
o Able to record renewal and resign member
o Able to view team organization by up-line or by sponsor
o Unlimited downline in system
* Billing & Orders
o Support Invoice & Credit Note
o Allow TOP-UP when over end-of-period
o Support BV & PV for each item
o Multiple Tender Payments (e.g. Cash, Credit card, T/T,
coupon & cheque)
* Membership Module
o Allow member view profit & team organization
o Allow member view buying history & manage coupon on-hand
o Internet/Intranet support
* Comission Module
o Support 2 commission plans e.g. Daily bonus & Monthly bonus
o Allow to calculated bonus for any period
o Allow to transfer commission payment to ERP/Direct bank

Optional Features:

* Inventory Module
o Multiple Warehouse support
o Support set-item/Substitution item
o Allow to define Unit Price for different period
o Inventory Report e.g. Stock card, Dead-stock list, Stock
On-Hand, etc.

* E-Commerce Module
o Catalogue Online
o Shopping Cart
o Online-Payment
o Integrated with member module in MLM system

Built-In Commission Plan:

* Daily Commission Plan (Plan-A)
o 1 time only and apply to use this plan with specified period
o Required Min. BV in invoice
o Commission in this plan consist on:
+ Introduce: 30% (pay to sponsor)
+ Expanding Business: 10% when active more than 2 lines
(pay to up-line & roll-up though root)
o This plan is calculated daily

* Monthly Commission Plan (Plan-B)
o Allow member to apply this plan anytime that they want
o Provide POSITION for each member
o Concern PS (Personal Sales), PGS (Personal Group Sales) and
APV (Accum. PV) for promote
o Some items are paid by month, some items are paid by year
(accum. By month)

Find IT outsourcing and more useful information about outsourcing, offshoring on IT Services & Outsourcing.

Web Design



The Internet, being one of the most valuable, cost effective and efficient ways to reach and impact possible customers world wide, has been the IT area most ill used, due to the assault of non professional who call themselves "web designers".

The sad reality

Not many people understand still the power and potential of Internet. A media channel, open to the world, 24 X 7, multilingual, multimedia, without limitations. Yet, because of its "proximity" to our daily life, people tend to underestimate it. If given the choice, most would invest on air time on TV rather than on a professional website, even though TV reaches only a local audience, in a single language, for just a few seconds a day.

Every company can afford to have a professional website. The only obstacle remains to be the people seating on managerial positions who still don't understand the power they can unleash by investing on a professional website.

Why Blueball?

For a simple reason: we respect the great media that internet is. Blueball understands the web is a powerful tool and an ally for any company trying to achieve success in all aspects of their business.

We have been involved on the web services for more than 10 years, so we have the experience as well as the technical and *marketing knowledge* to explode its full potential.

Technology used in a purposeful way

Blueball understands technology should be a platform to serves human purposes. We use the newest, most powerful to help our customers achieve
their goals. In this case, to create a website that informs, attracts and serves your intended market. Blueball will guide you to choose the
right technology and we will develop it, top quality.

Once technology is out of the way, Blueball will help you to produce all the aesthetical, visual and informative elements of your website. We
will arrange them in a synergetic manner to maximize its potential.

Some of our main services are:

* Overall design
* Logo design
* Browsing design
* Logic and distribution
* Creation of images and graphics (2D and 3D)
* Selection of pics
* Professional photography (Available in Thailand and Vietnam only)
* Content selection
* Content creation
* Text correction and translation (English, French, German, Spanish,
Thai and Vietnamese only)

Some problems you maybe facing now:

* You already have a website but instead of helping you is harming you. Poor design, lack of browsing logic, lack of content, misspellings and unfriendliness to use are some of the main enemies of sites developed by people who are not true professionals
* You have a nice looking page, but it doesn't serve its purpose. Without content and focus, a website is good for nothing
* The wrong technology was used on your website. Many developers use some technologies because they like them, not because they are good to achieve their customer's goals (i.e.. Flash technology)
* Your company doesn't have a corporate image. Your business cards, power point presentations, letterhead and website look all different
* Your logo is not professional: your website won't be either. Even the most beautiful website will not benefit from the wrong logo
* Your website is full of grammatical and spelling mistakes. The contents are not well developed. How could you earn someone's trust if you cannot control your own quality?
* Your contents in foreign languages sound unreliable or even unintelligible for native speakers
* Your website is out of date. The last maintenance and update of your website goes so far back in time you cant even remember if it ever happened

Our solution:

* We provide a design service that will show your company at its best. Internet is the only channel where you can look better than a competitor 100 times your size. Our designers team come from different backgrounds to suit the needs of your products/services and country.
* According to your market we will develop in England, Mexico, Thailand or Vietnam.
* We can develop your content and marketing texts; organize and display the content the best way possible. We also have translations services, for English, Germany, Spanish, French, Thai and Vietnamese. We put your ideas into words, and then we send the text to London, Berlin, Mexico City, Thailand, or Saigon to get them revised by marketing professionals, who help retain the spirit of the words on each foreigner language.
* The website we create can be the center of your corporate image. We can develop for you the rest of your image, logo, stationary and presentations so your company has a solid image once and for all.

Acquiring web design methodology:

* *Analysis*: research the customers needs and detect what are the solutions that best fit his needs. Determine strengths and weaknesses
* *Strategy*: determine the specific goals of the design for the website, we will determine the best way to proceed, what is there to use, to improve or to develop brand new, keeping focus on marketing. Determine the right technologies for your needs
* *Transition*: costing, contract negotiation and initiation
* *Deployment*: Up loading the website to your server
* *Training*: according to the kind of tool, one or more of our trainers will help your employees so they get familiar with the application
* *Maintenance*: periodically check your website to keep it up to date
* *Warranty*: We will correct any hidden errors the coding may have as soon as possible, so it will not to affect your image or your business

Blueball.co.ltd
http://www.blueballgroup.com
Tlahui Calva – CEO
Has extensive experience on the field of IT offshoring
Tel: +66 8 9699 3358
Email: tlahui@blueballgroup.com
tlahui@yahoo.com
Our Office
Thailand Head Office
Vietnam Production Center
Mexico Special Developments
Thailand
Head Office
252/94 Muang Thai Phatra Complex,
Tower 2, 17th floor, Ratchadapisek Rd,
Huay Kwang, 10310, Bangkok Thailand
T:026932940
F:026932941
Vietnam
Production Center
Quang Trung Software Park, Ground floor,
Anna building, Ho Chi Minh City, Vietnam
T: 084371032
F: 084371033

Find IT outsourcing and more useful information about outsourcing, offshoring on IT Services & Outsourcing.

Social Voting System - Software


So what is Social Voting System?

Social voting is a system that allows you to display your ideas or
upcoming designs on the web and get immediate feedback from the public.
Blueball's Social Voting System helps you build communities of people
who share similar interests.

What do I get out of people's commenting my designs?

* Using Social Voting System help you to confirm or modify current
prototypes
* Make your designs more marketable
* Minimize the risk of product rejection
* Minimize the risk of mass production with flaws on design or
functionality
* Recognize your natural markets
* Design more accurate marketing plans
* Build communities around common interests
* Bring down your ideas to the real world

Saving thousands

Taking and idea from the drawing table (or computer nowadays) to
production takes time and a lot of money. Modern materials require
molding that cost up to hundreds of thousands of dollars. That is a why
investing on a tool like Social Voting System makes sense: You can take
the public into your design considerations, so you can be sure that your
design has contact and acceptance in the real world.

How do I interact with my audience?

People can browse each one of the designs and ideas showcased. Using a
fast simple interface they can add comments on each one of your designs.
If you wish to receive their own ideas they can visit your website and
get a free account (user-password) to gain the right to publish their
own ideas on your Voting System.

Blueball's Social Voting System also allow people to subscribe to
mailing lists by products, so by the time you are ready to produce and
deliver, you already have a group of potential customers.

Social Voting System is a great tool to build communities around a
common interest. You can have your own and other people's designs and
voting for them.

Blueball.co.ltd
http://www.blueballgroup.com
Tlahui Calva – CEO
Has extensive experience on the field of IT offshoring
Tel: +66 8 9699 3358
Email: tlahui@blueballgroup.com
tlahui@yahoo.com
Our Office
Thailand Head Office
Vietnam Production Center
Mexico Special Developments
Thailand
Head Office
252/94 Muang Thai Phatra Complex,
Tower 2, 17th floor, Ratchadapisek Rd,
Huay Kwang, 10310, Bangkok Thailand
T:026932940
F:026932941
Vietnam
Production Center
Quang Trung Software Park, Ground floor,
Anna building, Ho Chi Minh City, Vietnam
T: 084371032
F: 084371033

Find IT outsourcing and more useful information about outsourcing, offshoring on IT Services & Outsourcing.

Online Issue Tracker


Online Issue Tracker

Online Issue Tracker is a system that allows you maximum control over your projects with a simple visual interface that helps you have a grip on every person, every specification and every stage of the project, until completion is reached.

Why do companies need an Online Issue Tracker?

Most task and projects stretch on time. When tasks are done by more than 1 person, it is difficult and not cost efficient to call meetings even inside your own premises, imagine when you have o work with people in more than one place. The project and each process will go from one place to the other, backwards and forwards, being revised, updated, changed, etc, etc.

Online Issue Tracker is the tool you need to control your project and now at all times where the project is standing, who is working on what, all in a single screen.

Is it difficult to use?

Not at all. All our systems are created around usability. Blueball doesn't believe in systems that have to be studied for days until you can understand basic functions. If you cannot use it through basic simple logic and your prior experience with computers, then most mprobably you will not use it at all, therefore we fail on our pursue to satisfy our customers.

How can I trust it?

Our Online Issue Tracker was created to answer our own internal needs. Every day Blueball has to control projects using resources in many different countries, we needed a powerful, efficient, well thought tool that would help us to keep control over every single stage of our projects. This Online Issue Tracker did the job and it is still our main management tool both, internally as well as between us and our around
the world.



*Main characteristics:*

* Multilingual
* Templatable
* Ajax / One screen system
* Multiproject
* Project modules / sections
* Teams / user
* Task priority
* Allow task scheduling
* Easy multiuser serialization / searching
* Check assignments by team member or unassigned
* Include time planning and time attendance
* Immediate excel downloading
* Code repository by project to preserve knowledge
* Stay - logged technology
* Task filtering by priority, assigned to, module, status, reported
by, etc.

*Want to know more?* Please

*Want to be more *? Fill up a quick form so we know more about you.
Completing the registration form will take around 1 minute. You will need to supply a minimum of information so we can contact you in a more efficient way.

Blueball.co.ltd
http://www.blueballgroup.com
Tlahui Calva – CEO
Has extensive experience on the field of IT offshoring
Tel: +66 8 9699 3358
Email: tlahui@blueballgroup.com
tlahui@yahoo.com
Our Office
Thailand Head Office
Vietnam Production Center
Mexico Special Developments
Thailand
Head Office
252/94 Muang Thai Phatra Complex,
Tower 2, 17th floor, Ratchadapisek Rd,
Huay Kwang, 10310, Bangkok Thailand
T:026932940
F:026932941
Vietnam
Production Center
Quang Trung Software Park, Ground floor,
Anna building, Ho Chi Minh City, Vietnam
T: 084371032
F: 084371033

Find IT outsourcing and more useful information about outsourcing, offshoring on IT Services & Outsourcing.

Document Management System software


Content management refers to the process of capturing, storing, sorting, codifying, integrating, updating and protecting any and all information.

Why companies need a Document Management System (DMS)?

One of the greatest problems of any company is to have up to date, safe information. It does sound simple, but it is a crucial part of a
company's process which is usually neglected or overlooked.

Main risks of handling documents:

* Information most be passed, but the document containing it, never reaches the staff who need to be informed (targets)
* The targets receive the document (first version) and they change it with authorization (second version), but failing to resend it
to all the other targets (version 1 and 2 circulating through your company).
* The targets receive the document and they change it without authorization (illegal version), spreading later the changed
document to other targets and leaving two existing documents with different information in your company (legal and illegal version
misinforming your staff).
* All intended targets get the first version of a document, but some fail to receive following updates.
* The person who created the document can loose, misplace or erase the original document.

Now, these may sound like small details, but imagine that the information you are passing is a crucial change of policies, or a price
list; misinformation can cost a company thousands of dollars per month or make it loose credibility or even customers.

Why Blueball's Document Management System (DMS)?

Our DMS is an advanced, versatile, web based system with collaboration tools that help companies manage their contents, documents, news,
information and files, enabling them to promote new, faster ways of group collaboration, acceleration of communication and share of knowledge.

Because this application is modular you can actually choose what parts of the application you really need today and what parts you may delay
until you truly need them, so you invest your money on what is necessary, nothing more.

Blueball.co.ltd
http://www.blueballgroup.com
Tlahui Calva – CEO
Has extensive experience on the field of IT offshoring
Tel: +66 8 9699 3358
Email: tlahui@blueballgroup.com
tlahui@yahoo.com
Our Office
Thailand Head Office
Vietnam Production Center
Mexico Special Developments
Thailand
Head Office
252/94 Muang Thai Phatra Complex,
Tower 2, 17th floor, Ratchadapisek Rd,
Huay Kwang, 10310, Bangkok Thailand
T:026932940
F:026932941
Vietnam
Production Center
Quang Trung Software Park, Ground floor,
Anna building, Ho Chi Minh City, Vietnam
T: 084371032
F: 084371033

Find IT outsourcing and more useful information about outsourcing, offshoring on IT Services & Outsourcing.

Smart Workflow


Workflow refers to the automation of a business process, in whole or
part, during which documents, information or tasks are passed from one
participant to another for action, according to a set of procedural rules.

What is special about Blueball's Workflow?

* Our workflow is an activity flow controller
* Allows any kind of process to be followed and executed
* Workflow package is not application aware
* Application doesn't need to be aware of workflow package
* Workflow is activity independent; it is unaware of the tasked
performed
* Allows complex steps to be executed "multiscreen" and "interrupted
tasks"

Workflows tasks: For types or tasks are allowed:

* Automatic; the task is executed the moment that it's enabled
* Manual; the task is enabled by the flow and a work-item is placed
in user (authorized) inbox to be performed
* Time; the task is enabled by the flow and it's executed after an
specified time
* External; events that don't belong to the system such as
telephone, fax, email or other systems (this will normally require
the development of a task to capture them).

Workflow routing:

* Sequential
* Parallel
* Conditional
* Interactive

Workflows Splits and Joints:Execution of a workflow can:

* Split (more than one action follows)
* Join (more than one execution line was taken and they must be
finished before one step)

Blueball.co.ltd
http://www.blueballgroup.com
Tlahui Calva – CEO
Has extensive experience on the field of IT offshoring
Tel: +66 8 9699 3358
Email: tlahui@blueballgroup.com
tlahui@yahoo.com
Our Office
Thailand Head Office
Vietnam Production Center
Mexico Special Developments
Thailand
Head Office
252/94 Muang Thai Phatra Complex,
Tower 2, 17th floor, Ratchadapisek Rd,
Huay Kwang, 10310, Bangkok Thailand
T:026932940
F:026932941
Vietnam
Production Center
Quang Trung Software Park, Ground floor,
Anna building, Ho Chi Minh City, Vietnam
T: 084371032
F: 084371033

Find IT outsourcing and more useful information about outsourcing, offshoring on IT Services & Outsourcing.

Thứ Tư, 28 tháng 10, 2009

Framework and Components



Framework and Components
F3.0 (Workflow Framework)

Blueball's Framework, F3.0 is a general application framework that
provides Rapid Application Development for templatable, skinnable,
multilanguage applications, that can be loosely integrated through and
independent workflow.

Blueball's new framework F3.0 is more orientated than ever to let you
start programming now!

The new features our latest version has over F2.0 are:

* F3.0 is and MVC (framework for rapid application development over PHP
* While F2.0 provided an event model similar to .net, F3.0 pushes
for a cleaner, more pure MVC
* F3.0 looks forward to reduce coding on presentation layer by
implementing re-usable view strategies
* F3.0 also looks for cleaner, purer OO code models

Blueball.co.ltd
http://www.blueballgroup.com
Tlahui Calva – CEO
Has extensive experience on the field of IT offshoring
Tel: +66 8 9699 3358
Email: tlahui@blueballgroup.com
tlahui@yahoo.com
Our Office
Thailand Head Office
Vietnam Production Center
Mexico Special Developments
Thailand
Head Office
252/94 Muang Thai Phatra Complex,
Tower 2, 17th floor, Ratchadapisek Rd,
Huay Kwang, 10310, Bangkok Thailand
T:026932940
F:026932941
Vietnam
Production Center
Quang Trung Software Park, Ground floor,
Anna building, Ho Chi Minh City, Vietnam
T: 084371032
F: 084371033

Find IT outsourcing and more useful information about outsourcing, offshoring on IT Services & Outsourcing.

System Development Service - Software


The Internet, being one of the most valuable, cost effective and efficient ways to reach and impact possible customers world wide, has been the IT area most ill used, due to the assault of non professional who call themselves "web designers".
The sad reality
Not many people understand still the power and potential of Internet. A media channel, open to the world, 24 X 7, multilingual, multimedia, without limitations. Yet, because of its "proximity" to our daily life, people tend to underestimate it. If given the choice, most would invest on air time on TV rather than on a professional website, even though TV reaches only a local audience, in a single language, for just a few seconds a day.
Every company can afford to have a professional website.
The only obstacle remains to be the people seating on managerial positions who still don't understand the power they can unleash by investing on a professional website.
Why Blueball?
For a simple reason: we respect the great media that internet is. Blueball understands the web is a powerful tool and an ally for any company trying to achieve success in all aspects of their business.
We have been involved on the web services for more than 10 years, so we have the experience as well as the technical and *marketing knowledge* to explode its full potential.
Technology used in a purposeful way
Blueball understands technology should be a platform to serves human purposes. We use the newest, most powerful to help our customers achieve their goals. In this case, to create a website that informs, attracts and serves your intended market. Blueball will guide you to choose the right technology and we will develop it, top quality.
Once technology is out of the way, Blueball will help you to produce all the aesthetical, visual and informative elements of your website. We will arrange them in a synergetic manner to maximize its potential.
Some of our main services are:
* Overall design
* Logo design
* Browsing design
* Logic and distribution
* Creation of images and graphics (2D and 3D)
* Selection of pics
* Professional photography (Available in Thailand and Vietnam only)
* Content selection * Content creation
* Text correction and translation (English, French, German, Spanish, Thai and Vietnamese only)
Some problems you maybe facing now:
* You already have a website but instead of helping you is harming you. Poor design, lack of browsing logic, lack of content, misspellings and unfriendliness to use are some of the main enemies of sites developed by people who are not true professionals
* You have a nice looking page, but it doesn't serve its purpose. Without content and focus, a website is good for nothing
* The wrong technology was used on your website. Many developers use some technologies because they like them, not because they are good to achieve their customer's goals (i.e.. Flash technology)
* Your company doesn't have a corporate image. Your business cards, power point presentations, letterhead and website look all different * Your logo is not professional: your website won't be either. Even the most beautiful website will not benefit from the wrong logo * Your website is full of grammatical and spelling mistakes. The contents are not well developed. How could you earn someone's trust if you cannot control your own quality? * Your contents in foreign languages sound unreliable or even unintelligible for native speakers * Your website is out of date. The last maintenance and update of your website g
oes so far back in time you cant even remember if it ever happened Our solution: * We provide a design service that will show your company at its best. Internet is the only channel where you can look better than a competitor 100 times your size. Our designers team come from different backgrounds to suit the needs of your products/services and country.
* According to your market we will develop in England, Mexico, Thailand or Vietnam.
* We can develop your content and marketing texts; organize and display the content the best way possible. We also have translations services, for English, Germany, Spanish, French, Thai and Vietnamese. We put your ideas into words, and then we send the text to London, Berlin, Mexico City, Thailand, or Saigon to get them revised by marketing professionals, who help retain the spirit of the words on each foreigner language.
* The website we create can be the center of your corporate image. We can develop for you the rest of your image, logo, stationary and presentations so your company has a solid image once and for all.

Acquiring web design methodology:
* *Analysis*: research the customers needs and detect what are the solutions that best fit his needs. Determine strengths and weaknesses
**Strategy*: determine the specific goals of the design for the website, we will determine the best way to proceed, what is there to use, to improve or to develop brand new, keeping focus on marketing. Determine the right technologies for your needs
* *Transition*: costing, contract negotiation and initiation
**Deployment*: Up loading the website to your server
* *Training*: according to the kind of tool, one or more of our trainers will help your employees so they get familiar with the application
* *Maintenance*: periodically check your website to keep it up to date
* *Warranty*: We will correct any hidden errors the coding may have as soon as possible, so it will not to affect your image or your business


Find IT outsourcing and more useful information about outsourcing, offshoring on IT Services & Outsourcing.

IT Outsourcing, Software outsourcing, IT Services & Outsourcing


Offshoring is the usage of manpower from a specialized external agency OUTSIDE YOUR COUNTRY to lower your cost due to cheaper labor, administration and training fees.
Apart from allowing your business to be more competitive, offshoring also let you concentrate on the business's core activities. (If you are in Thailand or VietNam, you can get oraccording to your needs).
We work while you sleep
One of the main benefits about offshoring is the "factory feeling" - 24 HOURS PRODUCTION - Your team comes back every morning to find the tasks they assigned to Blueball's team already waiting for them.
Real time teams
If your business requires it, we can also set up a team for you who can work for you in real time. Please contact us to dicuss specific conditions that may apply according to your time zone.
The language barrier?
All our people have good written and reading English skills.
Blueball understands though, communication is crucial when giving-receiveing orders, therefore, we can offer you a dedicated translators for every five to ten positions you outsource-offshore with us. Available languages now are: French, German, Spanish, Vietnamese and English. Other languages are available on request.
The managers you talk with are all fluent English speakers. Our CEO and CIO combined are fluent in German, English, French, Thai and Spanish and they are always available for negotiations.

Why Bluaball?
Blueball has been a PARTNER TO SUCCESS to a number of companies around the world. At some point, our clients had to INCREASE EFFICIENCY AND CAPACITY without having to engage on a massive internal growth. They suddenly had FLEXIBILITY to expand or shrink according to their workloads.
Blueball has developed a METHODOLOGY to control our internal processes: We can control our own people; and for you?
We developed an: You can control tasks and results in a simple, clear, screen: You are never out control.
Our policies and passion to please, translate in a 90% recurrence from our international. Most of them are Japanese transnational companies, so you know the degree of excellence we are accustomed to.
Manpower Quality
Blueball follows the principle of quality growth. We will no grow for the sake of quick profit endangering our quality and therefore our reputation. We prefer to steadily recruit people following a strict process of PROFILING, TESTING, SCREENING AND ENROLLMENT. We then induct the person to a mindset of service and commitment. Along the way, Blueball will "westernize" their working style by explaining cultural differences that are vital to deliver good results.

Communication
We offer crystal clear communication and a personal manager for your account as a minimum standard. Our top managers are always available to you to discuss any issue further.
Reasons to offshore
. High labor cost and taxes
. law that make it too risky and expensive to hire local work ship
. Have to increase capacity for a new project
. Have to change premises to grow
. Having projects that are delayed due to lack of personnel
. Incapacity to accept a new project due to lack of new technology
. Having projects that were incorrectly planned and more programmers need to assigned
. Having "stuck" projects your in-house team doesn't know how to solve
Reasons to change offshoring company
. Offhored programmers who lack of knowledge
. Offshored programmers who are not well trained for the job
. Offshored programmers without the right profile to perform the task
. Offshored programmers who see your company as an alien and don't feel the degree of responsibility that the rest of your staff does
. Offshored programmers who lack discipline and commitment
. Companies who don't have proper control over its employees
. No guarantee or replacement programs
. No transfer of knowledge between programmer and replacement
. Bad attitude and/or wrong personality for the job
. No communication with the offshoring company
Our offshoring methodology
1. Analysis: research the customer's requirements and readiness for outsourcing
2. Strategy: determine the best overall outsourcing strategy for the customer's business
3. Transition: costing, contract negotiation and initiation
4. Implementation: project management, review and monitoring, where appropriate with a phased hand-over of control to the customer
5. Auditing Results: Continually audit, update and correct our processes
Want to know more? Please
Want to be more? Fill up a quick form so we know more about you. If you have the time though, we recommend you to fill up a specially designed for offshoring services! Completing the questionnaire form will take around 5 minutes. You will need to supply a minimum of information about your current needs and processes in order to give us a better idea of how to start handing your case.

Blueball.co.ltd
http://www.blueballgroup.com
Tlahui Calva – CEO
Has extensive experience on the field of IT offshoring
Tel: +66 8 9699 3358
Email: tlahui@blueballgroup.com
tlahui@yahoo.com
Our Office
Thailand Head Office
Vietnam Production Center
Mexico Special Developments
Thailand
Head Office
252/94 Muang Thai Phatra Complex,
Tower 2, 17th floor, Ratchadapisek Rd,
Huay Kwang, 10310, Bangkok Thailand
T:026932940
F:026932941
Vietnam
Production Center
Quang Trung Software Park, Ground floor,
Anna building, Ho Chi Minh City, Vietnam
T: 084371032
F: 084371033
Find IT outsourcing and more useful information about outsourcing, offshoring on IT Services & Outsourcing.

Thứ Ba, 20 tháng 10, 2009

3 ways to improve efficiency when outsourcing programmers

Imagine that after only two hours in office, you have finished your whole work. You take your jacket, your golf bag and head to the car park while your boss waves you good bye with a smile on his face.
That would be a company that rewards efficiency.
Most companies though, reward “sitting time” developing an attitude such as: “I am here and there is no escape”. That is the normal working relationship we have grown accustomed to.
Yet, there is a working format that could deliver much more output that a normal employee-employer format: Outsourcing; in this case I am talking about outsourcing programmers.
It is Monday morning and this new programmer arrives in your office, someone who is supposed to be a professional, trained and ready to sit and follow instructions from a clear list of specifications; there is no reason to waste a single minute of his time; after all you are paying premium.
Problem is, your IT manager, or the project leader didn’t do his homework. He didn’t define the tasks ahead in a simple list of specifications, what for? The outsourced programmer can be told what to do when he comes and sits beside him. WRONG
This is the single most common reason why outsourcing programmers never really deliver. How could they? Programmers don’t read minds and chances are, your IT management doesn’t have a clear idea about the project to be developed.
Don’t be surprised, this happens in almost every company that develops software internally or for others.
So why do IT people not make good specs?
First of all: pure lack of motivation. Again, organizations don’t reward efficiency, let alone excellence. Rarely, if ever, the IT department is given the importance of other departments such as marketing or sales. Small budgets and unreasonable deadlines leave IT people resented and with no reason to commit. I never saw an IT department being rewarded for efficiency, for cutting expenses or for delivering on time.
Second, lack of know how. Making clear scopes and specifications is not an easy task. Especially since most people aren’t really trained for the job, and very few are “lucky enough” to learn from those who actually write this stuff well. So how on earth could someone without training foresee a myriad of details that together will make a project as a whole?
Third: overqualified resources. Many IT managers ask overqualified programmers from outsourcing companies, believing that the more the programmer knows, the less they have to explain. Unfortunately, this only activates a new chain of frustration and inefficiency. You can do nothing worse to a capable person that giving him a job that is way down his league. Not to mention that overqualified people are more expensive.
So, what to do?
Get your IT managers to learn how to spec properly. The more time spent detailing specifications, the less time your company will spend programming. So you are doing more, with less time and money.
Reward proficiency. If your IT manager have good reasons to improve, chances are he or she will. According to our experience companies use 50 to 70% of the capabilities of our programmers. If your managers get to work professionally, they could increase work output by up to 50%! That is money you are saving and that could go, at least some part, into rewards for the IT boys.
Engage your Outsourcing Company. Very few outsourcing companies will have the ability or the will to help you. That is why you have to get your outsourced programmers from companies that see you as a strategic partner, rather than a golden, fat cow. Ask them to organize training sessions for your middle management, which should make a big difference.
I have been in this industry many years, and I haven’t seen many companies who haven’t benefited from these simple recommendations. In fact, only one company comes to my mind that regardless the efforts, didn’t improve.
Resistance to change happens, especially when the highest IT management positions are occupied by people with no vision. As a GM, MD, or CEO of your company you most not overlook the head of your technology department.
In this article I only talked about saving costs and efficiency, but the real result if you can implement some of these changes, is the improvement of quality. A system developed under proper specifications, is not only better, but it is scalable and upgradable; which strangely, is still a rarity these days.
Blueball.co.ltd
http://www.blueballgroup.com
Tlahui Calva – CEO
Has extensive experience on the field of IT offshoring
Tel: +66 8 9699 3358
Email: tlahui@blueballgroup.com
tlahui@yahoo.com
Our Office
Thailand Head Office
Vietnam Production Center
Mexico Special Developments
Thailand
Head Office
252/94 Muang Thai Phatra Complex,
Tower 2, 17th floor, Ratchadapisek Rd,
Huay Kwang, 10310, Bangkok Thailand
T:026932940
F:026932941
Vietnam
Production Center
Quang Trung Software Park, Ground floor,
Anna building, Ho Chi Minh City, Vietnam
T: 084371032
F: 084371033

Chủ Nhật, 18 tháng 10, 2009

Developing an erp software

In past few years, every business firms have hunted to expand and improve their command over a number of information systems and amalgamate all of them in order to provide a sole regular view of business operations and information.

The standard practice is to develop a module for each department of a company. The five common modules we come across in an erp software are: Finance, Stock Management, Manufacturing, Sales and Purchase. Each module is to automate the book keeping process of a company. The finance module is for use by the Finance department of the company. Similarly, a separate module is created for use by each module. The team developing erp software has to have all information pertaining to working of each department and inter relationships between each department. The working of a department can be thought of as consisting of a sequence of many events occurring on a daily basis. Each event in turn can be defined by a set of data. Also, each piece of data can be stored in the database based on certain set of rules. All this, together define an event. The erp team has to collect information about the working of the company, classify the working of a department as a set of events, identify all data which has to be recorded during an event, determine how each piece of data is to stored, and how the data is to be displayed. This process has to repeated for each department and the collective information becomes the foundation for creating the erp software.
Programming expertise

The importance of programming experience and expertise need not be specifically emphasized for developing an erp software. The development team should preferably have experience in developing software applications which have been implemented and used practically. This experience will enable an individual to appreciate the importance of usage of features by end user. Any feature, however technologically superior they may be, are of no use if they are not used by users. Expertise in using front end tools (.Net framework ) either VB.Net or C# is a must. What we create using the front end tool is of vital importance as this what the end user sees first in an erp software. Creating forms, menus, and using controls is an art. If an user finds it easy to navigate through all the pages and enter data, experience shows the usage of software is more, which should be the goal of any erp programming team.

every ERP software implementation is rigorous task and usually includes the following steps:

• Planning of project
• Choosing an Enterprise software selection/review team
• Analyzing business and operational process
• Identification of best practices
Apart from this, ERP software evaluation also includes:
• RFP creation
• Joint conception of a implementation plan
• Mapping of business needs and modules configuration
• Data adaptation from legacy systems
• Documentation & Production
• Finally post-implementation support and auditing

Database Adiministration expertise

All data entered in an erp software is stored in a database. The database is repository of all data pertaining to different departments of a company. A database administrator takes care of all issues pertaining to the database. The erp team should possess a high degree of expertise regarding databases. A successful erp with high uptime is directly related to the uptime of the database. A database administrator with hands on practical experience of maintaining a database is an important member of the erp team.

Databases of today have rigorous but simple setup server procedures, sophisticated security features, tools to create the database files, and setup the relationship between tables. Databases can be manipulated using sql programs called stored procedures which are a vital feature. Stored procedures are used to perform validations while the data is being added. Stored procedures are written to Insert, Update and delete data in the database.

An erp software has to have data access technology to transfer data entered in the erp software to the database server. Microsoft’s ado.net. is used to develop data access component. ERP software of today have to be developed using disconnected architecture and ado.net supports such an architecture.
Application Architecture expertise


Developing an erp software is a long drawn process and requires a high level of commitment and willingness to go through the hurdles and setbacks. But, once done an erp software can set a company ahead of competitors with the immense benefits it offers.
Find IT outsourcing and more useful information about outsourcing, offshoring on IT Services & Outsourcing.

Thứ Năm, 15 tháng 10, 2009

IT Outsourcing Company

Offshore IT outsourcing services are based engagements and agreement of the conditions and build an outsourcing partnership. Web development team combines always High quality software, Individual approach, Adaptable development teams, highly manageable processes, flexible payment models and etc. There are different facets of outsourcing like need to expertise; outsourcing services, strategic importance have become the most sorts after business practice in the world market with Web development services as well as product application development. These can be typecast into professional services, project management, outsourcing development units with proficient resources, and a joint venture with an offshore trader for offshore outsourcing services with various business issues such as documentation, official work like preparing invoices, data entry, inventory management, accounting and finance etc.

Traditional outsourcing services and IT outsourcing services are fielding classification, effort your knowledge base which can be availed in the current market place. Today world has become a global market with concentrated competition of business and requirements. There are different facets of outsourcing like need to expertise; outsourcing services, strategic importance have become the most sorts after business practice in the world market with Web development services as well as product application development.

Today, there are many firms that prefer to outsource their software projects offshore.
If we carefully look at the present situation, the growing momentum of business competition has led to industry growth.
Moreover, every business firm wants to be at the top position or retain its high position, but maintaining top position is not an easy task.

The factors like on-time completion of project, accessibility of skilled and trained IT professionals, cost saving or discrete communication has put an extra pressure on various companies.

This is where the concept Software Outsourcing evolved, and today more than the half of all fortune 500 companies target offshore software development companies.
As per recent studies, it has been found that with the help of offshore IT outsourcing many companies have reported a 40% to 60% increase in net savings. Highlighting about some of the various advantages of Software outsourcing is:


* It acts a one-stop process-centric centre.

* It provides the best availability of best trained IT personnel. In fact a better and immediate access to a big pool of finest industry skills facilities in overcoming hiring gap for IT professionals in the developed countries.

* It follows a customer-centric delivery approach, and thus helps in the significant reduction of development time.


Many organizations have recognized that they have to focus on their core competencies with respect to the limitations that they have. Outsourcing Company is a team of dedicated software programmers and indispensable for every business enterprise today. The beneficiaries are not only the clients but the service provider benefit a lot as well. Outsourcing Company is a team of dedicated software programmers and indispensable for every business enterprise today. Today world has become a global market with concentrated competition of business and requirements. So many companies are working as offshore outsourcing company those are providing the various projects as skills jobs.

Selecting the experienced firm can be a good decision, but in case you are planning to save your money then you may also consult to established trustworthy firm. Software outsourcing VietNam has become one of the most vital business strategies that have been widely adopted for immediate success in global business world. The market is expanding and generating newer opportunities for everyone.

Find IT outsourcing and more useful information about outsourcing, offshoring on IT Services & Outsourcing.

Thứ Hai, 12 tháng 10, 2009

Common errors in rich applications

Let's review some common errors in rich applications:

  1. Missing files / resources
  2. Missing updates
  3. CSS Class conflict
  4. Data related problems
    1. Incorrect data
    2. Server errors make the data dirty
    3. UTF with BOM files
  5. Cache results don't let you see the results
  6. Incorrect JS

1. Missing files / resources

One of the most common issues we find in applications is that developers forget to download or deploy some files, CSS files, support images, etc..

Images

This mistakes are subtle and sometimes hard to notice as some browsers simply don't show anything, unfortunately other browser will show a massive X in place of the missing image.

CSS

You will normally notice you are missing a CSS file because the screen looks weird (layout), or the font colors, backgrounds have changed

JS

Javascript errors are caused many times by not loaded JS files.

Debugging

You can easily find which files are missing using firebug,

  1. Open firebug
  2. Go to Net tab
  3. Select All, or the specific type you suspect
  4. All missing files are written in red
    1. You can mouse over them to see the complete path of the file and then verify if the resource exist on server or not
    2. You can click the + symbol, to check the requesting Headers, the Response header and the HTML

Paths are correct, resources still missing

In some environments, resources will keep failing to download, this is specially true when you load a lot of files. Tequila offers some strategies to prevent this problem. To enable them: file minimization, joining and monitored downloading, you simply:
  1. Open includes/config.php (server side)
  2. Find the js_includes configuration section (package it's included in core)
  3. Modify these lines to enable:

$js_safeloading = true;

$js_blocktillcomplete = true;
$js_retry = 3;
$js_cachedir = 'temp';

This will minimize, join all JS files, cache results for faster execution, monitor downloading, retry up to $js_retry times and optionally ($js_blocktillcomplete) Block the screen use until the files are loaded successfully.

* Notice. Minimization require all your JS files to be very well done (at least all closing brackets and ending semicolons). Tequila uses a standard minimization library and there are many tools online to check your library is valid, try this very strict validator JSLINT

2. Missing updates

Another common reason of involuntary bug induction is incorrect application updating, as files and resources are split across the application it's quite common that partial updates are made. i.e. Template files are not updated, or JS or CSS or...

Solution

Use a file comparison tool, or use mercurial to upgrade your application.

3. CSS Class conflict

CSS is awesome, it allow many levels of definition that allow precise change of look and layout, unfortunately some times CSS definitions can crash. i.e. A YUI component / JS component define the look of
and so your application does. The final result is a mix of both definitions.

Debugging

  1. Find out the source of the conflict
    1. Right click on the conflicting element
    2. Inspect element
    3. Verify on the left panel you are on the right HTML tag
    4. Check the list of styles on the right panel, to see which one is defining the tag
      1. Each entry also mentions the file and line number

Solution

Once you have identified the conflicting resources you can:
  1. Decide to remove one of them (this removal can be specific to one page, i.e. a complex one-screen)
  2. Modify one of the CSS to be more specific
    1. You can use CSS syntaxis to affect just the children of one node, i.e. #mainlayer div
    2. You can modify the HTML to apply an specific class to the affected element
    3. You can add a class to parent to differentiate, (i.e. HTML:
      CSS: .special_case div )

4. Data related problems

Modern applications transmit a lot of data using ajax, this data is hard to debug as it's normally not visible, so the 1st step is to make data visible.

Viewing exchanged data

  1. Open firebug using the icon on the right bottom corner
  2. Click on console
    1. You will see a list of all AJAX calls
    2. Open them by clicking on the + icon
    3. Params tab: You will be able to see the information sent by JS
    4. Headers tab: You can see the headers sent by server
    5. Response tab: You can view here the reply from server

Common problems

Based on this data you can start moving towards a solution, some common problems you can find are
  1. Server errors make the data dirty
  2. Incorrect data
  3. UTF with BOM files

1. Server errors

This is the easiest error to debug, simply inspect the "response tab" like a normal web page and work over the PHP in server to clean up all the errors.

* If you are sending all parameters using GET (querystring). You can also right click on the Console entry and select Open in New Tab

This will allow you to inspect data in detail, you can switch server modes from XML to cd, to get rid of the headers and be able to read the complete errors. (Simply replace rrt=xml -> rrt=nh or cd; read RRT section on Tequila manuals for more info on Requested Response Types)

2. Incorrect data

Incorrect data might point to a logic problem in the server code, use your normal debugging techniques to solve this issue.

Another possible problem is that server and client versions are out of sync. Verify which data is correct before starting modifications. Then work on the server or JS files as necessary.

3. UTF with BOM files

Sometimes you will discover everything is correct, data is perfect, JS is in place and still you keep getting errors from your ajax callback function (this happens specially with XML data).

There's a subtle bug with files saved as UTF with BOM, the problem is that when they are included, PHP immediately start the output making impossible to set the correct XML headers.
Solution
Open every file included in the task with Notepad++ or another editor that support this setting and re save them WITHOUT BOM (optionally you can enable output cache but this is only recommended for testing, cache code is commented in index.php file)

5. Cache results don't let you see the results

This is a common issue, sometimes you own browser cache keeps showing images, css or data from previous calls. You can clear the cache or install the "web developer" plug in mentioned above, simply:

Click on Disable button > Disable Cache.

This will allow you to have a clean environment all the time.
Server cache
We have found on some online servers that PHP pages are cached and the changes made on the PHP are not reflected, try adding some extra info, an extra echo or some visual element that let you know your code is being executed. You might even be connected to the wrong server :)

If required, duplicate the file you are testing, and use this copy for debugging / developing. Update the real file after results are satisfactory, normally the server will start using the updated version after some hours.

6. Incorrect JS

Once you have determined that the server is sending the right responses and all resources are loaded, it's time to move debugging to the client side, You can work on this debugging in many ways.

Echo, echo echo.

Using the exact same technique as in PHP, you can use alert() at some places to inspect execution values.

debug.js

Tequila includes a very basic library to inspect values at running time, you must include it at server side to be able to use it on client, a couple of useful functions are:
function showobj(myObj, title, complete)
function showScript (content, safehtml, title)

Firebug!

And your best friend again: line by line debugging. Before you get crazy following each line, you should inspect your code in an external editor and determine the function you think might be the problem, i.e. the callback function, in ajax

To start debugging in firebug

  1. Open firebug (icon on bottom right side of the screen)
  2. Click on script tab
  3. Under script you will find 2 selectors, the 2d one indicates the name of the library being displayed
  4. Open this selector and select the library you want to debug
  5. Move the left pane to the line of code you want to inspect
  6. Add a breakpoint by clicking on the left hand side of the numbers, a red spot will appear
  7. Keep the window open
  8. Trigger in the normal window the action you want to inspect
  9. Execution will stop in the breakpoint you added, you can then
    1. Control execution advance using the icons on top of the code, right side
    2. Watch the value of all variables including objects on the right pane
    3. You can also add custom watches on the right pane

Debugging advanced applications

Debugging have become increasingly complex in web applications as there are too many elements taking part.

Common components
Let's start by inspecting the common components:

1. Database server
2. Web server
3. PHP
4. Framework
5. Application
6. Browser
7. JS
8. CSS
9. XML



The real problem with Rich Clients is that they hide information from us, the data comes in one of many formats "behind the curtains" making access to data very complicated.

It's important to notice that to debug these applications many times you will need good understanding of HTML, CSS, JS, PHP, XML and AJAX. If you don't feel confident about your abilities on some, request help from your peers or your project manager after you have pinpointed the problem.
Tools to debug applications

1. Firefox
2. Firebug
3. Web developer (optional)

Find php framework and more useful information about RAD workflow open source.

Debugging in Online servers without access to Core files

In some case you will find that it will be useful to get debugging information from Tequila core files in an environment you don't have access to modify, you have 2 options for this scenario:
Files that are inheritable
Most Tequila classes are descendant of other Tequila classes, i.e. Dao, application_controller, application_view. In this case you will normally have access to the child class (part of the application) but not to the parent file (part of core)

Case: Debug person_DAO() method save

1. Open DAO.php from your local copy of Core
2. Open person_DAO
3. Copy all methods you are interested in debugging from (1) to (2)
4. Add Tequila debugging information
5. Execute locally to verify your new code doesn't introduce new errors and that debugging information is valuable
6. Upload to testing/real environment
7. Execute using by case activation(Check debugging page if you need help with this)


You will now have full view of what's happening without needing to have access to DAO or any other Core class
Files that are not inheritable
Other times you will need to have access to framework files, here the recommendation splits again:

1. Systems under development
2. Long time running systems


For systems under development, I recommend to add and keep a core with basic debugging functions (production copy has all debugging info commented). Only once the system is released the debugging information is removed

For long time running systems, if there's really no option, the debugging file should be prepared and replaced on server so per instance conditional debugging can be run.

Another last option for servers with many systems will be to keep on server 2 copies of the framework, one with debugging instructions and a production one, it's very easy to update the configuration of a single system to use one or the other.

Find php framework and more useful information about RAD workflow open source.

Logical errors

The most difficult kind of error to debug, it normally doesn't relate with a mistake in the language but with the problem solving.

This errors will normally be noticed because the results of an operation doesn't match the expected ones in all or some of the cases.

To narrow down this errors, we often need to analyze what's happening at execution time, sometimes we are able to line by line debugging if we have a proper set up environment, still many times, we need to debug in online servers, or other environments without an integrated debugger.

In order to debug this errors we normally need to 'see' what's happening inside the application, for this your best friends in PHP are:

echo; print_r; debug_print_backtrace()

This functions however doesn't allow us to debug in a real environment or to inspect specific cases, Tequila implements a set of debugging functions that works conditionally allowing you to implement them in a real environment and have the ability to inspect what's happening.

Tequila equivalent functions.

Tequila offers the possibility of conditionally activate debugging, please check Tequila documentation for a complete set of functions and the ways to activate in different scenarios
Example of a logical case

Let's imagine an example where $user is the publisher of a document, and the document $author field appear empty
The strategy for tackling this bug would be something like:

1. Try to point out the place where you believe data / execution is going wrong (Controller perhaps?, model?)
2. Add debugging code, i.e. myecho ("executing suspecting function, Value of user = $user");
3. Add debug code (as in 2) in several spots until you can trace the place where the value of $user change
1. Try function / class entry points
2. Try before and after calling other functions that you believe can affect this value
4. Remove all the debugging entries that show correct values
5. Drill down the function where the value was altered
6. Repeat until you can pin point an specific line or section


The idea behind is to narrow the problem to an specific function or segment of the code.


Notes

Remember:

* Try to be logical, common functions used by everyone in the same way are normally not the cause of the problem
* Don't blame it because you cannot understand it
o SQL
o RegEx
o Packages
o Libraries
o Complex strings
* Most times libraries and packages are safe to use, it's more common that your own code is faulty and not the team /public code. (This doesn't mean they cannot contain bugs/issues that no one discovered before, but you shouldn't blame this parts from the beginning)


Dates
Dates are a small challenge in application development, verify that your application date data is congruent. Tequila favors the canonical format:

YYYYMMDD HH:MM:SS

As this is the only universally understood format, while you can use many formats to display dates, we recommend this to store and pass date data.

Be aware of locales with different years like Thai, for this cases we recommend to store normal data and just replace the year on view, as the calendar doesn't match the year it mentions but the current one.

Example:
Thai year: 2552, does not match the calendar of standard year 2552, but matches the calendar of 2009.
Other errors
There are other kinds of possible errors that go beyond debugging, you can read Tequila good practices or other similar documents to better understand this, among this errors:

* Bad architecture design
* Improper code separation
* Non independent functions
* Bad OO coding


Line by line debugging
The best and easiest way to debug in any language is to use a line by line run time debugger in the style of visual studio, where you can see how the application is running and the values are changing, unfortunately this option is not often available in PHP.
You can try installing the debugger in Zend or one of the many options available. (Check IBM link for more info)

Find php framework and more useful information about RAD workflow open source.

Database errors

In this category I will comment about database design, SQL errors and Data validation errors which are very common ones.


It's also important to notice that not all errors are bugs or failures but sometimes incorrect use of data and/or resources.


What makes use of data 'correct'?

* Minimal exchange of information
o Delimited rows
o Delimited columns
o Don't retrieve BLOB/TEXT until required
* Standard SQL queries
* Non specific db-brand queries
* Proper indexed and accessed information
* Proper keys definition
* Reuse of objects and connection objects


In Tequila by using DAO classes and generated pages these errors are somehow minimized as the page provide simple JS validation and the SQL is formed by the DAO class, unfortunately DAO cannot determine when to eliminate BLOB's/TEXT fields from the query, nor workaround poor DB libraries.


As with any code introduction new places for bugs/issues are created, let's examine some common ones.
DAO errors

There are some common misuses of DAO classes:

* Using DAO instead of DAO_unique for tables with no autonumeric field (auto increment)
* Using $key instead of $keys for DAO_unique
* Not setting $nullable array for tables that doesn't allow nulls and use ADODB library


Abuse of data
Some errors are very hard to notice as they don't create errors but just affect performance

* Not filtering results
* Loading Text and BLOB fields when they are not required, specially on multiple records
* Loading a full set of data to display just a section (pagination, see LIMIT clause for more info)


* To avoid these problems in DAO classes you should create a special method in the DAO child that return just the fields you need.

SQL Errors
A common source of failures are incorrect SQL statements; at development time all SQL queries must be tested out of the system first (and then in); some SQL statements might work correctly with a simple test query, but will fail when using real data, some common mistakes are:

* Filter criteria is incorrectly joined
* One side of a JOIN can include NULL values, You need to use a left/right join (this often becomes evident, when the system uses real data)
* Null values in the data

Database design

Database design is an speciality in itself, please consult with your manager or project leader. When creating tables don't forget to use the prefixes T_ for tables and I_ for fields.


Out of Tequila I still recommend this or a similar notation, specially if you consider a database migration can take place in the future.
Issues with Naming, Advanced functions & DB versions

Please be aware that some common functions might not be supported by specific databases, or will fail even if supported,


Here's a list of some of issues we have discovered in different databases:


* MySql before 4.1
o Lack of support for subselects (Use joins instead)
* MySql
o Regex support is faulty. We have found mysql crashed several times due to use of REGEX to find tags (others worked well)
* MSSQL
o SQL PHP library is really deficient, therefore Tequila uses the ADODB COM object (You can monitor status of new library here)
* MSSQL using ADODB
o Support is still incredibly bad, with lack of paging support and other critical stuff.
o Until the release of the new Microsoft library this issues are unsolvable and Tequila/PHP uses workarounds for them.
* ORACLE
o Long names. Oracle doesn't support very long field names
o Oracle use UPPER CASE


CASE sensitivity

A common cause for bugs on system migration is case sensitivity, be aware of the following:



* MySQL doesn't respect Case in table names in windows systems
* MySQL respect case in *nix systems
* PHP is case sensitive (always)
* Oracle forces UPPERCASE*


*Tequila has a modified Oracle library that allow mixed case to be used in queries (to allow db migration) however this comes with an overhead.
Implications breakdown
Coming down to code this means that when you change the OS or even the web server your application might completely crash. Possible reasons are:

* The Script to create the DB was exported from the window system
* The target database uses different case


Example:
We assume system was developed on win and SQL is dumped from this system

// Table is exported from Win system
$mSql = "SELECT UserName from Users WHERE idUser = 3";
...
$username = $rst['UserName'];
// Will succeed in windows
// Will fail in *nix as Users table doesn't exist; Users != users
// Will fail in Oracle as field it's called $rst['USERNAME']
Recommended practices

* In your code use always UPPER CASE for table names and fields
* Define your database using UPPER CASE for tables
* Verify your export database script 'case' is correct before recreating.

Database mobility
Coding for proper database mobility is a challenge in itself. In Tequila/BB we have standardized a set of practices to favor mobility:

* Prefer use DAO over SQL to have a single control point
* Have single entry points for DB querys (functions execSQL and insertSQL)
* Have a single function for data retrieval (getData)
* Use only standard SQL
* Avoid / Minimize use of stored procedures
* Avoid / Minimize use of temp tables
* Prefix all tables with T_
* Prefix all field names with I_


* These practices are critical, not following them might result in your code being rejected, some critical cases like the use of 'name' field will result in database reserved word conflicts

Find php framework and more useful information about RAD workflow open source.