Danny's Tech: Where West and East Intersect

Tuesday, January 30, 2007

Where's the Beef for multicore

"Where's The Software To Catch Up To Multicore Computing?" Here's a great intro (and summary):
IBM's chief architect for next-generation systems software wonders how far we'll be able to push the software required to take advantage of supercomputer-class machines.
They obviously haven't figured out how to program for multi-processor systems. [Not that I have any better solutions myself...]

Copyright 2007, DannyHSDad, All Rights Reserved.

Labels: ,

Monday, January 29, 2007

Searching for my stuff on my terms

I had a discussion with a coworker about file system (folder+files) compared to how we organize our stuff at home: things are scattered throughout the house based on usage: kitchen contains food stuff, living room has media stuff. And I organize by usage: food, the perishable on easy to reach areas, stockpiled food, oldest expiration date is at the forefront. With media, I have sections of videos I've seen before, videos I want to see, and videos I want to see with my sons.

I just saw a NHK special on google, with a lot of focus on search result ranking and how various consulting companies try to game the system. But the fact is, we don't want to organize and search stuff by page rank. I want to find things based on what I find convenient, not what google deems worthy. They've been lucky so far to intersect the user needs (to find things in the wild world of internet) with their search algorithm. Will this continue? They'll keep trying to improve but I don't know if they are going the right direction since I have my needs that they cannot read nor predict. As the web grows and expertise are focused, finding just the right info will become more and more elusive. I find this to be true if I only have simple, common words to find a specific quote or ideas. As long as I stick with special or expert words, it's easy to find things but there are times when common words are only terms I can use and it is just too general. Because google relies on specific spelling, a typo or misspelling is noted (most of the time), but not searched for. Let alone synonyms, homonyms and idioms. These days, singular/plural diffs are being better handled but far from perfect.

How I find stuff on the internet and my hard drive or my family's hard drive or my work area harddrive would be very helpful (across OS partitions, too, for that matter). I want to see and manage the world (local, work & www) in my own terms not what other companies deem best. Give me my freedom! Don't trend on me.

Copyright 2007, DannyHSDad, All Rights Reserved.

Labels: , , , ,

Ebay Scam

Here's one way an Ebay scam works: how eBay sellers fix auctions. Sigh.

Labels: ,

Tuesday, January 23, 2007

Adventure Author: yet another game programming tool

It seems there is another game programming system or language: Adventure Author. It seems to be focused on creating adventure games, which is good for story telling games but not so much for non-linear games . And they don't have anything for download (as far as I can tell), so it can't be tried out.

It's hard to compare against other tools like, say, Alice.

Copyright 2007, DannyHSDad, All Rights Reserved.

Labels: , ,

Thursday, January 18, 2007

Debug on the fly of the whole system

This morning, I thought that it would be very cool to be able to debug all the pieces of a system at once: the program being debugged and then the interaction with other software including the OS.

Current debugger allows one program to be debugged. But to debug the various components at once isn't possible today. However, if one was to put all those components into a simulator (like QEMU), then it would be possible to debug them all at once, step by step (depending how accurate the simulator is, you can even get cycle accurate debugging in).

Granted, for most people, such a tool is an overkill. But when your program has interaction problems with the OS and you have access to the source (like Linux), it makes perfect sense to figure where the problem. Or if you are writing a new OS API or functions to help out programs, then you really need such function. Or any embedded systems programming. Or multi-threaded programs across several processors.

Copyright 2007, DannyHSDad, All Rights Reserved.

Wednesday, January 17, 2007

Micro-Programs and cooperative scheduling

It used to be that OS used to time share several programs running on a CPU by forcing a context switch over microseconds (or other small time intervals). But the problem with a timed context switch is that there is an overhead of setting and handling an interrupt and then resuming after that interrupt.

What if programs could be compiled into "micro" units (a spin-off of the micro-kernel idea) so that there is no need to interrupt any program: Each micro-program will run at most xyz time units/cycles so that it will let go of the CPU in a fair way. The beauty of this is multi-fold:
  1. OS only does context switch: no need to force a stop and try to recover by restarting the interrupted process
  2. Easier to distribute the program across multiple cores.
  3. Easier to synchronize with other micro-programs -- because a micro-program ends ready to switch (give up its CPU slice), it can be stopped and synchronized with other micro-programs waiting on the same event, etc.
  4. Easier to distribute the micro-program on non-uniform multi-processor systems since each micro-program are self contained.
Obviously the standard code to force timesharing still has to be around to deal with non-conformant programs but the scheduler can be biased to give higher priority to well behaved micro-programs so that there is disincentive(s) for status quo.

Copyright 2007, DannyHSDad, All Rights Reserved.

Labels: , ,

Friday, January 12, 2007

iPhone and GSM alternatives

"Phone Shows Apple’s Impact on Consumer Products" talks about how 3rd party software won't be allowed (for now :-). I guess they are concerned about apps going loose as noted by Jobs:
“You don’t want your phone to be an open platform,” meaning that anyone can write applications for it and potentially gum up the provider's network, says Jobs. “You need it to work when you need it to work. Cingular doesn’t want to see their West Coast network go down because some application messed up.”
Contrast this with open source GSM phones like: OpenMoko and GreenPhone. I believe that very creative applications will come out of these projects, sooner than later (depending on how much momentum they get)....

On the other hand, LA Times has "In Japan, barely a ripple: Apple's much-anticipated iPhone is 'business as usual' in a country where mobile features already are so advanced." So merely having a "fancy" phone won't be good enough in Japan (esp. with iPhone's 2G or 2.5G features when Japanese phones are doing 3G -- 3rd Generation that is).

Update 7PM: Apple: Calling all iPhone engineers:
Company is looking to hire software and hardware techies to beef up features of its mobile phone.
Apple is putting out a call for engineers to join its ranks in an effort to beef up its iPhone.
The company is looking to add 33 positions to its iPhone ranks
So, looks like they'll be busy building their own apps...

Copyright 2007, DannyHSDad, All Rights Reserved.

Labels: , , ,

Wednesday, January 10, 2007

Linux Virturalization info at kernelnewbies

Here's a good starting point for Linux Virtualization at "kernelnewbies" -- their regular info on Kernel hacking is good too but I'm a bit frustrated that there seems to be no direct link from main www URL to virt URL.

Labels:

Friday, January 05, 2007

Bad programmers make bad programs

"Author Blames Programmers for Hard-To-Use Software" gets to the point, with why programs are hard to use:
The problem, says consultant David Platt, lies not with the user but with the programmers, who just don't think like the people who use their products.
Unfortunately, there is no easy answer, since the emphasis is on generating more code. One doesn't get bonus on how clean the implementation is or how little bugs get reported over long term or how easy something is to use or how painless it is to enhance with new features.

Copyright, 2007, DannyHSDad, All Rights Reserved.

KVM and beyond: bare metal apps and microapp multi-threading

Linux KVM (Kernel-based Virtual-Machine) allows Linux to be a hypervisor (or a "super" supervisor or meta-operating system) and control other OS (including multiple copies of Linux).

What KVM (or any hypervisor, like Xen or rHype) allows is for non-OS to run in a partition (the isolated environment). That is, individual applications can be written to run on "bare-metal" or OS-less environment. Or anything in between. The question is how much does the partition handle on its own without a real OS. Either you convert existing libraries to work in bare-metal mode or you make API calls outside of the partition (either through hypervisor calls or IO read/write or virtualized-HW interrupts which are trapped by the hypervisor and passed to another OS-partition or handled directly by the hypervisor (like in the case of KVM)).

This is somewhat like a microkernel, where a small kernel distributes real work outside in the user mode rather than trying to do everything in the supervisor mode. Taking this concept further, a microapp maybe the best way to take advantage of multi-core or multi-threaded system. Be it a game or simulator, it is hard for an application to take advantage of a multi-core system, since an app is usually broken down in terms of large chunks of functionality. As a programmer, it's natural for me to think in one long sequential functionality rather than minimal, small functions stitched together by a microapp "kernel." Yet, until microapps become common, I think it will be very hard to take advantage of multiple cores efficiently. The problem with microapps is with design, debug and maintenance. Debug is challenging enough on a multi-core system, and microapps would only exasperate the complexity. That is, it's easy enough to debug individual microapp but once multiple microapps are running and interacting then the fun begins! I believe that the only way to manage this complexity to have equality complex simulator/debugger.

What those complexities might be will be explored in the future....

Copyright 2007, DannyHSDad, All Rights Reserved.

Labels:

Tuesday, January 02, 2007

Virtualization Linux et al.

"Virtual Linux: An overview of virtualization methods, architectures, and implementations" is a great introduction to virtualization, much better than my attempt.

Copyright, 2007, DannyHSDad, All Rights Reserved.

Labels: