Android 4.4 KitKat is out

Yesterday Android 4.4 KitKat was officially out and so is the ASOP for android-4.4_r1 (KRT16M) and so is the factory images for “hammerhead” for Nexus 5 (GSM/LTE) and so is the next API 19 SDK update.

Also there is the new JBQ:  Ed Heyl

here is link for android builders:!topic/android-building/JVLaFRoJxFk

here is the changelog:

factory images and insecure boot image + deodex system can be found here:

detailed list of new features:

added razorg_4.3.1-JLS36I into the stock collection

for some time there has been an update for the new  Nexus 7 LTE and i just forgot to upload the images as usual.


here it is with deodexed and insecure boot and adb:

New version of smali/baksmali and new download location

For a few weeks we have version 2.0 of smali/baksmali out of beta and ready for use. There is also a new download location for those.

Details about version 2 can be found here:

Downloads are here:

Eclipse or IntelliJ

I started to use intelliJ since the release of Anrdroid Studio, not much however.

Recently I stared to check again this time more detailed and in-depth.

I also wanted to check what others think about this and probably having longer experience than I had.

There is a nice summary(

  • Plugins: Eclipse marketplace offers 1,276 plugins, and the Intellij Plugin Repository offers 727 plugins. This difference is not to be taken lightly, since plugins for new technologies will usually be developed mainly for Eclipse (e.g. Android, Drools, Activiti, etc). Moreover, Eclipse is easier to extend. When working on a specific technology most chances are that if a plugin exists, it will be an Eclipse plugin.
  • Multiple projects: This is an Eclipse winner for sure. It has the ability to open multiple projects in the same window, giving the coder control over dependencies and relations. Intellij has an option to open one project with multiple modules, but we found it to be cumbersome, and in times a little buggy. If you are going to use a lot of projects together and hate to switch windows, Eclipse is your choice.
  • Multiple languages: We have stated that we will only examine the Intellij Community Edition that supports Java, Groovy and Scala. However, if you plan to create a Python server, combined with Ajax & Html, joint with a java web server, or any other exotic language combinations, than Eclipse is your choice.
  • Code completion & inspection: While Eclipse has the ability to add plugins such as checkstyle, this one definitely goes for Intellij. The default code completion and assistance in Intellij is faster and better. If you are a rookie developer, Intellij can improve your code.
  • Usability: Intellij user experience is much easier to grasp. The learning curve in Intellij is by far faster. It seems using Intellij makes developing easier and more natural. Dropdowns, code completion, quick view, project wizards, etc, are all possible both in Eclipse and Intellij, but the experience in Intellij is much more satisfying.
  • Performance: The more plugins are installed on the IDE, the more heavy it is for your computer. However, saying that, Eclipse handles very large projects faster. Moreover, both of the IDE’s seems to be RAM junkies. Projects usually open faster in Eclipse, as Intellij indexes the entire project on startup, but while working on an existing project, Intellij works smoother. For example we have a huge SOAP project, which is impossible to work on with Intellij, so some of us even learn Eclipse just for that.
  • Repository integration: Both of the IDE’s have SVN\GIT\etc plugins. No doubt Intellij’s plugin is more reliable, has better GUI and easier to use.
  • GUI builder: We found that the built in Intellij GUI builder is more comfortable, and as mentioned above, usability wise its easier to learn, and more enjoyable to develop.

Well I have exactly the same opinion:

  • IntelliJ seems cooler and easy to use
  • The user experience overall in IntelliJ is better.
  • Repository integration is more stable on IntelliJ (but who does that from the IDE, shell rullezz 🙂
  • Eclipse can handle big and more projects much more nicely
  • Eclipse quite more plug-ins and more updates also (also if you don’t like smth u can change it yourself)
  • Eclipse if the total winner when talking about integrating many different projects on many different languages
  • Eclipse is the absolute winner when comes to plug-in and RCP development

So finally my decision is I would use Eclipse overall and IntelliJ for single android projects.

Something more for the ones using Gradle (from


Gradle Eclipse support is developed by the SpringSource STS team. You can either use it via STS or install it separately. The Gradle Eclipse plugin provides the best IDE integration so far. It allows you to import Gradle projects into Eclipse. The information from the Gradle build script is used to configure your project in Eclipse. The import wizard is pretty smart. You can do partial imports of multi-project builds. You can also choose different naming patterns for sub-projects. You can even define Gradle tasks that should be run before and after an import/refresh. Additionally the Gradle plugin provides a runner for executing Gradle builds. The Gradle plugin also detects Gradle build scripts and automatically enables Groovy editor support for those files. That gives you syntax highlighting, syntax check and auto formatting.

Of course you can also use the Eclipse plugin for Gradle to generate the Eclipse metadata.


Jetbrains has added support for Gradle with IDEA 11. You can import a Gradle project like you can import a Maven one. There is much more to come. New versions of the Gradle plugin will be released independently of IDEA.

Of course you can also use the IDEA plugin for Gradle to generate IDEA metadata.

Hope this helps to some of you in situation like me 🙂

Using Laravel with Resource Controllers and Method Filters

Using filters on routes in routes.php is as simple as:

Route::get('/something/{smth}', array('before' => 'auth', function($smth) {
     return "There is something called {$smth} ";

When using controllers filters may be specified like this:

Route::get('profile', array('before' => 'auth',
            'uses' => 'UserController@showProfile'));

However if you used to use Resource controllers like this:

Route::resource('something', 'SmthController');

Then an option is to specify filters from within your controller like this:

public function __construct()
    $this->beforeFilter('auth', array('only' =>
                    array('store', 'update', 'destroy')));

This however will not be so transparent to someone not knowing your code, so another good option is to declare a group Route in routes.php and put all secure routes there probably handled by different controllers and methods:

// secure routes
Route::group(array('before' => 'auth'), function()

    Route::resource('something', 'SmthController');

    Route::get('smthspecial', 'SmthController@get_smth_special');
    Route::any('search/(:all?)', 'SearchSmth@index');


    Route::any('edit_profile', 'profile@edit');
    Route::get('(:any)', 'profile@view');


PHP REST API Frameworks

What is the best PHP REST API Framework?

There are plenty of different projects out there which suits different needs.

Here is a list of some most popular and actively developed PHP REST API frameworks.

Note some may be not really RESTful.


The Epiphany framework is fast, easy, clean and RESTful. The framework does not do a lot of magic under the hood. It is, by design, very simple and very powerful.

The documentation provides a few conventions that we believe lead to well written code but you’re free to use any style you’d like. The framework never dictates how you should write or structure your application.

Fat Free

A powerful yet easy-to-use PHP micro-framework designed to help you build dynamic and robust web applications – fast!

  • Super lightweight code base with just ~55kb
  • Full-featured toolkit
  • Easy to learn, use and extend
  • Fast and clean template engine
  • Unit testing toolkit
  • Database-managed sessions
  • Markdown-to-HTML converter
  • Atom/RSS feed reader
  • Image processor
  • Geodata handler
  • On-the-fly Javascript/CSS compressor
  • OpenID (consumer)
  • Custom logger
  • Basket/Shopping cart
  • Pingback server/consumer
  • Unicode-aware string functions
  • SMTP over SSL/TLS
  • Tools for communicating with other servers
  • Data Validation
  • and more Plugins from the F3-Community


Flight is a fast, simple, extensible framework for PHP. Flight enables you to quickly and easily build RESTful web applications.


Frapi is a  high-level PHP REST API framework that powers web apps, mobiles services and legacy systems, enabling a focus on business logic and not the presentation layer.
FRAPI handles multiple media types, response codes and generating API documentation. It was originally built by echolibre to support the needs of their client’s web apps, and now it’s been open-sourced.


Guzzle takes the pain out of sending HTTP requests and the redundancy out of creating web service clients. It’s a framework that includes the tools needed to create a robust web service client, including: Service descriptions for defining the inputs and outputs of an API, resource iterators for traversing paginated resources, batching for sending a large number of requests as efficiently as possible.

  • All the power of cURL with a simple interface.
  • Persistent connections and parallel requests.
  • Streams request and response bodies.
  • Service descriptions for quickly building clients.
  • Powered by the Symfony2 EventDispatcher.
  • Use all of the code or only specific components.
  • Plugins for caching, logging, OAuth, mocks, and more.
  • Includes a custom node.js webserver to test your clients.


An elegant HMVC PHP5 framework that provides a rich set of components for building web applications.

  • Many common components are included: translation tools, database access, code profiling, encryption, validation, and more.
  • Use specific libraries and tools: extending existing components and adding new libraries is very easy.
  • Write commercial applications: uses the BSD license, so you can use and modify it for commercial purposes.
  • A very fast framework: benchmarking a framework is hard and rarely reflects the real world, but Kohana is very efficient and carefully optimized for real world usage.
  • Good debugging and profiling tools: simple and effective tools help identify and solve performance issues quickly.
  • Know what the framework is doing: very well commented code and a simple routing structure makes it easy to understand what is happening.
  • Work with objects and classes: an OOP framework that is extremely DRY. Everything is built using strict PHP 5 classes and objects.
  • Write your own code: there are no code generators and endless configuration files, so setting up is fast and easy.
  • Community support: a very active community forum and IRC channel means that most questions are answered very quickly.


Laravel is a clean and classy framework for PHP web development. Freeing you from spaghetti code, Laravel helps you create wonderful applications using simple, expressive syntax. Development should be a creative experience that you enjoy, not something that is painful. A well written documentation is a big plus.

Advantages over other frameworks:

  • Bundles
  • The Eloquent ORM
  • Application Logic
  • Reverse Routing
  • Restful Controllers
  • Class Auto Loading
  • View Composer
  • The Inversion of Control (IoC) container
  • Migrations
  • Unit-Testing
  • Automatic Pagination


You should enjoy PHP development. That’s why Recess exists. Recess is a RESTful PHP framework designed to give you a delightful development experience.

  • Tools included for every developer
  • Declarative PHP with annotations
  • Stays out of your way, not in it
  • Loosely coupled Model-View-Controller
  • Create RESTful APIs with Ease
  • D.R.Y. in philosophy & practice
  • Caching-oriented architecture
  • Open source under MIT license


A RESTful API server framework that is written in PHP that aids your mobile / web / desktop applications. A framework, but with a difference – Restler is all here to bend and mend to your needs. Turn your classes and its methods into an easily usable and better Web citizen with Restler.

  • Writing Server is made easy and light with just 3 PHP files
  • Simplicity through writing object oriented PHP like
  • Public methods are automatically mapped to a URL
  • Customization options and plugin architecture
  • Supporting for different formats like json, xml, yaml, amf, plist and custom formats
  • Support for different authentication schemes allowing to add your own auth plugins


Slim is a lightweight PHP micro framework for simple yet powerful web applications and APIs.

  • Powerful router
    • Standard and custom HTTP methods
    • Route parameters with wildcards and conditions
    • Route redirect, halt, and pass
    • Route middleware
  • Template rendering with custom views
  • Flash messages
  • Secure cookies with AES-256 encryption
  • HTTP caching
  • Logging with custom log writers
  • Error handling and debugging
  • Middleware and hook architecture
  • Simple configuration

Symfony2: FOSRestBundle

This bundle provides various tools to rapidly develop RESTful API’s & applications with Symfony2. Features include:

  • A View layer to enable output and format agnostic Controllers
  • A custom route loader to generate url’s following REST conventions
  • Accept header format negotiation including handling for custom mime types
  • RESTful decoding of HTTP request body and Accept headers
  • Exception controller for sending appropriate HTTP status codes

Symfony2: Silex

Silex is a PHP microframework for PHP 5.3. It is built on the shoulders of Symfony2 and Pimple and also inspired by sinatra.

A microframework provides the guts for building simple single-file apps. Silex aims to be:

  • Concise: Silex exposes an intuitive and concise API that is fun to use.
  • Extensible: Silex has an extension system based around the Pimple micro service-container that makes it even easier to tie in third party libraries.
  • Testable: Silex uses Symfony2′s HttpKernel which abstracts request and response making it very easy to test apps & the framework itself.
  • Respects the HTTP specification and encourages its proper use.


A resource focused PHP RESTful API library where everything useful is a resource located by URLs.

  • URI annotations
  • Content negotiation
  • Method conditions
  • Mount points

Wave Framework

A compact PHP micro-framework built loosely on model-view-control (MVC) architecture and factory method design pattern. It is made for web services, websites, info-systems and is built around a native API architecture, caching and smart image and resource management. Wave is a framework that does not include optional libraries with a very small footprint, lightweight and speed in mind.

Wave comes by default with a view controller and a gateway intended for website functionality with clean URLs that also incorporates a front-end JavaScript controller.

  • Modern API-centric framework for PHP versions 5.3 and above
  • Secure API requests with hash validation, token and key-based authentication
  • Dynamically loaded Hierarchical MVC objects through Factory pattern
  • API returns XML, CSV, JSON, HTML, native PHP and other data formats
  • Compressed data output with Deflate and Gzip
  • Input and output data is fully UTF-8
  • PDO-specific database controller for general-use database connections
  • Index gateway and Handlers for all types of HTTP requests
  • Caching system with tagging support for all types of dynamic and static requests
  • View and URL Controllers that support multiple languages and clean URL’s
  • Users and permissions control
  • jQuery JavaScript framework supported
  • On-demand dynamic image resizer and editor
  • On-demand resource compression, unifying and minifying
  • Automatic sitemap.xml and robots.txt generation
  • Automatically generated API documentation
  • API wrapper classes that make browser and server to server communication easy
  • 256bit Rijndael encrypted data transmission
  • API Observers for creating event-specific listeners
  • Installation-specific MVC class and resource overrides
  • Custom on-demand session handling
  • Request limiter that can block HTTP requests under certain conditions
  • Request logger that can be used for detailed performance grading of HTTP requests
  • Debugging, backup, update and filesystem maintenance tools
  • Compatibility script that tests support for server setup
  • Supports Apache and Nginx servers in Linux and Windows environments
  • Test Suite for API Testing
  • Filesystem caching, database cache, APC and Memcache supported
  • 100+ pages of detailed documentation and tutorials
  • Licensed under GNU Lesser General Public License Version 3


Yii is a high-performance PHP framework best for developing Web 2.0 applications. It comes with rich features: MVC, DAO/ActiveRecord, I18N/L10N, caching, authentication and role-based access control, scaffolding, testing, etc. It can reduce your development time significantly.

Zend: Zend_Rest_Server

Zend Framework 2 is an open source framework for developing web applications and services using PHP 5.3+. Zend Framework 2 uses 100% object-oriented code and utilises most of the new features of PHP 5.3, namely namespaces, late static binding, lambda functions and closures…

Get new spelling engine for Eclipse or Aptana

So first you need a nice spelling engine:

The update link is:

Dictionaries can be found at:
more info for dictionaries:

NOTE: This is only for text editors. If you need spell check on php or other editors use eSpell plugin:

Simple php xml-rpc client to wordpress

Quick example how to get categories:

        $client = new IXR_Client('');

        $USER = 'admin';
        $PASS = 'mypassword';

        if (!$client->query('wp.getCategories','', $USER,$PASS))
            echo('Error occured during category request.' . $client->getErrorCode().":".$client->getErrorMessage());  
        $cats = $client->getResponse();

            echo 'Categories:<br /><hr />';
            foreach($cats as $_cat) echo $_cat['categoryName']."<br />";


 adding a new post

        $client = new IXR_Client('');

        $USER = 'admin';
        $PASS = 'mypassword';

        $content['title'] = 'Test title '.mt_rand();
        $content['categories'] = array("NewCategory","Nothing");
        $content['description'] = '<p>Lorem ipsum dolor sit amet</p>';
        $content['custom_fields'] = array( array('key' => 'my_custom_fied','value'=>'yes') );
        $content['mt_keywords'] = array('foo','bar');

        if (!$client->query('metaWeblog.newPost','', $USER,$PASS, $content, true))
            die( 'Error while creating a new post' . $client->getErrorCode() ." : ". $client->getErrorMessage());  
        $ID =  $client->getResponse();

            echo 'Post published with ID:#'.$ID;


XML-RPC Api specs:

Full list of method calls as declared in the code: Continue reading