How To Be A Programmer by Robert L Read

Recently, my colleague Yannis Rizos, tweeted me about a book. Its title was somehow offensive and didn’t look quite interesting at first.

But once i started browsing it, i catch some really good points and decided to start from the beginning.

Written by Robert L Read, it’s a free essay, ~100 pages long.

It is listing all the borrows and challenges a programmer will face and must pass in order to become a programmer.

Starts with the most essential skill of a programmer, debugging. How to debug and some of the most trivial bugs you will eventually find in your code.

It goes on with more skills like motivation, evolution, how to stress test, be a team player and communicate effectively with every type of people involved in this industry.

It is divided in 3 chapters, Beginner, Intermediate and Advanced and every chapter contains a few paragraphs for every concept.

I was really amazed by this essay and i would surely recommended to every beginner, junior, mid-senior professional programmer. I guess senior would already know these stuffs.

What are you favorite recent reads?


Valiation : The most awesome validation engine ever created for PHP

The past few weeks, you would find Validation at Github’s PHP Trending projects.

Validation is a very flexible, fully customizable, loaded with tone of validators, engine that you can use on your PHP projects right away.

Here is a great list why this library it’s actually awesome.

From Reddit:

  • The chain is not a simple chain (it is not just linear), it is a fluent builder for a composite structure. You can write almost any validation rule for any data structure and group it in a single object:v::key(“name”, v::string()->length(1, 32)) ->key(“birth”, v::date(‘Y-m-d’)->minimumAge(18)) ->assert($someArrayWithData);
  • You can nest as many validators as you want.
  • Each validator is an instance that you can reuse (even for composing new, more complex instances).
  • Three kinds of validation reports (validate() returns true/false, check() stops on first error, assert() collect all errors).
  • Nested reports implement RecursiveIteratorIterator AND RecursiveTreeIterator (that’s where the ASCII tree report came from!)
  • A selector API for finding messages in complex nested reports (findMessages([“user.address.street.length”])).
  • Reports are only generated when needed (true/false validation doesn’t even touch the reporting system).
  • Really easy to extend (most rules have a single method).
  • Really easy to make inline rules:v::callback(function ($input) { return $input == 42; });
  • Logic operations on any validator:v::allOf(v::numeric(), v::hexa(), v::min(1)); // numeric, hexadecimal and at least 1 v::oneOf(v::nullValue(), v::numeric()); // null or numeric
  • Integrates with ZF1, ZF2 and Symfony2 validators if needed. Dependency is optional.
  • A full concrete API (not relying on magic methods or chains) that can be built using dependency injection.
  • Straightforward to use on unit tests instead of the PHPUnit assertion library.

Here i wrote a simple User Model class where we can make our validation:

Validation will throw an exception when it fail and you can inform your users.

Add configuration file to your PHP Projects

For a while now, i’ve been using Symfony’s YAML to add a configuration file on my PHP projects.

Today, i stumbled upon Vance Lucas’s PHPDotEnv which is a great PHP package that will transfer the contents of a .env file right inside your PHP’s $_ENV variable. Available through Composer too.

Easiest method to add configuration files to your PHP projects ever!

Bugsense και η… αμείλικτη αφοσίωση!

Bugsense και η… αμείλικτη αφοσίωση!

Η ελληνική start up σκηνή προσθέτει άλλο ενα βραβείο στο ενεργητικό της. Οι ιδρυτές της BugSense, εξηγούν σε απλά ελληνικά την πορεία τους μέχρι τώρα, την συνεργασία τους με τον αμερικανικό όμιλο Splunk, τους λόγους που τους εμποδίζουν να προχωρήσουν και να φτάσουν μέχρι και να κατακτήσουν την Αμερικάνικη αγορά αλλά και τους λογούς που η ελληνική νομοθεσία τους κρατάει κάτω. Αστείρευτες πηγές έμπνευσης…

Προσωπικά, αυτό που κράτησα είναι η φράση, του γνωστού “πειρατή” Steve Jobs:

Προσωπικά, προτιμώ να είμαι πειρατής, παρά να καταταγώ στο ναυτικό, όπως είπε κάποτε ο Steve Jobs.

Think different, λοιπόν και ένα μεγάλο `Εύγε!` στα παιδιά!

Here’s your chance to ask President Barosso

Here’s your chance to ask President Barosso

Google+ will host a hangout, main guest will be President of the European Comission José Manuel Barroso. Here’s your chance…

Is Europe really emerging from the financial crisis? What’s going to happen to Europe’s 5 million unemployed young people? Does the rise of euro-sceptic politics spell the end of the EU as we know it? Will Europe act on Syria?