Federico Cargnelutti

Simple is better than complex. Complex is better than complicated. | @fedecarg

Archive for the ‘Tools’ Category

10 reasons to switch from CruiseControl to Hudson

with 4 comments

Ten things no one ever told you about Hudson:

  1. It’s extremely easy to install (unzip the file and that’s it)
  2. It can be configured entirely from its friendly Web UI (no XML required)
  3. It has an attractive dashboard with colourful and meaningful icons
  4. It’s extremely flexible
  5. It can be extended via plug-ins
  6. It offers a much better UI than CruiseControl
  7. It can execute Phing, Ant, Gant, NAnt and Maven build scripts
  8. It gives you clean readable URLs for most of its pages
  9. It has RSS, e-mail and IM integration
  10. It can distribute build/test loads to multiple computers

This tutorial guides you step-by-step through the fundamental concepts of Continuous Integration and Hudson. When you are done with this one-hour tutorial, you will understand the benefits of Continuous Integration as well as how to set up your environment.

Links

Written by Federico

March 5, 2009 at 12:43 am

Database Migrations: The Next Killer PHP Application

with 18 comments

This post, written by Adam Wiggins, got me thinking:

Migrations bother me. On one hand, migrations are the best solution we have for the problem of versioning databases. The scope of that problem includes merging schema changes from different developers, applying schema changes to production data, and creating a DRY representation of the schema. But even though migrations is the best solution we have, it still isn’t a very good one.

Schema synchronization is the killer feature missing in phpMyAdmin!

This feature can be found in some commercial applications, like SQLyog Enterprise for example. SQLyog’s Database Synchronization Tool (DST) is a visual comparison/synchronization tool designed for developers who work between different MySQL servers or need to keep databases between two MySQL servers in sync. This means reporting the differences between tables, indexes, columns of two databases, and generating the necessary “Up” and “Down” scripts to bring them in sync.

However, SQLyog DST is not free and only runs on Windows.

So, if you want to build the next killer PHP application, port SQLyog’s database synchronization tool to PHP and open source it. People will love you for it.

Links

Written by Federico

March 3, 2009 at 1:16 pm

Share songs for immediate streaming

leave a comment »

First came TinyURL, now TinySong. Just as TinyURL allows you to shorten long URLs for sharing in Twitter and elsewhere, TinySong does the same for sharing songs for immediate streaming.

http://tinysong.com/

Other tiny sites:

TinyChat
TinyChat is a service for creating disposable chatrooms. Each chatroom gets a unique TinyURL for easy sharing, and nobody involved needs special software to join in.

TinyGeoCoder
Tiny Geo-coder is a basic online app for determining the latitude and longitude of a location, with a simple API and practical uses for web development.

TinyScrum
Scrumy is a simple web application for Scrum project management. Scrumy is, at the basic level, a virtual taskboard.

Written by Federico

March 1, 2009 at 12:24 pm

Posted in Tools, Web Apps

Using Unison to synchronize more than two machines

with one comment

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 you should use Unison instead of Rsync:

  • Unison works across platforms, allowing you to synchronize a Windows laptop with a Unix server, for example.
  • Unlike simple mirroring or backup utilities, Unison can deal with updates to both replicas of a distributed directory structure. Updates that do not conflict are propagated automatically. Conflicting updates are detected and displayed.
  • Unlike a distributed filesystem, Unison is a user-level program: there is no need to modify the kernel or to have superuser privileges on either host.
  • Unison works between any pair of machines connected to the internet, communicating over either a direct socket link or tunneling over an encrypted ssh connection. It is careful with network bandwidth, and runs well over slow links such as PPP connections. Transfers of small updates to large files are optimized using a compression protocol similar to rsync.
  • Unison is resilient to failure. It is careful to leave the replicas and its own private structures in a sensible state at all times, even in case of abnormal termination or communication failures.

Links

Written by Federico

February 3, 2009 at 9:51 pm

Posted in Linux, Open-source, Tools

Using Ant as a library

leave a comment »

Ant has an extensive collection of predefined tasks that can be used directly from your Java/PHP code. In this post, Hung Huynh shows how to use Ant to download a file, unzip a package and execute shell commands.

Written by Federico

January 22, 2009 at 8:32 pm

Posted in Deployment, Java, Tools

NautilusSVN: Linux TortoiseSVN Equivalent

with 3 comments

Based on Stuart Langridge’s original script, Jason Field and Bruce van der Kooij created a set of Python scripts which integrate a load of Subversion functionality into the Gnome Nautilus browser. It’s basically a clone of the TortoiseSVN project on Windows.

NautilusSVN currently supports the following functionality:

  • Checkout
  • Commit
  • Revert
  • Diff (using Meld or gvimdiff)
  • Log Viewer
  • Revision and SVN User as columns in Nautilus views
  • Emblems to show file status (though buggy)
  • SSL authentication (buggy)
  • Username and password entry dialog
  • Editing Properties

NautilusSVN Project

Written by Federico

January 4, 2009 at 3:04 pm

Posted in Linux, Open-source, Python, Tools

A graph is worth a thousand words

with 2 comments

phpCallGraph is a tool to generate static call graphs for PHP source code. Such a graph visualizes the call dependencies among methods or functions of an application. Arrows represent calls from one method to another method. Classes are drawn as rectangles containing the respective methods. The graphs can be leveraged to gain a better understanding of large PHP applications or even to debunk design flaws in them.

It is also possible to visualize calls to internal functions of PHP and to some extend call dependencies among different classes. Have a look at the example call graphs to get an impression.

Great tool, thanks Falko!

Written by Federico

December 22, 2008 at 11:58 pm

Scrum Backlog Templates

with 4 comments

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

Written by Federico

November 18, 2008 at 10:20 pm

Create Clickable Wireframes

with one comment

protoshare_smallI found an interesting web-hosted application called ProtoShare that allows you to create clickable and working wireframes very easily. It has all the HTML elements you would need to design a web application, like headers, text areas, form interaction and even drop-down XHTML menus. Once you have a design, you can share it with others. It also creates a basic, linkable template that allows you to preview usage flow and overall experience.

This screencast demonstrates how ProtoShare can be used to create wireframes.

Written by Federico

November 6, 2008 at 12:54 am

Posted in Tools, Web Apps

Yahoo! announces its Open Strategy

with one comment

Yahoo! is in the process of releasing its Open Strategy with the goal of connecting more people in more ways than ever before.

Y!OS is a platform at it’s core, accessible via an API layer by applications that can be built by anyone and run on or off of Yahoo!. Y!OS can be used to completely rewire Yahoo!, putting an open architecture at Yahoo!’s core and adding a horizontal social dimension across Yahoo! and beyond.

There are three major goals to Y!OS:

  • Creating a social dimension
  • Opening Yahoo! (both data and application UI)
  • Rewiring Yahoo! properties with a new architecture built on this new Open Platform.

Neal Sample & Cody Simms walk you through the entire Y!OS platform.

Written by Federico

November 1, 2008 at 10:00 pm

Posted in Programming, Tools, Web Apps

Follow

Get every new post delivered to your Inbox.

Join 43 other followers