In late 90s and initial few years during the last decade, developers (and the users too) used to have a confusion. If they need a software solution, for an example, invoice management system, how do they need it? An installable PC based software or a Web application? (Why don’t we ever call it as Web software?). Due to Bandwidth limitations, many of our customers preferred to get their software in PC. Some of our clients felt unsecured of using web applications.
But when years passed by, the requirements too changed. When we started working collaboratively, (which was made easy with the internet and the bandwidth growth) people slowly started moving into web based application. Web based Emails are possibly the first web applications people used. People started developing cross-browser compatible web applications. We stopped application development with VB and started focusing only on ASP and then ASP.NET. Now Web 2.o has changed the perspective of ’software’ completely. Also Hybrid applications became possible with APIs etc.
Likewise, in Mobile, there are two ways to develop Mobile applications. Mobile browser based applications – which are websites optimized for Mobile browsers and Installable or Native Mobile applications. They both has advantages and disadvantages.
Why Mobile Browser based applications and why not?
Mobile Brower based applications are slow due to the bandwidth limitations and will eat up your download limits in your plan. Also, the user need to remember the URLs, Type it which is really hard. Advantage is that the development cost is low since the developer pays additional attention only to make it compatible with most possible mobile browsers. Also now the many Mobile browsers supports HTML and the smart phones comes with bigger screens to see the full sized websites, if not by zooming it. We have keyboards too to manage this. But, if you want to browse sites, you can do that in your tiny Netbook, which you carry with you always, right?
So, In short: The advantage is the low development cost and the disadvantage is the bandwidth limitations and the limitations of Mobile websites which does not access your Phone’s components like Address book, Camera etc.
Why Native mobile applications and why not?
Native (installable) application resides in your Mobile, if you launch it, the search with parameters which are within your mobile (Eg. The 50 state names in USA, Your favorite locations to see daily weather etc). Except free text search, the rest of the search parameters can be stored in the mobile – OR they can be updated just one time. The communication between the Data/Web server and the mobile could be drastically reduced. An application like share portfolio can be created within your Phone and stored. Every day you just need to update the stock prices. You need not download the entire portfolio each day. Also, the application resides within the phone can access phone’s capability such as camera, phone book /contacts etc to and make the applications ‘Native’.
I also absorbed another hidden advantage of native application is brand loyalty. If the customer installs a mobile application which you supply, he will rely on your application. For Eg. I use Viigo for regular information updates (News, weather etc) But a site called Justdial.com or Google local for local address research. If Justdial comes with a Blackberry solution, they captured me as their user
The disadvantage is obviously the development cost. No two mobile platforms share a mobile application, and there are too many Mobile operating systems (or platforms) exist in the market. If you develop a mobile application to market it widely, you need to develop that in J2ME (for phones that support only Java with no loaded OS), Symbian, Mac iPhone, Android, RIM, WebOS( for Palm pre), LinMo and Windows mobile. Though J2ME (or Java ME) is widely used, it has the Graphic limitations and I am sure it won’t look nice in my Blackberry Bold!. If the developer do not have expertise in more than one technology, then you need to run behind various mobile developers, finding them under one roof would be difficult.
So, In short: The advantage is quick access, less data transaction and the disadvantage is the cost of development.
Hybrid mobile applications?
No, Hybrid application is not ‘going Green’ or developing applications ‘environment friendly!’
They are Applications that uses browser interfaces and native mobile components. With HTML5 and JavaScripts now the browsers are becoming capable of accessing phone’s built in features like contacts, camera etc. We started developing applications using PhoneGap and I believe solutions like PhoneGap should fill-in this gap. Platform free mobile solutions are what we need now and the gap between the browser based applications and native mobile applications is getting closure.
Finally what could be the disadvantages in hybrid mobile applications? Two things comes to my mind. Application security and learning curve for the developers. Mobile developers need to know HTML and Web developers need to know mobile phone APIs. Right? Let us see how we overcome these.
Added the hosted service of Today God is First, http://blog.macronimous.com/today-god-is-first/, to support the readers of our Blog. You may want to pay a visit to TGIF’s site too, from Os Hillman of MarketPlace Leaders. I read this daily, and I recommend business owners, developers and people in IT too for a new Day by reviewing yourself and refresh in God. You won’d regret spending 5 minutes reading this, I am sure you will subscribe to get it in your mail box.
God Bless for a Wonderful NewYear!
Netbeans Integrated Development Environment (IDE) is an open source integrated development for software developers. You can run the Netbeans IDE on various platforms which include Linux, Windows, Solaris and MacOs. It is aimed at providing a comfortable environment for the developer during each stage of development. This is accomplished by integrating precise features required for PHP development into the Netbeans IDE.
As most PHP projects characteristically connect to MySQL databases, Netbeans has made a concentrated effort to offer to this configuration. By means of the Netbeans IDE 6.5 Beta, web developers can now benefit from the standard features like the syntax highlighting, refactoring, code templates, pop-up documentation, easy code navigation, debugger and lots more.
I have been currently using Netbeans IDE and I have penned down few features and positives that I came across in writing PHP based web application.
I can stiff my neck out and say it’s the most popular IDE and also the most popular. So I would give an overall score of 8 out of 10 for Netbeans IDE.
Symfony a web application written in PHP as per the Model-View-Controller (MVC) standards launched by Sensio Labs during 2005. It is aimed to give developers full authority over the configuration. Symfony also looks to up the tempo of creation and maintenance of web applications and to reinstate the recurring coding tasks. More or less a whole lot from the directory structure to foreign libraries could be customized.
The symfony templating component is a flexible layer on top of PHP which provides you simple yet influential features that covers most familiar templating needs. One of the objectives of symfony templating component is to be as fast as possible. It comes as a tool which is very easy to use with just a single archive to download and that’s it, you are ready to be on the go.
You might ask me the next question, what is the exact need for any framework in PHP? PHP was supposed to be meant as a fast web based programming language. The ever escalating popularity of Open Source Technology today has given away to the position of PHP in web community.
Given this condition why do you need a Symfony? Why a framework in the first place? Let us see how the Symfony framework is going to benefit the customer and as well as the developer.
Benefits of Symfony Framework for Customers
Benefits of Symfony Framework for Developers
Initially when I came across this Symfony software, found it really overwhelming and appeared a big step. But the structure of the framework and also because of the consistency of Application Programming Interface (API), the documentation provided was really wonderful.
I must admit that ever since we started using Symfony, we haven’t looked back.
3. Frameworks we like: 2. CakePHP and why?
2. PHP Frameworks we like 1. Zend and why?
We learn from the projects we do and time teaches us too. The following simple 12 rules for the developers are we learnt from the customers over a period of time. I hope they will help us to be better to the customers who teaches us, and improve the deliverables that justifies our experience.
1. Test, Test and Test your applications before you send it to QA team
2. Fix all the bugs which you find
3. Remember this: If you forget to include QA in the project schedule and swallow QA time by extending your development time, you are doing injustice to the client, your employer and the worst is to yourself.
3. Fix all the bugs which QA team finds
4. Assure yourself that you leave no faults in your application before sending it to the client
5. Do NOT expect the customer to test your application for yourself. The customer need not be a Testing professional.
6. Make the list of changes and bugs reported by the customer.
7. Schedule them – and Let the customer know the turnaround time to fix them all.
8. Fix them and let the QA check them.
9. Make sure that you make the customer happy, and let him prefer him as your favorite developer.
10. Learn from the bugs; By not repeating them you can become a super developer.
11. If a project has strict deadlines, it needs strict QA.
12. Avoid reporting the known bugs to the client – instead fix them!
As I said learning never ends. So, I welcome if your valuable rules or strategies or comments could extend this list are welcome. Shoot them them as your comments.
Another set of developers liked CakePHP and they prefer to stay with this solid web app. CakePHP is one of the most well known frameworks for PHP development. CakePHP considerably decreases development costs and also helps you as developers write very less code. This blog will walk you through the Cake framework and its hot features which caught my eye at the first sight of it.
As you know, CakePHP is an open source development framework for developing, maintaining and deploying web applications. It is designed using Model-View-Controller (MVC) architectural paradigm. This renowned design pattern provides you with an organized framework that enables to develop a complete web application at all the levels. CakePHP is released under MIT license.
There are few basic features:
There are more specific features which will make you take a look at:
Well, it’s not that often you get something which is so easier for the user to interface with the database. The above mentioned features are only a part of the wonderful framework. You can actually know about CakePHP and enjoy its features once you get going.
Next: Frame works we like 3. Symfony, and why?
Our developers first choice was Zend, reasons? Zend Framework is an uncomplicated, straight forward, open source software framework for PHP 5. Its flexible design allows you to build interactive web applications and services with ease. One of the major highlight is the Model-View-Controller (MVC), which makes the code reusable and trouble-free to maintain.
MVC is nothing but an architectural blueprint used by software engineering. As a developer you would wish to separate data and user interface. This enables you as a developer to make changes to user interface without disturbing data handling and rearrange data without making any changes to the UI.
There were few positives which I came across and would like to share it with you:
All in all, if you’re looking for a “face-lift” to PHP, Zend Framework provides you with powerful solutions for building a safe and robust website.
Next: Frameworks we like: 2. CakePHP>>
Developers need to complete the project in time. The client quickly need a stable site or web application which is easy to maintain. This two reasons drive the concept of web application development framework. When the third reason, “the cost” intrudes, there comes Opensource and PHP frameworks to meet everyones desire.
While many PHP developers reuse and code smartly, some developers code the same smarter with PHP frameworks. Frameworks help those smarter guys to complete a web project effectively and help them to manage the same easily. Macronimous encourages programmers to work smarter and thats the reason why we use PHP Frameworks.
In these series of blogs, we will let you know the four solid Frameworks in PHP that helps our programmers and the site owners to ‘develop-own solutions effectively’.
I recommend you to make quick visits to these previous blogs: Know more about PHP frameworks, Use frameworks – Cut down your web Development cost! before you read these series.
Next: PHP Frameworks we like 1. Zend>>
We have our iPhone application successfully approved by apple and available in iTunes. The application’s purpose is to bring different love tools under one roof. With our first version, we have included four different modules and we are planning to bring more features in our future releases.
Our first tool is “Love Chart” where you can check the relationship you might have with your partner(s). Our Next tool is “Compatibility Chart” which helps a person to find their compatible, incompatible and neutral partners, using their moon sign. We believe this might help you in zeroing in on your mate. The next tool is “My Partners” using which you can preserve memories with whom you have spent time together. Our final tool is “Gender prediction” which helps a couple to predict gender of their baby they are going to have, using mothers age and month of conceive. The couple can also decide the month the mother has to conceive, to have baby of their own preference.
We developed the application using XCode 3.1 IDE tool to program our logic and interface Builder to design our interface. Since this was our first application, we went through almost all the video tutorials available from Apple’s Developer Site which taught us what is iPhone application development all about. We then started with learning Objective C programming. Finally we went through the Human Interface Guidelines, which is essential when you develop any iPhone application. With this base knowledge, we dived directly into our first application and successfully got it approved by apple without any problem.
We are working on our next application in the same Lifestyle category and it will be available soon in iTunes store and you can check this site for more information. You can expect more from this before this year end. We will keep them posted.
Doing Unit testing is helps a team to produce quality application with in time by allowing the developer to test the code as soon as they write it. By developing a test document, developers are forced to do rigorous testing before it reaches to QA team. This way the span of life cycle is reduced by avoiding it going back and forth between the developer and the tester. The following few Frameworks help teams to do unit testing efficiently. This way unit testing could become a fun to your developers too.
Four Frameworks to perform unit testing in PHP are
1. SimpleTest
2. PHPUnit
3. phpt
4. SnapTest
SimpleTest:
It’s a Open souce unit test framework created by Marcus Baker for PHP. The test structure in SimpleTest is similar to the Junit and PHPUnit. It contains all of the typical functions in Junit and PHPunit and also includes Mock objects. Simplte Test helps to automate the web application’s regression testing. Regression testing on web applications can be done by parsing the HTML page by using scrpitable HTTP client for simulations like Form submission and clicking on Hyperlinks. Some of the JWebUnit functionalities like web page navigation, cookie testing and form submission are also incorporated in this.
Download and test your version of Simple test.
PHPUnit:
PHP Unit is a part of xUnit family, which has testing frameworks in it. It provides a framework that helps in creating the test scripts easily and also the functionality to execute the tests and then analyze the results. The tests are arranged into cases in PHPUnit, which is very similar to Simple Test. A case is essentially a class in which public methods are singular independent tests. A test name starts with “test” if the test is a public method. Any test, which is not, a public method will not be taken into account unless interpreted as a test under PHPUnit. Helper methods are very useful for recurring tasks. If used Helper methods to set up a test, the test will be considered as a separate test by the framework. Refrence to assert methods are present inside each and every test. An assertion is mainly taking an expected value and then comparing it with an actual value. If the expected value does not match the actual value, then the test fails. Mock Objects are hugely important component in maintaining a unit test’s segregation from all other classes and resources except the one under test.
The following link will assist you to get more idea on PHPUnit.
PHPT:
A phpt test is a small script, which used by the php internal and quality assurance teams for testing PHP’s functionalities. Writing phpt tests helps to make PHP more stable. For writing up a phpt test, we need a basic knowledge on PHP language, a text editor and a method to get the results of the code. Phpt test is used in following scenario: The run-tests.php scripts call the test and it takes different parts of phpt file to name and to create a .php file. The newly created .php file is executed and the output of the same is compared with different sections of a phpt file. The Test pass only when the output of the script “matches” with the output provided in the phpt script. Phpt test will do the following: It tries and breaks the PHP functions. PHPT test check the functions normal parameters as well as edge cases.
More on Phpt
SnapTest:
The most powerful unit-testing framework for PHP 5+ is SnapTest. PHP’s runtime language is the only one of its kind that can be used to make the unit test process simpler without sacrificing the agility tests. The philosophy on which the Snap Test was build: Unit testing should be transparent in Snap Test. Complexity of test harness and coding out stub files should be avoided in Snap Test. The obstacle in writing tests should be very less so that it becomes easier to write the tests than writing the code.
Features of the SnapTest are:
• JUnit Compliant Test Harness
• TAP Compliant Test Output
• Runnable from Command Line via .sh or .php scripts
• Full support for mock objects at runtime (minimum parallel structures) as actors and critics
• Extensible add-on system for adapting SnapTest to just about any developer environment
Here you go for: SnapTest
Let me know if you are familiar with other frameworks.
Day-to-Day we see lot of SEO tools in web and many people would have missed useful SEO tools that are not marketed well. Here are four SEO tools that you would have missed and you would be interested to use.
Keyword frequency analysis (single words, two and three words)
The tool helps to pick top 10 keywords in-group of single, double and three word keyword phrases from title, Meta description, Meta keyword and ALT-attributes. This tool can be used to find competitors on-page optimization work related to keyword phrases tags.
Search engine SPAM detector
The tool analysis and finds whether a webpage has followed keyword stuffing, doorway farms, hidden text through JavaScript or by CSS. This tool can be used to find web page aspects that search engines could consider as spam.
http://tool.motoricerca.info/spam-detector/
Backlinks Checker Tool – Backlinks Watch
The tool helps for the best to find everything related to inbound links and covers anchor text, backlinks quality plus limitations with nofollow tag and inbound links Page rank.
Keyword mapping tool
The Keyword Map tool shows the relation between search terms / keywords in graphic with good interface for easier understanding on choosing the right combination of keywords.
What exactly do we mean by duplicate content? Websites with identical pages and websites identical to another website on the net is considered as content duplication. Writing a content for a website is entirely a different thing to normal writing. It involves plenty of creative ideas and more importantly it should contain related keywords which is most used by the visitor.
Now let us see why you should avoid duplicating the content?
First of all, copying the content brings down the understanding of the concept. If you start understanding, that is only how you grow. The scriptwriter should understand why something is and how it works. If you copy, you are missing out on that. You are just resurfacing the upper layer and not getting into layers underneath when you do that.
If you are not willing to write on your own, you will not know the exact intention and get stuck at one place. You will not know how to take it forward. The originality of the content will be missing.
While it is easier to just copy from someone else, why do you have to create a new one? If you don’t do that, you will not know why it looks like, you cannot feel the way it feels like and you will not be able to read the way it should be read. The final outcome will be an artificial one.
Content Duplication and its impacts on SEO
1. Duplication of content will be considered a spam by all the search engines. There are so many websites with similar products, so the copywriter must be very careful in creating content. Search Engines likes fresh and unique content. It ranks websites depending primarily on the content used in web pages.
2. Changing the phrase of an existing content and rewriting is also considered as content duplication. Search Engines have ways to find out and it is supposed to be spam. This will certainly affect the ranking of a website.
3. When a website is reported to have duplicate content issues, the total number of pages ranked by the search engine will automatically come down. Fewer pages to rank will lessen the rankings and might lead to lower traffic.
4. It is important to make your content unique; otherwise there is absolutely no point in doing all these. The search engines will not bother to feature your website in its result pages.
5. There is a difference between content duplication “penalties” and “filtering”. When we refer to penalty in search engine rankings, we actually talk of points being reduced from your overall score, but the truth is, the pages are just filtered like you filter unwanted particles from a can of liquid. Accidently, this filtering can sometimes filter out your good particles.
Tips to avoid Content Duplication
1. While preparing content, make sure you don’t copy it from somewhere and try to replace the words with exact meanings. The search engines have already come up with a solution to deal with this issue.
2. Before you sit down to write, ask yourself what exactly will create value for your users.
3. Try to get various perspectives, take the good points from them and fill the rest with your own thoughts and creativity. After all, you have to make it happen and move forward.
4. You can be influenced by many, but make sure you don’t copy anything.
So while preparing content, watch out for duplication from search engine’s point of view and as well as loyal customer’s point of view. At the end of the day, it is the search engine and ultimately the customer who are going to “look” at your content, so make sure it is liked by both, otherwise all the efforts you put in for your business to grow will go wasted.
After a month’s time today we have completed our Apple iPhone developer program registration. We have three applications and a game to be tested for our clients and it’s a milestone to do the testing and certification for the application in house.
The process goes this way:
Everyone says that it’s not easy to join in the developer program. Actually its right partially, But Apple wants to allow only serious developers in. Their verification system is but time consuming, and they really want to see if the developer is providing complete details. I like this verification system, which filters non-serious developers.
Ok, now why take all these steps?
Here is the list of iPhone development program benefits.
Overall, your application is reaching millions of iTunes store users, and you get a chance to reach them easily.
I believe now RIM is also working on a store like this (http://mobileapps.blackberry.com/devicesoftware/entry.do?code=appworld) to support Blackberry developers.
Google as a search giant knows how to help site owners and webmasters on search index. Time to Time Google team has been updating Google Webmaster Tools list and now its has come to a good form. All over, these tools provide reports on your site visibility, diagnose problems, and as well helps to share information about your site to Google.
To start, here is the list
Now ask a question yourself why don’t I use Google Webmaster tools, if I have as many tools and information from Google for free. Sign in to Google Webmaster Tools with your Google account today!
Before starting with the topic let me give you a brief note about link bait and practices so that you would have an idea how it works for you
Linkbait is one of the task in link building that takes both quantity and quality inlinks, relevant and irrelevant to your website through various types of tricks and practices.
The tricks and practices are vast enough and it can’t be covered as a theory since all these tricks would differ from person to person ideas and their needs. Few may try running a SEO competition, quiz or awards that represent their business website or blog and few may try writing negative contents on a branded company or about a high profile person around the web so that many would come forward to have the content link in their website or blog in which they may think such collections that would again get them linked from different website or a blog. This works as a chain.
Now one of the most adopted link bait technique is by providing free tools with a code embedded link back to your site or blog and this has been more successful. In fact many SEO companies do linkbating as a service in different forms
To linkbait or Not to Linkbait?
Many people goes with a logic Linkbait by default is something bad, is it so?
Before writing this post I just surfed web to find what bloggers and industry leaders have experienced about link bait. Few were moderate and few feels it has both bad and good
I would say it is how we use, see and perform to the web. We have lot of debate on this topic, still some say it as a spam technique and some say it as a quality information or link distribution. Techniques that are open and user favorable with a link falls under ethical and they are good portion of link bait and techniques that are off as said attacking a brand for their website publicity, hidden stuff and spamming through various means falls under unethical that results bad linkbait. As I have already told it is up to us whether link bait is good or bad. Besides I would like to get your opinion about linkbaiting techniques that you have come across or used