Invisible to the eye's Image
More about this blog
Latest Post
29 Mar 2010
Total Posts
87
Readers
1007
Liked
0
Disliked
0
Views-Per-Post
11.57
vote up
0
vote down

The TDD checklist (Red-Green-Refactor in detail)

I have written up a checklist to use for unit-level Test-Driven Development, to make sure I do not skip steps while writing code, at a very low level of the development process. Ideally I will soon internalize this process to the point that I would
Mar 29 2010 07:35 PM
vote up
0
vote down

Weekly roundup: March is ending

I just wanted to inform you about some content you may find interesting. This week I have published three new articles at php|architect: Google releases skipfish Impel, the Javascript ORM Ten Top PHP people to follow on Twitter Moreover, my post
tags: roundup
Mar 27 2010 05:00 PM
vote up
0
vote down

The rest of the NakedPhp walktrough

This post's title is a parody of The Rest of the Robots. In the previous post we have seen how to manipulate PHP objects directly, and calling methods on them, thanks to NakedPhp's user interface. Today we will see how to interact with the database,
tags: nakedphp
Mar 26 2010 03:42 PM
vote up
0
vote down

A NakedPhp walktrough

Today I'll present a walktrough in the NakedPhp example application, to show the direct manipulation of objects it provides, with features like calling methods and editing of Entity objects. The example application manages a Domain Model that contains
tags: nakedphp
Mar 25 2010 04:00 PM
vote up
0
vote down

PHP in Action review

PHP in Action is a hands-on PHP book written by Dagfinn Reiersol, Marcus Baked and, most notably, Chris Shiflett. PHP in Action is maybe the only PHP-specific books which bridges typical PHP topics, such as forms and database handling, to object-oriented
tags: review
Mar 24 2010 03:17 PM
vote up
0
vote down

Introducing NakedPhp 0.1

I dedicated a bit of my time to develop a port of the Naked Objects framework for Java, which I named NakedPhp. Essentially, the Naked Objects pattern is the automatic animation of an object-oriented Domain Model via the generation of the user interface
tags: doctrine
Mar 23 2010 05:47 PM
vote up
0
vote down

Contributing to open source projects

Amit has written from India asking how to start participating in open source projects. I am a software developer from India and recently came through your article on "How improved hardware changed programming". It was good reading it. I wanted to know
tags: basic
Mar 22 2010 03:59 PM
vote up
0
vote down

Weekly roundup: spring approaching

I've been a bit busy starting the work for my bachelor's degree thesis and my academic web project on Twitter analysis, but there are some new articles I'd like to show you. This week I have written two new posts on php|architect's website: Development
tags: php
Mar 20 2010 03:57 PM
vote up
0
vote down

Practical Php Patterns: State

This post is part of the Practical Php Pattern series. The pattern of today is the State one: its intent is allowing an object to change its behavior when its state change, while hiding the state-related informations. The main role in this pattern is
tags: oop
Mar 18 2010 05:36 PM
vote up
0
vote down

How improved hardware changed programming

This is a follow-up to the previous post, CPUs speed and technology innovations. As we have outlined in the previous post, the memory size and computing power available to the average programmer has increased thousands of times from the first years of
tags: hardware
Mar 17 2010 04:12 PM
vote up
0
vote down

CPUs speed and technology innovations

The number of transistors that can be placed inexpensively on an integrated circuit doubles approximately every two years. (Moore's law)This empirical law is primarily known for the increasing trend of processors speed, which is widely influenced by the
tags: hardware
Mar 16 2010 04:47 PM
vote up
0
vote down

Coffee and programming

A mathematician is a device for turning coffee into theorems. -- (attributed to) Paul ErdosCoffee is indeed an omnipresent drink in many different science fields - probably for its property of aiding concentration and focus over a short period of time.
Mar 15 2010 02:55 PM
vote up
0
vote down

Weekly roundup

This week I have published two new posts at php|architect: The Open Source Way Why TDD is based on testing first Also, my post Acceptance Test Driven Development has been republished at DZone.
tags: roundup
Mar 13 2010 05:07 PM
vote up
0
vote down

Standard Php Library and coupling

The Standard PHP Library is an object-oriented library, by default always included in the latest versions of php. Leveraging Spl in the right way is crucial to avoid compromising the design of an application and taking advantage of the most portable php
tags: oop
Mar 11 2010 10:52 PM
vote up
0
vote down

Acceptance Test-Driven Development

I am halfway through reading Growing object-oriented software, guided by tests, a book that teaches Test-Driven Development in a Java environment. A review will come soon, since the process described in this work is really language-agnostic and
tags: phpunit
Mar 10 2010 06:53 PM
vote up
0
vote down

Practical Php Patterns: Observer

This post is part of the Practical Php Pattern series. Today's pattern is the Observer one. The intent of this pattern is breaking a [usually one-to-many] dependency between objects by making the set of objects act as Observers of a Subject one, which
tags: oop
Mar 09 2010 05:12 PM
vote up
0
vote down

How to avoid phase-of-the-Moon bugs

Wikipedia documents some definitions of particularly dangerous bugs, which are very hard to fix and when they manifest constitute a real problem in development. Pay attention to these examples: Heisenbug: bug that changes its behavior when someone is
tags: debugging
Mar 08 2010 05:30 PM
vote up
0
vote down

Last holiday week roundup

This has been a productive week, given that I had finished my exams early in February and I was free from university commitments. Since you follow this blog I thought you would enjoy some focused links to my writings outside of here. I do not want to
tags: php
Mar 06 2010 05:35 PM
vote up
0
vote down

Clever Mock Objects with PHPUnit

PHPUnit is the standard testing framework for php applications, and it has native support for mocking. It can produce various Stubs and Mocks by automatically extending a class or implementing an interface. Expectations can be set on these mocks so that
tags: phpunit
Mar 05 2010 06:18 PM
vote up
0
vote down

Why I'm leaving Subversion for Git

I always believed in Subversion's potential and that it would be a wide improvement over the nightmare that was CVS, but I found out that, as Linus says, There is no way to do CVS right. Subversion is fairly good and it's probably the better centralized
Mar 04 2010 09:20 PM
vote up
0
vote down

Practical Php Patterns: Memento

This post is part of the Practical Php Pattern series. The pattern of today is the Memento one, whose intent is storing the state of an Originator object without breaking its encapsulation, which typically consists in a set of private fields. For the
tags: oop
Mar 03 2010 05:59 PM
vote up
0
vote down

Zend Framework 1.8 Web Application Development review

This is my personal review of Zend Framework 1.8 Web Application Development, a book by Keith Pope (affiliate link). First, a clarification on the book's name, which refers to Zend Framework 1.8: the book work flow is based on the 1.8 version but the Api
tags: review
Mar 02 2010 06:54 PM
vote up
0
vote down

Practical Php Patterns: Mediator

This post is part of the Practical Php Pattern series.   The pattern of the day is the Mediator one. The intent of this pattern is encapsulating the interactions of a set of objects, preventing aggressive coupling from each of them towards the other
tags: oop
Mar 01 2010 05:17 PM
vote up
0
vote down

Some news on my activities

This week has been very satisfactorily so far. First, my talk for phpDay, the most important yearly Italian conference on php, has been accepted. The talk will be in Italian and it takes place on the last day of the conference, May 15th. The title is
tags: off topic
Feb 26 2010 05:25 PM
vote up
0
vote down

Levels of architecture

As I said in a recent post, it is important to have a 50,000 feet view of a software system in our mind before editing even a single line in its codebase. Without a big picture in mind, our changes can push the project in the wrong direction. But there
tags: design
Feb 25 2010 08:20 PM
vote up
0
vote down

3 simple steps to Ubiquitous Language

A customer should be able to view its past orders, along with their dates and chosen products. This is necessary so that clients can view a single piece and request an arbitrary amount of it again.This piece of documentation seems to have been written by
Feb 24 2010 05:01 PM
vote up
0
vote down

The 50000 feet view and Dependency Injection

One criticism of Dependency Injection is the supposed unnecessary abstraction over collaborators that it is imposed by the constructor and setter injection techniques. Writing: class Computer {     public function __construct(Cpu $cpu) {  
tags: oop
Feb 23 2010 05:54 PM
vote up
0
vote down

Practical Php Patterns: Iterator

This post is part of the Practical Php Pattern series.   The behavioral pattern of the day is the Iterator pattern, which provides an abstraction over a very common process: the iteration over a collection of objects [or scalars] located in an
tags: oop
Feb 22 2010 06:58 PM
vote up
0
vote down

1K subscribers

This week the Invisible to the eye feed has surpassed 1024 (1K) subscribers for the first time. :) Thank you all for the support. Your high number encourages me to write more and more.
Feb 21 2010 04:10 PM
vote up
0
vote down

The Number one rule of design

The post on php's foreach construct raised a discussion about the design of the language and of userland code, so I'm recollecting my thoughts here. However, note that I was not discussing the utility of the construct, only the use of array functions
tags: oop
Feb 19 2010 09:24 PM
vote up
0
vote down

Zend Framework 1.8 Web Application Development

I have started reading the book Zend Framework 1.8 Web Application Development, by Keith Pope. From a first impression, it seems a thorough book, which covers testing, authorization, authentication and the various layers of a php application. The review
tags: review
Feb 18 2010 05:22 PM
vote up
0
vote down

Practical Php Patterns: Interpreter

This post is part of the Practical Php Pattern series.   The behavioral pattern of today is the Interpreter pattern, which consists in a representation of a grammar with a Composite class hierarchy, where rules are mapped to classes. An expressio
tags: oop
Feb 18 2010 05:06 PM
vote up
0
vote down

Stop writing foreach() cycles

At least in php. How many for() or foreach() have you written today? I bet a lot. Php 5.3 has a solution that will reduce the average number of iteration structures you need to write: closures applied by plain old array functions. There are some array
tags: php
Feb 17 2010 06:12 PM
vote up
0
vote down

Testing protected members

This is a follow-up to Testing private members. In the previous post, we discussed how to make sure that code in a private method is tested without accessing it directly, since that would imply the use of reflection and a violation of the class contract
tags: oop
Feb 16 2010 09:08 PM
vote up
0
vote down

Repositories in Doctrine

Jebb wrote to me asking information about the Repository pattern: I read your blog at http://giorgiosironi.blogspot.com/and I found it very helpful. I develop applications using DDD and Zend Framework however for persistence ignorance, I use some basic
tags: database
Feb 15 2010 06:05 PM
vote up
0
vote down

Tuning your Ubuntu machine with command line-fu

Ubuntu is in my opinion the leading Linux distribution because of its extended support for peripherals and large software repositories. Though, the default installation profile can be a bit heavy since it is thought as a catch-all configuration for a
Feb 12 2010 05:33 PM
vote up
0
vote down

Practical Php Patterns: Command

This post is the second one in the behavioral patterns part of the Practical Php Pattern series. The behavioral pattern we will discuss today is the Command one, a mechanism for encapsulation of a generic operation. If you are familiar with C or Php, you
tags: oop
Feb 11 2010 06:29 PM
vote up
0
vote down

Testing private members

Yesterday, Sebastian Bergmann, the author of PHPUnit, posted his response to a question he is asked frequently, How do I test private members of a class? He summarizes the ways to access private fields and methods of an object from a PHPUnit test case,
tags: oop
Feb 10 2010 07:15 PM
vote up
0
vote down

Practical Php Patterns: Chain of Responsibility

This post starts the behavioral patterns part of the Practical Php Pattern series. The first behavioral pattern of this part of the series is named Chain of Responsibility. Its intent is organizing a chain of objects to handle a request such as a method
tags: oop
Feb 09 2010 03:44 PM
vote up
0
vote down

Practical Php Patterns: Structural patterns summary

This post is part of the Practical Php Pattern series. The GoF book says there is a lot of similarity between structural patterns because of the few kinds of relationships in object model structures: inheritance and implementation between classes plus
tags: oop
Feb 08 2010 06:41 PM