~/devreads

Federico Cargnelutti

https://blog.fedecarg.com/ · 110 posts · history since 2007 · active

8 Oct 2018

Federico 2 min read

In Ruby, objects have a handy method called method_missing which allows one to handle method calls for methods that have not been defined. Most examples out there explain how to implement this in Python using __getattr__, however, none of them (honestly, none) explain how to intercept class method (@classmethod) invocations using __metaclass__. And this is […]

programmingpython

18 Jun 2018

Federico 1 min read

Organisations who are paying attention already know they need to have an open web API, and many already have under development or in the wild. Make sure you haven’t been caught by the pitfalls of many early API releases. Multiple points of failure: The 5 tips Test it all Plan for future versions Embrace standards […]

node.jssoftware architectureweb services

6 Jun 2018

Federico 4 min read

I’ve finally had a chance to read a book I bought a while ago called “97 Things Every Software Architect Should Know – Collective Wisdom from the Experts“. Not the shortest title for a book, but very descriptive. I bought this book at the OSCON Conference in Portland last year. It’s an interesting book and […]

software architecture

24 Mar 2018

5 Nov 2016

Federico 1 min read

Environment variables are declared with the ENV statement and are notated in the Dockerfile either with $VARIABLE_NAME or ${VARIABLE_NAME}. Passing variables at build-time The ENV instruction sets the environment variable to the value. The environment variables set using ENV will persist when a container is run from the resulting image. For example: The Dockerfile allows you to specify arguments […]

javascriptlinuxnode.jsopen-sourceprogramming

1 Aug 2016

Federico 1 min read

Monitoring systems allow you to monitor changes to your front-end code base over time, catching any regression issues and monitoring the ongoing effects of any performance optimisation changes. Easy to use dashboards are a must when it comes to monitoring the state of your web apps. Companies like Calibre or SpeedCurve offer this as a […]

javascriptnode.jstoolsweb services

18 Jul 2016

Federico 1 min read

The package mock-require is useful if you want to mock require statements in Node.js. It has a simple API that allows you to mock anything, from a single exported function to a standard library. Here’s an example: app/config.js app/services/content.js test/services/content_spec.js

javascriptnode.jsprogramming

26 Jun 2016

Federico 10 min read

With the proliferation of video on-demand streaming services, viewers face a big challenge: finding content across multiple screens and apps. There may be quality information available online but it may be difficult to find. Traditionally, viewers resort to “app switching” which can be frustrating when it comes to finding quality content. With the emergence of […]

software architectureweb development

8 Dec 2014

26 Aug 2014

Federico 1 min read

Ruby Version Manager (RVM) is a tool that allows you to install multiple versions of Ruby and have multiple versions of the same interpreter. Very handy for those who have to maintain different applications using different versions of Ruby. To start, download RVM and install the latest stable version of Ruby: $ echo insecure >> […]

programming

22 Feb 2014

Federico 1 min read

MySQL does not include a function to split a delimited string. However, it’s very easy to create your own function. Create function syntax A user-defined function is a way to extend MySQL with a new function that works like a native MySQL function. To create a function, you must have the INSERT privilege for the […]

databases

16 Aug 2013

Federico 1 min read

Regardless of the development process that you use, a description of the software architecture can be essential for any project, big or small. If software architecture is about the structure of a system and is the vehicle for satisfying the requirements, then the software architecture document is a written description of this. The Software Architecture […]

programmingsoftware architecture

11 Dec 2011

Federico 2 min read

Last year Zone-H reported a record number of 1.5 million websites defacements. 1 million of those websites where running Apache. When it comes to configuring a web server, some people tend to turn everything on by default. Developers are happy because the functionality that they wanted is available without any extra configuration, and there is […]

deploymentlinuxopen-sourcesecuritytools

9 Aug 2010

Federico 1 min read

A couple of weeks ago I attended the O’Reilly Open Source Convention (OSCON) in Portland. OSCON has hundreds of sessions and activities focused on all aspects of open source software. I met some great people, the talks were good and I saw some promising ideas and technologies. Workshops attended Android for Java Developers Marko Gargenta […]

open-source

22 Mar 2010

Federico 4 min read

Most ORMs support the concept of dynamic finders. A dynamic finder looks like a normal method invocation, but the method itself doesn’t exist, instead, it’s generated dynamically and processed via another method at runtime. A good example of this is Ruby. When you invoke a method that doesn’t exist, it raises a NoMethodError exception, unless […]

databasesframeworksopen-sourceprogrammingsoftware architecture

29 Nov 2009

Federico 1 min read

Nicholas Tang wrote a nice little perl script that shows a basic memcached top display for a list of servers. You can specify thresholds, for instance, and it’ll change color to red if you exceed the thresholds. You can also choose the refresh/sleep time, and whether to show immediate (per second) stats, or lifetime stats. […]

open-sourcetools

2 Oct 2009

19 Sept 2009

22 Jun 2009

Federico 1 min read

Yesterday an interesting HTTP DoS tool has been released. The tool performs a Denial of Service attack on Apache (and some other, see below) servers by exhausting available connections. While there are a lot of DoS tools available today, this one is particularly interesting because it holds the connection open while sending incomplete HTTP requests […]

linuxsecuritytools

16 Jun 2009

Federico 2 min read

Java has no goto statement, to break or continue multiple-nested loop or switch constructs, Java programmers place labels on loop and switch constructs, and then break out of or continue to the block named by the label. The following example shows how to use java break statement to terminate the labeled loop: public class BreakLabel […]

javaprogrammingpythonsoftware architecture

8 Jun 2009

Federico 1 min read

When you profile a web page with Page Speed, it evaluates the page’s conformance to a number of different rules. These rules are general front-end best practices you can apply at any stage of web development. Google provides documentation of each of the rules, so whether or not you run the Page Speed tool, you can refer […]

javascriptprogrammingtools

13 May 2009

Federico 1 min read

This manual gathers together the key insights into API design that were discovered through many years of software development on the Qt application development framework at Trolltech (now part of Nokia). When designing and implementing a library, you should also keep other factors in mind, such as efficiency and ease of implementation, in addition to […]

design patternsnode.jsprogrammingsoftware architectureweb services

12 May 2009

Federico 1 min read

phpWatch is a general purpose service monitor that is able to send notifications of outages via e-mail or text-message (SMS). The purpose of this system is to allow administrators to easily check the status of many different services running on any number of servers and also allow developers to interface with the query and notification […]

open-sourcetoolsweb development

22 Mar 2009

Federico 2 min read

Last updated: 15 Feb, 2010 Part 1: Domain-Driven Design and MVC Architectures Part 2: Domain-Driven Design: Data Access Strategies Part 3: Domain-Driven Design: The Repository Some of the Domain-driven design concepts explained above are applied in this sample application. Directory Structure app/ config/ controllers/ UserController.php domain/ entities/ User.php UserProfile.php repositories/ UserRepository.php views/ lib/ public/ The […]

design patternsframeworksprogrammingsoftware architecture

15 Mar 2009

Federico 3 min read

Part 2: Domain-Driven Design: Data Access Strategies The Ubiquitous Language The ubiquitous language is the foundation of Domain-driven design. The concept is simple, developers and domain experts share a common language that both understand. This language is set in business terminology, not technical terminology. This ubiquitous language allows the technical team become part of the […]

design patternsframeworksprogrammingsoftware architecture

12 Mar 2009

Federico 3 min read

Part 1: Domain-Driven Design and MVC Architectures The Domain Model Here are some of the features a Domain-driven design framework should support: A domain model that is independent and decoupled from the application. A reusable library that can be used in many different domain-specific applications. Dependency Injection in order to inject Repositories and Services into […]

design patternsframeworksprogrammingsoftware architecture

11 Mar 2009

5 Mar 2009

Federico 1 min read

Here’s the thing: you’re developing a server deployed application, it could be a web application but it doesn’t have to be, and you’re probably deploying to more than one server. Even if you just have one server to deploy to, it still get tiresome in the long run to build your project, fire up your […]

linuxpythontools

22 Feb 2009

21 Feb 2009

Federico 1 min read

I found this project thanks to Raphael’s post Turning a Zend_Log log file into an RSS feed. Developed by Simone Carletti, ApacheLogAnalyzer2Feed is a really powerful open source PHP 5 class to parse and analyse Apache Web Server log files. Results are converted into a feed to let users subscribe them with a feed reader. […]

frameworksopen-sourceprogramming

16 Feb 2009

Federico 1 min read

Aptana has just released a beta version of its ActiveRecord.js which is an ORM JavaScript library that implements the ActiveRecord pattern. It works with AIR and other environments: ActiveRecord.js is a single file, MIT licensed, relies on no external JavaScript libraries, supports automatic table creation, data validation, data synchronization, relationships between models, life cycle callbacks […]

databasesjavascriptopen-sourceprogramming

6 Feb 2009

Federico 1 min read

Hope you like these recommendations and if you know of any other good tech-related video, then please let me know. 1. Developing Expertise: Herding Racehorses, Racing Sheep One of my favourites. In this presentation Dave Thomas (The Pragmatic Programmer) talks about expanding people’s expertise in their domains of interest by not treating them uniformly as […]

agile developmentdatabasesopen-sourceprogrammingsoftware architecture

3 Feb 2009

Federico 1 min read

Rsync is great, however, it only synchronizes files in one direction. Unison, on the other hand, synchronizes both ways. It allows two replicas of a collection of files and directories to be stored on different hosts, modified separately, and then brought up to date by propagating the changes in each replica to the other. Why […]

linuxopen-sourcetools

1 Feb 2009

Federico 3 min read

When you develop or deploy an application, dependency tracking is one of the problems you must solve. Keeping track of dependencies for every application you develop is not an easy task. To solve this problem I’ve created Zend_Debug_Include, a Zend Framework component that supports automatic dependency tracking. We all agree that dependencies cannot be maintained […]

frameworksopen-sourceprogrammingweb development

24 Jan 2009

Federico 1 min read

The Java platform will be celebrating its 14th birthday soon and one side-effect when a successful and ubiquitous language reaches this kind of milestone is the widespread proliferation of libraries, tools and ideas. In this article, Ted Neward tacks through the vast tides and presents a list of the key resources any up-and-coming Java developer […]

javaprogramming

22 Jan 2009

Federico 1 min read

During his keynote presentation at OSCON last year, Ubuntu founder Mark Shuttleworth described application extensibility as an important enabler of innovation and user empowerment. Citing the Firefox web browser and its rich ecosystem of add-ons as an example, Shuttleworth suggested that the Linux community could deliver a lot of extra value by making scriptable automation […]

javascriptlinuxopen-sourceprogramming

4 Jan 2009

Federico 2 min read

Jetty Web server can be invoked and installed as a stand alone application server. It has a flexible component based architecture that allows it to be easily deployed and integrated in a diverse range of instances. The project is supported by a growing community and a team with a history of being responsive to innovations […]

javalinuxweb development

2 Jan 2009

Federico 2 min read

Replication has its problems, specially if you have a multimaster replication system. To make matters worse, none of the PHP frameworks support multimaster replication systems nor handle master failover. Symfony uses Propel and only supports master-slave replication systems. When the master fails, it’s true that you have the slaves ready to replace it, but the […]

databasesframeworksweb development

24 Dec 2008

Federico 1 min read

If you are using the Memcache functions through a PECL extension, you can set global runtime configuration options by specifying the values within your php.ini file. One of them is memcache.hash_strategy. This option sets the hashing mechanism used to select and specifies which hash strategy to use: Standard (default) or Consistent. It’s recommended that you […]

programmingsoftware architectureweb development

18 Nov 2008

Federico 1 min read

Here are two useful backlog templates provided by Agile Software Development. Both of them are in Excel format (XLS). Check them out: Simple Product Backlog Example Simple Sprint Backlog Example

agile developmenttools

Federico 1 min read

Many threats that are common to distributed systems are common to Web services as well. There are a few specific threats associated with the Web services processing model, such as: Message replays: An attacker may re-play an entire message or a part of a SOAP message. Man in the middle attack: An attacker may view […]

programmingweb developmentweb services

3 Nov 2008

Federico 2 min read

When you’re building an infrastructure that is distributed all over the internet, you’ll come to a point where you can’t rely on synchronous remote calls that, for example, synchronize data on 2 servers: You don’t have any failover system that resends messages if something went wrong (network outages, software failures). Messages are processed over time […]

programmingsoftware architectureweb development

25 Oct 2008

Federico 1 min read

This weekend I decided to spend some time developing my first cross-platform Adobe AIR desktop application. My first impression of Adobe Air was: Wow! It takes only a few minutes to see how easy and powerful this platform is. What’s great about AIR is that you can build Rich Internet Applications that run across operating […]

programmingtools

22 Oct 2008

Federico 1 min read

It’s always handy to have a complete list of packages installed, specially if you want to create a system that is similar to a different system you have already set up. In this post I’ll cover how you can export a list of installed packages on one Ubuntu system, and import them into another to […]

linux

Federico 1 min read

MySQL’s full-text search functions provide a simple framework for an easily implemented, approximate site search. Many sites, written in an interpreted language and powered by MySQL, can use MySQL’s full-text search to avoid third party dependencies. The basics of the MySQL full-text search functions are well-documented in the MySQL online documentation. For those lacking patience, […]

databases

14 Oct 2008

Federico 1 min read

The MySQL Master-Master replication (often in active-passive mode) is popular pattern used by many companies using MySQL for scale out. Most of the companies would have some internal scripts to handle things as automatic fallback and slave cloning but no Open Source solution was made available. In 2007, the High Performance Group at MySQL AB […]

databasestools

4 Oct 2008

Federico 1 min read

Intrepid Ibex is the codename for Kubuntu 8.10, due to be released October 30 2008. The focus for 8.10 for the Kubuntu community will be transitioning to a KDE 4 desktop. The plan is to integrate the existing Kubuntu software while at the same time offering the best out-of-the-box KDE 4 experience around. Intrepid Ibex […]

linux

Federico 1 min read

This is what Mike Peters says he can do: make your site run 10 times faster. His test bed is “half a dozen servers parsing 200,000 pages per hour over 40 IP addresses, 24 hours a day.” Before optimization CPU spiked to 90% with 50 concurrent connections. After optimization each machine “was effectively handling 500 […]

programmingsoftware architecture

29 Sept 2008

25 Sept 2008

Federico 1 min read

François Zaninotto wrote: When faced with the alternative between an off-the-shelf CMS or a custom development, many companies pick solutions like ezPublish or Drupal. In addition to being free, these CMS seem to fulfill all possible requirements. But while choosing an open-source solution is a great idea, going for a full-featured CMS may prove more […]

frameworksprogrammingsoftware architectureweb development

20 Sept 2008

Federico 1 min read

The practices discussed in this article are based on Ezequiel Cuellar’s observations. These practices will help any software development team as they come up against common obstacles. They will also contribute to a solid foundation for healthier development and help speed up production. The seven practices are: Improve business processes before starting development. Create a […]

agile developmentprogramming

14 Sept 2008

Federico 5 min read

In software engineering, “refactoring” source code means modifying it without changing its behaviour, and is sometimes informally referred to as “cleaning it up”. Refactoring neither fixes bugs nor adds new functionality, though it might precede either activity. Rather it improves the understandability of the code and changes its internal structure and design, and removes dead […]

programmingsoftware architectureweb development

4 Sept 2008

Federico 2 min read

What does “favour composition over inheritance” mean, and why is it a good thing to do? Object composition and inheritance are two techniques for reusing functionality in object-oriented systems. In general, object composition should be favoured over inheritance. It promotes smaller, more focused classes and smaller inheritance hierarchies. Troels Knak-Nielsen wrote: Class inheritance is a […]

design patternsprogrammingweb development

3 Sept 2008

Federico 1 min read

Whatever you write today will become legacy. Legacy code is often written by people who thought they got it nailed, and later realize that the application is legacy. Not because of the application itself, but because of changes in themselves. “What the hell was I thinking?” Code is always the same, it’s your perception of […]

programming

25 Aug 2008

Federico 1 min read

For HR and legal purposes, most development companies classify Software Engineers into ranks from 1 to 4 (or 5). The higher the rank, the higher the responsibilities, expectations, independence and pay grade. To cut it as an interviewer and manager, you’ll need to classify people accurately with a minimum amount of direct personal exposure: a […]

agile developmentprogramming

Federico 1 min read

This tutorial by Charitha Kankanamge takes you through different approaches to testing Web services. There are multiple approaches to invoking Web services, regardless of the platform or technology used to built such services. If a service consumer has access to the contract (WSDL) file of a given Web service, then, that particular service can be […]

toolsweb services

20 Aug 2008

Federico 1 min read

Most projects carry some amount of legacy code. You can’t work very fast with a legacy code base, but you can speed it up if you establish a strategy to deal with your existing code and mitigate risk as new development goes forward. What is Legacy Code? Legacy code is code from the past, maintained […]

programmingsoftware architecture

4 Aug 2008

Federico 1 min read

The includes of the system map out the dependencies of the system, which files depend on which, which subsystem depends on which. When working with a system, it’s always useful to map out the dependencies before hand. Here are some examples: WordPress 2.2.1 http://wordpress.org MediaWiki 1.12 http://www.mediawiki.org/ phpBB 3.0 http://www.phpbb.com/ phpMyAdmin 2.9.1.1 http://www.phpmyadmin.net/ Symfony 1.1 […]

frameworkssoftware architectureweb development

31 Jul 2008

Federico 1 min read

The inside details of the software development cycle: Programmer produces code he believes is bug-free. Product is tested. 20 bugs are found. Programmer fixes 10 of the bugs and explains to the testing department that the other 10 aren’t really bugs. Testing department finds that five of the fixes didn’t work and discovers 15 new […]

programming

30 Jul 2008

Federico 1 min read

Programmers are a great example of thinking outside the box because, well, programmers can actually create the box. If you’ve ever spent more than two minutes talking with a programmer about his work, you’ll find out very quickly that programmers have a passion for what they do. They eat, sleep and breathe programming. Read more: […]

programming

25 Jul 2008

Federico 1 min read

In this post, Alex Iskold discusses the top 10 concepts software engineers should know. A successful software engineer knows and uses design patterns, actively refactors code, writes unit tests and religiously seeks simplicity. Beyond the basic methods, there are concepts that good software engineers know about. These transcend programming languages and projects – they are […]

design patternsprogrammingsoftware architecture

21 Jul 2008

13 Jul 2008

Federico 1 min read

Traditionally, there are two fundamental approaches when it comes to organising your development teams: the Architecture-Oriented approach and the Feature-Oriented approach. The first privileges teams that focus on the different architectural layers or components, whereas the second prefers to organise teams around deliverable application features. How do you organise your development teams?

agile developmentsoftware architecture

12 Jul 2008

Federico 1 min read

Django has not been updated for a long time. The most current release, 0.96, was released in March 2007. This is a very long time when you look at the roadmap of other frameworks. But guess what, all that is about to change, because Django 1.0 is only two months away! Over the next six […]

frameworkspython

9 Jul 2008

Federico 1 min read

The “find” command is one of the most powerful and useful Unix commands, you can use it to locate files, and then perform some type of action on the files after they’ve been located. With this capability, you can locate files using powerful search criteria, and then run any Unix command you want on the […]

linuxprogramming

4 Jul 2008

Federico 1 min read

Google announced the release of ratproxy, a passive web application security assessment tool that they’ve been using internally at Google. This utility, developed by their information security engineering team, is designed to transparently analyse legitimate, browser-driven interactions with a tested web property and automatically pinpoint, annotate, and prioritize potential flaws or areas of concern. The […]

securitytools

30 Jun 2008

Federico 1 min read

Flickr Platform PHP MySQL Shards Memcached for a caching layer. Squid in reverse-proxy for html and images. Linux (RedHat) Smarty for templating Perl PEAR for XML and Email parsing ImageMagick, for image processing Java, for the node service Apache SystemImager for deployment Ganglia for distributed system monitoring Subcon stores essential system configuration files in a […]

software architectureweb development

28 Jun 2008

Federico 5 min read

MVC is about loose-coupling, and Modular Programming takes that concept to the extreme. A modular application can dynamically load and unload modules at runtime, completely separate applications in their own right, which interact with the main application and other modules to perform some set of tasks. In this article you will presented with a different […]

frameworksprogrammingsoftware architectureweb development

Federico 1 min read

Karl Seguin has released the official, and completely free, Foundations of Programming eBook. Although simplistic, every programming decision I make is largely based on maintainability. Maintainability is the cornerstone of enterprise development. Frequent readers are likely sick of hearing about it, but there’s a good reason we talk about maintainability so often – it’s the […]

agile developmentprogrammingsoftware architecture

25 Jun 2008

Federico 1 min read

Drag and drop widgets to build Web applications, in minutes, with minimal code. WaveMaker Visual Ajax Studio is an easy-to-use visual builder that enables the drag & drop assembly of scalable, web-applications using Ajax widgets, web services and databases. WaveMaker Studio will look and feel especially familiar to client/server developers who are used to working […]

programmingtools

Federico 1 min read

MVC is about loose-coupling, and Modular Programming takes that concept to the extreme. A modular application can dynamically load and unload modules at runtime, completely separate applications in their own right, which interact with the main application and other modules to perform some set of tasks This document (PDF) discusses the classes and interfaces of […]

frameworksprogrammingsoftware architecture

22 Jun 2008

Federico 2 min read

Phing allows you to use SQL to define changes to your database schema, making it possible to use a version control system to keep things synchronized with the actual code. A common way to automate development and deployment tasks is by writing shell scripts, however, Phing provides some advantages over shell scripts for task automation. […]

databasesdeploymentprogrammingsoftware architecturetools

17 Jun 2008

Federico 1 min read

When it comes to testing, Cedric Beust (co-author of “Next Generation Java Testing”) lives by the following rules of thumb: “Tests first” or “tests last” is unimportant as long as there are tests. Try to think about testing as early as possible in your development process. Don’t listen to people who tell you to write […]

agile developmenttools

Federico 1 min read

The best code is very shy. Like a four-year old hiding behind a mother’s skirt, code should not reveal too much of itself and should not be too nosy into others affairs. But you might find that your shy code grows up too fast, shedding its demure shyness in favor of wild promiscuity. When code […]

design patternsprogramming

Federico 1 min read

The software industry is currently in the middle of a paradigm shift. Applications are increasingly written for the Web rather than for any specific type of an operating system, computer or device. Unfortunately, the technologies used for Web application development today violate well-known software engineering principles. Furthermore, they have reintroduced problems that had already been […]

programming

16 Jun 2008

Federico 1 min read

Every getter and setter in your code represents a failure to encapsulate and creates unnecessary coupling. A profusion of getters and setters (also referred to as accessors, accessor methods, and properties) is a sign of a poorly designed set of classes. “Getters and setters should be avoided because they break the encapsulation OOP offers”, says […]

design patternsprogrammingweb development

12 Jun 2008

Federico 1 min read

Optimization is a complex task because ultimately it requires understanding of the entire system to be optimized. Although it may be possible to perform some local optimizations with little knowledge of your system or application, the more optimal you want your system to become, the more you must know about it. The following 10 articles […]

databasestools

8 Jun 2008

Federico 1 min read

Neil Grab wrote: One of the Zend Framework’s strongest drawing cards, as I see it, is its loosely-coupled structure. The name Zend Framework may be a misnomer, in fact, as ZF is more a set of reusable libraries than an actual application framework. I won’t go into detail about the advantages of loose coupling, but […]

frameworksprogrammingweb development

7 Jun 2008

Federico 1 min read

Jason McDonald posted some quick reference diagrams for the Gang of Four design patterns on his blog. Each section has the name of the pattern, a quick description, and the class diagram for the pattern. Definitely a handy thing to have around. Design Patterns Quick Reference (PDF)

design patternsprogrammingweb development

6 Jun 2008

Federico 1 min read

…has become the world’s most popular programming language. This is the story of JavaScript Most languages die in obscurity. Only a few are able to build a following beyond a single project or company. And only a very small number of languages become important. There are many things that a programmer must consider when selecting […]

programming

5 Jun 2008

Federico 1 min read

Most digital data we deal with in the real world is not inherently relational in nature, yet most web applications use a SQL RDBMS for data persistence. CouchDB is fundamentally a different type of database, storing data as independent “Document” objects. They can be easily replicated to other instances of CouchDB for distributed and offline […]

databases

22 May 2008

Federico 6 min read

From managing databases to shopping, writing blogs to sending emails. Ten years of passion, great software architectures, team work and revolutionary ideas. Here are the most influential open-source PHP applications to date: 1998 phpMyAdmin phpMyAdmin is a tool written in PHP intended to handle the administration of MySQL over the Web. Currently it can create […]

programmingtoolsweb development

17 May 2008

Federico 1 min read

One of the reasons is that UML attempts to become a programming language. By aiming to be able to generate full code actually UML tries to be a programming language. In my mind there is a big problem with a general purpose graphical programming language. In human history the written form of all languages evolved […]

programmingsoftware architecturetools

15 May 2008

11 May 2008

Federico 1 min read

A programmer cannot be Agile if the person that manages him is not Agile as well, and vice versa. That’s why Scrum focuses on management and organization practices while XP focuses mostly on actual programming practices, and that’s why they work so well together. This excellent free book aims to give you a head start […]

agile developmentprogramming

7 May 2008

Federico 1 min read

What does Google, Sun Microsystems, HP, Amazon, Oracle and Motorola have in common? They all use ScrumWorks, an Agile process automation tool that enables teams to self-organize and maximize productivity. Sun Microsystems: “The best compliment I can give to ScrumWorks is that my staff doesn’t think about it. It is intuitive and respectful of the […]

agile developmentprogrammingtools

29 Apr 2008

Federico 1 min read

So, there you are, asking yourself – “How the hell am I going to deploy my next application across multiple servers?”. First, you write some shell scripts. One that checks out the project from the repository and the other one that runs all the tests. Then, you master the synchronization technique and realise that combined […]

frameworksprogrammingtools

24 Apr 2008

Federico 1 min read

I’m a big fan of PHP_CodeSniffer and I think it’s a great development tool, it ensures that you write code that is easy to read and maintain. But, what about making sure that the code you write is secure and doesn’t have any vulnerabilities? Right, there’s another tool for that… PHP Security Scanner is a […]

securitytoolsweb development

Federico 1 min read

Web security is possibly today’s most overlooked aspect of securing the enterprise and should be a priority in any organization. Recent research shows that 75% of internet attacks are done at web application level. Web application security scanners ensure website security by automatically checking for SQL injection, Cross site scripting and other vulnerabilities. There are […]

securitytoolsweb development

23 Apr 2008

Federico 1 min read

A twelve-year-old can build a nice Web application using the tools that came standard with any Linux or Windows machine. Thus it is worth asking ourselves, “What is challenging, interesting, and inspiring about Web-based applications?” This textbook written by Eve Andersson, Philip Greenspun, and Andrew Grumet for the MIT course “Software Engineering for Internet Applications”, […]

programmingsoftware architectureweb development

22 Apr 2008

Federico 1 min read

CouchDB was accepted for incubation at the Apache Software Foundation a couple of months ago. My congrats to the development team! It’s a very interesting and challenging project, and the fact that it was accepted for incubation will definitely get the team exited. What is CouchDB? A document database server, accessible via a RESTful JSON […]

databasestools

16 Apr 2008

Federico 1 min read

Ask yourself: What are my primary concerns and interests when making software? It is by answering this question that you’ll be able to define the distinction between software architecture and software development An A-Z Guide to Being an Architect

programmingsoftware architecture

14 Apr 2008

10 Apr 2008

Federico 1 min read

The first in a two-part series that appeared in The Rational Edge, this article presents a case study that analyses the requirements captured in use cases and transforms them into implementable representations that can be directly coded. An excellent article written by Gary Evans. Getting from use cases to code: Part 1: Use-Case Analysis Getting […]

programmingweb development

6 Apr 2008

Federico 1 min read

Application usability is enhanced when users know how to operate the UI and it guides them through the workflow. Violating common guidelines prevents both. Once again usability expert Jakob Nielsen writes about common mistakes made by designers, front-end developers and information architects when designing user interfaces. Top-10 Application-Design Mistakes

web development

31 Mar 2008

Federico 1 min read

Varien, one of the most important eCommerce development and consulting firms in the world, has taken eCommerce to a completely different level with the latest release of Magento 1.0. An amazing, flexible, modular and scalable open-source eCommerce solution, powered by one of the most popular systems on the web today, the Zend Framework. Congratulations to […]

frameworksweb development

15 Mar 2008

Federico 1 min read

Is your code easy to change? Can you get nearly instantaneous feedback when you do change it? Do you understand it? If the answer to any of these questions is no, you have legacy code, and it is draining time and money away from your development efforts. In the book Working Effectively with Legacy Code, […]

design patternsprogrammingweb development

13 Mar 2008

Federico 1 min read

A couple of months ago I wrote a Dependency Injection component for the Zend Framework. It’s a simple solution to a complex problem: removing hidden dependencies and injecting mocked objects. The component has evolved quite a bit since I first created it, and it’s now part of a bigger system, where objects are persistent, can […]

design patternsprogrammingweb development

11 Mar 2008

Federico 1 min read

What’s a Web Cache? Why do people use them? A Web cache sits between one or more Web servers (also known as origin servers) and a client or many clients, and watches requests come by, saving copies of the responses, like HTML pages, images and files (collectively known as representations), for itself. Then, if there […]

programmingweb development

Federico 2 min read

Agile development methodologies have been around for a while now, and the list of them is long. It includes: Extreme Programmin (XP): Developed by Kent Beck, Ward Cunningham, and Ron Jeffries, XP is probably the best-known lightweight methodology. With its roots in the Smalltalk community, it is a relatively complex system of practices, and Highsmith […]

agile developmentprogrammingweb development

8 Mar 2008

Federico 3 min read

MediaWiki is a great PHP-based Wiki application that is used to power many sites, including Wikipedia itself. One of MediaWiki strengths is how easy it is to extend with its plug-in architecture. The following is a list of 20 extensions that should make your life easier and save you a fair bit of time. Check […]

programmingweb development

29 Feb 2008

Federico 1 min read

MediaWiki is definitely one of the most widely used and best known Wikis out there, it powers Wikipedia.com, but I’m sure you already knew that. I’ve been using it at work to record and document all our internal systems and projects. It’s a great tool, it allows developers and projects managers to collaborate, provide and […]

programmingtoolsweb development

17 Feb 2008

Federico 3 min read

An AntiPattern is a pattern that tells how to go from a problem to a bad solution. For example: The Blob Procedural-style design leads to one object with a lion’s share of the responsibilities, while most other objects only hold data or execute simple processes. The solution includes refactoring the design to distribute responsibilities more […]

design patternsprogrammingsoftware architecture

17 Nov 2007

Federico 4 min read

According to Marcus Baker, if you are a PHP developer and new to OOP, it’s possible that your story will go something like this: You’ll learn the syntax and build an object or two. You’ll try it in a live project. You will realise that you are getting no real advantage, and you’ll post your […]

programmingweb development

12 Nov 2007

9 Nov 2007

Federico 1 min read

For 50 years, computer programmers have been writing code. New technologies continue to emerge, develop, and mature at a rapid pace. Now there are more than 2,500 documented programming languages! O’Reilly has produced a poster called History of Programming Languages (PDF: 701K), which plots over 50 programming languages on a multi-layered, color-coded timeline.

programmingweb development

26 Oct 2007

Federico 2 min read

Today I came across an interesting post written by Troels Knak-Nielsen. We all know that patterns are not perfect in all situations and the Registry pattern is no exception. Here is what Troels has to say about this: The Registry Pattern – By Troels Knak-Nielsen The task, that a registry aims to solve, is to […]

design patternsprogrammingweb development

18 Jul 2007

Federico 1 min read

SoapUI is a free and open source desktop application for inspecting, invoking, developing, simulating/mocking and functional/load/compliance testing of web services over HTTP. It is mainly aimed at developers providing and/or consuming web services. Functional and Load-Testing can be done both interactively in soapUI or within an automated build/integration process using the soapUI command-line tools. Mock […]

toolsweb development

1 Jul 2007

Federico 1 min read

I’ve used a lot of UML design tools like Visio, Poseidon and a couple others. But recently I’ve had the opportunity to use Sparx Enterprise Architect (EA) Professional, a very good tool. Has round-trip code engineering for PHP, plug-ins for eclipse and tons more for only £115! From the author: “Enterprise Architect combines the power […]

tools