one awesome VR concept

February 7, 2008

and i thought VR can only be created via high tech stuffs… this guy created it using wiimote.

http://www.youtube.com/watch?v=Jd3-eiid-Uw

 Mr. Johnny Chung Lee also invented the multitouch whiteboard using… wiimote.

http://www.youtube.com/watch?v=5s5EvhHy7eQ

 visit his site for the complete list of projects:

http://www.cs.cmu.edu/~johnny/projects/wii/

blog reorganization..

February 7, 2008

i’ve just changed my blog theme. i thought that the old theme were just too dark. and after surfing through other blogs, i finally noticed that dark blogs are not really that fun to read. so i changed it to this theme, and i think i kinda satsified with this one.

the next time that i noticed is the ‘about’ page. it’s too old, outdated and boring (eventhough pretty much detailed.. a bit too detailed?). anyway, i decided to revamp the page when i got the time. for now i’d just put it ‘under construction’.

next, i found out that i had sooooo much categories that it just not efficient (plus it puts ridiculously long category list on my main page). id have to have all the categories squashed and reassign all my posts again one by one. fortunately, i dont really have that much posts to deal with.

finally, id have to update those links… adding new blog rolls and link of interests will be good.

Shoryuken Cat

February 7, 2008

isn’t this just cute…

Before you say that, think carefully. Years before, I’ve been into this large project. I think we have like ten projects running simultenuously with hundreds (if it was not a thousand) of people in the factory. They’d have like software engineers, programmers, hardwares people, managers, even the top executives running on site. So, it’s pretty big. I’m in the software department, obviously, as a junior developer (they called me that eventhough I think I’m the most skilled one in my team. we’re only a team of 4). Upon entering the project, I quickly realized that we are running on a very specialized platform where facilities that we used to have were non existant. Even the debuggers need some special hardware enhancements and special softwares to run. Compiling and running the code would take you about 2 hours at minimum. So, there were lots of frustration and we have to make sure that when we write code, we wrote it right the first time, or else we’ll just wasting time. The code base were so big that it is impossible to inspect or understand all of it. Not only that, the program were written in C, but without any means of structural designs. So we have a couple of this BIG main functions that says something like:

function A (){
 while ( 1 ) {
   switch ( globalVar1 ) {
      case 1: …
              break;
      case 2: …
              break;
        …
   }
 }
}

And we got some parallelism that some functions/files/modules run on different processes. We access memory deliberately that if I missed a number, such as I write 1 instead of 2, it will crash my module completely without any noticeable faults. So, you can see that its not a pretty sight.

Along came a bug that is so frustrating and unfortunately it was assigned to me. Still quite shocked about the program structures and the scarce of utilities I tried to find the source of the bug. After a while I got so frustrated that I concluded that the fault must be in the library that our module were using. Confident with the conclusion I told my manager. This is what he says:

Manager (M): You sure of this
I: Yes
M: You have checked the codes
I: Yes
M: You tested it?
I: Of course…
M: You have proof?
I: Ummm,… well I’ve seen it running
M: You have direct proof?
I: Err,… not really
M: How can you tell that its the library fault?
I: A guess…
M: Look, we’re engineers, not economic analysts. There’s only 1 or 0, true or false. Give me some proof before you came into conclusion
I: … yes sir
M: Check it again

So I get back to my console and check the codes one again, line by line, code by code, files by files. AND there it is. A bug that I wrote (doh). So I fixed it and came back to my manager.

I: Sorry sir, I’ve found the bug and fixed it.
M: You sure?
I: Yes, I’ve tested it and I have proof
M: Good. In my experience, 99.9% of bugs came from the developer and not from the library, so don’t give me that piece of crap next time
I: … I understand. I’m sorry sir.

Lesson learned. Don’t ever make the assumption that the library at fault at first time. 99.9% of bugs came from the developer not the library. That words were deeply engraved in me even right now. Happy coding!

… a machine that talks

September 20, 2007

Look here. It’s already a pretty common subject, so I don’t think it will surprises anyone. But, anyway I haven’t wrote anything on AI (or in this case Cognitive Intelligence). It’s a pretty cool thing. And I suspect in not so distant future we’ll have these kind of softwares running on our desktops that capable to do at least limited cognitive recognitions. I like the idea of the computer itself actively trying to resolve the relevance of the subject and context that was presented by mining data into the local system itself and the net if possible. However, there must be some basic commands that are needed to start a conversation. Things like opening file or running an application should be available from the start. Thus, a basic set of instructions and words are required. And then there is the thing with memory, SILVIA that was mentioned in the articles seems to be have a short time memory so that it can remember contexts, however, I personally think that a more long-term memory is also needed. The problem with most AI is, AFAIK, that they need a learning process. People doesn’t talk the same with one another, there are styles. And SILVIA, for one, have to be able to learn this styles also if it want to be able to communicate smoothly with the user. False positives at first are inevitables, and SILVIA systems have to be able to comprehend this by reconfirming to users. Users might be frustrated at first, but after it learns, SILVIA shouldn’t produce much false positives. It really like raising a child. To be able to adapt means that SILVIA needs to store informations about the users styles and preferencs, ‘way of saying something’, these memories are required to be stored in somekind of memory. And that’s where the long-term memory came. The long term memory could also be a place for SILVIA to store things that maybe specific for each users. I see lots of potential in the research for these kind of software and very eager to have a good  ‘assistant’ in my desktop. Next step after Cognitive Recognition, is of course, to make them more intelligent. So that, for instance, I can say ‘drive me to office’ to my car and it’ll move on it’s own. But again, DARPA is already on this capability, so maybe we’ll soon to have intelligent car that can be instructed by natural language in the near future. Cheers.

Journey to MCPD

September 19, 2007

Yup, I’m planning on taking the ceritification test. There, I revealed it all to you. My target is to take on the MCPD for Windows Developer. However, after looking at the various kind of parts of it, maybe…. i’ll take them all altogether anyway. My company is paying for me anyway and I can appreciate the certifications here in Japan (especially for those stubborn old fashioned companies who doesn’t believe in new technologies (.Net), young people (eventhough they are *quite* bright – me! being the narcisist that i am – noticed the *quite* there? at least i’m trying to be modest) and doesn’t understand English – at least they’ll understand that MCPD is a Microsoft’s Certifications). I’m actually quite surprised at how many people who have MCPD and MCTS certifications. Look here for the statistics. There aren’t quite so many people actually gotten the ceritifaction.

Read the rest of this entry »

When SQL is just too much…

September 13, 2007

Just received description for my next project starting next monday. And I have to say that I’m in for quite a shock. First, it’s an on going project wich developed in VB6. Yup, the old VB. But it uses some nifty technology (old tech) like DCOM and ActiveX. (Yes, you’ll get security warning when you opened it in your browser). But that alone is not enough, the project, although heavily relies on DB, doesn’t have a DAL. ?!#%%!?. So what did they do, they implement all the logic and the data formatting directly into the PL/SQL. (doh!). No, I don’t speak latent PL/SQL or T-SQL and I have no plan nor intentions on going into that directions. The SQL that I’m talking here is the kind of SQL strings that have multiple queries inside, have multiple aliases, using cursors, formats returning data, use stored procedures, and uses pipelining. One of the shorter ones have like 100 lines of SQL with never seen before operators and directives with attributes like %ROWTYPE and %NOTFOUND, and DECODEs inside DECODEs, constant strings and direct substitutions. (sigh)… when will they ever learn that database IS A DATABASE. It is good for returning data but NOT PROCESSING. That’s what applications do, PROCESSING DATA. When system designers blur the line like this, it is bound to get uncontrollable at some point. Luckily this is only a small project so faults should not propagate very far… or maybe that’s only my prejudice?