Danny's Tech: Where West and East Intersect

Sunday, December 31, 2006

Brain-Computer Interface

I've watched a Japanese show on the latest "Cyborg" special report, where the most interesting part was the advances in non-invasive BCI, where you can connect to a computer without physically wiring in a computer interface (like they did in the Matrix movie). What's scary is that people's muscle "control" can only be read remotely but maybe even controlled remotely.

Fortunately, the essence of language is non-existent. So I'm not concerned about computers reading our thoughts....

Copyright 2006, DannyHSDad, All Rights Reserved.

Sunday, December 24, 2006

Alice programming: start

A short update: we got the Alice books and have started playing with Alice. Seems like a good tool so far: more powerful than Stagecast that my sons have been programming in. For example, you have control over the body movement of arms & legs and have to program their actions [otherwise, they'll seem like sliding around the screen]. I'll post updates as they spend more time with the tool...

Copyright, 2006, DannyHSDad, All Rights Reserved.

Friday, December 22, 2006

Customer developed products

Here's an innovative way to take open source to the next level: let the customer develop your product!

I don't know if it should be all customer driven (esp for software products) but it is an interesting idea...

Copyright 2006, DannyHSDad, All Rights Reserved.

Thursday, December 21, 2006

Ebay Bubble: PS3 vs Wii

It seems that the PS3 (Playstation 3) bubble prices have popped already at Ebay and are sliding down! I saw some sales which closed at less than $650 which means after fees and sales tax, which means a real loss for the seller.

Wii, on the other hand, still seems to command over $100 of premium on Ebay so the demand is very real still. There was a initial drop in price during Thanksgiving week since so many people bought and sold them on Ebay but since then the prices have averaged above $400 (retails for $250). I must confess that I've sold 2 Wii's myself (grin).

The irony of it all is that I was employed for over 3 years to work on the Cell processor (Playstation 3's core computer chip) -- and I have yet to play on a PS3 let alone buy/own one....

Copyright 2006, DannyHSDad, All Rights Reserved.

Saturday, December 16, 2006

Virtualization All the Way: SoVirt and HaVirt

Virtualization is too often talked about from a very narrow view: either raw hardware perspective or simplly the software library/drivers [so that you can install a software without disturbing others].

Virtualization is basically where an abstraction allows programmers have one less thing to worry about. Hardware virtualization (I'm thinking "HaVirt" or "HawVirt/HwVirt" is easier to say than HV or HardVirt) where the programmer doesn't have to worry about the underlying hardware. With HaVirt CPU, you can run more than one OS (or multiple copies of the same OS) on a single processor without changing the hardware or rebooting to run each instance of an OS. With virtualized storage, you can mount a drive and not worry how or where the space is mounted (unlike SAN which is managed per set of drives).

In the past (and present), virtual machines tried to virtualize programming languages by making the language independent of the hardware (JavaVM or Smalltalk VM).

In my mind, virtualization happens at the most basic level: input and output should be independent of any OS or hardware. UNIX has some ability with text based programs where IO is can be piped from one program to another. This, however, is conditional on using stdin and stdout "channels" for input and output, respectively. This should not be: I as a programmer shouldn't have to worry where and what my IO are: I get input and I dump output. Be it text or graphics or mouse/tablet movements, I shouldn't have to worry about where I get my stuff and how my output gets handled (by another program or OS). Yes, for text and graphics, I can worry about formatting but not something I should specify in detail since some things like button locations should be up to the user, not the programmer. Just as people have language preference, they should be able to chose what the default dialog box size and location and its button locations and mouse focus [along with specific setting per program types and individual programs -- hierarchy of user preferences]. Same goes for font name, font/background colors, default size, and even spacing (double space, single space, etc.). Look and feel should be dictated by user first and programmers second and override must be done with user permission. [OK, it seems I'm getting sidetracked into more UI issues than programming/virtualization issues.]

And you can argue that processing [the core of any program] should be virtualizable. That is, I as a programmer shouldn't have to worry about the underlying language of the machine I'm programming be it assembly language, pseudo code (VM) or some higher level language. What can this core be is where I'm pondering to see if there is a better way...

Copyright 2006, DannyHSDad, All Rights Reserved.

Labels:

Thursday, December 14, 2006

Games with real world consequences: lost money

You hear about violence in games turns people into killers but here's a real life consequence of too much gaming: "Guitar hero? Pitcher hurt playing video game: Tigers’ Zumaya missed three games of ALCS"

It's fun to read about guitarists playing Guitar Hero but a sports player being grounded over a game is funny [maybe not for Tiger fans, but that's a different problem]. How else can we (programmers) gum up the world?

Copyright, 2006, DannyHSDad, All Rights Reserved.

Tuesday, December 05, 2006

Future Gaming to Atari Founder

"Atari Founder Bullish on Social Gaming, Wii" interviews Bushnell and some interesting insight into future of gaming like his number one issue: action gaming like Guitar Hero or DDR (or Wii sports) or eye toys, for that matter. I'm waiting for DDR + Wiimote or DDR + eyetoys combo games myself....

Monday, December 04, 2006

UPL: Proposal for universal programming language

The problem with programming today is that all languages are so narrowly focused on their task that you end up with all kinds of languages from scripting languages (most programming is scripting be it Excel programming or web programming like PHP or Ruby) to architecture/design languages like UML to database languages like SQL or OQL to data structure languages like XML.

The problem is that computer languages have one level of abstraction and one way of looking through the computer. There is no language today that has both low level syntax and high level syntax. That is, you cannot write assembly code with UML. Nor does the C programming language have the ability to abstract higher level concepts other than creating functions and libraries (the later is OS imposed abstraction, not inherent part of the language per se).

There is one company looking into the matter (started as Microsoft research) and that's Intentional Software. (Actually, I kind of touched on it with "Metaprogramming" but Fowler's "Language Workbenches: The Killer-App for Domain Specific Languages?" gives a detailed and better overview.)

How is my UPL better? That's something I'll be exploring over the months ahead!