Here are the slides for my recent presentation at phpDay 2012, What they didn't tell you about object-oriented programming in PHP.
Here are also the links to the various articles I published in this period on DZone. I'm down to two articles a week for the foreseeable future.
The standard PHP setup
Selenium on Android
Hexagonal architecture in JavaScript
Lean tools: synchronization
Why everyone is talking about APIs
Lean tools: Set-Based Development
Testing PHP scripts
Software Metaphors
MongoDB and Java
Lean tools: Options thinking
What is global state?
Lean Tools: the Last Responsible Moment
PHP 5.4 by examples
A crash course for the MongoDB console
The surgery metaphor
Lean tools: Making decisions
A journey in web development, [computer] science, engineering:
getting to know what lies under the hood -- Giorgio Sironi
Sunday, May 27, 2012
Sunday, April 15, 2012
Biweekly roundup: Selenium and Android
At PHP Goes Mobile on Friday I held a short talk about using Selenium 2 (with the WebDriver API) for driving an android browser, either on a real device or an emulator. Here are the slides (only the title is in Italian).
Here are also my articles published in the last two weeks on DZone.
Finding wiring bugs is possible not only with end-to-end tests, but also by analyzing the wiring itself.
Lean tools: Feedback describes feedback as not only one of the basis of the Agile manifesto but also of Lean.
Commodities in the IT world analyzes today's trends of commoditized technologies and value-adding ones, comparing open and closed platforms (Amazon, Apple...).
2 years of Vim and PHP distilled contains the most important take-aways from my 2-year experience with this editor.
The Page Object pattern helps removing duplication and introducing abstraction into a test suite using browser-based tests.
Software versions, the necessary evil contains some thoughts on versions and necessity for software and libraries upgrade.
Lean tools: Iterations describes a common application of feedback.
What's in a name? That which we call a rose / by any other name would smell as sweet. Naming is commonly underrated in software engineering.
Here are also my articles published in the last two weeks on DZone.
Finding wiring bugs is possible not only with end-to-end tests, but also by analyzing the wiring itself.
Lean tools: Feedback describes feedback as not only one of the basis of the Agile manifesto but also of Lean.
Commodities in the IT world analyzes today's trends of commoditized technologies and value-adding ones, comparing open and closed platforms (Amazon, Apple...).
2 years of Vim and PHP distilled contains the most important take-aways from my 2-year experience with this editor.
The Page Object pattern helps removing duplication and introducing abstraction into a test suite using browser-based tests.
Software versions, the necessary evil contains some thoughts on versions and necessity for software and libraries upgrade.
Lean tools: Iterations describes a common application of feedback.
What's in a name? That which we call a rose / by any other name would smell as sweet. Naming is commonly underrated in software engineering.
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
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.
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.
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.
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.
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.
Subscribe to:
Posts (Atom)
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
-
Mathematics is a part of a programmer's life. Other than the basic concepts implemented in programming languages, there are particular t...
-
Download now Practical Php Testing , my ebook on testing php applications, is finally here as promised, in the first days of December. Ho...
-
A Repository is a Domain-Driven Design concept but it is also a standalone pattern. Repositories are an important part of the domain layer ...

