I don't think it's that people necessarily care if taskman or explorer specifically triggered a sound, as for a user, the entire shell can be considered an app itself, really, regardless of which applet is currently in focus. What I'm pointing out more
is a general cause. The sounds are by and large rather generic, so the ability to glean info from the sound outside of a generic emotion (alert, error, valium) is reduced; I can, off the top of my head, think of only a few Windows sound "events": startup/shutdown,
beep, and error. And generally, those sounds are pretty obvious, as they have "context" implied in their sound; however, with a million different things than can cause "beep" or "error", and an average of 10 windows onscreen at any given time (a third of
which can be OS windows), for something to beep or error is akin to a room of people chatting before a metting & one says "I have a question!" without raising a hand; with so much noise, who said that? Was it a participant or a moderator or the janitor?
If I have the time and inclination, I can go into the event log and try to match the time with an event, but I currently have 5 log categories, and any connection I make between event and sound will be speculative at best because the event-sound event is not
what is logged (if the event was event logged). Explorer *tries* to help by flashing taskbar items in <gag> orange during certain events, but it is extremely hit or miss in doing it in a consistent manner. Basically, it's feedback with an often ambiguous cause.
So if random app A calls PlaySound("Alert") (which plays the users configured alert sound), Robert Fripp should somehow come to their home, and figure out that it was random app A that called it?
Evidentally, the "" didn't make it quite clear enough that I don't honestly expect Robert Fripp to audibly ID every sound in Windows when it plays, so imagine Robert Fripp also playing a Vista-like rimshot instead of the emoticon. My point is that Windows
does not do a good job at connecting the multitasking visual with the multitasking audio, which results in a confusing experience when the system starts chiming, etc.
Each sound should end with Robert Fripp saying, "The sound you heard was caused by the following application..."
Really, though, I like the sounds a lot and generally keep the defaults turned on, so I'm looking forward to hearing Vista when it's released. The thing I dislike about Windows sounds, though, is the random beep from a window wayyyy underneath a stack of others.
It's a little late, but it'd be cool if the greater the window's Z value, the quieter the sound, and then what I desperately want is some kind of sound log so I can track down a particular sound made at a particular time to find out why the sound got triggered.
Why not just hire someone (main requirements: no pre-existing tattoos and you must sign The Waiver) as a product evangelist whose only purpose is to get tattoos of MS product logos whenever they update? Pay them ~40k a year to just get tattoo'ed and allocate
$300-ish per tattoo x 10/year.
I use the Multimedia Natural now. I got used to the new Page Up/Down layout and really don't miss the USB hub. I absolutely hate F-Lock, as it defaults to off. Did usability miss that maybe, possibly users might want their own preference as a default,
or did MS marketing decide to make everyone adapt to the new way?
My biggest problem with the keyboard is that I can't find Naturals anymore. I saw a gray MMN at Office Max yesterday, but Best Buy and CompUSA no longer have them in stock, and my cat likes to chew through the cable.
Another gripe: I LOVE trackballs (finger, not thumb), but it doesn't benefit from any of the newer design perks that the mice get (leather grip, for example...I'm about to just mold my own formed rubber one) or newer colors.
Minh's point is something that has bothered me as well about Avalon. His example had all the information necessary to build an object (at least, it looks to be, and I've written a deserializer that handles properties that way with a few caveats for explicitly
declaring a concrete type), so why is there a need to specifically say that a child element is a property? What else would it be? If it is a child control and not a property, then why not structure it like so, as Controls is itself a property of ViewPort3D:
Actually, there is a few beta users that are working on their own hosts. Myself, I would like to see something similar to the SQL command utils. Where you have a command window and a results window, etc. As a c# user, I would also like to see deep integration
of msh into the cmd/immediate windows and internal scripting in VS.Net.
cmdlets are user commands (c# dlls) that msh invokes and your dll becomes part of the pipeline for inspection or injection in the pipeline.
Funny you should mention that...I wrote my own CLR app (for communicating with a multi-component distributed app) that is similar (piping, including scripts, everything's an object) but has a mIRC-like interface (input textbox on the bottom and output text
above, but I allow the input textbox to be switched from single line to expandable). It's really interesting when the thing "speaks" .Net, because the power you expose is unreal. For instance, mine really talks to a finite set of components, but because
it's .Net, it could probably talk Monad, too, and vice versa.
I really like some of the aspects of Monad, but not being a CLI person myself, I didn't "get" the format in terms of how you pass/pipe things...could be because watching Jeffrey type in commands, I couldn't really understand the format being parsed...too flexible
I guess. Mine supports ">" and "<" bi-directional parsing (fully configurable, as the pipes are just "sentence" delimiters, so I guess I could add |), <verb> <noun> <params> formatting, script support, but I defined a very restricted sentence format with
all the complexity in the piping order. Monad kinda blew my notion of a grammar out the window, so I'm still trying to wrap my head around it
Win2K has tab-completion as well; it just isn't enabled by default. Check out HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor in your registry.
I'm probably being too picky, but I was hoping it would have a richer CLI UI rather than being so similar to cmd.exe (one big textbox). It doesn't need to be a very visual GUI, but there are areas where UI controls can enhance the CLI experience. I know purests
might cringe at adding any UI elements (even menu bars), but they can be added without making them necessary to using the tool
I'm curious how Longhorn affects this. Paul Thurott posted some time ago an article on the new structure of the OS (core stuff, language add-ons, etc.) Does this organization of Windows come from XP Embedded? If so, is there convergence between the
two in the future?
I think at a micro level, programming is pretty easy (well, after doing it for a while...once you "get" pointers and references or classes or events, writing them becomes automatic). There aren't a whole lot of programming constructs, and most of the
actual lines of code that I write are by and large the same as others. The challenging part is organizing those constructs to build up in such a way that there are as few of those "same as others" as possible without organizing things in an unintuitive way.
Now, the hardest part on working on a real project is trying to maintain a pure and consistent organization of the constructs while dealing with organic requirements and tight deadlines where a customer doesn't care about elegant code or an intuitive API (but
then, I write mostly end-user code) and prefers something hacked together but on-time vs. something that is maintainable and aesthetically pleasing to a developer.
Is there a prohibitive reason for not supporting the C++ "const" modifier applied to methods and parameters? The topic of how to implement read-only collections came up on your blog a while ago, and I came up on the issue last night when I was redoing
some of my collections and the properties that expose them. Thinking about the best way to implement read-only classes such that the owner can control when they are/are not read-only, I always go back to C++ as my favorite way to do it. But then, I'm not
in tune enough with what goes on under the covers with that to know why it isn't used elsewhere.