Wednesday, May 17, 2006
On Simplicity and Execution
You can also subscribe to individual RSS feeds and be notified when someone you know and trust comes up with a new interesting link.
Why am I talking about this? I started thinking about these delicious features because back in 2000/2001 I was thinking about something quite similar from a philosophical point of view. I wanted to have a way to communicate to a network of trusted people the evolution of my interests and how I was structuring the nformation that I was getting from the internet. I was thinking about a complex trust system, modelled using graph theory. I had pieces of news moving across the graph, gaining strength as they received a thumb-up by more and more users.
I was theorizing about the rise of implicit communities, ephemeral islands in the net auto-defined by links of mutual trust and common interests.
Too much theorizing. There were overwhelming theoretical problems there. How to avoid dangerous trust-feedbacks of information within a network? How should trust be modelled? What are the dimensions of trust?
That's all academic bullshit.
Useful for after-the-fact analysis.
Useless to get started doing things.
Everybody can have a good idea. Ideas have become dead cheap.
Good executon means getting the simplest idea and get it implemented and used by people.
The rest will follow, if it still makes sense.
I need people to shake me every now and again and tell me: "Yes, it's nice, cool, fantastic! but.. what can we implement and ship right now?"
Tuesday, May 16, 2006
Article for Ruby Code & Style
You can answer in the comments or on kiaroskuro AT gmail DOT com.
Saturday, May 13, 2006
Grady Booch
Thursday, May 11, 2006
Burnt Out
I have been in touch with so many people recently.. being busy talking, planning and organizing that my body could barely catch up with my activities.
I now start feeling a bit better and I will slowly go back to my coding, networking, book writing, socializing, plotting and planning. My girlfriend might appreciate some of my time too :-)
I am afraid that if I want to keep up with this rythm I'll have to take on doing some exercising. Andrea, a friend of mine, told me that there is a group doing yoga-like practice in the evening in a park just behind the Colosseum. It sounds good and I might go with him to check it out one of these days. I have practiced meditation for a while in the past at a Buddhist School in England and I know the value of cultivating a fresh unencumbered centered mind.
20th of May Padua Presentation
I feel slightly nervous since it has been a long time since I gave a talk, but I think it's a great opportunity to get back into shape.
I am only afraid that 45 minutes might not be enough to do justice to the language...
Wednesday, May 10, 2006
Cyc Space
OpenCyc Technology - Formalizing Knowledge
--
Chiaroscuro
Saturday, May 06, 2006
Chiaroscuro Radio
Still, it happened. On the sidebar you can now find a link to Chiaroscuro Radio!
My musical taste has been defined at different times as:
- "it sounds like they are skinning a poor cat"
- "gee, they all sound the same"
- "how can you like this stuff?"
Little Boxes in the Spreadsheet
You will be able to stream out Objects, Structs, Arrays, Strings, Hashes, etc.. to the spreadsheet so that you can better visualize the data you are working on.
Is there any feature that might turn out useful to you? I have still got the evening to work on it before releasing the alpha version to the italian ruby community. If you are not on the ruby-it mailing list drop me an email (kiaroskuro AT gmail DOT com) or a comment and I'll send it to you too.
In the meantime I'll leave you with some words from Littleboxes, a classic by Malvina Reynolds..
"Little boxes on the hillside,
Little boxes made of ticky tacky
Little boxes on the hillside,
Little boxes all the same,
There's a green one and a pink one
And a blue one and a yellow one
And they're all made out of ticky tacky
And they all look just the same."
and no, Malvina is not talking about Excel cells ;-)
Refactoring Emphasis in Language
Words are programs, psychoglyphs running into other people's head. Shaping words means shaping active executable knowledge.
While reading " sleight of mouth" by Robert Dilts, I found a couple of very interesting concepts.
Look at the following sentences and feel the difference, although they have the same informational contant at face value:
- I want to do X, but I have a problem
- I want to do X, and I have a problem
- I want to do X, even if I have a problem
I call "But", "and" and "even if" Emphatic Tags and they can be used to move the emphasis between:
- justification, passive stance
- equanimity, objective stance
- drive, propositive stance
You can do a little word magick by restating sentences, while refactoring it for an emphatic change, and throwing them back with a more empowered meaning, even if you have never tried before.
The other emphasis trick is the enabler/toll stance.
Read the following and feel the different emotional effect in front of apparently identical information:
- If you feel like putting some effort in it, you can do anything you want
- You can do anything you want, if you feel like putting some effort in it
The sentence order makes a world of difference. The first part of the sentence sets the context, while the second part clarifies the meaning of the first one.
The if-opening sentence is a Toll Sentence. It's asking you for something, for a precondition, before giving you what you want. It's even hinting at the fact that you are not doing what is necessary. It feels like you are trying to convince someone of something.
The you-can-opening sentence is an Enabler Sentence. It offers you a wide range of options: anything you want, and it then points to the path to go and grab those options.
Thursday, May 04, 2006
Executable Knowledge
I realized that too many time we 'reinvent the wheel'. More mature disciplines - such as biblioteconomy, but also psycholinguistics and neurosciences - have found a way to deal with this problem several decades ago...
It's common to hear people complaining about how Computer Science is immature compared to other disciplines, but I don't sympathise with this point of view. Other disciplines organise knowledge within a specific domain, whereas the domain of software development is the very act of organising knowledge! Executable knowledge, make no mistake, but still knowledge.
If you see things from this point of view, software development is a reflective meta-discipline. It's part of the very core of software development to change itself, its own tools, the way it models itself and the rest of the world. The discipline keeps changing because it's an highly introspective discipline, more similar to literature in this respect than to engineering. It is a discipline that talks about the world, but that mainly likes to talk about itself to reflect, evolve and change.
Software development changes as the world changes, because the way we see the world and organise our knowledge does change. I would find it worrying if it didn't.
Wednesday, May 03, 2006
Good Hungarian
Bad-hungarian is when you prefix a variable name with type information
eg:
fWidth = fSize
the 'f' simply means float.
You can see you have type compatibilty on both sides, but it doesn't say anything about semantic compatibility. fWidth could be used as a measure expressed in metres, whereas fSize is expressed in feet!
Good-hungarian is when you prefix a variable name with semantic information
mtrWidth = ftSize
OR
metric_width = feet_size
you can see immediately that there is a problem there.
Both variables are of the same type (Float), yet they have a different meaning. The prefix difference make the error stand out clearly.
This is very useful in general, but I would argue that in ruby - with the dynamism offered by duck typing - good hungarian is very useful and we already use, without even thinking about it.