I am neither a painter nor a writer: I am a software designer

Will software design and development ever will be part of art schools? I doubt it, but why not? After all designing pieces of software is not only technique… it’s art. Like a writer, a painter or a sculptor, software designers use tools to make their ideas real: to share them with other people.

Right now I am prototyping ideas I have for enhancing Talk Digger. My creation process is much more like that of a writer than that of a software developer, an uber-geek.

Ideas pass through my mind; I muse about their utility; I prototype them; I test them; I use them; I play with them; I talk about them with other people; I get feedbacks I integrate these feedbacks into my idea; I change my ideas; I change my works; I delete some prototypes; I go with the flow of my ideas and their evolution.

This is my work.

Sure there are rigid procedures in software development. Yeah there are procedures to design, develop, debug and support software development. Yeah you have to write specifications; yeah you have to perform test cases; yeah you have to do all that … and much more.

However, what I am talking about is the first process, the creative process, the one wherein the technical knowledge does not really matter, the one that will make your software usable; the one that will be so intuitive to use that nobody will think about it but will only think about what they have to do; the one that will help users save time when performing their work. No one needs technical knowledge to develop such software. What he needs is creativity: he needs to be an artist.

It is what I am doing right now. It is the reason why I am not writing that much. I am in a sort of creative mood where I prototype my ideas to make Talk Digger bigger, better and more useful. I try to do these things to achieve Talk Digger’s goal: (1) gathering the best information, (2) archiving it in the best way, (3) displaying it in a most meaningful way, (4) thinking about the best ways users could interact together, (5) having fun doing it.

What is Talk Digger’s goal: finding, tracking and entering conversations evolving on the Internet.

When I am prototyping some of my ideas, most of the time the “final” prototype, the one that has some real potential, is not what I was thinking about when I started developing it. Most of the time it is something that evolved during my development. It evolved with new ideas I had while writing it, using it, contemplating it. This step was crucial, otherwise I would never had these ideas that make a first good idea, a final really good one (it is what I think and what I hope, however it is up to the users to confirm or not whether my final really good idea was in fact that good).

It is certain that when I will have finished these prototypes, when I will start developing the real system, that I will use all the techniques I know to make that application scalable: it is more than essential. However, I think that some developers, and many of their bosses, forget the importance of the creativity process in software development: how the first steps are so important to create an application that will reach the tipping point with users.

I hope that computer sciences degrees add an “art and creativity” course into their courses corpus.

Technorati: | | | | | | | | | | |

Visialize your RDF files, visualize your contact network

I found a cool little demo application last week called RDFRoom. It let you visualize RDF files in a Doom-like environment. There is nothing exceptional with the tool considering that many people are doing research and products that help people to visualize RDF files or any other type of digital information [you only have to perform this search to understand what I mean].

However it stimulates me to write some notes about the possible future of user web interfaces.

Just as a quick introduction, RDF (RDFS/OWL) is a way to describe relationships between Internet resources such as websites and their content. (RDFS and OWL are extensions of RDF that let you describe more complex relationships).

One good example of how RDF could be used is FOAF files (Friend of a Friend). A FOAF is the profile of a person. It describes the person’s relationships with other people, and with her or his publications, interests, etc.

The problem is that if you edit a FOAF file, you will not be able to understand anything at first glance. You will have to read the FOAF file using something that presents the information in such a way that it can be read.

You usually have two types of FOAF viewer:

  1. Text-based, like this FOAF explorer
  2. Graphic-based, like RDFRoom

The graphic-based FOAF reader is definitely more attractive. With a quick look, you can see the relation between many people and the publications of each of them.

With the emerging trend of “Web 2.0”, the tagging systems, the memetrackers, etc. everybody tries their best to present too much information in too-small text-based web interfaces. These guys have done a good job, but there is a limit (and I have no idea if we have reached it yet).

I’d bet that we will probably see some sort of embedded 3D interfaces in the future “Web 2.0” services to help users to visualize and play with this type of information.

Technorati: | | | | | | | | | | |

TalkDigger … towards community interaction

TalkDigger is quietly evolving toward something new. I have been thinking for some time now about how Talk Digger might evolve and how the “conversations evolving on the Internet” paradigm could be extended. I have had many ideas in the past months, some better and bigger than others.

Then I told myself: Fred, you have to start somewhere.

This is obvious; but there’s a significant process behind that obvious affirmation.

Here’s what I have done since I came back from India: I started somewhere. I started to develop a new feature (in fact it is a whole new infrastructure), layered above which I will be able to build other things. The process is quite simple; think small first, and extend features and functionality later.

Easy to say, and it’s what I’m doing … but the result is not that simple.

So now, which direction is Talk Digger taking?

the vision is always the same: helping people find, follow and enter discussions which are evolving on the Internet. With the current capabilities of Talk Digger, a user can find discussions somewhat easily. The results are sometimes good, and at other times not so good. The presentation is normal and somewhat intuitive, as it mimics the user interface of traditional search engines.

Talk Digger also generate RSS feeds with search results. This feature is really interesting because you will receive new results [new discussion’s items] directly in your web feed reader. However, the interaction between web-feed-readers / Talk Digger / search-engines is not that good. Some results are marked as new day after day, etc. It is a good start but it is not enough for me, and certainly not for Talk Digger users.

As you know, Talk Digger is not that bad, but there’s definitely room (and the need) to upgrade it. One of the core problems is that all the requests are processed in real time. It is good for me, because I can easily host Talk Digger on low cost web servers. However, this advantage is not that good for the users. It was a first step; now I have to go forward with the next steps.

So, what are those next steps? Archiving data, and then with that data I will be able to develop ideas that are impossible without the stored archived data.

This is the first next step: developing a Talk Digger Crawler, gathering data, archiving and updating it.

After that I intend to create a community infrastructure, in order to:

  • Help people to define themselves by their works, their interests, and their relations with other people.
  • Help people to find someone that they could connect with.
  • Help people to get connected and communicate with other community members.

I also to create an upgraded infrastructure to track and define conversations, so as to:

  • Help people to easily track conversations.
  • Help people to find interesting conversations.

Finally, I plan to create an infrastructure that lets people easily enter into a discussion they have found using Talk Digger.

That is it.

With these new features, Talk Digger will go a step further into the direction of its driving vision: helping people to find, follow and enter into conversations which are evolving on / in the Internet.

Some people may think that I am trying to shovel clouds, but I am not. The development of this “new system” is on the way. In about 2 months I should start to distribute private access to some people to test the new system. That way in about 3 months or so, if everything goes fine, I should publicly release this new version.

Naturally I will keep you in touch with the developments! If anything crosses your mind while reading this post, please leave a comment below… who knows, it certainly might be helpful to me!

Technorati: | | | | | | | |

Semantic MediaWiki

I just discovered this Semantic initiative by Markus Krötzsch while reading Danny Ayers.

Wow! What a great initiative – trying to develop and test some Semantic Web ideas and technologies in the mainstream.

What is this Semantic MediaWiki all about?

The WikiProject “Semantic MediaWiki” provides a common platform for discussing extensions of the MediaWiki software that allow for simple, machine-based processing of Wiki content. This usually requires some form of “semantic annotation,” but the special Wiki environment and the multitude of envisaged applications impose a number of additional requirements.

The overall objective of the project is to develop a single solution for semantic annotation that fits the needs of most Wikimedia projects and still meets the Wiki-specific requirements of usability and performance. It is understood that ad hoc implementations (i.e. “hacks”) may sometimes solve single problems, but agreeing on common editing syntax, underlying technology, exchange formats, etc. bears huge advantages for all participants.

You can read the rest to find out what Markus and his team want to do (and not do) with the Semantic MediaWiki initiative.

I didn’t have much time to check its under-the-hood construction because I am overloaded with the development of Talk Digger and another contract I have accepted. However I did want to take the time to write a bit about it and the cool things I found.

The project is really great: they are trying to build a simple and easy to use semantic system, where users would benefit from its power without caring about all the technical stuff. They have well defined goals to guide their vision of this MediaWiki add-on. This Semantic MediaWiki is intended for Mr. and Mrs. anybody, not only academics.

How will semantic web capabilities be received by Internet users? How will they use the capabilities? Will they like the new possibilities it gives them?

These are all open questions that such an initiative will help to answer.

Give it a try

Basically it defines relations between the objects of Wiki articles. These things could be a word, a group of words (referred as value in their documentation) or another article. Read the document to know what the possible relations are, how they work, and how they are defined.

Check out what a Wiki article about San Diego looks like in a Semantic Web environment. The semantic meanings of the main terms are defined directly into the article. These definitions create a RDFS graph that describes the semantic meanings of the article.

Yeah well, what does this change in my life?

There are two possible answers: (1) absolutely nothing, or (2) absolutely everything. Think about it – think about Wikipedia using that add-on in their system, such that people start to define the semantic meanings of its articles.

People would have access to the same content; however now that content would be accessible in a new way: computers would have access to the RDFS graph created with the relations defined by Wikipedia users. So a third party crawler could crawl Wikipedia, then check for this tag in each article:

<link rel=”alternate” type=”application/rdf+xml” title=”…” href=”…” />

Then the crawler would download and archive the RDFS/SMW document annotated to each article. Eventually a RDFS/(SMW?) reasonner like KAON could do marvel with all that meaningful data!

Finally I would suggest trying the Simple Semantic Search.

I will try to find more time later to check out this Semantic Wiki more in depth and to talk a little bit more about it.

Technorati: | | | |