Danny's Tech: Where West and East Intersect

Wednesday, November 30, 2005

Cruise gets an ultra sound: at home medical services

"Cruise caught in Sonogram Squabble": good for him. As I proposed USB Ultrasound, one should be able to use it at home with or without expert guidance.

I think medical outsourcing will be a big thing, esp. if privacy can be guaranteed (and shouldn't be hard to do, since who the patient doesn't matter).

Rather than doctors coming to you physically, he can visit you remotely: he mails you the basic test kit to you, you plug it into USB port and with webcam and microphone, he can interact with the patient to go over your basic symptoms. With more complex diagnostics, he can mail you specialized equipment like ultrasound and then do detailed analysis (remotely and with a technician "jacked in"). This way, most exam can be done in the privacy of the home, and if a service company provides the secure link and ensures that the doctor cannot privately record the 'exam,' then people can relax and trust the doctor. It'll save time for the patients and cut costs for the doctor (not having to have a whole staff for receiptionists, clean up crew of the office, less paper work).

Logo today

I haven't thought about Logo but a mailing list got into it and I looked up Seymour Papert and found microworlds along with MaMaMedia. Just briefly looking at them didn't impress me.

Looking harder I found Logo Foundation at MIT.

I've looked for Smalltalk vs Logo comparisons but the best I can do for today is JIME article "Scaleable Integration of Educational Software: Educational programming environments" and a ToonTalk and Logo paper (with little blurbs on Smalltalk and Stagecast).

I've also stumbled on to Kids Computer Programming, with good intro to Stagecast.

Monday, November 28, 2005

Nintendo challenge: conductor/music game

I started reading "Proving the Concept: how revolution will change games" and found it interesting. The idea of a conductor game is a good start but will have to be extended beyond "classical" music -- in today's "band," you only have handful of performers but one could consider the muscians and dancers as part of the "symphony" and try to manage them. How to extend to Jazz (where the mood and the interplay changes the music during the live performance) will be a challenge.

Saturday, November 26, 2005

Video Game Degrees

"Video Games Are Their Major, So Don't Call Them Slackers" made me laugh. I don't think degrees really make a difference in getting a job at least in the game industry. Seems to me that one's example programs or portfolio of games would matter more than any degree. Creating games is artistic work and no amount of grunt school work will help bring out the artist in you. Some structure with skilled teachers and/or mentors might bring out the artist in you but it won't be because you read so many textbooks and learned to pass written tests. And if you're going to do the work (making games) why not just do with your friends and publish them? With the internet and various rights management it is not hard to publish and control copyright of a game software.

Saturday, November 19, 2005

binary decision diagrams for pointer analysis

I watched a program on BDDBDDB "Program Analysis with Binary Decision Diagrams" (video of a seminar on research channel) and found it interesting enough.

I haven't had to use programming analysis with my jobs but it seems it is more valued in the game industry. So I was motivated enough to watch and learn from the talk. Overall, nothing really new but I can see the value of these studies.

Friday, November 18, 2005

HD-DVD maybe the winner

eweek points out that "Sony-NEC optical merger maybe be uneasy alliance" NEC is a backer of HD-DVD while Sony is going only with its format Blu-Ray. Another crack this week was when HP announced that they may back HD-DVD afterall. So is the game over or do we still wait for the fat lady to sing?

Game on for the big boys

"Will small publishers still have game?" talks about being harder and harder for small publishers to get into the game business. I guess it may not be news to those in the industry but I guess it makes sense since these boxes are getting harder and harder to program.

Meanwhile, I'm more serious about GDU4kids. I'll start rambling about the requirements....

Thursday, November 17, 2005

Multi-Facet data

[This posting may not make sense to anyone since I'm exploring some of my ideas about data and web, how the web is so much text based but isn't treated as objects a la the hypertext world envisioned by Ted Nelson. I was thinking about how Squeak would make for a slow web browers and what can be done to make it go faster. Browers like Firefox are interpreters like Squeak so why not the same efficiency? Maybe because Squeak has to treat each web page one character a time while Firefox can treat it as chunk of html's? I'm not sure...]

Today, data is viewed treated as one thing. You can look at it in many ways: in a 3d environment, you can move the camera around the 3d thing or move the character/object (i.e., spin it) in front of the camera. Or in SQL world, you can organize the data in several tables. But the data are kept just one way. Obviously you don't want to keep two versions of the same data (other than for configuration management or versioning), since it may be hard to keep multiple copies of the same data up to date.

However, as a user, I want to organize and see data in different ways. In more ways than one "right way." An example is with browsers: I hate it when the web site sets their own font face and size and even the window/view size. I want to undo those settings and see it my way. I also want to pick and choose what I want to see, not what others want me to see. In USENET, there has been a filtering option to not see postings by specific users (or even class of users based on email or ID). I want to do the same with blog comments or even blog postings (when more than one author posts on a blog). [I guess this would allow ad removals and won't look good to the ad based industry -- I myself have unabashedly added google ads to my blogs (grin). But then just as TiVo has been shaking up the ad-based TV shows, user filtering shouldn't be a big deal: learn to live with it.]

Homebrew Cell Phone

I saw C|net's "Build it yourself Cell Phones" and sounds like a lot of run. However, I won't be making one myself anytime soon. I have enough GSM phones and until they all start falling apart, I'll hold back on making my own phones....

Wednesday, November 16, 2005

GC and beyond

Last night I was playing with Squeak/Croquet. And it is an impressive tool/environment. However, I noticed that it was very slow to come up. Once it was "alive" the 3d graphics was very responsive on my computer (top of the line notebook when I bought it 2 months ago). Almost like playing a 3d shoot'em up game.

I've been thinking about this slowness since then, off and on, and this morning it hit me: Why not optimize code behind the scene just like GC (garbage collection)? Just as GC automatically collects and cleans up dynamic memory usage inside one's code, background optimizer (how about BGO since BO has negative connotation) can look at execution flow and optimize code while things are running. Unlike FX!32 (which optimized x86 machine code into Alpha machine code), this would look at the higher level usage of the language. [Note that I'm talking about doing it in a VM or virtual machine for languages like Smalltalk or Java.]

This article "Virtual Machines and the OS" talks about BGO in a similar way. I like the idea of being able to optimize the VM itself and even sharing this via network. With open source sharing of ideas and peer reviews and even formal proofs, "correct" optimization can even be automatically patched into the VM (much like we do patching of Windows or Linux via the network).

Run-time code optimization is not enough, however. I want something like MTSO (multi-thread synchronization optimizer). With multi-core world that we live in today, you cannot avoid writing multi-threaded programs which means you will have to deal with mutex (mutual exclusion of shared resources) and (synchronous and/or asynchronous) communications between the threads. These are the trickiest issues of writing multi-threaded software and if it can be done under the covers (and optimized during run-time) then it would ease both maintenance and debug of the code. Obviously for a closed system like game console this run-time optimization would have to be done preproduction so that completely optimized version can be fixed in a read-only media (ROM used to mean Memory but Media is probably more appropriate today).

Optimizing for hetreogenous multiprocessor (or AMP, Asymmetric Multi-Processor) environment would be taking this to the next level. Some fancy chips like Cell processor has one main CPU and 8 sub-CPU or coprocessors. Fortunately, you don't have to use any exotic chip to be in this environment. Most computers are AMP today: There are two unique components in the computers: CPU (central processing unit) and graphics chip(s). Most graphics chips today are programmable and are generally called GPU (graphics processing unit) and can do some extra processing beyond the CPU. With BGO, it can optimize code to run on free cycles of the GPU.

With all this optimization going on, next level of optimization would be to schedule tasks (programs, OS services, various optimizers) efficiently. Meta-scheduler, if you will, would look at the run states and adjust priorities and time slices as needed.

With virtualization getting news coverage, being able to manage the individual partitions in automatic way would be nice, too.

Labels: , ,

Tuesday, November 15, 2005

Programming Primer

[I started writing this in October but sort of got left behind. I'm posting it with backdating since I have a really new posting coming right up.]

Programming for me means:
directing computer to follow a set of rules based on given input(s).
There are three ways to write programs:
  1. textual: it can be anything from raw machine code binary or assembly to C/C++ to Microsoft Excel macros. It is a "text" based (I include the so called binary executable files here) list of intructions for the computer to follow.
  2. visual: no text is required to control the computer (underneath it all it could be text based since ultimately it has to run on a computer but text has to be optional and should never be needed). All programming is done via icon and graphical elements like Stagecast, LabView or Statemate.
  3. CASE (computer aided software engineering) tools were meant to bridge the gap between visual programming and textual programming (tools like UML Rhapsody). However, no one has solved the problem of programmers wanting to tweak the computer generated code and then seeing the changes reflected back in the CASE tools. (The gen'ed code is usually nasty to work with in the first place.)
Another perspective are the "generation language" that was all the rage in the 80's:
  1. 1st GL: raw binary or toggle switches on the computer
  2. 2nd GL: assembler
  3. 3rd GL: C, Pascal, BASIC
  4. 4th GL: SQL and some may add IDE (integrated development environment) like Visual Studio or Eclipse here.
  5. 5th GL: AI (artificial intellegence) was to be the answer to all problems: with natural language processing and expert system, one was suppose to write programs in human language (any version :-) and generate perfect code. [In the 80's, there was a sense of "yellow peril" of Japan taking over the HiTech world since Japanese government declared a frontal assult on AI and 5th gen computing. This was when Japanese memory chip makers were pounding US makers (and forced companies like Intel to quit the memory business: funny how today Intel and AMD still make flash memory and Micron was started to challenge the Asian RAM memory makers). Turns out that memory chip was a commodity and now Korean makers are beating the pants off Japanese makers (Chinese will probably be next) -- here in Austin, Samsung is making memory and is planning to expand! Intel still is the biggest chip maker since they specialized in one thing that really matters: the CPU. There is a renew sense of yellow peril with Chinese buying out U.S. tech (like Lenovo buying IBM PC business) but it, too, shall pass...]
I found NASA's version but not quite what I remember. WikiPedia has another take on 4th and 5th.

Language orientation is another way to categorize programming languages:
  1. Procedural: this is the way the computers work: you have functions (procedures) and data, where the programs are procedures and you throw data at the program: Includes languages like assembly, C, Pascal, BASIC, FORTRAN, COBOL, Ada.
  2. Object-oriented: this is all the rage today. The basic idea is that you deal only with objects which combine functions (or methods) tightly tied to their data. Languages include: Smalltalk (Squeak), Java and C++
  3. Functional: treats program as almost pure math. Unlike procedural or object-oriented, there are no internally kept states, preventing any side effects common to procedural languages as well as allowing for formal proof (of correctness). Languages include (pure) Lisp, Haskell and ML.
Aspect-orientation is more of an extension to the above since is more like the ability to create new language keywords (i.e., language extension). Languages like AspectJ and AspectC++ are extensions of existing languages.

Intentional Programming is more like 4th generation programming language in a pure sense of programming levels and as much as I like a lot of concepts there, I don't think it really solves the problem of writing good code: easy to create and test and debug and maintain!

Monday, November 14, 2005

USB Ultrasound

SonoSite was brought up on Barron's Insight in the Sunday papers. They make $45K portable sonar (notebook like devices). I'm waiting to see a USB ultrasound scanner which will plug into x86 PC or Mac and since it contains flash memory, all the software will be installed automatically onto the computer as needed. This software will connect to the internet and download the scanned images to a professionally staffed (in India?) site where the interpretation would be made and maybe even a CD/DVD would be created of the images/video and sent to you. It would be like a rental: you get it via mail, plug it and scan and send it back. The data would be sent back (if no internet) and few days later you'll get professional report + DVD. For pregnant women, it would be sent once a month and the service company will track progress of your pregnancy. For extra fee, you can get a live medtech or doctor do the analysis online and your relatives (with password access) can connect and join in (or husband busy at work or remote on a business trip).

Of course, a more expensive option is to buy the whole thing and keep the equipment yourself. You can get interpretation live or overnight depending on how much you want to pay. Or figure out for yourself!

Sunday, November 13, 2005

Computer breakdowns

We had two computers go bad on us at our home: I spilled some soda on my computer and the keys got missed up enough to need replacement. (I'm typing with a USB keyboard for now. I should get it replaced this week.)

My older notebook computer, which is now my eldest son's computer, its power receptacle (inside the computer) got loose such that the power plug could not reach inside. So I had to take apart the whole computer so that I can reset the receptacle by the outside case. I also stuffed some cardboard paper so that it won't go back in deep. I also learned how to take apart the computer

Toshiba A15 requires that the top part (above the keyboard) has to be pop'ed out and then the screws removed so that the keyboard could be lifted up and then unscrew two screws to separate the top from the bottom (most screws need to be removed from the bottom, as well as battery, HDD and memory -- at least I did so). Taking out the keyboard's ribbon cable and putting it back on was a bit tricky but otherwise, it was pretty uneventful (at least I didn't have any extra parts left after I put everything back together and things seem to work).

GDU: Game Development Universe

With the internet it would possible to create a exchange for not only ideas and tool usage (support for each other and even by the tool makers) but also sharing programs (created games) and even contests (vote for each other's code or even head-to-head AI contest of game code -- you submit your code and the server will match up the contestant "bots" and then rank them and the top rank bot wins). Pay for games or support (rather than vote for a feature or bug fix, one pays via paypal or some other credit system). Maybe a monthly fee ($5 or $20 per year) will pay for 100 credits to apply to buy a game or live tech support or "invest" in new feature. It can also be a one time pay (pay per game/support). I guess one could submit proposals and others can invest in the ideas, too.

Unlike VC funding (write up a biz proposal and see who'll throw money at it), you can develop your ideas using the tool and start adding details to your proposal over time. I guess a flood of proposals won't be fair so maybe charge credits too.

I guess one can buy a license: one time or monthly/annual fee based and then get appropriate amount of credits. These credits can be use for:
  1. tech support (live)
  2. new feature "investment"
  3. bug fix (to raise the priority: cost less than features but still some cost since the game tool developer can only work on so many projects be it bug fix or otherwise)
  4. submitting new games
  5. updating submitted games (even if it isn't yours)
  6. paying for the games
  7. invest in proposals (via credits or game submissions)
  8. contest submissions (much like a winner's pot: the more people join the bigger the pot) and can be bot type of contests or user head-to-head contests (RPG like but maybe something more sane than mere shoot'em up games). As you when each level, you gain credits from the losers.
  9. These credits can always be cashed out for real money and vice versa
How's that for a game development "universe?" GDU?

There are elements of MMORPG including real money to game credit exchange rate. There are elements of Wiki of text based support made into permanent reference (unlike pure chat or web forums or USENET). The added twist is that what people put out there is not merely text but programs and related (video and audio snippets) parts, with prices attached!

Games for pre-teens

I've complained before but I'm not happy with what is available for children (esp. pre-teens). There are books galore for teens and even computer camps for gaming but almost all are geared for teens (for making violent games?) and there seems to be a dearth of materials for pre-teens. Stagecast seems like a good start but since it has it's own (visual programming) language I'm not happy with it. I was hoping squeak had something going but it seems too "formal" and "structured" for an unschooler like me (as it is). I realize that programming can be fun once you get into it but for children in the grade schools (and esp. for those who are ADD/ADHD) who are esp. visually oriented, computer programing via text is a boring way to start.

Since I started with programming calculator, moving to BASIC language was like a revolution in programming! Stagecast gives enough programming ability to create somewhat useful games but not enough detailed or easy control to really make great software (based on what I've tried so far and what I've seen in example code and what my sons have created so far). I may have to create the right kind of tool myself. Sigh.

Saturday, November 12, 2005

Ajax Howto's

"How to use AJAX" (pointed out by digg.com) seems like a small and short way to get started on Ajax. We'll see when I'll make the time to try it out...

Bugs: Bane of HiTech society

Wired had a short series on SW bugs:
  1. "History's Worst 10 SW Bugs"
  2. "Battling Bugs: A Digital Quagmire"
  3. "Microsoft's Secret Bug Squasher"
  4. "Readers response to the series"

Pretty good start but only a start. If you read RISKS Forum, there are so many problems discussed over the two decades (I've been reading it off and on over the years), your head will start to spin after one or two back issues!

Friday, November 11, 2005

Games aren't fun

"Katamari Creator Still Pissed Off" gets to the point: too much games are based on sales potentional not fun and new ideas.

I believe that something like Stagecast and XGameStation and GP2X have all common theme: you roll your own games. (Nintendo's Revolution may allow this possibility as well.) There are some sharing of games but not in ways that will benefit creaters and players, alike. A new market (sort of like ebay for eduational market) is needed but even more would be a tool where game creation is easier than what's available today. I like Stagecast for it's ability for children to get going and is powerful enough to keep the interests of my sons (in creating and improving their own games).

Looking at the books available, they are focused on games with existing tools (like Visual BASIC) rather than something more appropriate for youngsters like Squeak.

Thursday, November 10, 2005

PS3 predicted to be the winner

XTN Data claims PS3 to be the next winner!

Of course, time will tell but I won't be surprised if there is a futures market already playing out the winner, much like HSX predicts movies futures pretty well...

Morfik: Ajax IDE

Firebird DB news has "Morfik: Delphi for web applications" which is an IDE for creating Ajax web apps. Sounds interesting to me but yet another tool to learn that I'll be skipping....

Wednesday, November 09, 2005

Tech: too much to use

Scotsman's "We have the technology, now tell us how to use it" gets it! We have too much tech around us and don't know what to do with them. I mean, how many of us have Microsoft Word and use more than 20% of its features? (I would have used more of the features if I was forced to but I have almost always used Framemaker for tech writing so my experience has been focused on Frame not Word.)

Monday, November 07, 2005

Ebay complete!

So finally sold our "stuff" and got our home, shipped, delivered and got a positive feedback! We've discussed what to do with the money (we agreed to split the profits 3 ways) but I can't seem to persuade my younger son to donate the proceeds. It was interesting to experience the anxiety of not seeing the price move for few days, and then the learning about the cost of selling something with credit card purchases.

I don't expect ebaying to become my day job anytime soon....

Sunday, November 06, 2005

RAID for everyone

"The case for RAID" is a good start on how to make computers more reliable and less headache for users (and those us of who end up being tech support for the rest of the extended family). Unfortunately, software corruptions and lost files by deletion will not be fixed with RAID: software problems (like the need to reinstall Windows) will still have to be fixed by humans. Sigh...