Business & Management
Cone of Silence
Once upon a time, I worked for a small company that had a tiny office. It was just a big room where all the developers, designers and creatives assembled, plus a couple of small ones where the owner and his secretary spent most of the time on their phone pitching to new clients or trying [...]
Programming
MS-SQL: Cleaning up duplicates with Common Table Expressions
It is a common pattern to prefer non-semantic primary keys — auto-incremented integers or UUIDs — over semantic ones. It’s advisable to define unique indexes on the semantic identity fields, but sometimes you avoid it for performance reasons or you just forget. When things screw up, you end up with multiple records relating to the [...]
More Articles
Stanford Engineering classes open for enrollment
Both Introduction to Artificial Intelligence and Machine Learning are now open to enrollment. Hurry up, the courses start on October 10th.
XML
XML is like violence – if it doesn’t solve your problems, you are not using enough of it. nokogiri.org
Baidu Maps
I wish I knew more about Chinese IT. They’re innovating fast and are quite good at it. Look at this: it’s not SimCity, it’s Baidu Maps. I know someone who was dreaming this stuff at Amazon’s A9 a decade ago, but we still don’t have something so fancy for most of our cities. Microsoft and [...]
Locust dynamics
I am quite interested in emerging behaviours and this looks like a nice simple, but effective model for swarming behaviour. (via kurzweilAI.net)
XPUG Marche event on SOLID
Last week, the extreme programming user group in Marche (Italy) held a nice event on SOLID principles. Two speakers explained them in theory and with real world examples, then we spent an hour in a hands-on exercise, refactoring some code to remove code smells due to violations to SOLID principles. XPUG Marche records these events [...]
Moving to Zürich
Joel Spolsky recently wrote about how to allocate ownership of a startup in a fair way. His words ring so true! I left my previous company for many of these reasons. Now the only ones going to get rich are the lawyers… A new adventure starts today. EF Education First hired me as a Lead [...]
Modeling apprenticeship and proficiency
This post is a bit different from the usual ones. It’s not about my opinions or observations about something, it’s about yours. I need your help. I was thinking about adoption rates in software frameworks (in particular, my focus is Python-based web frameworks). The interesting question is: what is the best learning curve to maximize [...]
Bands, Tribes and Cities – growing an open source community
Open source communities go through a series of transformations as they grow and evolve. My personal theory is: provided that there is ongoing technical progress, open source projects show steady advances until they outstrip their capacity to communicate, collaborate and coordinate effectively. That is, all goes well until they outgrow their current governance tools. Once that happens, [...]
GenroPy has no community
One of the key assets of every open source project is the community that supports it. The health of the community is the key factor contributing to growth and long-term viability of an open source project. If there are not enough gardeners, even the most beautiful and well-groomed park will eventually turn into an impenetrable [...]
GenroPy is not SOLID
There are five basic principles of object-oriented design and programming, known collectively as SOLID, that are very important to build code that is easy to maintain and evolve over time. These principles are: Single responsibility – an object should have only a single responsibility. Open/closed – software entities should be open for extension, but closed [...]