Chirag Chamoli

designer, developer, entrepreneur and a greater fool.




Autós hasonlat kimaxxolva.

thx emberszabasu!



Mar 28, 2014

How the Linux OS Was Announced to the World in 1991 [pic] by methodshop.com on Flickr.

Mar 4, 2014

"Figure out the absolute least you need to do to implement the idea, do just that, and then polish the hell out of the experience."

– John Gruber’s overriding guideline for iPhone UI design

Mar 1, 2014

Go ahead, grab a logo... ∞

Go ahead, grab a logo:

Feb 15, 2014

Yelp style guide ∞

The styleguide is a resource for designers, product managers, and developers, providing a common language around Yelp’s UI patterns. We use it to maintain modular front-end code and visual consistency across the web app.

Feb 13, 2014

Firewalling Time to Think

I like this snippet of accidentally-captured conversation between Barack Obama and British MP, David Cameron. Cameron asks Obama if he will be taking any time off for a vacation this summer:

Mr. Cameron: Do you have a break at all? Mr. Obama: I have not. I am going to take a week in August. But I agree with you that somebody, somebody who had worked in the White House who — not Clinton himself, but somebody who had been close to the process — said that should we be successful, that actually the most important thing you need to do is to have big chunks of time during the day when all you’re doing is thinking. And the biggest mistake that a lot of these folks make is just feeling as if you have to be … Mr. Cameron: These guys just chalk your diary up. Mr. Obama: Right. … In 15 minute increments and … Mr. Cameron: We call it the dentist waiting room. You have to scrap that because you’ve got to have time.

This encourages and inspires me. If people as busy as these two guys (or Bill Gates, for that matter) can make time to rise above the noise, it’s hard to imagine why each of us wouldn’t want to occasionally unchalk our diary enough to try something similar.

  • via 42 folders
Feb 12, 2014

PHP is Awesome

Awesome PHP

A curated list of amazingly awesome PHP libraries, resources and shiny things.

Package Management

Libraries for package and dependency management.

Package Management Related

Libraries related to package management.

  • Satis - A static Composer repository generator.
  • Composition - A library to check your Composer environment at runtime.
  • Poser - A Composer class aliasing library.
  • Version - A parsing and comparison library for semantic versioning.
  • NameSpacer - A library to convert from underscores to namespaces.
  • Patch Installer - A library to install patches using Composer.


Web development frameworks.

  • Symfony2 - A framework comprised of individual components.
  • Knp RAD Bundle - A Rapid Application Development (RAD) bundle for Symfony 2.
  • Zend Framework 2 - Another framework comprised of individual components.
  • Laravel 4 - A simple PHP framework.
  • Lithium - Another framework of components.
  • Aura PHP - A framework of independent components.
  • Phalcon - A framework implemented as a C extension.

Framework Components

Web development frameworks’ standalone components.

Micro Frameworks

Micro frameworks and routers.

Content Management Systems

Modern content management systems.

  • Bolt - A simple CMS built with Silex and Twig.


Libraries and tools for templating and lexing.

  • Twig - A comprehensive templating language.
  • Twig Cache Extension - A template fragment cache library for Twig.
  • Mustache - A PHP implementation of the Mustache template language.
  • Phly Mustache - Another PHP implementation of the Mustache template language.
  • MtHaml - A PHP implementation of the HAML template language.
  • Plates - A native PHP templating library.
  • Lex - A lightweight template parser.
  • Sculpin - A library that converts Markdown and Twig into static HTML.


Libraries for working with HTTP and scraping websites.

  • Guzzle - A HTTP client.
  • Buzz - Another HTTP client.
  • Requests - A simple HTTP library.
  • Goutte - A simple web scraper.
  • PHP VCR - A library for recording and replaying HTTP requests.


Libraries for parsing URLs.


Libraries for sending and parsing email.


Libraries for file manipulation and MIME type detection.


Libraries for working with streams.

  • Streamer - A simple object-orientated stream wrapper library.

Dependency Injection

Libraries that implement the dependency injection design pattern.

  • Pimple - A tiny dependency injection container.
  • Auryn - Another dependency injection container.
  • Orno Di - Another flexible dependency injection container.
  • PHP DI - A dependency injection implementation using annotations.
  • Acclimate - A common interface to dependency injection containers and service locators.


Libraries for manipulating images.


Libraries for testing codebases and generating test data.

  • PHPUnit - A unit testing framework.
  • ParaTest - A parallel testing library for PHPUnit.
  • PHPSpec - A design by specification unit testing library.
  • Codeception - A full stack testing framework.
  • Atoum - A simple testing library.
  • Mockery - A mock object library for testing.
  • Phake - Another mock object library for testing.
  • Parody - Yet another mock object library for testing.
  • Sismo - A continuous testing server library.
  • Faker - A fake data generator library.
  • Samsui - Another fake data generator library.
  • Alice - An expressive fixture generation library.
  • Behat - A behaviour driven development (BDD) testing framework.
  • Pho - Another behaviour driven development testing framework.
  • Mink - Web acceptance testing.
  • HTTP Mock - A library for mocking HTTP requests in unit tests.
  • VFS Stream - A virtual filesystem stream wrapper for testing.
  • Locust - A modern load test library written in Python.
  • Travis CI - A continuous integration platform.
  • PHPCI - An open source continuous integration platform for PHP.


Libraries for generating project documentation.

  • Sami - An API documentation generator.
  • APIGen - Another API documentation generator.
  • PHP Documentor 2 - A documentation generator.


Libraries for generating secure random numbers, encrypting data and scanning for vulnerabilities.

  • HTML Purifier - A standards compliant HTML filter.
  • RandomLib - A library for generating random numbers and strings.
  • True Random - A library that generates random numbers using www.random.org.
  • SecurityMultiTool - A PHP security library.
  • Password Compat - A compatibility library for the new PHP 5.5 password functions.
  • PHPAss - A portable password hashing framework.
  • PHP Password Lib - A library for generating and validating passwords.
  • Password Policy - A password policy library for PHP and JavaScript.
  • PHPSecLib - A pure PHP secure communications library.
  • TCrypto - A simple encrypted key-value storage library.
  • PHP IDS - A structured PHP security layer.
  • PHP SSH - An experimental object orientated SSH wrapper library.
  • IniScan - A tool that scans PHP INI files for security.
  • SensioLabs Security Check - A web tool to check your Composer dependecies for security advisories.
  • Scrutinizer - A web tool to scrutinise PHP code.
  • Zed - An integrated penetration testing tool for web applications.

Code Analysis

Libraries and tools for analysing, parsing and manipulation codebases.

  • PHP Parser - A PHP parser written in PHP.
  • PHPPHP - A PHP VM implementation in PHP.
  • PHPSandbox - A PHP sandbox environment.
  • Dissect - A set of tools for lexical and syntactical analysis.
  • PHP Mess Detector - A library that scans code for bugs, sub-optimal code, unused parameters and more.
  • PHP Code Sniffer - A library that detects PHP, CSS and JS coding standard violations.
  • PHPCPD - A library that detects copied and pasted code.
  • PHP Analyser - A library for analysing PHP code to find bugs and errors.
  • PHP CS Fixer - A coding standard fixer library.
  • PHP Manipulator - A library for analysing and modifying PHP Source Code.
  • PHP Refactoring Browser - A command line utility for refactoring PHP code.
  • UBench - A simple micro benchmark library.
  • Athletic - An annotation based benchmark framework.
  • Mondrian - A code analysis tool using Graph Theory.
  • PHP Debug Bar - A debugging toolbar.
  • PHP Console - A web debugging console.
  • PHPDBG - An interactive PHP debugger.

Build Tools

Project build and automation tools.

  • Go - A simple PHP build tool.
  • Bob - A simple project automation tool.
  • Phake - A rake PHP clone library.
  • Box - A utility to build PHAR files.

Asset Management

Tools for managing, compressing and minifying website assets.

  • Assetic - An asset manager pipeline library.
  • Pipe - Another asset manager pipeline library.
  • Munee - An asset optimiser library.
  • JShrink - A JavaScript minifier library.


Libraries for geocoding addresses and working with latitudes and longitudes.

Date and Time

Libraries for working with dates and times.


Libraries that are event-driven or implement non-blocking event loops.


Libraries for generating and working with log files.


Libraries and applications for taking payments and building online e-commerce stores.

  • OmniPay - A framework agnostic multi-gateway payment processing library.
  • Payum - A payment abstraction library.
  • Sylius - An open source e-commerce solution.
  • Thelia - Another open source e-commerce solution.
  • Money - A PHP implementation of Fowler’s money pattern.


Libraries and software for working with PDF files.

  • Snappy - A PDF and image generation library.
  • WKHTMLToPDF - A tool to convert HTML to PDF.

ORM and Datamapping

Libraries that implement object-relational mapping or datamapping techniques.


Libraries for working with “NoSQL” backends.

  • MongoQB - A MongoDB query builder library.
  • Monga - A MongoDB abstraction library.
  • Predis - A feature complete Redis library.


Libraries for working with event and task queues.


Libraries and software for indexing and performing search queries on data.

Command Line

Libraries for building command line utilities.

  • Boris - A tiny PHP REPL.
  • PsySh - Another PHP REPL.
  • GetOpt - A command line opt parser.
  • OptParse - Another command line opt parser.
  • Commando - Another simple command line opt parser.
  • GetOptionKit - Another command line opt parser.
  • Cron Expression - A library to calculate cron run dates.
  • ShellWrap - A simple command line wrapper library.
  • Hoa Console - Another command line library.
  • Shunt - A library for running commands in parallel on multiple remote machines.


Libraries for implementing authentications schemes.

  • Sentry - A framework agnostic authentication & authorisation library.
  • Sentry Social - A library for social network authentication.
  • OPAuth - A multi-provider authentication framework.
  • OAuth2 - An OAuth2 authentication server, resource server and client library.
  • PHP oAuthLib - Another OAuth library.
  • TwitterOAuth - A Twitter OAuth library.
  • Hawk - A Hawk HTTP authentication library.


Libraries for working with markup.

Text and Numbers

Libraries for parsing and manipulating text and numbers.

  • ANSI to HTML5 - An ANSI to HTML5 convertor library.
  • Patchwork UTF-8 - A portable library for working with UTF-8 strings.
  • Hoa String - Another UTF-8 string library.
  • Stringy - A string manipulation library with multibyte support.
  • Numbers PHP - A library for working with numbers.
  • Math - A library for working with large numbers.
  • Color Jizz - A library for manipulating and converting colours.
  • UUID - A library for generating UUIDs.
  • Slugify - A library to convert strings to slugs.
  • Urlify - A PHP port of Django’s URLify.js.
  • Text - A text manipulation library.
  • PHP Units of Measure - A library for converting between units of measure.
  • PHP Conversion - Another library for converting between units of measure.
  • SQL Formatter - A library for formatting SQL statements.
  • Byte - A simple byte conversion library.

Filtering and Validation

Libraries for filtering and validating data.


Libraries and web tools for developing REST-ful APIs.

  • Apigility - An API builder built with Zend Framework 2.
  • Hateoas - A HATEOAS REST web service library.
  • HAL - A Hypertext Application Language (HAL) builder library.
  • Negotiation - A content negotiation library.


Libraries for caching data.

  • Cache - A caching library (part of Doctrine).
  • Stash - Another library for caching.

Data Structure and Storage

Libraries that implement data structure or storage techniques.


Libraries for working with notification software.

  • Nod - A notification library (e.g., Growl).
  • Notificato - A library for handling push notifications.
  • Notification Pusher - A standalone library for device push notifications.
  • Notificator - A lightweight notification library.

Third Party APIs

Libraries for accessing third party APIs.


Useful libraries or tools that don’t fit in the categories above.

  • Spork - A process forking library.
  • JSON Lint - A JSON lint utility.
  • JSONPCallbackValidator - A library for validating JSONP callbacks.
  • KnpMenu - A menu library.
  • Pagerfanta - A pagination library.
  • Ruler - A simple stateless production rules engine.
  • LiteCQRS - A CQRS (Command Query Responsibility Separation) library.
  • Sslurp - A library that makes dealing with SSL suck less.
  • PHP Option An option type library.
  • Metrics - A simple metrics API library.
  • Sabre VObject - A library for parsing VCard and iCalendar objects.
  • Annotations - An annotations library (part of Doctrine).
  • Whoops - A pretty error handling library.
  • Finite - A simple PHP finite state machine.
  • LadyBug - A dumper library.
  • Plum - A deployer library.
  • Procrastinator - A library for running time consuming tasks.
  • Compose - A function composition library.
  • SuperClosure - A library that allows Closures to be serialized.
  • Jumper - A remote service executor library.
  • Underscore - A PHP port of the Underscore JS library.
  • PHP PassBook - A PHP library for iOS PassBook.
  • PHP Expression - A PHP expression language.
  • RMT - A library for versioning and releasing software.
  • Wise - A configuration manager.
  • Opengraph - An opengraph library.
  • Essence - A library for extracting web media.
  • Embera - An Oembed consumer library.
  • Graphviz - A Graphviz library.
  • Monad PHP - A simple Monad library.
  • Flux - A regular expression building library.
  • Patchwork - A library for redefining userland functions.
  • Galapagos - Evolutionary language transformation.
  • Design Patterns PHP - A repository of software patterns implemented in PHP.
  • PHPCR - A PHP port of the Java Content Repository (JCR).
  • Functional PHP - A functional programming library.
  • ClassPreloader - A library for optimising autoloading.
  • Lib Country - A library for country and subdivision data.
  • Lib Accessor - A library for simplifying accessors.
  • PHPStack - A TCP/IP stack proof of concept written in PHP.
  • Nmap - A PHP wrapper around Nmap.
  • Code Mover - A library for moving code.
  • Country List - A list of all countries with names and ISO 3166-1 codes.

Development Software

Software for creating a development environment.

  • HomeBrew - A package manager for OSX.
  • HomeBrew PHP - A PHP tap for HomeBrew.
  • PHP OSX - A PHP installer for OSX.
  • HipHop PHP - A Virtual Machine, Runtime and JIT for PHP by Facebook.
  • Vagrant - A portable development environment utility.
  • Ansible - A radically simple orchestration framework.
  • Puppet - A server automation framework and application.
  • Chef - A systems integration framework.
  • SaltStack - An infrastructure management tool.
  • PuPHPet - A web tool for building PHP development virtual machines.
  • PHP Brew - A PHP version manager and installer.
  • PHP Env - Another PHP version manager.
  • PHP Switch - Another version manager.
  • PHP Build - Another PHP version installer.
  • CodeKit - A general web development tool.
  • HTTPie - A command line alternative to cURL written in Python.
  • Backup - A server backup tool written in Ruby.

Web Tools

Web-based tools.

  • 3V4L - An online PHP shell.
  • DBV - A database version control application.
  • PHP Queue - An application for managing queueing backends.


Various resources, such as books, websites and articles, for improving your PHP development skills and knowledge.


Useful web and PHP-related websites and newsletters.


Fantastic books and e-books.

Web Reading

General web-development-related reading materials.

PHP Reading

PHP-releated reading materials.

PHP Internals Reading

Reading materials related to the PHP internals or performance.

Dec 17, 2013

The Story of the Original iPhone’s Development

"Today’s NY Times delivers a great story of the development of the iPhone by Apple. It focuses on the events during the leadup to Steve Jobs taking the stage with shockingly buggy prototypes and pulling off the show that is now history. ‘Only about a hundred iPhones even existed, all of them of varying quality. Some had noticeable gaps between the screen and the plastic edge; others had scuff marks on the screen. And the software that ran the phone was full of bugs. The iPhone could play a section of a song or a video, but it couldn’t play an entire clip reliably without crashing. It worked fine if you sent an e-mail and then surfed the Web. If you did those things in reverse, however, it might not. Hours of trial and error had helped the iPhone team develop what engineers called “the golden path,” a specific set of tasks, performed in a specific way and order, that made the phone look as if it worked.’ One of the big problems was the phone’s connectivity. The man in charge of the iPhone’s radios, Andy Grignon, had to deal with Jobs’s anger when rehearsals didn’t go well. Grignon said, ‘Very rarely did I see him become completely unglued — it happened, but mostly he just looked at you and very directly said in a very loud and stern voice, “You are [expletive] up my company,” or, “If we fail, it will be because of you.” He was just very intense. And you would always feel an inch tall.’”

The whole story is a great testament to engineers, in that (a) it’s incredible they could have made the demo work that well, and (b) Apple actually shipped the thing described in that story just six months later - and it was basically pretty functional and solid.

Even for you Apple Haters out there that have zero interest in reading something like this - well anyone who is an engineer should read it, and if you can’t bring yourself to do that at least read the very last paragraph which is fun for everyone.

- via /..

Oct 7, 2013

It’s not piracy, it’s you

Why do we pirate music, software and television and movies? It’s not all about the money, mostly. There is/was a french project Pourquoi je pirate where random strangers were asked why do they pirate, I present you few of my fav responses. Please see that these responses are a direct translation from french.

  • Why not?
  • For episodes of series as they are released, without advertisement.
  • because it is more environmentally friendly than creating a CD, DVD, BLU-RAY
  • Because the music I listen to are not for sale in my country
  • I always try my clothes before buying.
  • Because Megaupload closed (revenge!)
  • To form an opinion on music, film, series. To find out what a friend talking, critical in any magazine. To get your hands on a totally obscure foreign film. To find musicians who do not fit into the mold enough to be known by the radio or TV (which I do not use elsewhere, this mold does not interest me). To build me an artistic culture without spending fortune would be necessary according to the law, if
  • Because without pirates, some artists will drown in the sea
  • Because having more than 1 TB of movies that makes me cool by not looking half.
  • Because cinema is too expensive, you have to run after work for an hour, it’s not comfortable, it’s ugly as a place, the sound is too loud, you have to pay pubs and trailers weak (but I still spent an ebook in the public domain to read a book on my phone for those times). Because ultimately, the movie sucked, I would have done better to download warm home. This is not valid for small arthouse theaters.
  • Because a budget is not infinitely expandable and even if I agree to give 20 to 30 € / month (which makes us all the same € 360 / year) to buy an album, I’m not willing to pay I look at everything and anything I listen to. The question is, ignoring buyer or pirate grown? Personally, I have made my choice.
  • Because intellectual property is an absurd notion.
People are very selective about, the content they want to consume and current distribution channels are unfortunately broken. I mean Movie halls, DVD releases etc are all broken. A recent experiment by an standup comedian Louis C.K. sold tickets on his website. He said the following, btw, he sold within 40 minutes.
By selling the tickets exclusively on my site, I’ve cut the ticket charges way down and absorbed them into the ticket price. To buy a ticket, you join NOTHING. Just use your credit card and buy the damn thing. opt in to the email list if you want, and you’ll only get emails from me.Also, you’ll see that if you try to sell the ticket anywhere for anything above the original price, we have the right to cancel your ticket (and refund your money) this is something I intend to enforce. There are some other rules you may find annoying but they are meant to prevent someone who has no intention of seeing the show from buying the ticket and just flipping it for twice the price from a thousand miles away.
The consumer wants control. They want freedom. Give people what they want, when they want it, in the form they want it in, at a reasonable price, and they’ll more likely pay for it rather than steal it.
Oct 4, 2013


Post-it notes are more powerful tool than most people realize because they:

  • Rearrange easily (no copying)
  • Support text and diagrams
  • Are concurrently editable (as a group)
  • Convert virtually useless walls into huge work surfaces
The idea that really hit it home for me is The KJ Method (aka Affinity Diagramming aka Snow Carding).
Oct 2, 2013

Copyright © 2013