PHP eLearning Courses

PHP eLearning Courses

I recently noticed some interesting PHP eLearning Courses proposed by  iProDeveloper and I have copied some information below for your benefit.

iPro Developer eLearning Events

Upcoming PHP eLearning Courses – Enroll Now

iPro Developer is pleased to offer two exclusive technical training events that will give you a deep-dive into PHP.

PHP brings a whole new scripting solution to the IBM i/System i platform. As a simple and easy to use tool, PHP enables the developer to deliver robust browser based solutions with minimal coding.

Whether you are just starting out with PHP or you’re a seasoned veteran, iPro Developer is bringing you essential online training that will help you boost PHP performance and help you increase productivity.

Join our renowned experts for these exclusive training events, and get all the benefits of an in-person class without the hassle and expense of travel. Each course is recorded so you can attend live and then review the material on your own time.

Enroll now to take advantage of early bird discounts and get the most value for your education dollars.

PHP102 for the RPG Programmer with Mike Pavlak
Tuesdays & Thursdays, December 3-19 at 12 pm ET
Join Mike Pavlak for part 2 of his PHP for RPG programmers eLearning series. This course focuses heavily on transaction processing. With in-class examples and homework assignments, you will gain powerful knowledge of the PHP transaction processing sequence.
Price: $429 $364 Through November 26th – You Save $65!

Let your PHP Apps Fly on IBM i: High-Performance PHP with Alan Seiden
Tuesday, December 10th at 11 am, 1 pm, and 3 pm ET
In this one-day training course, Alan Seiden teaches you how to ensure performance for your PHP applications that run on IBM i (or that connect to IBM i). You’ll get little-known tips and tricks to help identify bottlenecks and trouble-shoot your applications. You’ll leave this course brimming with new ideas to make your applications fly.
Price: $150 $120 Through December 3rd – You Save $30!

Need assistance? Contact our customer service team to find out about purchase order and invoicing options. Group discounts and multi-course discounts are available upon request. Send an email to or call 800-650-1804 or 913-967-1719.

Click here to see our full eLearning catalog >>>.


If you want to learn more about PHP, you could consider reading some good book such as the following  available at Amazon UK



Incoming search terms:

  • NULL

Be the first to comment - What do you think?
Posted by Mario1 - 21/11/2013 at 4:32 pm

Categories: Computer Books, Computer Languages, Computer Software, PHP, Programming, Training, Uncategorized   Tags:

Websmart PHP for IBM i

Websmart PHP

The PHP logo displaying the Handel Gothic font.

The PHP logo displaying the Handel Gothic font. (Photo credit: Wikipedia)

WebSmart PHP is a software developed by BCD Software. which is  more than an IDE, It is a complete PHP Rapid Web Application Development tool that runs on different platforms, including the IBM midrange systems (IBM i previously known as IBM AS/400).

While WebSmart PHP-developed applications will run on multiple platforms, it is especially interesting for  developing PHP applications for the IBM System i. It will bring System i-specific features to support deployment on the platform, including libraries and library lists, and integration with RPG and other ILE applications. It will also include templates for using either DB2 SQL or record-level access to the DB2/400 database.

The developers of WebSmart PHP, have described and documented more than 5,000 PHP functions, which are grouped into tabs on the WebSmart PHP IDE. Further streamlining development are a series of more than 50 templates that will guide developers through the steps to perform a specific function, such as working with data or entering transactions.

WebSmart PHP supports everything that can be done with open source PHP ianguage ncluding hosting applications on different platforms (System i, Unix, Linux or Windows) and easily connect to different- (DB2/400 on System i, MySQL  and any other databases supported by other platforms)


Websmart PHP Intelligent Templates

WebSmart PHP comes with intelligent templates to make it easy for you to build fully functional System i or multi-platform PHP web applications that use database functions for DB2 SQL, Record Level Access and MySQL.

WebSmart PHP templates guide you through the steps to perform specific functions, such as working with data (add, change, delete, search or list records), or input-capable lists for transaction-oriented applications, etc. It also automatically creates a professional looking app by generating the HTML and CSS for you. And, you can modify any template or build your own templates to suit your specific needs.

Another advantage of templates is that they also provide a teaching tool for your staff, since you can view all the PHP and MySQL or DB2 code generated for them and learn from great examples . Once you’ve created a PHP program using the templates, you can modify and enhance the code by using WebSmart’s integrated PHP code editor in native PHP code.


Websmart Visual HTML and text-based design tools

WebSmart PHP includes both Visual HTML and text-based design tools. Developers can see what their finished application will look like as they work on it.without  the need to know how to code HTML. The Visual HTML design tool is a third generation design tool that makes it easy to drag-and-drop HTML design elements or database fields on your page layouts and that includes HTML wizards. It also has support for other important web design technologies such as CSS.

WebSmart PHP promotes the MVC (Model-View-Controller) development approach by separating the  presentation design (HTML)  from server logic (PHP), instead of having your PHP intermingled with HTML.


A Video Tutorial on Websmart PHP for IBM i


Many developers on the IBM i platform are interested in PHP and this tool can be very helpful to reduce the learning curve and to easily move applications from traditional green screens to the web.

There are several CGI-based products available on the market to move IBM i applications to the web such as the open source CGIDev2 package and others. Howevet they still  restrict applications to running on IBM i (RPG, of course, only runs on IBM i), while PHP can run practically anywhere. Websmart PHP will produce PHP applications that can be run on any platform.



Websmart PHP Advantages

WebSmart Flattens the PHP Learning Curve

Getting Started With WebSmart PHP Webinar



Enhanced by Zemanta

Be the first to comment - What do you think?
Posted by Mario1 - 03/10/2013 at 3:18 pm

Categories: AS/400 Software, IDE, PHP   Tags:

The PHP Object Oriented Model

PHP Object Oriented Model

I found an interesting article on the PHP Master website about the PHP Object Oriented Model and I have re-published it below for your convenience.


Lesser-Known “Features” of PHP’s OO Model


Lesser-Known Features of PHPs OO Model


The vast majority of today’s applications written in PHP are object-oriented, and in general the core OOP concepts are pretty well understood by PHP developers. This article pushes the boundary of your understanding and shows you some tricks, or potential pitfalls depending on your perspective, of OOP in PHP.

Inheritance for Interfaces and Traits

Let’s begin in familiar territory: interfaces. An interface in PHP allows us to define a contract that any object implementing this interface must itself implement. But did you know that interfaces can also inherit other interfaces, and that either the parent or child interface can be implemented by a class?

Consider this code, which defines an interface, another which extends it, and a class that implements the child interface:

01 <?php
02 interface Reversible
03 {
04     function reverse($target);
05 }
07 interface Recursible extends Reversible
08 {
09     function recurse($target);
10 }
12 class Tricks implements Recursible
13 {
14     public function recurse($target) {
15         // something cool happens here
16     }
18     public function reverse($target) {
19         // something backward happens here
20     }
21 }

I’ve defined an interface named Reversible, and another one named Recursible that extends it. When I implement Recursible in the Tricks class, both the recurse() method from the Recursible interface and the reverse() method from the Reversible interface must be present.

This is a useful technique to employ when an interface will contain methods that are used across one set of classes, but another set of classes need these and an additional set of methods. You can make a composite interface as shown here rather than implement two interfaces.

Traits offer a similar pattern. If you haven’t had an opportunity to use traits yet, these look like classes and can contain complete method definitions that can be applied to any class(es) in your application, without the need to inherit from a common location. We’re often taught that it’s better to move code to a common parent class than to copy-and-paste between classes, but sometimes classes aren’t related and the inheritance is false. Traits are a great feature because they allow us to re-use code even where objects aren’t similar enough to justify inheritance.

Let’s look at a simple trait example. (Warning: the zany naming scheme from the previous example is still in evidence.)

1 <?php
2 trait Reversible
3 {
4     public function reverse($target) {
5         return array_reverse($target);
6     }
7 }

The syntax for traits looks very much like a class, and indeed traits can contain both properties and methods – including abstract methods. These are then applied in a class that brings the trait into it by using the use keyword… or they can also be applied to a trait, as we see here:

01 <?php
02 trait RecursivelyReversible
03 {
04     use Reversible;
06     public function reverseRecursively($target) {
07         foreach($target as $key => $item) {
08             if(is_array($item)) {
09                 $target[$key] = $this->reverseRecursively($item);
10             }
11         }
12         return $this->reverse($target);
13     }
14 }

Now we’ve got a trait that uses another trait and adds a method of its own. This method calls a method in the first trait. At this point, we can apply the trait to the class, and since the traits contain the feature I want to illustrate here, the class doesn’t contain anything else.

1 <?php
2 class Mirror
3 {
4     use RecursivelyReversible;
5 }
7 $array = [1, "green", "blue", ["cat", "sat", "mat", [0,1,2]]];
8 $reflect = new Mirror();
9 print_r($reflect->reverseRecursively($array));

If you run the code, you’ll see that not only does the top-level of the array get reversed, but that PHP also drills into and reverses all of the child elements as well.

How Private is a Private Property?

So you thought that a private property was only accessible from within the current object? Not quite true! Actually the restriction is only on class name, so objects of the same class can access one another’s private properties and methods. To illustrate this, I’ve created a class with a private property and a public method that accepts an instance of the same class of object as an argument:

01 <?php
02 class Storage
03 {
04     private $things = [];
06     public function add($item) {
07         $this->things[] = $item;
08     }
10     public function evaluate(Storage $container) {
11         return $container->things;
12     }
13 }
15 $bucket = new Storage();
16 $bucket->add("phone");
17 $bucket->add("biscuits");
18 $bucket->add("handcream");
20 $basket = new Storage();
21 print_r($basket->evaluate($bucket));

You might think that $basket would not have access to $bucket‘s private data, but actually the code above works just fine! Asking whether this behavior is a gotcha or a feature is like asking if a plant is a flower or a weed; it depends on your intention and perspective.

What Does an Abstract Class Look Like?

An abstract class is usually thought of as being an incomplete class; we only define partial functionality and use the abstract keyword to stop anything from attempting to instantiate it.

1 <?php
2 class Incomplete
3 {
4     abstract public function notFinished();
5 }

If you try to instantiate Incomplete, you’ll see the following error:

PHP Fatal error: Class Incomplete contains 1 abstract method
and must therefore be declared abstract or implement the
remaining methods (Incomplete::notFinished) in /home/lorna/
phpmaster/oop-features/incomplete.php on line 5

The message is self-explanatory, but now consider another class:

1 <?php
2 abstract class PerfectlyGood
3 {
4     public function doCoolStuff() {
5         // cool stuff
6         return true;
7     }
8 }

It’s a perfectly valid class aside from the abstract keyword. In fact, you can mark any class as abstract if you wish. Other classes can extend it, but it can’t itself be instantiated. This can be a useful device for library designers who want developers to extend their classes rather than making use of them directly. Zend Framework has a rich tradition of abstract classes for exactly this reason.

Type Hints Don’t Autoload

We use type hints to ensure that an incoming parameter to a method meets certain requirements by giving the name of a class or interface that it must be (or be related to). However, PHP does not call the autoloader if the class or interface given in a type hint hasn’t been declared yet; we’ll just see the missing class declaration error.

01 <?php
02 namespace MyNamespace;
04 class MyException extends \Exception
05 {
06 }
08 class MyClass
09 {
10     public function doSomething() {
11         throw new MyException("you fool!");
12     }
13 }
15 try {
16     $myclass = new MyClass();
17     $myclass->doSomething();
18     echo "that went well";
19 }
20 catch (Exception $e) {
21     echo "uh oh... " . $e->getMessage();
22 }

The class name in the catch clause is actually a type hint, but since we didn’t indicate that the Exception class was in the top-level namespace, PHP thinks we mean \MyNamespace\Exception which doesn’t exist. The missing class doesn’t raise an error, but our exception now misses the catch clause. You might expect that we’d see a missing \MyNamespace\Exception message, but instead we get the unspeakably ugly “Uncaught Exception” error:

Fatal error: Uncaught exception 'MyNameSpace\MyException'
with message 'you fool!' in /home/lorna/phpmaster/

This behavior makes complete sense if you think about it – if something named in a type hint isn’t already loaded, then by definition the incoming parameter cannot match it. I had to make this mistake myself before I really thought about it, and it’s just a typo! If you catch \Exception rather than just Exception, this works as I had originally intended.

And Finally

The finally clause is a feature worth knowing about that was recently introduced in PHP 5.5. If you’ve used other programming languages with exceptions then you may have seen this construct before. There’s only ever one try block, we can have as many catch blocks as we please, and from this version of PHP we can also add a finally.

Here’s the previous code example again, with finally added:

01 <?php
02 namespace MyNameSpace;
04 class MyException extends \Exception
05 {
06 }
08 class MyClass
09 {
10     public function doSomething() {
11         throw new MyException("you fool!");
12     }
13 }
15 try {
16     $myclass = new MyClass();
17     $myclass->doSomething();
18     echo "that went well";
19 }
20 catch (Exception $e) {
21     echo "uh oh ... " . $e->getMessage();
22 }
23 finally {
24     echo "move along, nothing to see here";
25 }

The finally clause will always happen, regardless of whether we reached the end of the try block, entered any of the catch blocks, or if there are more uncaught exceptions on the way. In this example, the output from the finally block actually appears before the error about the uncaught exception because it’s not uncaught until we’ve ended the try/catch/finally section.


Certainly some of the examples I’ve shown here are quite far-fetched, and hopefully you wouldn’t run into them every day, but I do think it’s worth knowing what edge cases look like so that you can design and build systems correctly. Understanding the building blocks can certainly help us to get our jobs done and to debug problems quickly, and I love sharing ideas to make that easier!

What gotchas have you found in PHP? Please share with the rest of us in the comments section.

Image via Fotolia

Lorna Jane Mitchell is a PHP consultant, developer, and author based in Leeds, England. Code is her passio and she loves to share her experiences with others, so much so that as well as her books (PHP Master published by Sitepoint and PHP Web Services published by O’Reilly), she also created the PHP course on OOP for Learnable. Lorna writes regularly for her own site about all kinds of topics, mostly technical ones. When she’s not writing either code or words, you can usually find her cooking or eating; Lorna loves food as much as she loves code!

Visit Site


There are many good books on Object Oriented PHP and you will find a good selection at Amazon UK by clicking the links below:


==> PHP Object Oriented Model

Be the first to comment - What do you think?
Posted by Mario1 - 02/08/2013 at 4:30 pm

Categories: PHP, Programming, websites   Tags:

How to Learn PHP

Learn PHP

Php programming

Php programming (Photo credit: Wikipedia)

PHP is a popular scripting language that can be embedded into HTML and used to develop web applications.

Currently PHP and Java are probably the most on demand computer languages. Generally PHP is the preferred choice if one wants to work on the web whereas Java is preferred for desktop applications, enterprise applications and mobile apps.

I made some investigations on good options about how to learn PHP and you will find below some results of my investigations.


Learn PHP with PHP Online Tutorials


I found some good online tutorials such as the following:


Learn PHP on Good PHP Books


There are many good books on PHP and you will find below an initial choice from Amazon UK:



PHP Magazines

Another way to learn PHP or improve your PHP expertise is to read some magazine dedicated to PHP such as the following:



Open Source ERP Systems written in PHP

Enhanced by Zemanta

Be the first to comment - What do you think?
Posted by Mario1 - 26/05/2013 at 4:02 pm

Categories: Application Servers, AS/400 Software, Computer Books, Computer Hardware, Computer Languages, Computer Software, Database, Ebooks, ERP, ERP applications, IDE, Information Technology, Linux Sofware, Operating Systems, PHP, Programming, Training, Uncategorized, Utilities, websites   Tags:

Openbiz Cubi PHP Application Framework

Openbiz Cubi

I noticed an interesting article on the PHPMaster website about the Openbiz Cubi PHP Application Framework and I have re-published it below for your information.

Openbiz Cubi: A Robust PHP Application Framework, Part 1

Openbiz Cubi: A Robust PHP Application Framework


By: Rocky Swen | Posted: May 16, 2013 |

This entry is part of the series Openbiz Cubi: A Robust PHP Application Framework

The web has been a standard platform for both consumer-facing and business-facing applications for more than 10 years. The enormous amount of open source projects, commercial tools, and frameworks make fast web development possible.

Openbiz Cubi is a robust PHP application framework giving developers the ability to create business applications with minimal effort. In this two-part series I’ll explain the concepts and steps necessary to create your own business web applications with Cubi. We’ll look first at the challenges web developers face and how Openbiz Cubi can help, and then how to install Cubi. In part 2 we’ll see how to create our own modules.

Openbiz Cubi Features

Even with many choices for a web development framework, application development is still a very challenging job.

A good framework can help developers code with good programming practices such MVC and ORM, although to build a real world application we sometimes have to spend time writing code beyond the capability of the framework.

  • Learn the framework and code with it. After creating a “Hello World” app with the framework, developers still have a steep learning curve to build the first prototyped application.
  • Implement common features like user registration, login, password reset, etc.
  • Provide permission control for users. Because of the complexity of generalizing access control, permission logic is often hardcoded in the software.
  • Make a professional UI. Fine-tuning HTML, CSS, and JavaScript is time-consuming, especially to please all major browsers.

All the above tasks are necessary but not the highlighted features of the application. Spending too much time on them brings frustration to both clients and the development team.

Openbiz Cubi is a mature platform, mainly for the fast development of business applications. It was designed to relieve the pain of such application development by providing:

  • An XML-based coding scheme. Developers use intuitive XML to describe the data objects, pages and forms, as well as user interaction.
  • A modular platform that has many common component built-in. Developers make their own modules and load them in the platform.
  • A default professional-looking UI with multi-theme support.
  • Flexible permission control options, from simple to sophisticated.

To learn more about Cubi, be sure to visit the project site and official website

Installing Openbiz Cubi

To install Openbiz Cubi, you need to download either the source code or Windows installer from, or you can get the latest source code from the Openbiz Cubi SVN server.

When you choose to download the source ZIP archive or get the source from SVN, you can follow the steps below to install it:

  1. Prepare the LAMP stack. Openbiz Cubi can be run on Unix, Windows, and Mac servers. The runtime environment should include:
    • Web server – Apache, IIS, etc.
    • Database server – MySQL, MSSQL, Oracle, PgSQL, and databases supported by Zend_DB
    • PHP 5.2 and above with mysql, PDO, and mcrypt extensions
  2. In your web server’s web directory, create a folder named cubi.
  3. Unzip the Cubi ZIP file to the directory (or check out the source from SVN under this directory).

If you use Windows as your development environment, you can install Cubi with its Windows Installer. The installer:

  • Installs Apache 2.4, PHP 5.4 and MySQL 5.3. After installation is completed, you can find Apache and MySQL in the System Services list.
  • Installs the Openbiz Cubi platform and business applications. You can choose to unselect the options of installing business applications which are not released under open source.
  • Adds desktop icons and start menu items.

After the code is installed to the web server’s directory, you can launch Cubi’s web installation wizard in a browser to set up the database and load modules. Run the installation wizard by launching http://host/cubi/install in your browser.


Click the Start Now button and follow the steps until you see Installation Completed page. Then you’ll be ready to test drive Cubi.


A Quick Tour of Openbiz Cubi

After you log in to Cubi as admin, you’ll see the Administration dashboard. You may see other tabs as well, like “Contacts” and “Calendar”.

Cubi is made of modules. All modules are under the cubi/modules directory. Of the many built-in modules, the following are the most important; they are core modules that are often used by other modules:

  • System module – provides the ability for system administrators to manage users, roles, modules, groups and permissions.
  • Menu module – provides support for page navigation by menus, tabs, and breadcumbs.
  • User module – provides functions for users to register, sign in, and reset passwords.
  • MyAccount module – provides My Account pages where a user can manage his own profile, preferences, activities, and password.

Cubi comes with other modules such as Contact, Email, Event Log, Security, Theme, Translation, Attachment, Picture, Chart, Payment, OAuth, Web Service, and more.

A typical Cubi page on the front-end is composed of four sections:

  • Header – this section contains the logo, My Account link, application tabs, and breadcrumb navigation.
  • Left Menu – this section contains navigation menus and other widgets.
  • Content – this is the main area users will work in with their data and business logic.
  • Footer – the footer may have links about the application provider, copyright, etc.


Manage Users and Roles

For the application administrator, one of the most important tasks is to manage users and their permissions to access certain resources. Cubi supports several widely used access control models including Role-based access control (RBAC) and Group-based access control (similar to Unix file permissions). I’ll briefly discuss how to use RBAC.

A Cubi user account is simply called “user”. A role usually means a type of user. Different roles are permitted to do different things. Cubi comes with three roles: administrator, member, and visitor. A user can be assigned to one or many roles.

An administrator needs to use the Role Management page to allow or deny resources for a given role. When he wants to grant a user certain permissions, he associates the user to a new role that has those permissions.



This is where I’ll end the first part of the series. So far we’ve talked about the challenges web developers face and how Openbiz Cubi can help, how to install Cubi, and undertook a brief overview of how Cubi is organized. In the next part I’ll dig deeper and show you how to create your own module. Stay tuned!

Image via Fotolia

Rocky Swen is the founder of the Openbiz Cubi open source project. He spent his career on cloud, mobile, video encoding and streaming, business intelligence and enterprise technologies. During weekends he enjoys hiking with his family and playing tennis with friends.

Visit Site




There are some good boos on PHP Application Frameworks. See some options below from Amazon UK:


Be the first to comment - What do you think?
Posted by Mario1 - 25/05/2013 at 1:56 pm

Categories: PHP   Tags:

Nearly 75% Of All Smartphones Sold In Q1 Were Android

Android Smartphones

I noticed an interesting article on TechCrunch about Android Smartphones and I have re-published it below for your convenience.

Nearly 75% Of All Smartphones Sold In Q1 Were Android, With Samsung At 30%; Mobile Sales Overall Nearly Flat: Gartner

Ingrid Lunden


Gartner has just released its Q1 figures for mobile handset sales, and the key takeaway is that Android continues to steal the show, led by handset maker Samsung. Google’s mobile platform now accounts for nearly 75% of all handset sales, a jump of almost 20 percentage points on a year ago, and equating to 156 million devices sold in the three-month period. Smartphones sales grew by 63 million units to 210 million for the quarter, making up nearly half of all mobile phone sales overall, at 425 million. With the number of mobile handset sales up by a mere 0.7% on a year ago, it’s clear that higher-end devices are very the much growth engine for the mobile industry at the moment.

Here’s a breakdown of some of the more interesting figures from Gartner.

Although Samsung does not release exact sales figures for its devices, Gartner estimates that the Korean giant is the biggest of them all: it accounted for almost 31% of all smartphones sold in the period, with Apple in number-two with 18%. It’s quite a change from last year, when the two were nearly level, with just 5 percentage points separating them. The widening gap, and Samsung’s growth, will continue into the quarter ahead, it seems, led by the popularity of the company’s newest flagship model.

“We expect the new Galaxy S4 to be very popular despite being more of an evolution than a truly revolutionary device compared to the S3,” writes Anshul Gupta, principal research analyst at Gartner.

On the other hand, the fact remains that at least some appear to still be holding out for the next iPhone rather than going for the iPhone 5; and Apple meanwhile is still holding back from releasing new, low-cost models that might help it along more in emerging markets and compete more comprehensively against the huge range of Android devices out there.

The gap between the two biggest brands and number three continues to be a big one, with Samsung very much taking the lead here. “There are two clear leaders in the OS market and Android’s dominance in the OS market is unshakable,” Anshul writes.

Together, Apple and Samsung accounted for 49 million handset sales. This is down by 1.1 million from a year ago, and as the smartphone market continues to grow, the players who are vying to be the next big challengers continues to churn. LG swapped places with Huawei, and is currently at number-three at 4.8 million units (with a strong showing from some of its newer 4G handsets and its lower-cost smartphone range). Huawei’s 4.4 million, however, shows that it continues to press ahead, as does fellow Chinese handset maker ZTE, which rounds out the top-five:

gartner smartphone vendors q1 2013

Samsung, unsurprisingly, is also leading in the overall mobile category, which also counts sales of lower-end feature phones. Its share there is now 23.6%, topping 100 million units.

Just as Samsung is widening the gap against Apple in smartphones, it’s doing the same with Nokia in the overall rankings. The Finnish giant is still number-two but with a 14.8% share, a drop of 5 percentage points on last year.

mobile phones overall gartner q1 2013

Looking at mobile platform prominence in smartphones, Android’s current 74.4% market share is nothing short of astounding in terms of its increase, particularly considering that at this point there is no sign of it slowing down.

Gartner’s numbers, it should be noted, are some 10% higher than those from Kantar Worldpanel Comtech that were released at the end of April: a sign of the margin of error between different analysts’ estimates resulting from different counting methods. Here are yet more numbers from IDC, which claims that smartphones outshipped feature phones, and Canalys, which was also more bullish than Gartner on smartphone numbers at a 300 million estimate.

Back to Gartner: the 156 million units sold in the quarter is actually almost double what was sold in the same period a year ago. Android is without a doubt riding the very crest of the smartphone wave: Gartner points out that smartphones accounted for 49.3% of sales of mobile phones worldwide, up from 34.8% in Q1 of 2012, and 44% in the fourth quarter of 2012.

Apple continues to grow but at a slower pace, managing to increase its share by a “mere” 5 million. BlackBerry (still called RIM by Gartner: hello rebranding!) continues to drop, indicating that at least so far, its big BB10 attack has yet to bear significant fruit. Microsoft is showing a respectable doubling of growth to nearly 6 million units, but that is pretty tiny when you look back to Android and its 156 million. It shows that a significant amount of work remains to be done by Microsoft and partners like Nokia if it expects to get anywhere within spitting distance of Android, or even Apple.

Still, the cautionary tale of Symbian remains a sign of how fast a handset maker can fall from grace. It’s now at 0.3 percent of sales now that Nokia has discontinued its production of the once market-leading devices — although its share was falling fast even before that.

gartner q1 2013 smarthones

Gartner points out that Asia is currently the market driver for mobile phone sales worldwide, accounting for more than half of all sales, with China remaining the biggest single market.

“More than 226 million mobile phones were sold to end users in Asia/Pacific in the first quarter of 2013, which helped the region increase its share of global mobile phones to 53.1 per cent year-on-year,” writes Anshul Gupta, principal research analyst at Gartner. “In addition, China saw its mobile phone sales increase 7.5% in the first quarter of 2013, and its sales represented 25.7 per cent of global mobile phone sales, up nearly 2 percentage points year-on-year.”

Be the first to comment - What do you think?
Posted by Mario1 - 14/05/2013 at 5:00 pm

Categories: Application Servers, AS/400 Software, Computer Books, Computer Hardware, Computer Languages, Computer Software, Database, Ebooks, ERP, ERP applications, IDE, Information Technology, Linux Sofware, Operating Systems, PHP, Programming, Training, Uncategorized, Utilities, websites   Tags:

New CrunchU Computer Courses

CrunchU  Computer Courses

CrunchU is the result of a partnership between TechCrunch and Udemy which initially offer 30 computer courses including some courses from DeitelBuzz ! You can view the full list of courses at:


I have re-published it below the official TechCrunch CrunchU announcement.

  • Main Event Page

Crunch, Crunch, CrunchU: Course Registration Is Now Open


That crunching sound you hear is software eating the world, and TechCrunch is always looking for ways to pull a chair up to the feast. For example, we have CrunchBase for startup data and CrunchBoard for jobs, and once upon a time there was  CrunchPad, too. Not everything works out, but today with high hopes we are launching CrunchU, which is a collection of 30 online courses that we are offering to TechCrunch readers in partnership with Udemy, a San Francisco-based startup dedicated to “democratizing education by making top quality content from the world’s experts dramatically more affordable for anyone, anywhere.”

We like the sound of that, because we all have a lot more to learn, and keeping it real and affordable is what education should be all about. Our initial course line-up includes offerings from TechCrunch friends, like 500 Startups’ Dave McClure on “Raising Money for Startups” and Eric Ries on “The Lean Startup,” as well as experts Gagan Biyani on “Introduction to Growth Hacking” and Russ Fradin on “Startup Hiring.”

We have a certain bias for startups, no surprise, but there is lots of other brain candy in the course mix too, like starter courses on Android and iOS, Ruby and jQuery, as well as gamification, programming for non-programmers, SEO, and in case you just want to have fun, digital photography.

Our  plan is to introduce new courses each quarter, based on what we learn about TechCrunch readers’ likes and dislikes. We also have the option of creating courses on our own, with the help of Udemy’s awesome course-creation tools. If you have an idea for a course, or want to teach one yourself, learn more here.

So if you have a minute, check out the CrunchU course catalogue and find some educational itch you want to scratch. The tuition sting is teeny, but it will be automatically discounted 50% off from today until May 18.



For a limited time, DeitelBuzz offer big discounts on many of their LiveLessons computer courses. These discounts are for only the first 100 sold of each course. If you click the link and it’s not discounted, the discounts are gone for that course! For links, please visit:

==> Deitel LiveLessons Discounts

Be the first to comment - What do you think?
Posted by Mario1 - 09/05/2013 at 5:12 pm

Categories: Application Servers, AS/400 Software, Computer Books, Computer Hardware, Computer Languages, Computer Software, Database, Ebooks, ERP, ERP applications, IDE, Information Technology, Linux Sofware, Operating Systems, PHP, Programming, Training, Uncategorized, Utilities, websites   Tags:

The Desktop Linux – Is it Winning?

The Desktop Linux

Gnome 3 Snapshot

Gnome 3 Snapshot (Photo credit: Wikipedia)

Linux has always been strong about choice and offers a great variety of Linux desktops such as Gnome, KDE, Ubuntu Unity and many more.

There have been many discussions about replacing Windows with Linux and about toppling  Microsoft’s desktop monopoly, but Desktop Linux has never reached a widespread user base.

However I recently read an interesting article on the website about how a desktop revolution has already begun with mobile devices and applications. I have republished the article below for your convenience.

The Linux desktop is already the new normal

We’re so busy seeking release from Windows that we overlooked all the ways Linux had already freed us

By | InfoWorld

Follow @webmink

A debate is smoldering yet again in the Linux community as prominent figures debate whether it’s time to give up hope on the “year of the Linux desktop” ever coming or whether the advent of Android is actually its fulfillment. Problem is, it came and it’s been here a while, but we haven’t even noticed. We just didn’t know what it would look like.

I realize that statement flies in the face of conventional wisdom. Last year, Miguel de Icaza’s controversial post “What killed the Linux desktop” famously claimed that the opportunity for a Linux-based desktop to dominate the market has passed and is now an unachievable dream. He pointed to what he sees as a series of problems within the culture of Linux development.

At the heart of his argument is the idea that overly frequent updates led to a lack of compatibility, which in turn put off third-party developers. This is not to say he’s surrendered to Windows; he recently explained why he uses a Mac. Now that the world has seen the example of the Apple OS X App Store, products that struggle with compatibility issues feel like a big step backward, regardless of any great features.

Chromebook to the rescue
Meanwhile, Linus Torvalds has a different avenue for hope: Google’s Chromebook. This actually is a Linux desktop computer with only one application, the Chrome browser. The hardware itself is perfectly capable of running other Linux distributions — which is what Torvalds does — but out of the box, it’s running a stripped-down, single-function Linux system that’s easily maintained and secured centrally.

I’ve been using Chromebooks personally and for my business for the last six months, and I can state firmly it’s the Linux desktop I’ve been waiting for. I tried many other approaches, but found every other Linux desktop solution required too much effort to maintain. The Chromebooks (and one Chromebox) we have in the office deliver all the functions we need, without becoming the security nightmare you expect of Windows — and without the constant patronizing lock-in that’s manifesting itself on the Mac these days and without becoming the new hobby we’d expect from a raw Linux distro.

The reason it’s worked so well may surprise you. It works for me and my business because — wait for it — Linux has already won on the desktop.

The Linux desktop is called “the browser”

While we were all waiting for the open source community to topple Microsoft’s desktop monopoly by replacing the operating system, we missed the real revolution. There’s still plenty of money in both operating systems and in desktop apps, and Microsoft will be milking that legacy monopoly for a good while. It’s certainly been the target of competitive attention from open source software; indeed, the productivity suite now epitomized by LibreOffice has over its long history done an effective job in opening up that part of Microsoft’s monopoly.

But most enterprise expenditure doesn’t happen on the desktop. Maybe it’s software Stockholm Syndrome making us all love our captor, but the focus on desktop applications, coupled with the idealistic expectation that Windows will be displaced, has led many to overlook or even dismiss the category where Linux actually has taken over the desktop.

That’s in the browser. Think about it: When did a new process or service you wanted to use last come as a Windows application download? When it did, what actually was that application? An increasing number of desktop applications are just containers for HTML5 Web apps. The real powerhouse behind those apps is usually Linux, accessed over the Internet, along with other elements of the modern LAMP stack. In a very real sense, the applications many use daily for email, documents, presentations, and more are Linux desktop applications. A fanatical obsession with replacing Windows made for interesting discussion, but while that debate was happening, all the work on the desktop moved inside the browser window.

In turn, that desktop revolution has fueled — and been fueled by — Linux in portable devices. In that space, Linux is definitely winning globally, both by powering multiple device platforms such as Android and Kindle and by powering many of the applications found on those devices. Tools like PhoneGap allow the developer to take the same Linux-powered back end and use it for both desktop/browser apps and for device-specific apps. The result? Linux is everywhere, even on iOS.

It was natural to assume the wedge to displace Microsoft’s desktop monopoly would be something that did the same thing. Futurists have long made their predictions by describing the present wearing Spandex. When it comes along, the new reality often looks different from the future we expected. So we still have no flying cars, food still doesn’t come in pill form — and the Linux desktop is actually running in your browser.

The year of the Linux desktop came long ago and we missed it. We were expecting it to displace Windows; instead, it has displaced the Windows desktop application, powered the reinvention of the mobile market, and in the process done more for us all than the revolution we expected could ever have delivered.

This article, “The Linux desktop is already the new normal,” was originally published at Read more of the Open Sources blog and follow the latest developments in open source at For the latest business technology news, follow on




Enhanced by Zemanta

Be the first to comment - What do you think?
Posted by Mario1 - 07/05/2013 at 1:51 pm

Categories: Application Servers, AS/400 Software, Computer Books, Computer Hardware, Computer Languages, Computer Software, Database, Ebooks, ERP, ERP applications, IDE, Information Technology, Linux Sofware, Operating Systems, PHP, Programming, Training, Uncategorized, Utilities, websites   Tags:

CakePHP Rapid Development Framework



CakePHP (Photo credit: Wikipedia)

CakePHP is a PHP Rapid Development Framework framework that is modeled after Ruby on Rails. It makes building web applications simpler, faster and with less code. It features easy configuration, rapid prototyping with code generation and scaffolding, clean MVC conventions, and security measures against common web attack techniques.

I found an interesting article on and I have re-published it below for your convenience.

CakePHP Web Development: Discover the Advantages to Opt for the Development Program


Developed with the help of one of the most powerful web development programming languages PHP, Cake PHP web development has become a hot favorite web development program. Launched in 2005, it has become a highly sought after choice for developing shopping carts, websites, web applications and content management software systems too. If you have understood the advantages that this platform brings in you will definitely want to hire the services of a reputed company that will give you the desired outcome. A considerable amount of research of course would be a prerequisite in order to arrive at the final destination from which you will hire the service.

If we take a look at the kind of benefits that Cake PHP Web Development brings along, then probably this would be the most preferred option for many others too. Here are the benefits:

• Cake PHP follows the MVC Pattern. Data handling is supported through the model. Data rendering on the screen is supported through View and modification of data before interaction with the database (Model) is supported by the Controller. When such a pattern exists it becomes extremely easy to separate logic from presentation and this comes in very handy for large sites and applications. So, Cake PHP is completely driven by the MVC framework and a lot can be done when this is in place.

• One can create reusable codes that are helpful in many projects. So, the developer can easily extend with helpers, behaviors, components and plug-ins. The developer need not have to waste time in writing the code from the scratch.

• In CakePHP Web Development Services you have the entire thing divided into certain logical sections and these are completely governed by a specific controller.

• This Cake PHP is a favorite of the developers for it offers them great ease while testing and debugging any application. Location and correction of errors can be done easily without having to get into the details related to the code.

• Cake PHP web development makes database management absolutely easy with the help of the CRUD integration features. The basic database features are fully taken care and additional functionalities too are included to ensure better maintenance. There is built in validation feature that will save on a lot of time.

• When you are tackling Class, you will see that there are two directories in Cake PHP… Core and App directories. The developer can directly approach these directories, define the function for each and every class very easily.

• With the help of this web development framework, coders and programmers can very easily create an interface with database and active records. This forms the major link between the web application and the database.

• There is huge built in support for Cake PHP web development from PHP4 as well as PHP5.

Cake PHP is indeed one of those very useful frameworks that has been introduced to the world in recent times for coming up with rapid web applications with rich features and complete security. Having a thorough understanding of the same will be beneficial for the developers as well as the website owner so that they can tap the complete potential of the platform.

One of the leading Mobile Apps Development Company TechiesTown InfoTech based from India ready to serve Mobile Apps Development Services and also have experts team for OpenSource Web Development that gives quality work by team of professional Open Source developers.

Article Source:


If you want to learn more on the CakePHP Rapid Development Framework, I suggest you to considers some of the good books sold byt Amazon,

 Click here for the CakePHP books at Amazon UK

 Click here for the CakePHP books at Amazon US

 Click here for the CakePHP books at Amazon IT


Enhanced by Zemanta

Be the first to comment - What do you think?
Posted by Mario1 - 16/03/2013 at 2:20 pm

Categories: PHP   Tags:

The MVC Pattern and PHP

The MVC Pattern and PHP

I noticed a very interesting article published on the PHPMaster websiate about the MVC Pattern and PHP and I have re-published it below for your convenience.



The MVC Pattern and PHP, Part 1

The MVC Pattern and PHP


This entry is part of the series The MVC Pattern and PHP

The Model-View-Control (MVC) pattern, originally formulated in the late 1970s, is a software architecture pattern built on the basis of keeping the presentation of data separate from the methods that interact with the data. In theory, a well-developed MVC system should allow a front-end developer and a back-end developer to work on the same system without interfering, sharing, or editing files either party is working on.

Even though MVC was originally designed for personal computing, it has been adapted and is widely used by web developers due to its emphasis on separation of concerns, and thus indirectly, reusable code. The pattern encourages the development of modular systems, allowing developers to quickly update, add, or even remove functionality.

In this article, I will go the basic principles of MVC, a run through the definition of the pattern and a quick example of MVC in PHP. This is definitely a read for anyone who has never coding with MVC before or those wanting to brush up on previous MVC development skills.

Understanding MVC

The pattern’s title is a collation of its three core parts: Model, View, and Controller. A visual representation of a complete and correct MVC pattern looks like the following diagram:

MVC Process

The image shows the single flow layout of data, how it’s passed between each component, and finally how the relationship between each component works.


The Model is the name given to the permanent storage of the data used in the overall design. It must allow access for the data to be viewed, or collected and written to, and is the bridge between the View component and the Controller component in the overall pattern.

One important aspect of the Model is that it’s technically “blind” – by this I mean the model has no connection or knowledge of what happens to the data when it is passed to the View or Controller components. It neither calls nor seeks a response from the other parts; its sole purpose is to process data into its permanent storage or seek and prepare data to be passed along to the other parts.

The Model, however, cannot simply be summed up as a database, or a gateway to another system which handles the data process. The Model must act as a gatekeeper to the data itself, asking no questions but accepting all requests which comes its way. Often the most complex part of the MVC system, the Model component is also the pinnacle of the whole system since without it there isn’t a connection between the Controller and the View.


The View is where data, requested from the Model, is viewed and its final output is determined. Traditionally in web apps built using MVC, the View is the part of the system where the HTML is generated and displayed. The View also ignites reactions from the user, who then goes on to interact with the Controller. The basic example of this is a button generated by a View, which a user clicks and triggers an action in the Controller.

There are some misconceptions held about View components, particularly by web developers using the MVC pattern to build their application. For example, many mistake the View as having no connection whatsoever to the Model and that all of the data displayed by the View is passed from the Controller. In reality, this flow disregards the theory behind the MVC pattern completely. Fabio Cevasco’s article The CakePHP Framework: Your First Bite demonstrates this confused approach to MVC in the CakePHP framework, an example of the many non-traditional MVC PHP frameworks available:

“It is important to note that in order to correctly apply the MVC architecture, there must be no interaction between models and views: all the logic is handled by controllers“

Furthermore, the description of Views as a template file is inaccurate. However, as Tom Butler points out, this is not one person’s fault but a multitude of errors by a multitude of developers which result in developers learning MVC incorrectly. They then go on to educate others incorrectly. The View is really much more than just a template, however modern MVC inspired frameworks have bastardised the view almost to the point that no one really cares whether or not a framework actually adheres to the correct MVC pattern or not.

It’s also important to remember that the View part is never given data by the Controller. As I mentioned when discussing the Model, there is no direct relationship between the View and the Controller without the Model in between them.


The final component of the triad is the Controller. Its job is to handle data that the user inputs or submits, and update the Model accordingly. The Controller’s life blood is the user; without user interactions, the Controller has no purpose. It is the only part of the pattern the user should be interacting with.

The Controller can be summed up simply as a collector of information, which then passes it on to the Model to be organized for storage, and does not contain any logic other than that needed to collect the input. The Controller is also only connected to a single View and to a single Model, making it a one way data flow system, with handshakes and signoffs at each point of data exchange.

It’s important to remember the Controller is only given tasks to perform when the user interacts with the View first, and that each Controller function is a trigger, set off by the user’s interaction with the View. The most common mistake made by developers is confusing the Controller for a gateway, and ultimately assigning it functions and responsibilities that the View should have (this is normally a result of the same developer confusing the View component simply as a template). Additionally, it’s a common mistake to give the Controller functions that give it the sole responsibility of crunching, passing, and processing data from the Model to the View, whereas in the MVC pattern this relationship should be kept between the Model and the View.


It is possible to write a web application in PHP whose architecture is based on the MVC pattern. Let’s start with a bare bones example:

1 <?php
2 class Model
3 {
4     public $string;
6     public function __construct(){
7         $this->string = "MVC + PHP = Awesome!";
8     }
9 }
01 <?php
02 class View
03 {
04     private $model;
05     private $controller;
07     public function __construct($controller,$model) {
08         $this->controller = $controller;
09         $this->model = $model;
10     }
12     public function output(){
13         return "<p>" . $this->model->string . "</p>";
14     }
15 }
1 <?php
2 class Controller
3 {
4     private $model;
6     public function __construct($model) {
7         $this->model = $model;
8     }
9 }

We have our project started with some very basic classes for each part of the pattern. Now we need to set up the relationships between them:

1 <?php
2 $model = new Model();
3 $controller = new Controller($model);
4 $view = new View($controller, $model);
5 echo $view->output();

As you can see in the example above, we don’t have any Controller-specific functionality because we don’t have any user interactions defined with our application. The View holds all of the functionality as the example is purely for display purposes.

Let’s now expand the example to show how we would add functionality to the controller, thereby adding interactivity to the application:

01 <?php
02 class Model
03 {
04     public $string;
06     public function __construct(){
07         $this->string = “MVC + PHP = Awesome, click here!”;
08     }
10 }
01 <?php
02 class View
03 {
04     private $model;
05     private $controller;
07     public function __construct($controller,$model) {
08         $this->controller = $controller;
09         $this->model = $model;
10     }
12     public function output() {
13         return '<p><a href="mvc.php?action=clicked"' . $this->model->string . "</a></p>";
14     }
15 }
01 <?php
02 class Controller
03 {
04     private $model;
06     public function __construct($model){
07         $this->model = $model;
08     }
10     public function clicked() {
11         $this->model->string = “Updated Data, thanks to MVC and PHP!”
12     }
13 }

We’ve enhanced the application with some basic functionality. Setting up the relationship between our components now looks like this:

01 <?php
02 $model = new Model();
03 $controller = new Controller($model);
04 $view = new View($controller, $model);
06 if (isset($_GET['action']) && !empty($_GET['action'])) {
07     $controller->{$_GET['action']}();
08 }
10 echo $view->output();

Run the code and when you click on the link you’ll be able to see the string change its data.


We’ve covered the basic theory behind the MVC pattern and have produced a very basic MVC application, but we still have a long way to go before we get into any nitty-gritty functionality.

Next up in the series we’ll cover some of the choices you face when trying to create a true MVC application on the web in PHP. Stay tuned!

Callum Hopkins is a designer and front-end developer with over 6 years web experience and a Bachelors degree in Design for Digital Media. With knowledge in both design and development, he is able to influence both sides of the web building process. Callum has a love for complex coding functions and beautiful design. He runs his own personal blog at where he writes thought-provoking articles.

Visit Site

Be the first to comment - What do you think?
Posted by Mario1 - 13/03/2013 at 2:24 pm

Categories: PHP, Programming   Tags:

Next Page »