Showing posts with label Software Development. Show all posts
Showing posts with label Software Development. Show all posts

Wednesday, May 25, 2011

Approval for apps for iOS platform surpasses 500,000 mark

Yesterday was a big day for Apple as the number of individual apps passed for its iOS platform surpassed the 500,000 mark. However, if we look at the active apps available in the Apple Store, there might be approximately 40,000 of them, but the thing worth mentioning here is that the number of approved apps is a great thing in itself for developers and app seekers alike.


With the aim of celebrating this occasion and highlighting others since the Apple App Store launched on July 10, 2008, an infographic was yesterday unveiled by 148Apps, independent mobile app blog, along with Chomp, the leaders in app search technology, and Chillingo, a top app game developer. They have included top apps of all time, number of developers contributing to the 500,000 number, a timeline of approved apps, growth projections and more in this infographic.
Well, we have got a few amazing statistics for you from the infographic:


  1. Do you know, you will have to shell $891,982.24 and over 7 terabytes to get all available applications?

  2. While nearly 36% of all apps are free, paid apps have an average price of $3.64.

  3. The numero uno paid spot for the total 275 days has been held by Angry Birds released by Chillingo and developed by Rovio.

“The fact that it has taken less than three years to reach this number is remarkable. With the improved tools for developers and steady adoption of smartphone technology, I anticipate there is still a lot of runway,” expressed Jeff Scott, founder of 148Apps on this milestone.


Meanwhile, the Android Marketplace, which came into existence 8 months after the Apple App Store in March 2009, is considered to be the closest competitor to the iOS App Store. It contains nearly 294,000 apps and 3 billion app downloads.


The infographic, is available via the 500k apps Facebook fan page: http://www.facebook.com/500kapps

Monday, November 15, 2010

Apple Postpones iOS 4.2 Release.

iPhone & iPad Update: Apple Postpones iOS 4.2 Release Once Again. Apple's upcoming OS- the iOS 4.2 release is getting mysterious just like the white iPhone 4 and Verizon iPhone as new rumors related to the new OS are hitting the internet every now and then.
The Golden Master version of iOS 4.2 was released Apple on November 1, which led many to believe that the Cupertino-based firm would soon release the iOS 4.2 for public use but it did not happen. Recently, some news outlets claimed that Apple would release the iOS 4.2 on November 12 but it never came. This released was delayed by Apple because the company needed time to fix some iPad WiFi connect issue. Apple later released another Golden Master version and now everyone is eagerly waiting the launch of the public version of the iOS 4.2.
Now Telegraph is reporting that Apple will release the iOS 4.2 on November 24. The newspaper however, has not quoted any official statement or source for this news which means that it could also turn out to be a rumor in the future.
It is learnt that the iPhone Dev Team is fully prepared to launch many updated tools to Jailbreak iOS 4.2 . Read below to find out what iPhone Dev Team is up to:


  • All Apple devices on all iOS firmwares will be jailbroken.
  • Comex is working on the untethered iOS 4.2 Jailbreak. He has completed his hacks to Jailbreak iOS 4.1 and iOS 4.2 beta 3.
  • A new unlock for iPhone 3G and 3GS will be available very soon.
  • There has been no unlock for iPhone 4 on iOS 4.2. Do not update to iOS 4.2 on your iPhone 4 device if you are looking for unlock until Dev Team introduces their new features.


Contact us for Mobile Application Development and Software Outsourcing

Wednesday, November 10, 2010

A Guide To Improve Online Marketing

Without a comprehensive knowledge of Online Marketing no Marketing Manager can expect their company to survive these days.Whilst marketing on the Internet involves very similar principles, the means and methods are different and so we’ve produced this simple guide to introduce you to the basics of online marketing:

SEO: Search Engine Optimisation or SEO is a way of promoting your business online by optimizing your website and its content for the Search Engines like Google, MSN and Yahoo. The companies that rank highest for certain search terms or ‘keywords’ get the greatest number of visitors.

Paid Search (PPC): Using Pay Per Click (PPC) ads, you can immediately begin advertising your products. But the important benefit of online advertising is that you are only marketing your goods or services to people that are looking for them!

Article Marketing/Press Releases: Article Marketing is a very cost effective way of getting people to visit your website. It means placing high quality, relevant, well written articles on your website or submitting them to the best article sites. Articles serve two further purposes. First, they build your credibility online by demonstrating your expertise. Second, they provide lots of the inbound links we wrote about above.Press Releases are similar, they are keyword rich, they provide inbound links but they also raise online profile. Just like offline PRs, don’t release unless you think it’s newsworthy.

Email Marketing: Email marketing is often wrongly called ‘spam’. A well-written and thoughtful email marketing campaign should be aimed only at people that want to receive your messages. Like articles, fill them with informative and relevant content and keep the sales pitch gentle. Build credibility and rapport by offering something of value. Sending thousands of these messages costs nothing, which means that you can afford to pay for a good copywriter to create your emails for you.

Social Media: It’s not a phase or a fad; Social Media Optimisation is the latest place to begin developing your online marketing. Facebook and BEBO allow ads, but better than this, you can give a face to your brand. Loyal customers can interact with you and offer direct feedback without the need for focus groups.

Blogging: Blogging is a less formal way of article marketing and a great way to build a following. YouTube is a very popular way for people to communicate to thousands of people with a simple video. Releasing your ads on YouTube can cause them to spread across the world, so whilst you still pay production costs, your distribution costs rapidly shrink. Video Marketing is one of the latest and fastest growing sectors of the online marketing industry.

Blended Approach: As with any good marketing campaign, your approach must be a blend of off and online marketing strategies. Combining all of these different parts of the online marketing picture will allow you to develop a dominant position in this new marketplace.

Contact Us for Software Outsourcing and Mobile Application Development.

Thursday, October 14, 2010

SOCIAL MARKETING

Social Media Marketing have appeared across web marketing sites over the last few years. It is an attractive marketing tool that helps you in getting more traffic, attention and links.
It is the process of promoting your business or website through social media channels.
Here are some tips that can help you to be a better SMO expert:
Find a relevant community- Hanging out in a community irrelevant to your website interests will get you nowhere.
Try to be an active participant- Make sure, you post on related message forums, blogs, and submit article to similarly article directories. Show your potential customers why your business is the one that can help grow professionally.
Remain Consistent- Your identity should not vary a great deal from one social media site to another. Be more consistent and maintain a professional appearance. Create trust in your business by supporting them in the similar manner, in spite of where you may be approached.
Make More Friends- Make as many friends as possible who have similar interests as you. Friends who are interested in your products and services will happily tell their friends, refer your site as well.
These simple tips can help in creating lasting results. At times, it may help website promotion or propel your business or product to instant success. But, you need to remember that instant success is the exception not the rule.
For more information please click http://www.a1technology.com/
http://www.a1technology.com/iphone/

Wednesday, October 06, 2010

Android and Business

Here are the top five benefits of Android from a business perspective

#1 Low Barrier to Entry
There is no costly licensing fees or development tools. In fact, it is possible to develop applications without spending a dime. The primary costs fall into three categories: development and testing expertise, royalty fees, and test devices.

#2 An Ideal Platform for Companies New To Mobile
Android applications are written in Java, with a rich set of libraries. Anyone with a working knowledge of Java can get Android applications up and running with relative ease. Java programmers are plentiful in the marketplace (especially in this economy) and the Android platform documentation is very good.

#3 A Variety of Distribution Mechanisms
Unlike other mobile platforms, Android applications can be distributed in a variety of ways. You can use any number of third-party application stores but you can also create your own distribution channels: for vertical market application purposes, to develop new application stores, and even put it behind corporate walls. If you build it, you can publish it.

#4 Open and Free Platform
License free, royalty free, and open source. That’s Android. No costly licensing fees. Also, since the underlying architecture of the Android SDK is open-source, you can watch upcoming releases and provide feedback to the Android development team. This makes the Android platform very compelling for handset manufacturers and wireless operators… which translates to better opportunities for developers to monetize.

#5 Best Mobile Platform for Inter-Application Integration
The Android platform has is the best mobile platform for inter-application and inter-process architectures. Do you have a suite of applications in mind? Want to integrate them or cross promote them? Android blows the competitive platforms away in this area. Most other platforms allow background processes (at best) but the Android platform is set up to allow for trust relationships between applications for a more tightly knit experience for users.

#Android and A-1 Technology:
we’ve developed applications for many other platforms, including iPhone, Blackberry, Windows Mobile, Palm, BREW, J2ME, etc. We consider this is to be a fairly unbiased list of what we consider to be the most attractive features of the Android platform. What do you think? Is there something about the Android platform that you consider tempting, interesting or alluring?

Let us know!

For more details click on http://www.a1technology.com/
http://www.a1technology.com/iphone/

Monday, October 04, 2010

MAKE YOUR WEBSITE MORE EASIER AND FASTEST

The e-commerce and SEO landscape is always changing. Reacting to those changes is a significant competitive advantage.
How quickly did you get your Like button or Google Analytics' new asynchronous tracking? How soon were you ready for the iPad? How quickly are you able to get A/B tests live, and how long after do you implement the winning pages? Think about affiliates, for example. You may have affiliates that have driven significant revenue to your site because some of them can be so quick to adapt to new SEO, PPC, and other strategies. Or, consider the online-only competitors that came out of nowhere because they had better sites than the established leaders.
Where to Improve
CMS flexibility: Have a powerful CMS, custom to what you do, giving more writers, editors, merchandisers, and designers access to what they need.
Platform and module flexibility: Ask yourself what happens in six months when you don't like everything about a platform anymore. Can you add and customize modules? Should you buy or build solutions?
Team: No matter the architecture choices you've made, someone is going to have to actually make the updates. Is your team dedicated to the website? Or do they have other duties slowing them down?
Budget: Team and budget seem to be part of a seesaw in some ways. If you don't have much of a team, you should at least have some budget to outsource, or vice versa.
Red tape: Does it take 20 signatures to change the alt text on an image? Teams need to be allowed to be able to make decisions on their own.
Testing: As you make more changes, you can expect errors and copy mistakes. You should be able to fix them faster conversely. Budget for keeping up with regular testing across many browsers and devices to help catch them faster.
You still need great content, good copywriting, good marketing ideas, and more to have a successful site. But everything you want to do with your online presence can be made better when you are fast and nimble. A fast, flexible site is more forgiving of bad decisions when good ones can be rolled out soon.
Experts at A-1 Techology have a great experience in developing websites if you want any kind of inforamation or want to prepare your website in a right way please contact us.

Click http://www.a1technology.com/
http://www.a1technology.com/iphone/

Friday, October 01, 2010

Dot Net Application

What exactly is Dot Net? It's easiest to clarify by first saying what it is not. It is not a language. In fact, one of its beauties is that is allows the use of several languages seamlessly in the same application (for example, in a larger project there could be several programmers each using their own favorite language, but each interacting seamlessly with the others - maybe not a good idea to do, but it's great that you could!) The big advantage here is in the ability to reuse code from another application that may not have been written in your language of choice.Dot Net provides the means to overcome obstacles that have traditionally been in the way of the development of true web based applications (eg "Session State" - more later!).


Dot Net is a strategy for delivering applications over the Web as Web-based services. In the case of our earlier example, it would be possible to build a series of pages that provide all the functionality of the checkbook program, including the interaction with the bank's on-line system, and to offer this as a service delivered over the web. This is a form of the Application Service Provider model .Components of the .Net strategy include platforms (Microsoft's ".Net Servers") which include the .Net Framework (.Net's foundation infrastructure) and a set of programs or tools for developing and running .Net applications. Microsoft's latest Office products include features for .Net, and of course, there's Visual Studio.Net - the comprehensive integrated development environment. There are new languages to use in your development, including Visual Basic.Net, C# (pronounced "C Sharp"), the Java like J# and others. Some of these are distributed along with Visual Studio.net.


A-1 Technology has full knowledge about dot net and will guide you in developing an interactive "Web Application".

Tuesday, September 28, 2010

GPS -Accurate maps when you need them. No folding required

GPS stands for Global Positioning System. GPS satellites broadcast signals from space that are picked up and identified by GPS receivers. Each GPS receiver then provides three-dimensional location (latitude, longitude, and altitude) plus the time. It has become very popular among professionals ranging from surveys to engineers to archaeologists.
Many engineers may be happy with the degree of accuracy possessed by hand-held GPS. This has been an essential item ( or surveying tool) for field investigation and reconnaissance work. The hand held one may not be the best equipment, where accuracy within a meter is required. For example, for surveying involving trench stakeouts, contour surveys and recording of sites at scales up to 1:2500, using of Differential GPS may be appropriate. For more precise recording, such as grid layouts, excavation plans and topographical surveys, Carrier-Phase GPS will have to be used. Thus implying very high level of accuracy up to millimeter.
GPS Vs Total Station
Until recently the Total Station Theodolite (TST) has become the preferred tool for setting out of trenches, surveying sites or topographical surveys. Frequently in archaeological work, Now GPS has become the popular tool for many surveying professionals. It outperformed TST when the work has to be done:
o Where sites are remote and has limited access, hard details are not available, and positioning may be unreliable.
o Where more man power is required,
o where line of sight cannot be maintained between the instrument and prism.
o where no dependency can be maintained on permanent landscape features.
o when there is no dependency on a maintained line of sight between the base receiver and rover.
In addition, GPS may need less man power and less time to complete same coverage of TST. In other words, both setting up and surveying time is considerably reduced.
There are thousands of apps in iphone app store related to GPS Tracking which proves useful to Design Engineers. These apps are so powerful that it would not have been necessary to pay a single penny for any other GPS apps. The eight powerful GPS apps are listed below:
AmAze GPS is a free turn-by-turn voice GPS app for the iPhone. It offers many of the features of expensive GPS apps!The graphics are decent, and the voice part is really helpful when you are driving to new location .To download it simply tap on “keyword” or “local search” and you will get what you request!
Automilez If you need to really keep track of where you are going and how much time and money you are spending, this is the perfect app for you! Automilez has a sweet interface, but you do need to create a free account first. Then you simply add in your odometer reading when you start and click “stop” when you are done!
GPS Logbooks this app is pretty wicked sweet if you fly the plane or you have to observe the site from the top of location.You can share your flight log book with the world using this handy dandy app.This is a cool app for travelers! As you are flying, simply write a note, and it will update your online logbook with where you are when the post was created.
GPS-LoggerThis app is awesome for geocachers! .GPS-Logger is sweet because you can go back and ADD those photos taken on “un-smart” cameras.It is a great app because you can take pictures or add them in later and connect them to a specific location on a specific date. Now engineers don't have to worry about the location.
GPS-R This is the perfect app for engineers. Not only does it track where you are going, it also tells you when you are near something that you have to do…like buy milk or take back library books. This is an awesome mashup between a to-do list and GPS! GPS-R is sweet because it will remind you of certain tasks when you are near them geographically. Now you dont have to take the help of anyone when you are in a new location.
GPS Tracker- GPS Tracker is quite nice. While it is a little tricky because you have to apply for a free code, it is a nicely done app.Basically, it tracks your phone, so if you are lost in the woods, someone can find you. I hope to never need it, but it will be awesome if I do!. The iPhone updates every few seconds so folks back home can see where you are on the map!
Iwant -This is a sweet little app that lets you know what is around you. Since we go on a lot of hiking trips in areas we don’t know all that well, this helps us find gas and places to eat.
Waze:It is a social app that lets you connect with other Wazers via chatting and map pinning. The BEST part, though, is that its main purpose is to help you navigate traffic. It is kind of like a Way Cool Updated Smokey and the Bandit kind of tool!

If you want Technology in your pocket then stick around! -GPS is here to make your work Faster, Simple and Easier.

Contact us for more information http://www.a1technology.com/
http://www.a1technology.com/iphone/

Monday, September 27, 2010

Creating an HTML Page

A web page is created using a language called, Hypertext Markup Language, better known as HTML Code. You can write your own coding within a plain text editor, such as Note Pad, or use an HTML editor, which will write the code for you.
HTML codes, also referred to as HTML tags, are enclosed by the lesser than (<) and greater than (>) brackets and may be written in capital or lower case letters.
The opening bracket is followed by an element, which is a browser command, and ends with the closing bracket.

An element may also be followed by attributes, which are words describing the properties of the element, and further instruct the browser.

Attributes are only contained in the opening HTML tags to the right of the element and are separated by a space and followed by an equal (=) sign.
The value follows the equal sign and is enclosed in quotes.

For more information on HTML visit http://www.a1technology.com/
http://www.a1technology.com/iphone/
we are there for you 24X7

SHORT TAIL VS LONG TAIL

A place for everything, and everything in its place is the key to success with short and long tail keywords when you are leveraging social media for your online ecommerce endeavor.
As you probably already know, SEO is quite important in your social media marketing campaigns, and understanding short and long tail keywords is also important!
Which works the best for social media marketing? Short tail? Or Long tail?Actually, the basic truth is that there is value in both.It seems that short tail keywords are useful for creating interest and driving traffic. Long tail keywords, on the other hand, come into their own when you’re talking conversion.
So, there is a place for each, and perhaps having a better understanding of when and where to use each type of keyword is key to using them wisely and to the best purpose.
Here are some pointers for building a great keyword strategy that you can quickly and easily work into your overall marketing campaigns, including social media marketing:
Facebook: A lot of ecommerce entrepreneurs are getting good results with short tail keywords in the little sidebar ads. The secret to making this work for you is to drill down and target a highly specific demographic. Long tail keywords work better outside advertising through fan pages, event pages, groups and more. Bear in mind that everything on Facebook is search engine indexed, and you can better understand the importance and benefit of long tail keywords in content.
Twitter: First and foremost, when thinking about using either type of keyword for Twitter, you have to remember that everything is in real-time. So your best bet here is short tail keywords! Also remember that hash tags are keywords, as well.
YouTube: If you are using YouTube as one of your social media marketing platforms, which is definitely a good idea, keep in mind that Google actually owns YouTube and accesses it constantly, thousands of times a day. So, be sure to optimize your YouTube content that accompanies your video with long tail keywords.
Stay on Top of Metrics: There are a variety of free services and tools available on the World Wide Web that will help measure your social media marketing effectiveness and results, as well as showing you which areas you need to improve upon. It is a good idea to avail yourself of more than one of these services and analyze the effectiveness of your short and long tail keywords on a specific platform to see which ones are doing the most for you.
For any information regarding SEO do contact us as we are always there to guide you.

For more information click http://www.a1technology.com
http://www.a1technology.com/iphone/

Wednesday, September 08, 2010

Cake PHP Web Applications Development

Handling a complex project can always be a lurking worry on your head. A business application of large-scale complexities is best handled through frameworks that make the work simpler. One such framework isCakePHP. Its one of the most popular open source PHP web application development tool that has been trusted with complex tasks by the developers all over.

CakePHP is based on MVC framework and thus it results in development ease with less amount of coding required. The Model-View-Controller structures give developers the opportunity to concentrate on the real areas of their expertise and not worry about other developmental hassles. As MVC framework separates the business logic and thus reduces time of development and the complexity of the project. This gives total the developers total control over the application and thus makes it more capable of performing complex tasks easily.

Other benefits of CakePHP Web Development

-Compatible with PHP4 as well as PHP5
-Reduces Code repentance in website and application development
-Fast and flexible Templating
-Built in view helpers for AJAX, JavaScript, HTML Forms
-Data Validation features
-MIT license and thus available for free
-Scaffolding
-Easy web services integration as well as development

We at PHP Developer are dedicated towards providing you application development that is robust and performance oriented. We follow and strict procedure of CakePHP application development making sure that every step of a project is handled with utmost care and the outcome is of prime quality and fulfilling all your pre-defined requirements. We carry out an extensive research before we start working on any of the projects; understand the nuances of what you demand and then move ahead to achieve perfection.

Our team of PHP Developers consists of experienced professionals that are keen to work on anything that posts a challenge. We are dedicated to bring you results that are cost-effective, applications that are highly productive and experience that is one of its kinds.
So if you are also one of those who rate quality over quantity for your CakePHP Web Development andCakePHP Application Development needs, then Contact Us. Get a free quote or assistance on any query you might have.



Contact us For Software Outsourcing and Mobile Application Development.

Wednesday, August 25, 2010

An introduction to Linux/Unix programming

Preamble

This talk is a brief guide to Linux programming languages, tools and concepts.
It is aimed at programming novices or programmers migrating from a Windows system (and your first question is probably :' where's the IDE???”)

The aim is to introduce you to the concepts, the possibilities and the tools used in Unix programming, focusing on Linux in particular.

You will not come away from this talk with an advanced knowledge of C pointers, OOP design in Python or how to hack a network driver in the Linux kernel. There are limits to what you learn in one hour!

Index

  1. The Unix Philosophy of Small Tools: One problem, many solutions.

  2. Editors: EMACS vs vi, other editors, and some useful features to look out for.

  3. From Shell Scripts to interpreters to compilers and back again, An introduction to some common Unix languages, including Guile, Perl, Python and Tcl
    (i) Perl examples
    (ii) Python examples
    (ii) A Tcl/Tk examples


  4. C-the language of unix: A brief look at C and C++.

  5. A bug's life: Debugging with GDB in 5 easy steps.

  6. Tools: Make, diff, patch, autoconf, automake, yacc & flex, indent and other tools.

  7. Revisions and Versions:RCS and CVS.

  8. Iwant my IDEE!!!

  9. The mystery of the missing IDE.

  10. Documentation:Software documentation with troff, man, texinfo, HTML and SGML.

  11. Some final thoughts: Portability, software licences and helping the free software movement...

  12. Further reading: Books, mailing lists and web sites to guide you along the way.


Linux is a very standard operating system, compatible with just about any software you need. Linux acts as a platform for a variety of different programming languages, tools, and libraries, each with their own capabilities. At A-1 Technology we develop dynamic database driven websites equipped with the latest web technologies like ASP, PHP, Ruby and Perl etc. Our developers are experts in providing advanced solutions to our customers and develop customized web pages and websites as linux provides a wider choice of libraries and graphical user interface toolkits as compared to Windows.

linux is pretty fast and can handle a number of tasks at the same time.

Contact A-1 Technology For Linux Programming

Monday, August 02, 2010

Introduction to lua Programming.

What is Lua?


Lua is a powerful, fast, lightweight, embeddable scripting language. Lua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics. Lua was created in 1993 by Roberto Ierusalimschy, Luiz Henrique de Figueiredo, and Waldemar Celes, members of the Computer Graphics Technology Group (Tecgraf) at the Pontifical Catholic University of Rio de Janeiro, in Brazil. Lua is dynamically typed, runs by interpreting bytecode for a register-based virtual machine, and has automatic memory management with incremental garbage collection, making it ideal for configuration, scripting, and rapid prototyping.

Why choose Lua?

Lua is a proven, robust language. Lua is commonly described as a “multi-paradigm” language, providing a small set of general features that can be extended to fit different problem types, rather than providing a more complex and rigid specification to match a single paradigm. Lua has been used in many industrial applications e.g., Adobe's Photoshop Lightroom, digital TV in Brazil and games. Lua is currently the leading scripting language in games. Lua has a solid reference manual and several versions of Lua have been released and used in real applications since its creation in 1993.

Features of Lua:

Lua is fast: Lua has a deserved reputation for performance. To claim to be "as fast as Lua" is an aspiration of other scripting languages. Several benchmarks show Lua as the fastest language in the realm of interpreted scripting languages. Lua is fast not only in fine-tuned benchmark programs, but in real life too. A substantial fraction of large applications have been written in Lua.

Lua is portable: Lua is distributed in a small package and builds out-of-the-box in all platforms that have an ANSI/ISO C compiler. Lua runs on all flavors of Unix and Windows, and also on mobile devices and embedded microprocessors for applications like Lego MindStorms. For specific reasons why Lua is a good choice also for constrained devices, read this summary by Mike Pall. See also a poster created by Timm Müller.

Lua is Embeddable: Lua is a fast language engine with small footprint that you can embed easily into your application. Lua has a simple and well documented API that allows strong integration with code written in other languages. Lua has been used to extend programs written not only in C and C++, but also in Java, C#, Smalltalk, Fortran, Ada, Erlang, and even in other scripting languages. It is easy to extend Lua with libraries written in other languages. It is also easy to extend programs written in other languages with Lua.

Lua is Powerful and Simple: A fundamental concept in the design of Lua is to provide meta-mechanisms for implementing features, instead of providing a host of features directly in the language. For example, although Lua is not a pure object-oriented language, it does provide meta-mechanisms for implementing classes and inheritance. Lua's meta-mechanisms bring an economy of concepts and keep the language small, while allowing the semantics to be extended in unconventional ways.

Lua is Free: Lua is free software, distributed under very well-known MIT license. Lua is not an open-source project, with code contributed by several people: all code is written by us. It can be used for any purpose, including commercial purposes, at absolutely no cost. Just download it and use it.



Visit A-1 Technology for Lua Games Programming

Wednesday, July 28, 2010

Risk based Testing

Often all other activities before test execution are delayed. This means testing has to be done under severe pressure. It is out of question to quit the job, nor to delay delivery or to test badly. The real answer is a prioritization strategy in order to do the best possible job with limited resources.
Which part of the systems requires most attention? There is no unique answer, and decisions about what to test have to be risk-based. There is a relationship between the resources used in testing and the risk after testing. There are possibilities for stepwise release. The general strategy is to test some important functions and features that hopefully can be released, while delaying others.
First, one has to test what is most important in the application. This can be determined by looking at visibility of functions, at frequency of use and at the possible cost of failure. Second, one has to test where the probability of failure is high, i.e. one may find most trouble. This can be determined by identifying especially defect-prone areas in the product. Project history gives some indication, and product measures like complexity give more. Using both, one finds a list of areas to test more or less.
After test execution has started and one has found some defects, these defects may be a basis for re- focussing testing. Defects clump together in defect-prone areas. Defects are a symptom of typical trouble the developers had. Thus, a defect leads to the conclusion that there are more defects nearby, and that there are more defects of the same kind. Thus, during the latter part of test execution, one should focus on areas where defects have been found, and one should generate more tests aimed at the type of defect detected before.


Please visit Software Outsourcing
iPhone Application Development

Tuesday, July 27, 2010

Software Inspection

When an old idea is a good idea that improves to become a better idea, we should all want to benefit from that evolution. Software Inspection was a good idea when started in 1972. Inspections have continued to provide a quick return on investment and perhaps one of the quickest for all the methods and processes available to the software practitioner.


So basically, why do we need Inspections? We need Inspections to remove software defects at reduced cost. Inspections enable us to remove defects early in the software life cycle, and it is always cheaper to remove defects earlier than later in the software life cycle. Its important to note that Inspections are a way to remove defects at a lower cost, not a way to prevent defects from occurring.

Our objective with Inspections is to reduce the Cost of Quality
by finding and removing defects earlier and at a lower cost.
While some testing will always be necessary, we can reduce the costs of test by reducing the volume of defects propagated to test. We want to use test to verify and validate functional correctness, not for defect removal and associated rework costs. We want to use test to prove the correctness of the product without the high cost of defect removal normally seen in test. Additionally we want to use test to avoid impacting the users with defective products.
So the problems that must be addressed are:
Defects are injected when software solutions are produced
Removal of defects in test is costly
Users are impacted by too many software defects in delivered products
With Inspections we can manage and reduce the effect of these problems.

Please visit Software Outsourcing
iPhone Application Development

Monday, July 26, 2010

Basics of Software Design

Real software runs on computers. It is a sequence of ones and zeros that is stored on some magnetic media. It is not a program listing in C++ (or any other programming language).
A program listing is a document that represents a software design. Compilers and linkers actually build software designs.
Real software is incredibly cheap to build, and getting cheaper all the time as computers get faster.
Real software is incredibly expensive to design. This is true because software is incredibly complex and because practically all the steps of a software project are part of the design process.
Programming is a design activity—a good software design process recognizes this and does not hesitate to code when coding makes sense.
Coding actually makes sense more often than believed. Often the process of rendering the design in code will reveal oversights and the need for additional design effort. The earlier this occurs, the better the design will be.
Since software is so cheap to build, formal engineering validation methods are not of much use in real world software development. It is easier and cheaper to just build the design and test it than to try to prove it.
Testing and debugging are design activities—they are the software equivalent of the design validation and refinement processes of other engineering disciplines. A good software design process recognizes this and does not try to short change the steps.
There are other design activities—call them top level design, module design, structural design, architectural design, or whatever. A good software design process recognizes this and deliberately includes the steps.
All design activities interact. A good software design process recognizes this and allows the design to change, sometimes radically, as various design steps reveal the need.
Many different software design notations are potentially useful—as auxiliary documentation and as tools to help facilitate the design process. They are not a software design.
Software development is still more a craft than an engineering discipline. This is primarily because of a lack of rigor in the critical processes of validating and improving a design.
Ultimately, real advances in software development depend upon advances in programming techniques, which in turn mean advances in programming languages. C++ is such an advance. It has exploded in popularity because it is a mainstream programming language that directly supports better software design.
C++ is a step in the right direction, but still more advances are needed.

Visit Software Outsourcing
iPhone Application Development

Friday, July 23, 2010

Best Code Development Practices-V

Further continuing with the common PHP software development guidelines. We discussed
USAGE INSTRUCTIONS/TIPS and SECURITY. Let us now discuss some of the other guidelines.


1) MYSQL ADMINISTRATION (RECOMMENDED): Following guidelines may help secure your application further

a) Avoid using root user for database administration as well as programming. Instead for every new database, create 2 or more users with specific permissions. For example

i) One user with only SELECT permissions to the database if no modification activity is planned. Add other privileges as required.

ii)If your project has Admin are then create another user with SELECT, UPDATE,INSERT, etc privileges.





b) The password for any of the users MUST NOT be easy to remember. These must have alphanumeric and at least 8 character long.

c) Password field in any of your table should not store password as clean text. Instead encrypt the data.

2) FILES AND FOLDERS (RECOMMENDED):
Some of the important points to remember are

a) CONFIG: Every project has the requirement to use global variables or configuration settings to be used in one or more files. For example, database connection, file upload folder path, etc or anything that has to be used in more than one file.

Use a config file to store all such information. Also to be noted that front-end and admin config files MUST be maintained separately.The name of the config file should be either config.php or configuration.php

b) README: Each project should maintain a README file (README.txt) containing various instructions including installation/ deployment, third-party tool dependencies,special instructions, file/folder permissions, cron configurations, etc.

c) CHANGE LOG: All projects should maintain a history file (CHANGE_LOG.txt) containing alterations done after deployment/installations or across different versions. The format should be as below yyyy-mm-dd developer_name - File Name.ext:
change description containing change made along with approx. location of change
in file - another_file.ext: approx location should not indicate line number instead function name, declaration, condition, etc. yyyy-mm-dd another developer - yet_another_file.ext: latest change comments should be towards bottom of the file

d) Folder structure: Each project must have some bare minimum folders namely

i) images folder to store pictures, logos, icons, etc.
ii) styles folder to keep project CSS files
iii) script folder to keep you JavaScript files



iv) includes folder to keep all included files
Also, do not keep all files in a project in a single folder, instead create
folders/subfolders based on their character,section or module as applicable.

e) Security by obscurity: Remember as long as a file is obscure, it is secure.

i)If there is Admin area in your project, avoid naming the admin folder as admin.
Instead use a more complex name.Most hackers locate admin folder first to start hacking activity.
ii)Avoid naming files such as change_password.php, connection.php, conn.php,edit_profile.php, delete.php, etc. These are highly predictable filenames
allowing hackers to try and locate these files on your server and start with them to find security holes.

iii)Do not use .inc extensions for any PHP files whether static in nature. Instead, all files MUST have .php extensions.

iv) Also, do not include/use files from admin folder into front applications not even the connection string.

v) Do not give any of the webroot folder or file with WRITE permission. Any WRITE permissions MUST be to a folder only with difficult to guess name.

vi) Do not upload any temporary/back-up files to the server.

vii) Each application MUST have a 500-INTERNAL SERVER ERROR page to hide error details to website visitor.

viii) For websites there may be a custom PAGE NOT FOUND error page.

ix) Optional custom error pages can trigger emails when an error occurs.

Please visit Software Outsourcing
iPhone Application Development

Thursday, July 22, 2010

Best Code Development Practices-IV

As we have discussed earlier about PHP CODE LAYOUT and SQL CODE GUIDELINES, we continue discussing the common PHP software development guidelines.

1) USAGE INSTRUCTIONS/TIPS (RECOMMENDED)

a) Include: Use include_once unless include is architecturally required. Use include_once where output is not critical to the subsequent business logic within the page. In other words, if there is an error in the included file, the rest of the page will execute.

Static files containing HTML, CSS, etc can be called using include_once.

b) Require: Use require_once everywhere unless require is architecturally required.Use require_once where file called within page is critical for the rest of the page or business logic.Code files such as a class file, database connection file, etc MUST be called using require_once. Because, if there is an error loading external file, the rest of the page will not execute.

c) Single & Double quotes: In strings, single-quotes inform PHP parser that everything inside is character. So even a variable name inside single quotes is printed as is rather than its value. This also saves parser time. So use single-quotes when strings don’t have variables embedded.Unlike single-quotes, double-quotes allow PHP parser to scan entire string for variables,which consumes more parser time. So use them when really required. For example SQL queries can be embedded in double quotes.

d) Braces: Braces should be used even at places where they are optional. When using braces with control structures or statements, keep them in the same column. For example,



for(i<0; i<=n; i++)
{
&
}


if (a< b)
{
.....
}
else
{
if (x == 1)
{
.....
}
}

In other words, (1) braces must be the only character in their line. And, (2) starting & ending braces (within the same control statement, loop or condition) must be vertically Confidential aligned.

e) Square brackets: As a practice, anything inside square brackets should be inside single quotes. Apart from being good programming practice, there is also execution speed advantage. For example, Using $row[‘id’] is much faster than using $row[id].

f) Function: As far as possible, create functions within classes.

g) Classes: There must be one class per file.

h) Declaration and Scope of variables

i) Global variables: should be defined in a common include file

ii) Module level variables: should be defined within a module.

iii)Page level variables: should be defined at the beginning of the page (This needs special care as declaration of variables such variables in random manners renders code unreadable and prone to errors.)




i) Hard coded URLs and file paths

i) Use relative URLs as far as possible to improve portability
ii) If still absolute URLs are required create variables for all paths if possible in a single include file.

AVOID USING HARD CODED PATH EVEN IF IT OCCURS ONLY ONCE IN CODE.

j) Mixing of PHP and HTML (echo vs embedded HTML)

i) Avoid mixing of php code and HTML as much as possible. Mixing should be at most for loops and display conditions unless unavoidable

ii) Where mixing code and HTML keep HTML blocks intact.
e.g. Incorrect usage:


<?php do while (a < 100)
{
?>




<?php
end while
echo “


”;
?>

In a very simple scenario above any dream weaver will display invalid tags, rendering page useless for designer. The point here is that if start of table is in HTML so should be end as below:





<?php
do while (a < 100)
{
?>



<?php
end while
?>

<?php echo some content ?>


k) Function Assignment: In a loop if you are checking for a condition that involves a function, it is always better to assign the function value to a variable and check against the value. This is prevent the overhead of the function executing everything during the cycle of the for loop. Like below:

Incorrect Usage

for($i=0; $i < count($array); $i++)
{
echo ”test”;
}

Correct Usage

$count_check = count($array);

for($i=0; $i < $count_check; $i++)
{
echo ”test”;
}





2) SECURITY (REQUIRED):
Follow any of the following to sanitize variables from passing them into SQL queries.

a) Use mysql_real_escape_string() or mysql_escape_string() to escape special characters in a string prior to passing it in a query.

b) Also use htmlentities() and html_entity_decode() to prevent HTML injections from open form fields.

c)Do not directly pass server variables like GET, POST, FILES, SESSION, ENV, SERVER,REQUEST, etc into SQL queries. They all MUST be initialized and sanitized.
For example,Correct method $id = trim($_GET['id']);

if (is_number ( $id ) )
{
SELECT first_name, last_name FROM users WHERE user_id =.$id;
}

Incorrect method
SELECT first_name, last_name FROM users WHERE user_id = $_GET['id'] ;

Please click Software Outsourcing
iPhone Application Development

Wednesday, July 21, 2010

Best Code Development Practices-III

The objective of this document is to provide common PHP software development guidelines.

1) CODE LAYOUT (REQUIRED)

a) Header: Every file created in a project must have a comment header. This must contain the following
/**
* File Name:

* File objective:

* File Description:

* Created by:

* Created on:

* Last Modified by:

* Last Modified on:

* Included Files: Files included in this file

* Included In: Files where this file is included

*/

b) PHP Code tags: Following the following format

This is correct
&
?>

These are incorrect
&
?>



<% %>

c) Indenting: For code indenting, use 4 spaces instead of tabs.

d) Linefeeds: Make sure that you PHP editor adds \n whenever you press enter to create a
new line. Most Windows based editors add \n\r by default.

e) Inline Comments: Write inline comments where code block objective is not clear. As a
thumb rule, write inline comments when any of the following is true



i) When variable name, class name or function name do not tell anything about their
purpose.

ii) When a decision is being taken. For example, If-else, switch-case, etc.

iii) When a regular expression is being used

iv) When modifying/replacing an existing code.

The format for inline comments should be as below

/*
* MODIFIED BY developer_name ON dd/mm/yy
* describe change here briefly yet clearly
*/
Also, keep the original code as is, however, commented

2) SQL CODE GUIDELINES (REQUIRED):

a) SELECT: Avoid using * in SELECT queries since this delays the results. Instead give names of fields.
For example, SELECT first_name, last_name, email FROM users; is correct,
but SELECT * FROM users; not;

b) JOINING CONVENTIONS: When multiple tables are involved,always create table aliases for clarity. Keep table aliases short and close to.
For example SELECT cmp.company, emp.first_name, emp.last_name_first FROM
tbl_company AS cmp, tbl_employee AS emp
WHERE cmp.company_id = emp.company_id AND cmp.company = '" . $company. "' ORDER BY emp.first_name ASC;
c)QUERY FORMAT OPTIONS:
Follow any of the following query formats for more readable query format.

i) $sql = SELECT first_name, last_name, email FROM users WHERE status=1 ORDER BY first_name ASC;



Notice that main SQL keywords come prior to anything else in any row.
ii) $sql = “SELECT first_name, last_name FROM users WHERE status=1”;

Click Software Outsourcing
iPhone Application Development

Tuesday, July 20, 2010

Best Code Development Practices-II

The objective of this document is to provide common PHP software development guidelines


1) NAMING CONVENTIONS FOR FORM FIELDS (REQUIRED):

Following guidelines should be used to name various field types in forms.
a) Text Fields / Text Areas should be named as txtFirstName
b) Buttons should be named as btnSubmit
c) CheckBoxes should be named as chkPrefLang
d) Radio buttons should be named as optGender
e) Drop-down should be named as selCountry
f) Hidden Fields should be named as hdnStatus
g) Labels should be named as lblName

2) NAMING CONVENTIONS FOR SQL (REQUIRED)

a) For queries: As a convention, all SQL keywords (e.g. SELECT, FROM, ORDER BY, etc) should be all in UPPER CASE. For example,
SELECT firstName, lastName FROM users ORDER BY firstName ASC;

b) For Table/Fields: The table & field names should follow the camel case conventions. For example, i) employeeData for table name
ii) firstName for field names

c) SQL STRING VARIABLE NAME: Name the SQL Queries as per camel case conventions.
$sqlSelectEmpName = “ SELECT firstName, lastName FROM users ORDER BY firstName ASC ”;

Click Software Outsourcing
iPhone Application Development