This Week in Web – MongoDB, jQuery, Unladen Swallow

April 1st, 2011 / By logan / No comments

The Little MongoDB Book

Karl Seguin, creator of mongly, has released a free and open MongoDB ebook. The Little MongoDB Book is aimed at those new to MongoDB and covers the MongoDB API for reads, writes and updates as well as tips on getting the best performance and durability out of a MongoDB server. The book can be viewed on github or downloaded as a pdf.

Beginning jQuery With A Solid Foundation

Mike Gleason has written a brilliant article titled Beginning jQuery with a solid foundation. The article starts out what the Document Object Model is and how the HTTP protocol works. It then goes into detail explaining how jQuery itself is structured, and how the seemingly magical $() function is created (and how you can do it yourself in Javascript). If you learned jQuery without learning Javascript then I recommend you read this.

PHPThumb

PHP Thumb is a light-weight image manipulation library aimed at thumbnail generation. It features the ability to resize by width, height, and percentage, create custom crops, or square crops from the center, and rotate the image. You can also easily add custom functionality to the library through plugins. It also

NodeJS cURL Tutorial

March 28th, 2011 / By logan / No comments

NodeJS is a powerful evented Javascript platform running on top of Google’s V8 javascript engine. Over the last year the popularity of NodeJS has increased greatly, as shown by the number of discussions on programming forums such as Hacker News, Reddit and Stackoverflow. Despite this NodeJS is still young and it falls short to Python and Ruby when it comes to the number and range of libraries and modules available.

The Problem

I wanted to convert one of my web scraping applications I made in PHP to NodeJS. The application interacts with SOCKS4 and SOCKS5 proxies using PHP’s cURL bindings. Unfortunately there are no cURL bindings (or SOCKS protocol wrappers) written for NodeJS. NodeJS does come with an HTTP client module that can issue web requests, however it doesn’t support SOCKS proxies.

The Solution

Although there are no specific NodeJS bindings for cURL, we can still issue cURL requests via the command line interface. NodeJS comes with the child_process module which easily allows us to start processes and read their output. Doing so is fairly straight forward. We just need to import the exec method from the child_process module and call it. The first parameter is the command…

This Week in Web: PyCon, Django 1.3, Symfony2

March 25th, 2011 / By logan / No comments

Symfony2 API Browser, Cheatsheet

The official API browser for Symfony2 can now be accessed at api.symfony.com/2.0. There you can browse look through all namespaces, classes and methods in Symfony2 (documented by PHPdoc comments). The folks at elao.org have released a cheatsheet for using Doctrine2 with Symfony2. The cheatsheet contains field information, configuration parameters and examples of relations (ManyToMany, ManyToOne etc.). Download the cheatsheet here (available in many formats).

MEPP – Mac Nginx Percona PHP

MEPP ​​is a set of applications to provide a local web development environment independent of OS X, installs in minutes. MEPP ​​is a similar alternative to LAMP, WAMP or MAMP for OSX

MEPP use nginx as web server and Percona as database server. MEPP ​​is free software and has no relation with any company in charge of the applications you use, in which case each has its own license.

PyCon 2011 Videos Released

Most of the talks given at the recent PyCon were recorded and have now been uploaded onto BlipTV. Below are some of the most popular talks:

Titanium Mobile Android Development: Device Information

March 21st, 2011 / By logan / No comments

In this series of tutorials we use Appcelerator’s Titanium Mobile platform to create Android applications. This tutorial walks you through developing and packaging an application which shows information about the device the app is running on. Full source and packaged application is available on github.

This Week in Web – NowJS, Mongly, Symfony, gae-flask-html5

March 18th, 2011 / By logan / No comments

NowJS

NowJS is a new library for NodeJS that makes the creation of realtime web applications easy. NowJS library creates a namespace, now, which can be accessed by both client and server side code. This allows the developer to call server side functions from client side code, and client side functions from server side code. It currently supports all modern web browsers and is aiming to support older versions of Internet Explorer. The video below shows how to create a chatroom in 12 lines of code using NowJS.

Mongly

Mongly is an interactive learning tool for MongoDB. It gently walks you through the different queries, functions and operations available in MongoDB. If your a complete beginner to MongoDB then I suggest you use this tool as well as try.mongodb.org to learn it.

GAE Flask HTML5 Template

Zach Will has created a project on Github named gae-flask-html5. It is a skeleton Flask application that uses the html5-boilerplate as the default templates. You can get it up and running in a matter of seconds:

git clone https://github.com/zachwill/gae-flask-html5.git *app name here*
dev_appserver.py .

Dictionary Autocomplete

A Look at PHP 5.3 Frameworks – Symfony2

March 14th, 2011 / By logan / No comments

Ever since PHP5.3 was released we have seen several new frameworks pop up in the PHP community. In this series of articles we will look at and evaluate some of the next generation PHP frameworks. Today we look at Symfony2.

Overview

Symfony2 is a full stack web enterprise framework created by well known PHP guru Fabien Potencier. The framework itself is divided up into several different packages (Bundles) which are tied together with a Kernel object. Being a full stack framework Symfony2 offers almost everything you will need out of the box:

  • Model, View, Controller separation
  • Database management with Doctrine2
  • Templating with either straight PHP templates or Twig
  • Testing with a layer built upon PHPUnit
  • Emails with SwiftMailer
  • Custom form, validation, auth, event and caching systems.

One thing that distinguishes Symfony2 from other frameworks is that it relies heavily on Dependency Injection and as a result alot of configuration needs to take place. The standard of the Symfony2 is top notch, it is clearly set out, commented and tested. The full stack nature of Symfony2 is also a big strength. If you were to start a high upkeep project, you could be sure that in 5…

This Week in Web – Email Validation, jCanvasScript, Android Development, JS Keyboard Events

March 11th, 2011 / By logan / No comments

PHP isEmail Function

Over the last couple of weeks the issues regarding email validation have been popping up in various online programming communities. It has been pointed out that using PHP’s filter_var function with FILTER_VALIDATE_EMAIL doesn’t actually approve all email addresses that would otherwise be valid (specified in internet RFCs). Dominic Sayers has written an email validation function called isEmail which, according to the tests is 100% accurate. It is available in PHP and Java implementations.

jCanvasScript

jCanvasScript is a javascript library that enables easy manipulation of the canvas HTML element. It runs on all desktop and mobile platforms that support the canvas element. The following snippet shows how easy it is to create and manipulate a circle and rectangle.

<head>
        <script type="text/javascript" src="jCanvaScript.js"> </script>

        <script type="text/javascript">
        function simpleExample()
        {
            jc.start('canvas_1');
            jc.circle(100,100,50,'rgba(255,0,0,0.5)',1);
            jc.rect(150,40,50,60,1).rotate(30,'center');
            jc.start('canvas_1');
        }
        </script>
    <head>
    <body onload="simpleExample()">
        <canvas height="200" width="300" id="canvas_1"></canvas>
    </body>

Beginning Android Development for iOS Programmers

Clay Allsopp has written an extremely detailed series of tutorial-style blog posts detailing how he ported an iOS app to the Android platform. The application, Brocabularly, is a relatively simple CRUD (create, read, update, delete) dictionary-like application. The posts are aimed at people who…

Titanium Mobile Android Development: Soundboard App

March 7th, 2011 / By logan / No comments

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.

This Week in Web – WordPress, Convore, jFormer, WebGL

March 4th, 2011 / By logan / No comments

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,…

Titanium Mobile Android Development: First Application

February 28th, 2011 / By logan / 3 comments

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.