Categories
Technology

Open “source” – is it enough?

* This blog entry is not meant to harm the sentiments of any. *
What is the first thing that comes to mind when we talk about “Open source”? Well, for me, it's not something exciting. The reason as I see it is pretty clear: It is just not enough if the “source” is open.

It is a known fact that any product development goes through a number of phases. Starting with requirements and design, it goes on till testing and maintenance (or support). Coding (writing the actual code) hardly constitutes 20% (or is it less) of the actual software development process.

If this is the case, then what is the use if I just give you my code? What sense does it make to you, by just looking at the code? Probably it does, but that is not the point. The point is, how easy is it for people to make sense of what the code does, without having proper documentation in place. Are design documents also open? (I don't think so!)

This thought made me delve into the very definition of “Open source”. And I came across this link: The Open Source Definition. This entire page does not make a single mention of the word “design” or “documentation”. Further in clause 2, it seems to be made clear that, “all that needs to be distributed freely is the source code”.

Here's that clause for your reference:


The program must include source code, and must allow distribution in source code as well as compiled form. Where some form of a product is not distributed with source code, there must be a well-publicized means of obtaining the source code for no more than a reasonable reproduction cost preferably, downloading via the Internet without charge. The source code must be the preferred form in which a programmer would modify the program. Deliberately obfuscated source code is not allowed. Intermediate forms such as the output of a preprocessor or translator are not allowed.

Now, me noting this problem does not mean I am the only to have done so. Here is some proof that I am not alone.

Ok, all this does not mean that I don't believe in open source. What I actually feel is that it is just not enough. We need something more! Open source can just be an enabler to this.

In fact, the ThinkCycle initiative of MIT seems to be a solution that I am looking for.

Was my interpretation of Open source wrong? Any takers?

Categories
Technology

The XInclude namespace foolishness

I was going through XInclude for my project.

The project required me to use Xerces SAX parser.

My input XML document used 2003 in the XInclude namespace (http://www.w3.org/2003/XInclude). The XInclude processor in Xerces does not support 2003 namespace but only 2001 (http://www.w3.org/2001/XInclude) apparently because this namespace is no longer recognized (this document says so). So the processor was not working as I felt it would. I tried hard the whole day trying to find a solution and did a lot of silly things (You would expect anyone to do silly things in case they don't get a solution for a long time when they expect the solution to be simple). Finally I tumbled across this FAQ and lo, it said all!!!

Here's what the recommendation says:

Please note that the namespace URI has been reverted back to the URI found in earlier drafts of XInclude. This document defines the namespace URI http://www.w3.org/2001/XInclude; the http://www.w3.org/2003/XInclude namespace URI found in the Last Call is made obsolete by this document.

Too late to realize? 🙁

Categories
General Technology

Babies and Information overload?

I thought and thought whether it would be appropriate to put this in my blog, but later decide to enter it anyways.

I watched a documentary on Discovery some days back on how babies start learning things. The documentary said, babies take about a year and a half to start learning words, then combining them to form mini-sentences (2-words) and then speak in normal language.

To think about it, you can imagine the amount of information that the child is provided with, but it just takes its own time (least bothered about the pace of the world).

But within 3 years they are masters in the field. They have learnt a new language.

It is not just language, mind you. Within 3 years, children learn quite a lot of other important things like walking, eating, what not… and 3 years is less than the time that we spend during our engineering.

(Why this article? What am I trying to say? Interpret it yourself…)

Categories
Technology

Eclipse Modeling Framework

Wonder what they used to develop the IBM's Websphere Studio of products? One thing is for sure. These products are based on EMF models.

EMF is the short for Eclipse Modeling Framework. It helps in developing models and then generating code for it. The model is described using yet another model called Ecore (which is again based on EMF). This model is platform independent. Yet another model called the Genmodel holds platform specific information that is used to generate code. The code generation can be controlled using something called Java Emitter Templates (JET for short).

The Ecore model can be developed using XML Schema, Rational Rose models, Annotated Java, Emfatic (from IBM) etc.

The beauty of EMF is it is free and can be used with Eclipse.

For those of you, who have read till here, but couldn't get a word of it, and still want to know more (because you feel it can help you someway and you feel my description was not good), refer to the standard EMF site.

Also this interview with Dave Steinberg is worth a read.

EclipseCon also has some resources for EMF.

(And ya, you can refer to this site here for various other resources on Eclipse)

Categories
Technology

Can machines think?

The original question, “Can machines think?” I believe to be too meaningless to deserve discussion. Nevertheless I believe that at the end of the century the use of words and general educated opinion will have altered so much that one will be able to speak of machines thinking without expecting to be contradicted.

Guess who told this?

A. M. Turing in Computing machinery and Intelligence.

Paper is available here.

The question is when did he say that?

Categories
Technology

Gang of Four

Ever wonder how this thing figured here? Well, I am talking about the Gurus' who cataloged the Design Patterns and came up with a solid book (pretty solid since it is hard-bound) called Design Patterns – Elements of Reusable Object-oriented software.

Special thanks to Kulki (our mentor) for getting me this book.

For more information on the Gang of Four you may go to the Wikipedia page.

And for people who want more info about this new world you can refer to Booch's page. Booch is the chief scientist at Rational (a company bought by IBM).

Categories
Technology

Computer Health hazards

Do you experience pain in the eyes or joints after prolonged use of computers? Do you feel numbness at the tip of your fingers or pain in your wrists? If so this blog entry is for you.

Prolonged computer use can have really harmful effects on the human body. No wonder huge companies like IBM are giving a lot of importance to this topic. Just have a look at the health hazards (for details you can always use the net):

* RSI (Repetitive Strain Injury) and repetitive motion injury.
* Eye burning, tightness, watering or drying.
* Double vision.
* Headache.
* Neck pain.
* Backache.
* Joint pain.
* Numb fingers.
* DVT (Deep Vein Thrombosis).

So the solution? Again, you may use the net. IBM, Aarogya, TIFAQ etc have very good articles on this topic.

So are computers really a boon?

Categories
Technology

The changing professions

Some days back and myself were browsing on the net and saw a page which listed the professions that are going to appear and those that are going to disappear.

The most important one that we found in the “disappear” list was: Teachers 🙂
The most important one I found in the “appear” list was: Knowledge engineers.

Ok, this is a list of professions according to my wildest imagination, that will come up if the “Next Generation User Interface” (that I was talking about in a previous article) comes up according to plans (whose plans?!)

* Community Space Providers (CSP's) – These are owners of a community and maintain the space in the community. They are responsible for the cleanliness of the community and also for giving permission to users to build structures and also making sure that the structure built doesn't have ill-effect on other users of the community.

* Object designers and producers – These are people who design and create new objects, similar to the carpenters and smiths. They are also responsible for repairing these items when some flaw is found.

* House architects – These are people who help in setting up houses for users (technically speaking, these are the people who actually install the operating system and also make sure that the user has what he wants). They may also be responsible for maintenance of these houses (correction of software problems in Operating Systems).

* Virtual police – These are people who are responsible for ensuring security in the community.

Who else?

Categories
Technology

Bug finding in Windows XP

Bug finding is one of my favorite pass-times. Whether it is finding or learning about easter eggs (they are not bugs of course) or finding/learning about bugs, it is really cool. And it is a really big achievement when you find them yourself.

It is this reason why I was excited when Gmail had a bug. I immediately jumped into action to find some bugs myself. (People in the industry don't laugh at me. I do bug finding on a trial and error basis.)

This is the coolest bug I found in Windows. I call it the synchronization problem in Windows. I don't say Windows XP because this bug has been around in many different forms in all versions of Windows.

The problem is with synchronization of the mouse and keyboard event handlers.

I have tried to be descriptive enough. I have cross checked that these bugs are really BUGS. And ya a statutory warning: I AM NOT RESPONSIBLE ANYTHING THAT HAPPENS (BLAME MICROSOFT)! 🙂

Try this (be sure to read this thoroughly before you start):
(Menu key is the “extra” key to the right on a 104 key keyboard).

The first bug
————-
1. Click on an empty space on the desktop
2. Right click a desktop icon and without releasing the mouse, click “Start”. You should see the start menu and a pop up menu as well.
3. Now without clicking on the desktop, open some application (may be from the start menu).

Enjoy. The menu is not going to disappear!

-or follow a long procedure for the same-

1. Have some application minimized onto the taskbar.
2. Click on an empty region in the taskbar.
3. Right click some icon on the desktop and drag the icon. Now without releasing the mouse button, press “Start”-“Start”-“Menu” on the keyboard.
4. You shouldn't have released the mouse as yet. You will see the taskbar pop-up menu. Just release the mouse.
5. You can see 2 pop-up menus, which shouldn't appear normally. Now open the minimized program and one of the menus won't disappear. (Floating menus is it?!)

Second bug
———-
1. Open up 2 folders. Tile them vertically.
2. Now from the active window, drag an icon on to the other window. Don't release the mouse.
3. Press the menu button on the keyboard and then left click in an empty region in the second window.
4. Make sure you don't 'touch' window 1.

See the fun. Just click the back or up buttons or open a folder. Open “My computer” and the icon flows with the mouse.

An additional bonus:
If you have Microsoft Word open, type some characters. Now move your mouse over these characters and look at the way the cursor behaves.

Third bug
———
1. Open some folder.
2. Click both mouse buttons together on some toolbar button and without releasing the buttons drag the mouse down to the area where files are displayed.

Now just see if the mouse works by trying to open a file in the folder. It doesn't! To remove the effect, minimize the screen by clicking on the taskbar and then restore it.

An additional bonus:
Want to see how it looks when all buttons are clicked simultaneously?
In the above process, after you press and drag both mouse buttons onto the 'files' area, click the left mouse button on a button and drag it downward. See what happens. Repeat for all buttons.

Liked it?!

Two things before I conclude:
1. Don't ask me how these bugs are going to help.
2. Finding 3 bugs in more than 65000 is not an achievement.

Categories
Technology

Effects of computer aided decision making

A quick thought: Tell me what is

19 X 18

Are you able to calculate this without using paper? Probably you can, but I cannot. I remember having mugged up the tables when I was in my high-school. But soon we got to use Clarke tables. And then came the age of digital electronics with calculators hampering our math abilities. And soon came a time when we forgot what 6 X 2 is!

If calculators (with their limited use) can have such an impact on our lives, then can you imagine the influence AI and other related tools can have on us?

I remember having once read that Microsoft Word's auto-spelling correction utility has been hampering the spelling abilities of many, because Word is able to make automatic corrections to common spelling errors.

(Well, this thought came to my mind when I was reading Computer Ethics and I was convinced that computers can indeed raise many ethical issues!)