thank gawd it’s online #3

A little making of history from duckduckgo search engine.
http://www.gabrielweinberg.com/blog/2011/12/duckduckgo-used-to-run-out-of-my-basement.html

LinkedIn node.js performance tricks
http://engineering.linkedin.com/nodejs/blazing-fast-nodejs-10-performance-tips-linkedin-mobile

introducing PHP’s composer
http://nelm.io/blog/2011/12/composer-part-1-what-why/

promoting PHP’s composer
http://nelm.io/blog/2011/12/composer-part-2-impact/

node.js and PHP
http://bergie.iki.fi/blog/dnode-make_php_and_node-js_talk_to_each_other/

JavaScript API for zooming
http://lab.hakim.se/zoom-js/

Gadget: little printer
http://vimeo.com/32796535

jQuery Animations with automatic CSS3 transitions when possible
http://playground.benbarnett.net/jquery-animate-enhanced/

Batman.js is a framework for building rich web applications with CoffeeScript or JavaScript.
http://batmanjs.org/

some HTTP-Status Cats
http://www.flickr.com/photos/girliemac/6508022985/in/set-72157628409467125

Expeditions in the Cloud

Caution: Scepticism ahead!

So i’d like to share some of my experiences in the cloud since i am still trying to figure out if it its worth for me or if i am better suited with an VPS.
Maybe somebody feels like feedbackin.

I tried PHPFog for PHP and no.de by joyent for node.js.
First i have to admit: yes i only tried the free models and of course they are limited and because its free you cant expect to get it all, right?
Yes and thats true.

With PHPFog i set up an app based on symfony 1.4. After some inital problems due to some bugs on PHPFog side, i got it running.
I really like to mention the kind and immediate chat support by PHPFog. It really made me feel like dealin with humans and not only machines. Big up!
By then everything felt really smooth with git deploy, configurations, mysql setup etc.
But i had to shut down the app again, because there are restrictions to PHP which killed the app like disabling “file_get_contents for remote URLS”, probably only in the free model. But that killed it for me at that point.
So read this carefully before going to cloud: http://docs.phpfog.com/index.php/features/article/shared_vs_dedicated
I guess with dedicated hosting you get more power, sure.

Continue reading “Expeditions in the Cloud”

Silex and the HTTP_CACHE

The HTTP_CACHE resp. the reverse proxy of Symfony is a pretty cool thing.
And as it is build-in Silex it can speed up the already fast micro framework massivly,
wich is good for me, as i am mainly workin with Silex right now.

To enable it you have to register it first like its shown in the docs:

 $app->register(new Silex\Provider\HttpCacheServiceProvider(), array(
 'http_cache.cache_dir' => __DIR__.'/cache/',
 ));

Also provide the writable cache dir.
Continue reading “Silex and the HTTP_CACHE”

Enable Twig-Extensions in Silex

UPDATE
Please have look here for a updated version.


Note: its about Twig-extensions not about the former “Silex Twig Extension”, this now called TwigServiceProvider.

First fetch the Twig-extensions code and put them in your vendor dir:

git submodule add git://github.com/fabpot/Twig-extensions.git vendor/Twig-extensions/fabpot
git submodule init
git submodule update

Then register the autoloader by using registerPrefixes:

$app['autoloader']->registerPrefixes(array(
    'Twig_Extensions_'  => array(__DIR__.'/../vendor/Twig-extensions/fabpot/lib')));

Continue reading “Enable Twig-Extensions in Silex”

Sending invalid Unicode via socket.io

Well you can try to, but it will end up almost probably in an disconnect which is caused by the browser.
As i have learned here.

Given you have a string which contains invalid unicode like:


This will trouble the browser and the socket connection.

If you prepare your json with PHP and  json_encode the Unicode will be escaped to some strings like these:

\ud83d\ude31\ud83d\ude31\ud83d\ude04\ud83d\ude04\ud83d\udc9c\ud83d\udc9c\ud83d\udc4a

But on clientside it will still result in invalid Unicode.
Continue reading “Sending invalid Unicode via socket.io”

OXID eshop routing

If you wonder about routing in OXID eshops or how the URL structure is here are some hints:

OXIDs MVC, well thats some kind of different naming and you have to get used to:

the M (Model) you find in /core
the V you find in in your templates in /out, there the main view is called the same as your controller, given the controller has a render() method.
/views/details => /out/[templatename]/page/details.tpl
the C (Controller) you find in /views (what? oyerywell!)
like /views/details.php

The routing itself is like so:
Continue reading “OXID eshop routing”

Silex Starter Stubs

There are several preconfigured Silex Apps on github. They let you start your Silex project in no time, which is good.
This makes Silex an even more simple rabbithole into the symfony2 world.

I started one myself and had a close look on the others, so i thought i share this.
They all differ a bit so you must choose what fits your needs the best.

They all follow some kind of “best practise” structure, some more, some less.

Continue reading “Silex Starter Stubs”

tell redis db to not persist

redis persists its memory data in snapshot style in every n seconds depending on your configuration.
read more here.
perhaps you would like to use redis as a pure in-memory db, like f.e. memchache.
you can tell redis to not persist and save some bits&miliseconds.
this could be the case when using redis as a f.e. realtime queue, you wont need persistence,
because you could say: nobody needs is newsfeed from the that day before the machine crashed ;)

alright, do so by:
Continue reading “tell redis db to not persist”

Silex, Twig und HTML5 BoilerPlate

Alright, there is a bundle for H5BP for symfony2 and there is Assetic, you can probably use both with Silex and thats just fine.
But in case you want to keep your Silex project lean (since its micro) you can use Twig and H5BP only and build / deploy your app from the outside.

With a little tuning of the H5BP build, of course / unfortunatly. (Ok thats the caveat)

So i have a structure like so:
web/
(this is the webroot, here is js/css/images, all that asset stuff and the index, here we use the recommended H5BP stuff’n’structure)
views/
(this is outside of webroot and here are all of the *.twig)
Continue reading “Silex, Twig und HTML5 BoilerPlate”