… I think there are parallels between technological development and evolution. I obviously do not believe in Intelligent Design when it comes to biology (and I think anybody who does is woefully badly educated), but after all, I often think that “intelligent design” is much overrated in technology too. Many technical improvements really do seem to be about more “organic” developments, and very few are fully designed ahead of time. In fact, I think most interesting technical problems are too complicated to “design” for - the way you get to a solution is very much through incremental improvements and trial and error.
Internet in 2020 Any Guesses?
Berners-Lee - Socially Aware Cloud Storage and Distributed Social Networking (1)
social networking libero e decentralizzato: questa si che è creatività! “collegare cose note in modi nuovi”
Source: dagoneye
It’s time to return to the original concept of the Web-based Internet—an interconnected, decentralized and distributed, open and independent cacophony of individuals who control their own Webspace, operate their own communication channel, and freely communicate with others without having to worry about a central point of failure. The only way to build a truly open and decentralized global microblogging network is by leveraging the power of the Semantic Web. Doing so will help usher in the reality of the Social Web. Decentralizing and individualizing Stream creation and management will help ensure that the MicroBlogOcean does not have a central point of failure and does not require a central-controlling authority. With a properly semantified and structured Stream, even efficient and effective privacy and identity management become feasible.
Generalization or Specialization? Well, it depends.
(via:jamieforrest)
One of the more difficult tasks in software design is striking a balance between creating a general solution and a more specific one. Should we build something that can handle all sorts of hypothetical future requirements or one that solves a specific problem, but may not work for anything else down the road? Should we take longer and spend more up front but reap dividends down the road? Or should we go quick and dirty now and “cross that bridge when we get to it?”
For example, suppose you were building a web app that facilitated introductions over email. Jane wants to introduce John and Tom. Jane visits a website and enters John and Tom’s emails into a form. The application then sends emails to John and Tom saying that Jane would like to introduce them. John and Tom can click on a link in the email to confirm they would like to be introduced, and the application sends the two of them one another’s email addresses.
Thinking about the data model for this application, you reason that there should be a table that stores each introduction, with fields for Jane, John and Tom’s email addresses. But what if, down the road, you might want the application to support introductions for arbitrary numbers of people, rather than just two? Or what if you may want to handle not just email addresses, but phone numbers, mailing addresses, etc. Should you build the data model now to support these potential features, or should you wait until you need them to implement them?
On the positive side, building a robust data model now would enable you to quickly and easily build new features later; on the negative side, if, for lack of demand, you end up never implementing those features, well then you’ve wasted your time. On the other hand if you only build those things you need right now, over time you will end up with a tangle of spaghetti code.
So what’s the answer? Well, like many other things in life, it depends. It is really a case by case question, and that’s what makes it difficult. There are a few factors to weigh in making this decision:
- What’s the real likelihood of implementing this feature down the road? In the example above I would argue that introducing more than two people to one another at a time is a corner case and therefore not a likely future feature. On the other hand supporting phone numbers and mailing address has a high likelihood.
- What’s the cost of generalizing now? If the present cost of generalizing is just way too high (either in time or money), then you have no choice but to put it off for later.
- Have we been here before? If you find yourself designing something that’s eerily similar to something you’ve done before, and you can foresee having to do it again, you should take the time to generalize now.
I find that many good software engineers fall into the trap of over-generalizing, because that is what they were taught to do in college, and so everything they do just ends up taking forever. On the flip-side, bad coders never plan for the future and just keep heaping crap on top of crap as they go. So keep in mind the guidelines above next time you have to make this trade-off. And also keep in mind that this trade-off is happening all the time in software design, so if you’re not thinking about it, you’re either wasting money or building crummy code.
Source: jamieforrest
Ted Nelson on Zigzag data structures
“I hope that in our archives and historical filings of the future, we do not allow the techie traditions, of hierarchy and false regularity, to be superimposed, on the teaming, fantastic disorderliness, of human life.”
-Ted Nelson (colcluding reamrks of this video)
The word ‘Resource’
An excerpt from Morgan Kaufmann’s book ‘Semantic Web for the Working Ontologist’:
In the Semantic Web we refer to the things in the world as resources; a resource can be anything that someone might want to talk about. Shakespeare, Stratford, “the value of X,” and “all the cows in Texas” are all examples of things someone might talk about and that can be resources in the Semantic Web. This is admittedly a pretty odd use of the word resource, but alternatives like entity or thing, which might be more accurate, have their own issues. In any case, resource is the word used in the Semantic Web standards. In fact, the name of the base technology in the Semantic Web (RDF) uses this word in an essential way. RDF stands for Resource Description Framework.
What I think:
The word ‘Resource’ might have been used in the Semantic Web Standards continuing the World Wide Web tradition. To use a different word was anyway uncalled for when people have already gotten used to terms like URL & URI in which Resource is inherent.
But, probably, why this word crept into the very first standards is because of the human psyche. We consider everything as some kind of a resource, a-thing-of-use. It has now narrowed down further to mean a-thing-of-economic-value or a-consumable. To us things are just not things, they are either resources or non-resources.
Definition of the word Resource from answers.com:
- Something that can be used for support or help: The local library is a valuable resource.
- An available supply that can be drawn on when needed. Often used in the plural.
- The ability to deal with a difficult or troublesome situation effectively; initiative: a person of resource.
- Means that can be used to cope with a difficult situation. Often used in the plural: needed all my intellectual resources for the exam.
- resources The total means available for economic and political development, such as mineral wealth, labor force, and armaments.
- resources The total means available to a company for increasing production or profit, including plant, labor, and raw material; assets.
- Such means considered individually.
Attention Management
Optimeter idea I was talking about in my earlier post is to address exactly the kind of issue discussed below. I know I’m not alone, I’m convinced ‘Attention Management’ is a space to be explored and addressed. It is a serious requirement if we consider things like IAD.
I spent the last year or so thinking a lot about managing where my attention goes. While I love reading hundreds of RSS feeds, twittering, facebooking, etc, it’s simply not practical to do it all the time.So far, I mostly considered how to filter wheat from chaff. But it occurs to me that there is a second part to attention management - how busy am I right now, and how important is what I’m doing? I.e. if I’m playing Mafia on Facebook, sure, open the twitter pipe a bit wider - but if I’m writing code, would you please shut it down for the duration.
I wonder if there are any tools that seriously try to figure out what your attention is on, and how important it is to you….
Source: groby
An Optimeter
We live hooked to a hyperland. The Internet is a vast, virtually endless web of information at our finger tips. Here you can start with a topic and go gleaning information about that topic, a topic connected to that, and a topic connected to that, … It is endless. Is this good? Yes ofcourse! To have information about every thing that catches your attention is good indeed.
Is it bad? Think twice before you say No.
What ever your answer may be, I feel this is bad in certain ways for me. Heard of Information overload? I came across a book the other day at the bookstore which had tips to deal with Information overload (right now I am avoiding the temptation to google out ‘Information Overload’, lest I might drift somewhere else). I some times tend to get lost in this ocean of information, drifting aimlessly, forgetting where I started or what-for, till I am exhausted and need to take a break to gather myself. I am sure many web surfers have experienced this some time.
It is easy to get lost in an ocean where you can row your boat in any direction. We need tools to help us stay our course. We have stars, maps & compasses to sail across real seas to reach places. I think we need some more guidance equipment for the web.
Let me explain this with a sample scenario:
I was interested in the topic ‘semantic web’, I googled the term and I got some hits.
* Wikipedia entry for Semantic Web
* W3c Semantic web Activity
* News results for semantic web
* …
I clicked on the news results to see how the topic figured in the news, as I went googling & link hopping for a while, different things caught my attention. After an hour or so I realized that I started with ‘semantic web’ but, had ended up creating a gravatar and was checking out socialactions.com web site. These were topics a little far removed from what I started with; the ‘semantic web’.
Now, Imagine an application that can help me stay my course. An app to which I can initially tell what I am after, and as I surf the web, it monitors where I am going & calculates the proximity of the content I am surfing in relation to my topic of interest, then alerts me and guides me. Lets Say there is some kind of a ‘gadget’ in my browser-bar which stays green while I am surfing w3c’s semantic web pages and turns red when I drift towards a site which is far from my topic of interest.
This is a tool I’d like to have, and wish to build. I fancy calling it an ‘Optimeter’’
Do you think this is interesting? Please comment.You can also write to me at: oneway(at)rawjeev[dot]com.
OO design vs Ontology modelling
You should be very afraid of classes that are nothing but a collection of fields and their accessors. Object-oriented design is about providing objects that are able to do rich behavior, so they shouldn’t be simply providing data to other objects. …
-Martin Fowler (UML Distilled, 3rd Edition, Chapter 3)
When we consider OWL/RDFS, where Classes are void of behavior and Properties stand independent from specific classes, the statement above gives us a hint to how Object-oriented design differs from Ontology design and the shift in the thought process that is required. Even though there are many overlaps in terminology/concepts of OO design and Ontology modeling (based on RDFS/OWL), I would like to say that Ontology design is more closer to Data modelling.
(I reserve all rights to change my opinion though.)
-Rawjeev
When, Anyone can say Anything about Anything…
… mediation of multiple viewpoints, is essential to fostering understanding in a web environment. As the web of opinions and facts grows, many people will say things that disagree slightly or even outright contradict what others are saying. Anyone who wants to make their way through this will have to be able to sort out different opinions, representing what they have in common as well as the ways in which they differ. This is one of the most essential organizing principles of a large, heterogeneous knowledge set.
…a lot of accidental complexity that was caused by low-level programming languages has disappeared, but unfortunately the industry overshot the target and now accidental complexity is caused by ever more elaborate frameworks and products that over-abstract problems, causing development teams again to wrangle with complexity that has nothing to do with the actual business problem.
Searching for meaning - from David Coxton's IT blog
If the internet were a giant book, containing all of human knowledge, it would surely have a search engine as it’s index. And what an index that would be! With the seemingly infinite variety of data and the breadth and the depth of information on the internet, an index this big would probably fill the largest of libraries, on its own…..
Berners-Lee: We no longer fully understand the web
Tim Berners-Lee, inventor of the World Wide Web, says its size and power over society have become so great that we no longer fully comprehend how it works
(opinion - New Scientist - 05 Jun 2009)
