Hackday network

The guys at backnetwork did a great job by providing a full social network for the London Hackday 2007 event. You are encouraged to participate by creating your own profile and linking to friends and acquaintances that you might have.

They also opened their application to outside users by providing a very simple API where you can perform several tasks. You need, of course, to be registered to do that.

Hackday network excerpt

So I registered myself and started using the API immediately. I created a small PHP script that gets all the people that are signed up and then finds the relationships between them. The script simply outputs data in the DOT language that is consumed by graphviz.

Some people might say that there’s no practical use for this network graph but I really enjoy exploring visually all the connections between people and see how the network grows over time.

Anyway, can’t wait for the next weekend. The fun is just beginning…

Social Complexity in Software Development

Software complexity is increasing as time goes by and is now becoming a nightmare for every developer. To begin with, let’s find out what complexity is:

A complex system is a system for which it is difficult, if not impossible to restrict its description to a limited number of parameters or characterising variables without losing its essential global functional properties.

So, it’s getting more and more difficult to restrict software’s description to a limited number of parameters without losing its global functional properties. What that means is that it’s getting harder to come up with a piece of software that does exactly what was requested, not more nor less.

Regarding this fact, José Luiz Fiadeiro came up with the notion of two kinds of software complexity:

  • Physiological complexity
  • Social complexity

Quoting José Luiz Fiadeiro [1]:

Social complexity arises not from the size of applications but the number and intricacy of interactions. Its dynamic nature demands that we treat it differently, and to do that we must understand how it differs from physiological complexity.

What, then, is physiological complexity? According to the author it can be measured by the amount of decompositions a system must have so that every part (or module) becomes easy to implement by a single programmer.

On the other hand, social complexity is related to the amount of connections that exist between modules of an application or, on a SOA based environment, between software services within an organization.

Bibliography

  1. José Luiz Fiadeiro, “Designing for Software’s Social Complexity,” Computer , vol. 40, no. 1, pp. 34-39, January, 2007.

Large-scale reuse and remix on the Web

Javascript Dataflow Architecture (JDA) is a project from Maya that attempts to solve the issues associated to large-scale reuse and remix on the Web through the use of black box composition. Quoting their Website:

Remember back in the mid 90s when we could tinker with the Web by just copying and pasting a bunch of HTML? You know how with Web Services and Javascript we can do a lot more cool stuff on the Web these days? Except, it’s no longer as simple as just copying and pasting HTML? Why can’t we do all these cool next-gen Web stuff while maintaining the tinkerer’s culture of the original Web? We believe this can be done.

They call these black boxes infotrons. An application can then be built connecting two or more infotrons together. These connections can be represented graphically through the use of what they call blueprints:

JDA Hello World blueprint

This blueprint will implement the display of a “Hello World” message 1 second after startup. Infotrons can be local components or even remote Web Services.

This approach to software development and component reuse looks really promising. If you’d like to know more you can read the entire paper (pdf) written by Seung Chan Lim and Peter Lucas.