Danny's Tech: Where West and East Intersect

Tuesday, January 31, 2006

Usability: why refresh and restart are needed

I have read many articles (I don't remember where I saw one recently, since quick search of digg and /. didn't turn up anything) on how to tweak Linux to be able to compete with Microsoft Windows (or Apple's Mac OS X). But I think it is all wrong.

Linux started by extending what Linus knew to be a replacement of existing UNIX.

Unfortunate it never got away from its roots: being a copy cat, a free version of whatever is "hot" (which has changed ever so slightly over time).

Users do not care about POSIX compatibility or OpenGL API. Or what filesystem is running. In fact the idea of having files or even saving into files make no sense at all for a non-programmer. Unfortunately, children of today growing up with computers just get used to it, be it with Windows, Mac OS or Linux. They all perpetuate the filesystem non-sense.

Why should one have to worry about files and their names? I was frustrated in having to help my wife forward an attachment from an email. She had to unattach it and then compose a new email, re-attach the file and then send it on its way! Why couldn't she just email the content and strip out everything else? (which "forward" command don't normally allow you to do). [I normally won't give two thoughts about it since I'm so used to it, but that's only because I've been programming since 1980 and used email since 1983 or so.]

ProgLang: Conductor and C@T

One insight of this early Tuesday: why can't programming be more like conducting? I don't want to worry about each thread or process. Just as I no longer have to worry about register allocation nor memory allocation (for most languages with GC or Garbage Collection), I shouldn't have to worry about multithread programming and synchronization between them threads.

Completely unrelated: but I'd like to see a @ sign in a name. C@t is all I can come up with.

Friday, January 20, 2006

Call Center Maze

I found "The Great Escape from Voice Jail" esp. what one has to go through to get anything done. I just tried to authorize my new card and after typing in all kinds of numbers, it tells me the system isn't available! Why?

Anyway, I do enjoy the Citibank commericals of making fun of the call center maze that most companies make us go through....

Gesture in GUI

I was watching the SkyOS demo in flash and noticed a gesture control box. It reminded me of Applicon usage of gesturing in their tablet based GUI interface (googling gesture and applicon brings up some old references). It's too bad that gesture isn't normal part of interfaces yet.

I had hoped to see it on tabletpc but it only has limited features and the only tool which seemed interesting (SmartGesture) doesn't seem to be supported anymore.

Now I just saw InkGesture touted at JKOnTheRun!

Thursday, January 19, 2006

Factor language

I stumbled onto Factor language (I don't remember how, now), and I find it very appealing. It tries to balance the ease of use of scripting (interpreter) language with performance of statically compiled languages. It is basically a fancy, modernized version of Forth. The goal of making everything (GUI, editor, etc) writen in Factor is a nice ideal. (Much like Smalltalk.)

Unfortunately, I don't think that people who want to write code care so much about language purity. Which is why I believe Smalltalk didn't take off so well -- too much on the purity side and not enough usability (Java was slow but freely available, while Smalltalk wasn't free for a long time).

I don't know what the right focus will be for a language but I believe that a tool which is easy to use but powerful and accomodating (can interact with JVM or SVM or C). Being able to generate for, say, JVM would make the final product more portable.

I'm not sure how to deal with "when something goes wrong" outside of the tool/language (e.g., while it is running on browser as Ajax code).

Tuesday, January 10, 2006

Pain of PVR

I haven't blogged much but I have had many griefs with PVR (personal video recorder). We started with Dish PVR which we've had for about 3 years. In 2004, I bought an MCE computer in time for the Olympics but because of some software bugs in Windows, I was unable to use it. I also tried to upgrade the Dish PVR disk space but was unsuccessful. Anyway, everything was status quo until now since when we moved out of our previous home, we stopped our Dish service (since we moved into a rental).

I've purchased a Panasonic DMR-EH50S for my parents and that was a disappointment since it doesn't automatically delete old recorded shows. I thought about getting TiVo but didn't since I didn't want to hook them up to a phone and deal with various cabling issues. Maybe I should have gotten a TiVo box after all.

Anyway, with that experience I decided to resurrect my MCE 2004 and after patching it all I found that the processor was too slow. I tried to upgrade with Sempron 3100+ but it won't boot and I returned it. I next bought a Intel Pentium 4 3.0GHz (64-bit capable) and it came up without any problem (but still kind of slow). I bought Beyond TV (for 2 tuners) but it turns out that one of turner will not work (some driver problem) and Beyond TV cannot use the turner which does work. So using MCE 2004 (with only 1 tuner) is what I make do. I'm not happy that the video and audio are not in sync but I guess I can live with that.

[I went with MCE because I wanted dual tuner and RAID hard drive but I didn't realize how much noise 3 or 4 drives would make! I don't have to worry about HD failures but what a pain it'll be if Windows crashes on me have to reinstall everything.]

I've also had many grief with wifi networked on our rental home but that's another blog complaint....

Saturday, January 07, 2006

Correctness by Construction (CbyC)

I read "Correctness by Construction: A Manifesto for High-Integrity Software" at first with excitment on what they did right (seeing the chart with low error rate per line of code). However after I read the formal methods stuff I started to check out. This is only meaningful if the end product is well known and clear specificiation is possible. It is only good for new projects as well, since taking and changing existing code (which is where most of the money is spent in the industry) requires different approach.

I'm looking for ways to allow big picture ideas to be sketched out and then step wise refined while keeping the original ideas easy to maintain and update. Requirements change over time and tools/language/process have to deal with the ever changing world.

[Funny how "Free Agent Nation" points out that only school systems/buildings have kept the same look and feel of 30 years ago unlike businesses and even govmnt offices.]