How to read books on programming more effectively?

The majority of newbies and even some experts in software programming often ask themselves a question: how to read a book on programming? They want to save time and get more effect from reading.
What do you think? Which of the following tips would be more useful?
• To read one chapter, and only after that to study a set of examples and task solutions.
• To read a chapter and a set of examples at the same time.
• To read a chapter / book and then review examples only visually, inventing own analogues of described problems.

We asked Oxagile programmers what do they think about these questions and got the following answers:
• I try to go read the chapter, type examples (I think that mechanical typing is also beneficial for me =), then I try to invent my own tasks for the given topic.
• Traveling by subway I saw bearded guy who was reading the textbook on C + +, desperately commenting tasks in his notebook. I like this approach to the effective reading, but sometimes it looks like fanaticism =).
• I start my reading from different parts of the book at the same time =). And in such a way my new book can be full of multicolored bookmarks even at the first day.

The way of reading depends on your way of thinking, so you can choose your own variant of effective reading. Good luck!

PHP 5.3: welcome to release party in Munich

Today we continue our analysis of the most significant changes applied to the new PHP version.

Changing magic methods

Before the introduction of PHP 5.3, these methods could be marked not only as public but also as private, protected, static ones, etc. Starting with the 5.3 these methods (mentioned below) cannot be static and must be public only:

* __get ()
* __set ()
* __isset ()
* __unset ()
* __call ()

Ministry of Health warns

PHP has a list of functions that were marked for removal. Most of them are not common (PHP developers use them not very often), but nevertheless, you should check your code (they won’t work in the new version). These functions are:

* Call_user_method ()
* Call_user_method_array ()
* Define_syslog_variables ()
* Ereg ()
* Ereg_replace ()
* Eregi ()
* Eregi_replace ()
* Set_magic_quotes_runtime () / magic_quotes_runtime ()
* Session_register ()
* Session_unregister ()
* Session_is_registered ()
* Set_socket_blocking ()
* Split ()
* Spliti ()
* Sql_regcase ()

Moreover, some directives in PHP.INI suffer the same fate, now they will warn you (E_DEPRECATED) if you try to activate them:

* Define_syslog_variables
* Register_globals
* Register_long_arrays
* Safe_mode
* Magic_quotes_gpc
* Magic_quotes_runtime
* Magic_quotes_sybase

Surprises

In PHP 5.0, the method “is_a ()” was described as inadvisable (manuals recommended to use “instanceof”), but in spite of this fact “is_a ()” was not removed from the language. Furthermore now it works without E_DEPRECATED-warnings.

The following words were reserved:

* GOTO
* NAMESPACE

It is very unlikely that they were included in your code, however, it would be better for you to scan the code. These words cannot be used as function names, class names, etc.

Say hello to the new version of PHP! (Migrating to PHP 5.3)

We sure that some software specialists who develop PHP applications have already downloaded and started testing the new features of PHP 5.3. No doubt, this version can be considered as the major change in language over the past 7 years. But most of the developers are not interested in new features, which can be used for their future developments; first of all they worry about changes that can affect already written applications.

What was updated:

Good news for PHP developers who used to write code according to the current trends, your application will be affected only by a few changes. But those programmers, whose code was aimed at earlier versions of this language, should be so lucky! :) So, in this post and the next one we are going to describe some key points that deserve your attention (we hope you will find some useful tips here, especially if you are going to migrate from PHP 5.2.x to PHP 5.3.x).

Of course this list of updated features is not a complete one, more extensive information you’ll find in PHP 5.3 changelog.

More work with arrays:

Array functions in the previous PHP versions could work with arrays taking them as arguments, so you could indicate an array or an object as an argument. But you can’t do it in 5.3, many of array functions now can accept only arrays. If you want to get object properties using any of the options below, you will need to convert the object into array:

* Natsort ()
* Natcasesort ()
* Usort ()
* Uasort ()
* Uksort ()
* Array_flip ()
* Array_unique ()

…to be continued

How to take advantage of open source software during the economic crisis

JoomlaToday costs of new IT products development can be quite comparable with profits. The economic crisis has an impact upon corporate budgets, making software at reasonable prices more and more popular. And there is nothing out of the way! A lot of managers responsible for new IT-projects consider customized open source software as favorable decision that allows to develop more with limited budgets.

While vendors increase license fees, software developers specializing in open source software install and customization offer their customers independence and flexibility. This year open-source usage and adoption is on peak again, the same situation was in 2001-2002 during the previous economic decline.
Taking as an example the most popular open source CMS for website design and development like Joomla, Drupal, Wordpress and Magento we see that these free software products help to save costs giving new technologies, innovative web 2.0 design and other great solutions.

Open source CMS offers numerous advantages and possibilities. Whereas software companies that use their own software for web development slow down innovations, thousands of independent open source developers improve their projects almost every day. Moreover open code is a key for legal and simple CMS installation and full customization, beginning from some little modifications and ending by the development of new complicated modules. It means that free full packaged software products can be used not only for standardized projects, but also for exclusive design and non-typical web resources.