Two.js

two.js

Two.js is a two-dimensional drawing api geared towards modern web browsers. It is renderer agnostic enabling the same api to draw in multiple contexts: svg, canvas, and webgl.

Two.js is deeply inspired by flat motion graphics. As a result, two.js aims to make the creation and animation of flat shapes easier and more concise. At the time of this writing two.js unfortunately does not support text or images.

// Make an instance of two and place it on the page.
var elem = document.getElementById('draw-shapes').children[0];
var params = { width: 285, height: 200 };
var two = new Two(params).appendTo(elem);

// two has convenience methods to create shapes.
var circle = two.makeCircle(72, 100, 50);
var rect = two.makeRectangle(213, 100, 100, 100);

// The object returned has many stylable properties:
circle.fill = '#FF8000';
circle.stroke = 'orangered'; // Accepts all valid css color
circle.linewidth = 5;

rect.fill = 'rgb(0, 200, 255)';
rect.opacity = 0.75;
rect.noStroke()

// Don't forget to tell two to render everything
// to the screen
two.update();

Looks promising!

Two.js →

Geocoder — The almost missing Geocoder PHP 5.3 library.

Uses FreeGeoIp, HostIp, IpInfoDB, Yahoo! PlaceFinder, Google Maps, Bing Maps, OpenStreetMaps, Geoip, and CloudMade geocoding services to geocode addresses and IP Addresses.

<?php

// Create an adapter
$adapter  = new \Geocoder\HttpAdapter\BuzzHttpAdapter();

// Create a Geocoder object and pass it your adapter
$geocoder = new \Geocoder\Geocoder();

// Then, register all providers your want
$geocoder->registerProviders(array(
    new \Geocoder\Provider\YahooProvider(
        $adapter, '', $locale
    ),
    new \Geocoder\Provider\IpInfoDbProvider(
        $adapter, ''
    ),
    new \Geocoder\Provider\HostIpProvider($adapter),

    // your provider here
));

// Use it!
$result = $geocoder->geocode('Eiffel Tower'); // 48.8582, 2.2945
// Or
$result = $geocoder->geocode('88.188.221.14'); // Orleans, France

Geocoder →