In this series of tutorials we use Appcelerator’s Titanium Mobile platform to create Android applications. This tutorial walks you through developing and packaging a soundboard application. Full source and packaged application is available on github.
WordPress 3.1 Released
WordPress 3.1, codenamed Reinhardt, has been released. This release focuses on making WordPress a more suitable platform for a content management system. It supports the creation of different post content types as well as the ability for the administrator to (more) easily import and export posts. The administator user interface has also been revamped. As usual you can update to the latest version through your WordPress administrator dashboard.
Convore
Convore is a website that allows groups of people to communicate in real time. It is best described as a cross between a traditional forum bulletin board system and IRC. Users can create public or private groups which act as a forums. Members of that group can then create and reply to threads in that group. Convore automatically tracks which threads and replies you have already seen and notifies you when a new post is made.
Programming groups on Convore:
jFormer
jFormer is an open source form management framework. The backend is written in PHP and frontend is handled by jQuery. After installing the framework you define your form in PHP, jFormer then takes care of client & server side validations,…
In this series of tutorials we use Appcelerator’s Titanium Mobile platform to create Android applications. This tutorial walks you through developing and packaging your first Titanium application. Full source and packaged application is available on github.
PHP Pango Extension
Michael Maclean has recently published a PHP wrapper for the Pango library. It depends on his Cairo PECL package as well as Pango. Once installed you can draw graphics with Cairo and text with Pango directly from PHP. The following code is taken from his announcement:
header("Content-Type: image/png");
/* Make a 300x300px image surface */
$s = new CairoImageSurface(CairoFormat::ARGB32, 300, 300);
$c = new CairoContext($s);
/* Set the background to white */
$c->setSourceRGB(1, 1, 1);
$c->paint();
/* Let's draw using black 'ink' */
$c->setSourceRGB(0, 0, 0);
/* Make a Pango layout, set the font, then set the layout size */
$l = new PangoLayout($c);
$desc = new PangoFontDescription("Bitstream Charter 28");
$l->setFontDescription($desc);
$l->setWidth(250 * PANGO_SCALE);
/* Here, we use Pango markup to make part of the text bold */
$l->setMarkup("Hello world! Here is a rather long paragraph which should get wrapped");
/* Draw the layout on the surface */
$l->showLayout($c);
/* Output the PNG to the browser */
$s->writeToPng("php://output");
Titanium Mobile 1.6 Released
Appcelerator have just announced the release of version 1.6.0 of their Titanium Mobile SDK. 1.6.0 includes many new features for the Android platform including additional Intents, Samsung Galaxy support and the…
In this series of tutorials we use Appcelerator’s Titanium Mobile platform to create Android applications. This tutorial goes over the installation and configuration of the Android SDK and Titanium Mobile on a Windows 7.
Podcast: Under PHP’s Hood
The folks over at iBuildings recently put up an mp3 version of Johannes Schlüter’s talk “Under PHP’s Hood”. It was recorded at the Dutch PHP Conference 2010. Schlüter describes how common PHP operations are actually executed in the Zend Engine and the performance impact each has. He covers:
- How your PHP script is run: compilation, opcodes, zend engine
- How objects and arrays are stored: hashtables, refcount
- include vs include_once vs require vs require_once
- Autoloading
- References (and why you shouldn’t use them in PHP5)
- Garbage collection in PHP 5.3+
Reuse your Javascript as jQuery Plugins
Christopher Haupt recently wrote a tutorial for the EngineYard blog titled Reuse your Javascript as jQuery Plugins. Haupt walks you through the process of converting an existing piece of Javascript code into a jQuery plugin. He explains how to structure your plugin so it works with jQuery’s method chaining as well as how to create a standalone plugin that would be called like:
$.pluginName('some', 'param');
Optimizing a Kohana Based Website
A question about increasing the speed and scalability of a Kohana powered website was recently asked on Stackoverflow. User Pascal Martin replied with an incredibly…
If you are new to using PHP and cURL please refer to the PHP cURL tutorial. It covers why you should using cURL (as opposed to file_get_contents) and goes over how to make cURL requests with a custom class.
This tutorial will cover how to use different types of proxies – SOCKS4, SOCKS5 and HTTP with cURL.
Basic cURL Request
We’ll start by creating a simple cURL script that requests the web page checkip.dyndns.org and displays the result on the screen. The website just displays our current IP address, this is useful when working with proxies. Below is our very basic cURL request.
$url = 'https://checkip.dyndns.org/';
$c = curl_init($url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($c);
echo '<pre>';
var_dump($result);
echo '</pre>';
curl_close($c);
As we can expect, the output will be your IP address.
202.183.56.21
Using Proxies with cURL
To use proxies with cURL we need to set 2 additional cURL options: CURLOPT_PROXYTYPE and CURLOPT_PROXY. CURLOPT_PROXYTYPE should be set to either CURLPROXY_SOCKS5 or CURLPROXY_SOCKS4, depending on the type of proxy you are using. CURLOPT_PROXY should be set to the IP address and port of the proxy you are using.
If you are using an HTTP proxy then you…
If you want to develop a blog from sctrach without using any CMS like WordPress or Drupal, then you’ve come at the right place! In this series, we will understand how to develop a blog using
the CakePHP framework. So, why CakePHP? CakePHP is a robust PHP Framework having an extensive community and excellent documentation. It’s based on the MVC pattern, which makes it really simple to use.
Moreover, you can add numerous functionalities to your web application or blog using this framework.
We would be covering the following topics in this series
- Installing and Configuring CakePHP
- Understanding MVC
- Creating a simple blog
- Adding advanced features to your blog – Understanding Models, Views, Controllers in Depth
- Understanding Helpers
- Ajaxifying comments, adding content summary and Gravatar to your blog
- Securing your blog
In this article, we’ll just take a look at installing and configuring CakePHP.
Download the latest version of CakePHP framework from CakePHP.org. Make sure to download the stable release and not the release candidate.
Unpack the contents of the Cake archive inside the “www” folder of wamp or mamp directory.You now have a folder in your document…
Interview with Matthew Weier O’Phinney
Kevin Schroeder, tech evangelist at Zend, recently interviewed Zend Framework lead Matthew Weier O’Phinney. The two talk about Weier O’Phinney’s history with Zend and experiences with maintaining and developing the Zend Framework. They then go on to talk about Zend Framework 2 and cover the design decisions made in ZF2 and the things learned from ZF1 that will be altered. I found the sections on namespaces and autoloading in ZF2 particularly interesting.
Javascript Libraries Deconstructed
JS Libs Deconstructed is a website which clearly sets out and explains and explains the differences between jQuery, Prototype and Mootools. The index page gives a summary of the advantages and disadvantages of each of the 3 frameworks. Clicking on the name of a framework sends you to a page where you can easily browser through the source code (organised by class and method) of the framework.

Why PHP Namespaces Matter
Zend Framework lead Matthew Weier O’Phinney has written an article discussing the use and implementation of namespaces in PHP. One of the key points that he emphasises is that namespaces are alot more readable than the old Zend_Style_Classes. An example of this would be the hypothetical…
CSS Overlay in Webkit
Guillermo Rauch has written a tutorial on how to implement a lightbox using pure CSS3. He gives reasons as to why using the CSS3 method is less buggier than the old javascript or “pure css” implementations and then demonstrates how to code a lightbox with animations.

Deploying Django Applications with nginx and uwsgi
Martin Rusev has written a tutorial describing how to deploy a Django web application using nginx and uwsgi. It covers compiling nginx, setting up upstart, creating the wsgi.py file for Django, installing uwsgi and configuring nginx to use uwsgi with Django. This is definitely worth reading and bookmarking if your new to Django deployments.
Hosted Cloud9
The Cloud9 team have started the private beta for the hosted version of the Cloud9 IDE. If you want to participate in the beta, create an account, and wait until your account is activated (it could be days/weeks). You can still download and host your own version of the software, but the hosted version allows you to:
- Run and debug NodeJS applications on their cloud infrastructure
- One click forking of GitHub projects
- Push and pull from and to GitHub
- Access your code
…