Sunday, April 01, 2012

Weekly roundup: announcing a new startup

Have you ever read a blog post, Wikipedia or TVTropes article and get spoiled about how Darth Vader is actually Luke's father? (Sorry)
Even with streaming and a network accessible from all over the world, watching movies and TV series at our own pace is increasingly difficult as even the most innocent-looking web pages can contain news about Bruce Willis's death, about how that name was his sled and that Harvey Dent becomes Two-Face.
My new startup, SpoilerAlert SRL, will produce browser extensions that read the text embedded in HTML pages and cut away possible spoilers or blank the lines containing them. I'm sure many people will pay for this service!
Possible follow-ups to the initial service are filtering spoilers also from YouTube videos (not showing clips from too-new Doctor Who episodes) and allowing the user to specify an in-universe chronological point like Already watched Episode V or Already watched Victory of the Daleks; in the latter case only revelations from newer episodes of the series will be filtered.
How we will do this is an highly-guarded patent-pending technology for parsing natural language and store web pages in the Time Vortex. If you want to get an invitation for the service...

P.S. These are my articles published this week on DZone.
Including PHP libraries via Composer
Bullets for legacy code
The return of Vim
Lean Tools: Value Stream Mapping

Sunday, March 25, 2012

Weekly roundup: basic testing

Here are my "slides" for the (Italian) talk I held at PHP.TO.START this week. It has been nice to meet so passionate colleagues in Turin, not only from the PHP field but also in the startup arena. If I can't find you and you see this, comment here or ping me on Twitter so that I can follow you.
The talk's topic is the evolution of testing in PHP - from manual to automatic and from a scope oriented to correctness to an aid in design.


Here are my original articles published this week on DZone.
Lean Tools: Seeing Waste is the first of a series of articles on Lean tools in their software development version (Lean is a movement that goes beyond the software field, of course.)
PHP objects in MongoDB with Doctrine contains code for working with the Doctrine Object-Document Mapper and for integrating it with the ORM.
TravisCI Intro and PHP Example shows you how to setup an open source project to build itself on Travis CI (for free).
Sometimes Python is magic because of its __methods.

Sunday, March 18, 2012

Biweekly roundup: PHP.TO.START sold out

Apparently the Turin event taking place this week is sold out. If you will be present, feel free to come up to me for geek chatting or OO/PHP/testing questions (which is the topic I will talk about.)

In the last two weeks I have published several new articles on DZone, also about other pieces of the web:
A Zend Framework 2 tryout is my review of the Zend Framework 2 beta releases, along with a list of what you don't have to learn again for now.
Asynchronous and negative testing is about testing that something does not happen in a running system.
All the mouse events in JavaScript is a collection of all and only the DOM events that are generated by a mouse, divided into classic and HTML5 ones.
Everything you need to know about Python exceptions is about the try..except..else..finally construct and the exception hierarchy of Python.
All about JMS messages topic's is a must-know for working with ActiveMQ and similar message-based middleware - I know middleware sounds like a buzzword, but I assure you it has a specific meaning.
CSS Bits: The Mouse Cursor is about customizing the mouse cursor appearance (interestingly, without any JavaScript code).
Bootstrap: rapid development and the complexity of a framework is my review of Bootstrap, a front end framework shipping some standard CSS solutions and UI widgets.
Test-Driven Emergent Design vs. Analysis is an essay about the dichotomy between writing code with the support of tests and exploring new classes and objects via other fluffy means like paper and boards. You know, that old thing called thinking.

Sunday, March 04, 2012

Weekly roundup: PHP Goes Mobile rescheduled

PHP Goes Mobile has been rescheduled for April 13th in Milan; I will present my short talk on PHPUnit_Selenium usage on an Android device. See you there!

Here are my articles published this week on DZone.
Audio in HTML 5: state of the art explains how to use <audio> and Audio JavaScript objects to play music or sounds in a web page.
TDD in Python in 5 minutes is a dive into the unittest Python module.
Running JavaScript inside PHP code - yes, you read that right. Highly experimental.
Gradient descent in Octave is a walkthrough in a staple machine learning technique.

Sunday, February 26, 2012

Biweekly roundup: PHP.TO.START

The Turin PHP User Group has been growing in the last months and have now organized a free one-day conference on March 21st. I will be a speaker with a basic talk on automated testing of PHP applications.
I'm getting to know better the diffusion of PHP in Milan and Turin - cities where historically there was not much attention for this ecosystem. The message is clear: investing on PHP as one of the platforms you specialize in your career is not a dead end.

Here are my articles published in the last two weeks on DZone. The Practical PHP Refactoring series has ended, but I will always have space for PHP related articles.
Practical PHP Refactoring: Separate Domain from Presentation is one of the most necessary large-scale refactorings to perform on legacy code.
Bottle: a lightweight Python framework explains the first steps for developing a Python web application with Bottle.
Practical PHP Refactoring: Extract Hierarchy explains how to segregate the responsibilities of a God class.
Spam filtering with a Naive Bayes Classifier in R is a full-featured example of R usage for data mining.
Erlang's actor model explains one of the ways this language blows your mind.
The 7 habits of highly effective developers is an essay on a fluffy topic - which personal habits are beneficial to our job, solving problems?
Writing clean code in PHP 5.4 is a photograph of the new features of PHP and how they may be abused to write spaghetti code.
Our experience with Domain Events is a summary of how we have come to use Events as an additional Domain Model pattern in DDD.

Monday, February 13, 2012

Biweekly roundup: distributed systems

Fowler's first law of distributed objects:
Don't distributed your objects.
Indeed after six months submerged into academical distributed projects, I can too say that designing interfaces for local objects and for remote one is a different task: there is no trasparency. For more, google A note on distributed computing.

Here are my original articles published in the last two weeks on DZone.
Practical PHP Refactoring: Replace Inheritance with Delegation explains how to refactor towards composition, since inheritance is highly overused in PHP and many modern languages.
My use case for checked exceptions sees Java checked exceptions as a way to enforce contracts that involve distributed computation.
Practical PHP Refactoring: Replace Delegation with Inheritance is the previous refactoring when applied in the opposite direction.
An Introduction to the R Language is a tutorial for starting to use R, a platform for statistical computing similar to Matlab and Octave.
Practical PHP Refactoring: Tease Apart Inheritance is about separating code into multiple hierarchies to avoid a single, large and incomprehensible one.
What WSGI is: a Python standard for web applications and frameworks to conform to.
Practical PHP Refactoring: Convert Procedural Design to Objects is a large scale refactoring involving, as a first step, moving away from the record/procedure pattern,
The Decorator pattern, or its cousin, in JavaScript is my take on implementing a Decorator with prototype chaining; in JavaScript we can even add methods with this technique, which wouldn't be feasible with the classic pattern.

Thursday, February 02, 2012

PHP Goes Mobile postponed

The PHP Goes Mobile event scheduled for tomorrow in Milan has been postponed due to the exceptional weather, which has slowed down and in some cases blocked transportations. The next date is not fixed yet.

Featured post

A map metaphor for architectural diagrams

It is a (two-dimension) representation of a pipe. The map is not the territory , but in software engineering terms they are models of it....

Popular posts