How could this possibly be a material time sink in training.
1. Create a shortcut on every desktop that launches sharepoint in IE. 2. Create a shortcut on every desktop that launches Firefox labelled 'Internet'. 3. Non-profit!
The words I would use, rather than 'weird' would be: silly, unnecessarily obtuse, stupid, etc.
What are the types of Bar and Baz? How do you make sure your fixed-point decimal numbers dont get accidentally coerced into floats (and thereby getting randomly rounded)?
How do you distinguish between public and private members?
I really really dont get the fascination of developers with JavaScript. If you want to do real work with tools, interfaces, and declared types, then there are better solutions. If you want to work in a dynamic language, there are better languages (python & ruby, others).
The ONLY bene I can see of JavaScript is that (some flavor) of it is in each browser. Of course, that 'different flavor' problem is a royal PITA.
I'm not talking about Flash movies, I'm talking about Flex apps. Yes, both use the Flash player, but they're very different things.
To do web apps in DHTML/JavaScript/Ajax you have to be real tricky, and its easy for browser settings to disrupt it. Only very recently do some of the javascript frameworks (prototype, dojo, etc etc) help to abstract you away from browser issues. But its not perfect.
So to do in place grid editing with model and business rule validations, lookups and validation of drop downs, recordset paging, and fast CRUD operations against the database or app server backing the web app. These things are fairly terrible to do in DHTML/JavaScript/Ajax. Can you do them? Yes. Is it easy? Not compared to other platforms like Flex or Silverlight.
Plus with Flex you get AS3/ES4 which is more of a real grown up language with optional static typing, namespaces, packages, etc. With Silverlight you get C#, VB.NET, Python, or ruby. All of which are better than JavaScript.
Not to mention you get a real canvas for dropping your controls and can do absolute or relative positioning (ie, flow or fixed) that ACTUALLY WORKS (compared to DHTML/CSS).
Doing that with HTML means you have to declare it for the least common denominator, then put in a special exception for IE6, and another special exception for Safari for Windows (which of course renders things differently than Safari for Mac), and special javascript libraries for Opera (which of course uses a different javascript engine than the others), and handle IE's auto-padding of images in a cell.
It just goes on like that endlessly. And its not getting any better! When using a richer platform like Flex or Silverlight, you dont have to deal with any of that crap. You target one platform, and it 'just works'. No trickery required.
And again, I'm not talking about web 'sites', I'm talking about applications that happen to use browsers as their UI. So Java/Spring/Hibernate/Oracle or RoR/MySQL on the backend, with the Flex/Silverlight talking REST or SOAP (or maybe something like BlazeDS) to these back ends.
I think you're going to see over the next 5 years a huge move away from DHMTL/JavaScript/Ajax for web apps to the richer platforms like Flex and Silverlight.
It's just too compelling for all the pieces. Its MUCH more productive from a developer standpoint. Faster time to market for the business. And a better experience for the user, with the only real downside is that they have to suffer through a short 'loading' time up front. But after that its much faster and more interactive than dhtml/ajax.
You'd be surprised how small the swf files coming out of Flex apps are though compared to typical flash movies. ActionScript code compresses very well, and grids, drop downs, tab controls, text boxes and the like take very little space to declare.
You can check out some examples at the Flex Showcase.
Set aside whether Vista sleeps/hibernates reliably, as thats not what I'm speaking about.
What I'm saying is that in XP, the more you would sleep or hibernate, the more you would accelerate system degradation.
So running a desktop for 3 weeks would work great, but running a laptop where you hibernate or standby 5-10 times per day, it would last much less time before needing a reboot.
Not all apps deal with sleep/hibernate well. Tons of devices/drivers dont deal with them well. So doing lots of sleep/hibernate would mean the system would degrade faster.
With Vista, the system is overall much more stable, and seems more resistant to leaky apps and problematic drivers, so it lasts longer under that type of usage than XP did on similar hardware...
Back to your comment, Vista does sleep reliably, at least on machines with good drivers.
The measure of whether a system is able to come out of sleep/hibernate successfully (a totally separate thing from what I'm talking about above) is 100% a driver issue. Device manufacturers have to write drivers that deal properly with standby/hibernate and recovery from such.
Most dont.
This is why you'll have someone with a high quality machine (like what I'm using) where sleep and hibernate work well, but another person running different hardware (especially consumer level crap) but the same Vista will lock up trying to come out of sleep or hardware.
This is one area where Apple's own-the-hardware/own-the-software approach pays off, and why things like that work so well for Macs.
Of course I keep Subversion working copies in my Home directory. Where else would I keep them? Keeping them anywhere else would have UAC go mad as well. Anything related to you as a user, certainly including anything you may be working on, goes in Home.
Thats interesting... I've never seen a developer operate that way on a Windows box before.
Typically, in my experience (both on my systems and the devs I've worked with) you just setup a folder at root called dev or localdev, adjust the ACLs so that you have modify on the tree, and put things like a local subversion install, db servers, IDEs, and project paths.
Mostly though because I cant stand being stuck in a path 40 characters deep while doing dev work from the command line. I want to be in one only a few characters deep (hence C:\dev or similar).
It's better on Vista, now that its C:\users\username\ rather than C:\Documents and Settings\username\, but still.
Are you sure that wasnt a beta or RC version you're speaking of?
I've had this computer as my company's guinea pig for Vista since Nov 2007 (ie, long before SP1) and I've never seen anything like that happen.
That definitely was not the case on this machine, even with the RTM version of Vista.
I did experience other CIFS/SMB related problems though. There was a known issue where you couldnt access windows shares over a PPTP link. So if I'm sitting at starbucks and VPN into the home office, I cannot actually map drives or use server UNC paths there.
It was supposedly fixed in SP1, but only works intermittently even then for me.
I know this is a common refrain, but for most industries, its just not true.
Nearly all of the systems I've managed have been run as non-admin since the Windows 2000 days.
It got easier with XP because of RunAs and some of the community information out there that resulted in the MakeMeAdmin, DropMyRights, and other resources.
It's dead easy in Vista, because you dont have to explicitly invoke it. If the system needs to elevate, it'll prompt you for it, you dont have to anticipate the elevation need.
Are there some industries and job types that require lots of elevation? Sure, but they're in the minority. Developers is a good example, but this will require admin rights on any OS, as you're starting/stopping databases, invoking system debuggers, etc. But even there, you CAN configure your dev environment to, for the most part, run without needing it, based on where you install the apps and the ACLs you set on the folders.
But I've been sold on it, from the papers I've read and the experiences I've had and have read/heard about others.
For example, there are tons of anecdotes about people using ZFS and just being blown away by how often it reports data integrity errors.
Another bit of evidence is how often files get silently corrupted, even if only a little bit. And the file fragments and broken metadata that shows up on all drives when you do thorough checking.
You're right in that it doesnt have a big impact in the real world. I believe this is because many of our systems are built to be robust against small errors. Many file types can take the occasional bit flips without major loss of data (though dense binary structures like the windows registry are notoriously susceptible to even this).
So no, I cant quantitatively support it. But it does resonate with what I've seen over the past 15 years doing this kind of work. Part of it is that systems are just inherently stable.
Even the most stable systems will occasionally just degrade, because of corrupted files or hardware problems. Often leaving file system detritus behind after.
Home users (for the most part) dont care about DRM.
They just want to be able to watch the HD broadcast in Media Center, or their new Blu-Ray discs.
If MS did as you say, then no Windows user would be able to do either.
The choice they made, only the fringe geeks are pissed at Microsoft. If they would have went as you said, the geeks would be proud, but still wouldnt buy Microsoft, and the huge home market would be pissed, and also wouldnt buy Microsoft.
I dont think thats the problem, at least for the big OEMs.
For example, take HP. I am using a fantastic Compaq 8710w running Vista Business x64.
It's been quite good, very stable. The most unstable things have been the NVidia drivers, but they're getting better.
But compare my compaq (from HP) to the Presario on sale at Best Buy (from HP).
The Compaq comes with no trial ware, no AOL advertising, and all rock solid drivers, in BOTH x64 and x86 form, and a total of 5 discs (Vista x86, Vista x86 drivers, Vista x64, Vista x64 drivers, XP Recovery disc (OS and drivers).
The Presario comes with underspecced hardware, so much trialware that just that consumes half the machine's resources, and incredibly low end parts with terrible unstable drivers. It probably cant even recover from standby.
What this tells me is that the problem isnt (for the most part) OEMs and IHVs not knowing how to write drivers, but just not caring.
Because the drivers and equipment on my laptop (which is intended for engineering use) are quite rock solid, but the consumer focused ones are crap.
I dont think this is a problem that throwing devs at will fix.
That said,there is a damned good reason why folks hate Vista,and it is all MSFTs fault. They pushed it onto the single core "Best Buy specials" with 512Mb of RAM and Vista Basic,which again....torture.
You've got the causality a little off.
Microsoft doesnt install Vista on hardware. Microsoft doesnt pick what hardware to sell with Vista.
ALL Microsoft does is to control what equipment you can put those 'Vista Capable' stickers on, and they almost had it right.
Then they ended up caving to pressure from Intel and some OEMs (though not HP, interestingly) to allow them to sell Vista with the 'Vista Capable' sticker on machines that they shouldnt have.
Because sometimes critical bugs are found, even in an RC.
It happened more than it probably should (ie, significant changes even in the RC stage) with Vista.
But even in the perfect world, sometimes that just happens.
Particularly around drivers. You would be amazed (I'm assuming you dont write drivers for a living) how utterly crappy so many of them are.
They do terrible, terrible things like rely on undocumented and unsupported data structures in memory. They sometimes hardcode function entry points (which can change with a final release and a final re-compile). They sometime send up relying on behavior based on an obscure bug that was present in the RC but fixed in the RTM.
There are tons of reasons this can happen, and most of the likely ones not even Microsoft's doing, though it could have been them too.
The indexer/superfetch grinding the disk way too much, especially if you have lots of files updated often (like, say, a Subversion working copy).
FYI, you can completely control the indexer. And I'm pretty sure by default it will only index home directories, so it should never pickup subversion by itself (unless you put the subversion store in your home directory, which would be odd, but possible).
WRT Expose... for many people it would be useless, as it requires you to take a hand off the keyboard and use the mouse. This means it would MASSIVELY slow me down. I realize I may not be typical though.
That is not to say that Flip3D is any more useful... I still use ALT+TAB, and it works great, and its lightning fast, and I never have to take my hands off the keyboard.
On my machine, UAC prompts taking freaking ages. When one shows up, first the screen goes black for 5-10 seconds. That may not sound like a lot, but it is when you're trying to use the freaking computer.
This is one of two things: either wonky drivers or a CRT/Monitor that takes alot of time to change modes.
Then the prompt appears. I Accept it, and then the screen goes black for another 10-30!! seconds. Then finally the computer trudges along again.
This can be caused by the same issues as above, or if the machine belongs to a domain, but cant reach any DCs when trying to elevate.
Media keys have a noticeable 2-second lag.
This is 100% a bad driver issue. It doesnt happen to be a Toshiba laptop, does it?
We did some help with a customer who, against our advice, bought a Toshiba laptop with Vista Home Premium (to use in his business). Even the FREAKING FUNCTION KEYS require special drivers. And the drivers crash. Often.
Unfortunately, even still, most consumer level Vista machines are utter crap. And I dont mean Vista (though it has its own share of problems) but I mean utterly crappy components with half-broken drivers.
I am so utterly sick of people who buy the flashiest prettiest device out there, against our advice, and then have to pay us to fix it, because they bought crap.
I'd rather everyone would just listen to me and STOP BUYING CONSUMER LEVEL EQUIPMENT. It's all crap.
Sorry about the rant, this stuff frustrates me. I can spec you an HP Compaq laptop that will run Vista x86 or x64 FLAWLESSLY, contains no trialware (not one piece) and just scream, and will always work.
But no, everyone wants the shiny red Presario from Best Buy. Shame on HP for selling that crap while they make great products, and shame on my customers for not listening to me.:)
Seriously though, if you're still reading this late into the rant, what is the make/model of the machine?
Runas is there, but it doesnt really work in most (including the default) UAC configuration.
While you can right click anything in the GUI and choose 'Run As Administrator' which forces an elevation and UAC prompt, there is no such equivalent at the command line.
It's extraordinarily irritating.
What most people end up doing is just launching one cmd.exe with 'Run As Administrator' and then just leaving that there on your desktop.
It's like starting up a terminal, doing sudo su - and leaving it there for when you want root without having to do sudo and a password.
Hopefully a command line way to force elevation will be in a future service pack.
I'm not real clear on what you're asking, but if you're talking about why it does Yes/No versus asking you for an account with admin privs... then thats the joy of supporting home users.
The UAC defaults are appropriate for non-technical home users. These are people that cannot remember passwords. At all.
If Windows by default forced them to create two accounts and remember both usernames and both passwords, I can guarantee you that a very large portion of the home users would never be able to log back into their machine, much less successfully elevate with different credentials.
If you WANT it to prompt for different credentials, then configure UAC to do that. It's very simple. In fact, thats how it is in nearly every business where end-users dont run as admin on their boxes.
Lets say you want to move an icon from your personal desktop to the "All Users" desktop, you will get 3 UAC prompts. Ubuntu has never prompted me 3 times while performing a task.
This is not the case, anymore at least.
I dont remember off the top of my head if this particular quirk was one of the ones fixed between RC and RTM, or fixed in SP1.
But on a current patched Vista machine, it causes just one UAC prompt.
I just tested this on my box here to confirm before I wrote this.
You are correct in that it used to do this on older builds of Vista. It was very annoying.
The 'renaming a file that you dont have access to' was a similar problem, that one I know was fixed in SP1.
It doesn't stop there, though. Running a command with sudo is a user-initiated action. You can pause, browse the web or man pages to check for details or edit the command. UAC, on the other hand, pops up at any time at the behest of some process and blocks the entire desktop while you decide, so you can't even check around what's happening. (It should be noted here that gksudo is just as bad, and I've never been a great fan of it. At least I don't use that vile program myself.)
You can user-initiate commands with UAC on windows as well. Through the GUI, right click and say 'Run As Administrator'. From the command line, start a cmd.exe as Admin, and then do your work from there. Same as sudo su - basically.
If you dont like the secure desktop, then turn it off, exactly the same as you avoid using gksudo.
Of course, this gets complicated when you're talking about the owner of a PC. Still, when I set those sorts of people up, I give them 2 accounts: one with admin access, one without admin access. I give them lots of warnings that the admin account is dangerous, and that they should only need the admin account for installing new software, and I tell them not to install software they don't need. That won't stop someone who won't follow that advice, but at least it puts the idea in their head that not everyone should have admin rights all the time, and that installing software is dangerous.
Yeah, thats pretty much how smart people setup windows too. Its easier in Vista, because you can either just let them use the UAC approval prompts for elevation, or still use two accounts. It basically works exactly the same as you describe.
Of course, making this distinction is easier when you're running an OS that allows you to run basic applications without admin rights.
Explain to me what 'basic applications running without admin rights' has to do with the OS?
You've been able to run windows as non-admin quite effectively since the windows 2000 days. I've managed the systems for a number of organizations that did exactly that since then.
The only reason you cant is if some piece of software (rightly or wrongly) says it requires admin to run.
How exactly is the OS responsible for or able to fix that?
MS did what they could in Vista with the app virtualization shims, but thats fairly hacky and easy to break.
What would you suggest they do in place of what they've done?
Also, most of the 'security' pop-up windows are not from other programs requiring administrator rights, the majority of them come from the operating system itself, for example you have to go through a couple of them just to open the device manager.
This is not even remotely true. Right click on Computer, choose Manage from the context menu. You are prompted for approval or credentials (depending on how you have UAC configured). Then you're in, and its done.
Furthermore, how would you suggest the system respond when either the user, or something running under the user account, attempts to do something it doesnt have the privileges for?
Thats all UAC does. If you dont have the perms, it prompts for elevation/approval. How else would you handle it?
I think what you're really trying to say, is that the 3rd party software market in the windows ecosystem sucks, and is filled with software that unnecessarily causes elevations. In addition, many people dont understand that some parts of the Start Menu and Desktop belong to the 'All Users' profile, and non-admin users dont have modify rights to that profile (correctly), and so it causes elevation.
I bet you cant describe a single elevation that is prompting when it rightly shouldnt be.
And if you're in a corporate, and want people who dont have privs to just fail, then you configure UAC to do that.
The thing most people fail to think through is that there really is no good solution for this problem in the windows ecosystem. If you think you have a better one, dont hesitate to toss it out here.
This is excellent advice.
I'd supplement it to say (mostly in agreement):
After your core java stuff, get some experience with Spring and Hibernate.
EVERYTHING nowadays uses Spring and Hibernate, in my experience (including our stuff).
Get familiar with the libraries and helpers available on Apache Commons and some of the ex-projects on Apache Jakarta.
In Commons, particularly pay attention to stuff in the easy to miss Lang area, which has huge amounts of handy utilities and helpers.
If you're doing web apps on Java, you'll have to pick a web framework (ick). I cant help much there, as I hate them all equally.
JSP is the devil.
How could this possibly be a material time sink in training.
1. Create a shortcut on every desktop that launches sharepoint in IE.
2. Create a shortcut on every desktop that launches Firefox labelled 'Internet'.
3. Non-profit!
Okay, 3 was a joke, but whats so hard about that?
IE defines 'intranet' as either UNC paths, or "whatever the admins have decided are the list of intranet sites".
In the bulk of cases, intranet sites (ie, payroll, timecards, financials, etc) are not available from outside the corporate network.
So you have to VPN. Which means you have special instructions.
Which means that one of those instructions is to add the intranet site to the intranet list in IE.
The words I would use, rather than 'weird' would be: silly, unnecessarily obtuse, stupid, etc.
What are the types of Bar and Baz? How do you make sure your fixed-point decimal numbers dont get accidentally coerced into floats (and thereby getting randomly rounded)?
How do you distinguish between public and private members?
I really really dont get the fascination of developers with JavaScript. If you want to do real work with tools, interfaces, and declared types, then there are better solutions. If you want to work in a dynamic language, there are better languages (python & ruby, others).
The ONLY bene I can see of JavaScript is that (some flavor) of it is in each browser. Of course, that 'different flavor' problem is a royal PITA.
Awesome :)
I think we just talked past each other.
You're talking about web 'sites'.
I'm talking about web 'applications'.
I'm not talking about Flash movies, I'm talking about Flex apps. Yes, both use the Flash player, but they're very different things.
To do web apps in DHTML/JavaScript/Ajax you have to be real tricky, and its easy for browser settings to disrupt it. Only very recently do some of the javascript frameworks (prototype, dojo, etc etc) help to abstract you away from browser issues. But its not perfect.
So to do in place grid editing with model and business rule validations, lookups and validation of drop downs, recordset paging, and fast CRUD operations against the database or app server backing the web app. These things are fairly terrible to do in DHTML/JavaScript/Ajax. Can you do them? Yes. Is it easy? Not compared to other platforms like Flex or Silverlight.
Plus with Flex you get AS3/ES4 which is more of a real grown up language with optional static typing, namespaces, packages, etc. With Silverlight you get C#, VB.NET, Python, or ruby. All of which are better than JavaScript.
Not to mention you get a real canvas for dropping your controls and can do absolute or relative positioning (ie, flow or fixed) that ACTUALLY WORKS (compared to DHTML/CSS).
Doing that with HTML means you have to declare it for the least common denominator, then put in a special exception for IE6, and another special exception for Safari for Windows (which of course renders things differently than Safari for Mac), and special javascript libraries for Opera (which of course uses a different javascript engine than the others), and handle IE's auto-padding of images in a cell.
It just goes on like that endlessly. And its not getting any better! When using a richer platform like Flex or Silverlight, you dont have to deal with any of that crap. You target one platform, and it 'just works'. No trickery required.
And again, I'm not talking about web 'sites', I'm talking about applications that happen to use browsers as their UI. So Java/Spring/Hibernate/Oracle or RoR/MySQL on the backend, with the Flex/Silverlight talking REST or SOAP (or maybe something like BlazeDS) to these back ends.
I think you're going to see over the next 5 years a huge move away from DHMTL/JavaScript/Ajax for web apps to the richer platforms like Flex and Silverlight.
It's just too compelling for all the pieces. Its MUCH more productive from a developer standpoint. Faster time to market for the business. And a better experience for the user, with the only real downside is that they have to suffer through a short 'loading' time up front. But after that its much faster and more interactive than dhtml/ajax.
You'd be surprised how small the swf files coming out of Flex apps are though compared to typical flash movies. ActionScript code compresses very well, and grids, drop downs, tab controls, text boxes and the like take very little space to declare.
You can check out some examples at the Flex Showcase.
You misunderstood what I wrote.
Set aside whether Vista sleeps/hibernates reliably, as thats not what I'm speaking about.
What I'm saying is that in XP, the more you would sleep or hibernate, the more you would accelerate system degradation.
So running a desktop for 3 weeks would work great, but running a laptop where you hibernate or standby 5-10 times per day, it would last much less time before needing a reboot.
Not all apps deal with sleep/hibernate well. Tons of devices/drivers dont deal with them well. So doing lots of sleep/hibernate would mean the system would degrade faster.
With Vista, the system is overall much more stable, and seems more resistant to leaky apps and problematic drivers, so it lasts longer under that type of usage than XP did on similar hardware. ..
Back to your comment, Vista does sleep reliably, at least on machines with good drivers.
The measure of whether a system is able to come out of sleep/hibernate successfully (a totally separate thing from what I'm talking about above) is 100% a driver issue. Device manufacturers have to write drivers that deal properly with standby/hibernate and recovery from such.
Most dont.
This is why you'll have someone with a high quality machine (like what I'm using) where sleep and hibernate work well, but another person running different hardware (especially consumer level crap) but the same Vista will lock up trying to come out of sleep or hardware.
This is one area where Apple's own-the-hardware/own-the-software approach pays off, and why things like that work so well for Macs.
Of course I keep Subversion working copies in my Home directory. Where else would I keep them? Keeping them anywhere else would have UAC go mad as well. Anything related to you as a user, certainly including anything you may be working on, goes in Home.
Thats interesting ... I've never seen a developer operate that way on a Windows box before.
Typically, in my experience (both on my systems and the devs I've worked with) you just setup a folder at root called dev or localdev, adjust the ACLs so that you have modify on the tree, and put things like a local subversion install, db servers, IDEs, and project paths.
Mostly though because I cant stand being stuck in a path 40 characters deep while doing dev work from the command line. I want to be in one only a few characters deep (hence C:\dev or similar).
It's better on Vista, now that its C:\users\username\ rather than C:\Documents and Settings\username\, but still.
Are you sure that wasnt a beta or RC version you're speaking of?
I've had this computer as my company's guinea pig for Vista since Nov 2007 (ie, long before SP1) and I've never seen anything like that happen.
That definitely was not the case on this machine, even with the RTM version of Vista.
I did experience other CIFS/SMB related problems though. There was a known issue where you couldnt access windows shares over a PPTP link. So if I'm sitting at starbucks and VPN into the home office, I cannot actually map drives or use server UNC paths there.
It was supposedly fixed in SP1, but only works intermittently even then for me.
I know this is a common refrain, but for most industries, its just not true.
Nearly all of the systems I've managed have been run as non-admin since the Windows 2000 days.
It got easier with XP because of RunAs and some of the community information out there that resulted in the MakeMeAdmin, DropMyRights, and other resources.
It's dead easy in Vista, because you dont have to explicitly invoke it. If the system needs to elevate, it'll prompt you for it, you dont have to anticipate the elevation need.
Are there some industries and job types that require lots of elevation? Sure, but they're in the minority. Developers is a good example, but this will require admin rights on any OS, as you're starting/stopping databases, invoking system debuggers, etc. But even there, you CAN configure your dev environment to, for the most part, run without needing it, based on where you install the apps and the ACLs you set on the folders.
I dont have hard data, no. Wish I did.
But I've been sold on it, from the papers I've read and the experiences I've had and have read/heard about others.
For example, there are tons of anecdotes about people using ZFS and just being blown away by how often it reports data integrity errors.
Another bit of evidence is how often files get silently corrupted, even if only a little bit. And the file fragments and broken metadata that shows up on all drives when you do thorough checking.
You're right in that it doesnt have a big impact in the real world. I believe this is because many of our systems are built to be robust against small errors. Many file types can take the occasional bit flips without major loss of data (though dense binary structures like the windows registry are notoriously susceptible to even this).
So no, I cant quantitatively support it. But it does resonate with what I've seen over the past 15 years doing this kind of work. Part of it is that systems are just inherently stable.
Even the most stable systems will occasionally just degrade, because of corrupted files or hardware problems. Often leaving file system detritus behind after.
It is rare, but its definitely non-zero.
This argument gets tired.
Home users (for the most part) dont care about DRM.
They just want to be able to watch the HD broadcast in Media Center, or their new Blu-Ray discs.
If MS did as you say, then no Windows user would be able to do either.
The choice they made, only the fringe geeks are pissed at Microsoft. If they would have went as you said, the geeks would be proud, but still wouldnt buy Microsoft, and the huge home market would be pissed, and also wouldnt buy Microsoft.
I dont think thats the problem, at least for the big OEMs.
For example, take HP. I am using a fantastic Compaq 8710w running Vista Business x64.
It's been quite good, very stable. The most unstable things have been the NVidia drivers, but they're getting better.
But compare my compaq (from HP) to the Presario on sale at Best Buy (from HP).
The Compaq comes with no trial ware, no AOL advertising, and all rock solid drivers, in BOTH x64 and x86 form, and a total of 5 discs (Vista x86, Vista x86 drivers, Vista x64, Vista x64 drivers, XP Recovery disc (OS and drivers).
The Presario comes with underspecced hardware, so much trialware that just that consumes half the machine's resources, and incredibly low end parts with terrible unstable drivers. It probably cant even recover from standby.
What this tells me is that the problem isnt (for the most part) OEMs and IHVs not knowing how to write drivers, but just not caring.
Because the drivers and equipment on my laptop (which is intended for engineering use) are quite rock solid, but the consumer focused ones are crap.
I dont think this is a problem that throwing devs at will fix.
That said,there is a damned good reason why folks hate Vista,and it is all MSFTs fault. They pushed it onto the single core "Best Buy specials" with 512Mb of RAM and Vista Basic,which again....torture.
You've got the causality a little off.
Microsoft doesnt install Vista on hardware. Microsoft doesnt pick what hardware to sell with Vista.
ALL Microsoft does is to control what equipment you can put those 'Vista Capable' stickers on, and they almost had it right.
Then they ended up caving to pressure from Intel and some OEMs (though not HP, interestingly) to allow them to sell Vista with the 'Vista Capable' sticker on machines that they shouldnt have.
Because sometimes critical bugs are found, even in an RC.
It happened more than it probably should (ie, significant changes even in the RC stage) with Vista.
But even in the perfect world, sometimes that just happens.
Particularly around drivers. You would be amazed (I'm assuming you dont write drivers for a living) how utterly crappy so many of them are.
They do terrible, terrible things like rely on undocumented and unsupported data structures in memory. They sometimes hardcode function entry points (which can change with a final release and a final re-compile). They sometime send up relying on behavior based on an obscure bug that was present in the RC but fixed in the RTM.
There are tons of reasons this can happen, and most of the likely ones not even Microsoft's doing, though it could have been them too.
The indexer/superfetch grinding the disk way too much, especially if you have lots of files updated often (like, say, a Subversion working copy).
FYI, you can completely control the indexer. And I'm pretty sure by default it will only index home directories, so it should never pickup subversion by itself (unless you put the subversion store in your home directory, which would be odd, but possible).
WRT Expose ... for many people it would be useless, as it requires you to take a hand off the keyboard and use the mouse. This means it would MASSIVELY slow me down. I realize I may not be typical though.
That is not to say that Flip3D is any more useful ... I still use ALT+TAB, and it works great, and its lightning fast, and I never have to take my hands off the keyboard.
I understand your line of reasoning, but I think you are giving too much credit to most home users.
If you forced them to provide a password for elevations, the vast, vast majority of them would never be able to install anything.
Now when you're running the IT for a company, thats GREAT! But it is completely impractical for home users.
Just utterly, completely impractical.
It would essentially make the computer non-functional for the home user, which means they wouldnt buy computers, etc etc.
It's one of those things where home use is utterly different than business use.
On my machine, UAC prompts taking freaking ages. When one shows up, first the screen goes black for 5-10 seconds. That may not sound like a lot, but it is when you're trying to use the freaking computer.
This is one of two things: either wonky drivers or a CRT/Monitor that takes alot of time to change modes.
Then the prompt appears. I Accept it, and then the screen goes black for another 10-30!! seconds. Then finally the computer trudges along again.
This can be caused by the same issues as above, or if the machine belongs to a domain, but cant reach any DCs when trying to elevate.
Media keys have a noticeable 2-second lag.
This is 100% a bad driver issue. It doesnt happen to be a Toshiba laptop, does it?
We did some help with a customer who, against our advice, bought a Toshiba laptop with Vista Home Premium (to use in his business). Even the FREAKING FUNCTION KEYS require special drivers. And the drivers crash. Often.
Unfortunately, even still, most consumer level Vista machines are utter crap. And I dont mean Vista (though it has its own share of problems) but I mean utterly crappy components with half-broken drivers.
I am so utterly sick of people who buy the flashiest prettiest device out there, against our advice, and then have to pay us to fix it, because they bought crap.
I'd rather everyone would just listen to me and STOP BUYING CONSUMER LEVEL EQUIPMENT. It's all crap.
Sorry about the rant, this stuff frustrates me. I can spec you an HP Compaq laptop that will run Vista x86 or x64 FLAWLESSLY, contains no trialware (not one piece) and just scream, and will always work.
But no, everyone wants the shiny red Presario from Best Buy. Shame on HP for selling that crap while they make great products, and shame on my customers for not listening to me. :)
Seriously though, if you're still reading this late into the rant, what is the make/model of the machine?
Runas is there, but it doesnt really work in most (including the default) UAC configuration.
While you can right click anything in the GUI and choose 'Run As Administrator' which forces an elevation and UAC prompt, there is no such equivalent at the command line.
It's extraordinarily irritating.
What most people end up doing is just launching one cmd.exe with 'Run As Administrator' and then just leaving that there on your desktop.
It's like starting up a terminal, doing sudo su - and leaving it there for when you want root without having to do sudo and a password.
Hopefully a command line way to force elevation will be in a future service pack.
I'm not real clear on what you're asking, but if you're talking about why it does Yes/No versus asking you for an account with admin privs ... then thats the joy of supporting home users.
The UAC defaults are appropriate for non-technical home users. These are people that cannot remember passwords. At all.
If Windows by default forced them to create two accounts and remember both usernames and both passwords, I can guarantee you that a very large portion of the home users would never be able to log back into their machine, much less successfully elevate with different credentials.
If you WANT it to prompt for different credentials, then configure UAC to do that. It's very simple. In fact, thats how it is in nearly every business where end-users dont run as admin on their boxes.
Lets say you want to move an icon from your personal desktop to the "All Users" desktop, you will get 3 UAC prompts. Ubuntu has never prompted me 3 times while performing a task.
This is not the case, anymore at least.
I dont remember off the top of my head if this particular quirk was one of the ones fixed between RC and RTM, or fixed in SP1.
But on a current patched Vista machine, it causes just one UAC prompt.
I just tested this on my box here to confirm before I wrote this.
You are correct in that it used to do this on older builds of Vista. It was very annoying.
The 'renaming a file that you dont have access to' was a similar problem, that one I know was fixed in SP1.
I dont think you understand what it is you're trying to talk about.
By default, ALL users on Vista are non-admin.
All users.
They may be in the administrators group, but interactive logins under their user context have the admin tokens stripped.
This means that they have the same rights as non-priv'd users.
When you do admin approval, the system attaches the privileged security tokens to the process that you've elevated.
This is the correct default for home users. Most home users are utterly incapable of dealing with two accounts.
If you find some that are, then you set them up with two accounts, and change the UAC to work that way (prompt for credentials, rather than approval).
It doesn't stop there, though. Running a command with sudo is a user-initiated action. You can pause, browse the web or man pages to check for details or edit the command. UAC, on the other hand, pops up at any time at the behest of some process and blocks the entire desktop while you decide, so you can't even check around what's happening. (It should be noted here that gksudo is just as bad, and I've never been a great fan of it. At least I don't use that vile program myself.)
You can user-initiate commands with UAC on windows as well. Through the GUI, right click and say 'Run As Administrator'. From the command line, start a cmd.exe as Admin, and then do your work from there. Same as sudo su - basically.
If you dont like the secure desktop, then turn it off, exactly the same as you avoid using gksudo.
Of course, this gets complicated when you're talking about the owner of a PC. Still, when I set those sorts of people up, I give them 2 accounts: one with admin access, one without admin access. I give them lots of warnings that the admin account is dangerous, and that they should only need the admin account for installing new software, and I tell them not to install software they don't need. That won't stop someone who won't follow that advice, but at least it puts the idea in their head that not everyone should have admin rights all the time, and that installing software is dangerous.
Yeah, thats pretty much how smart people setup windows too. Its easier in Vista, because you can either just let them use the UAC approval prompts for elevation, or still use two accounts. It basically works exactly the same as you describe.
Of course, making this distinction is easier when you're running an OS that allows you to run basic applications without admin rights.
Explain to me what 'basic applications running without admin rights' has to do with the OS?
You've been able to run windows as non-admin quite effectively since the windows 2000 days. I've managed the systems for a number of organizations that did exactly that since then.
The only reason you cant is if some piece of software (rightly or wrongly) says it requires admin to run.
How exactly is the OS responsible for or able to fix that?
MS did what they could in Vista with the app virtualization shims, but thats fairly hacky and easy to break.
What would you suggest they do in place of what they've done?
Also, most of the 'security' pop-up windows are not from other programs requiring administrator rights, the majority of them come from the operating system itself, for example you have to go through a couple of them just to open the device manager.
This is not even remotely true. Right click on Computer, choose Manage from the context menu. You are prompted for approval or credentials (depending on how you have UAC configured). Then you're in, and its done.
Furthermore, how would you suggest the system respond when either the user, or something running under the user account, attempts to do something it doesnt have the privileges for?
Thats all UAC does. If you dont have the perms, it prompts for elevation/approval. How else would you handle it?
I think what you're really trying to say, is that the 3rd party software market in the windows ecosystem sucks, and is filled with software that unnecessarily causes elevations. In addition, many people dont understand that some parts of the Start Menu and Desktop belong to the 'All Users' profile, and non-admin users dont have modify rights to that profile (correctly), and so it causes elevation.
I bet you cant describe a single elevation that is prompting when it rightly shouldnt be.
And if you're in a corporate, and want people who dont have privs to just fail, then you configure UAC to do that.
The thing most people fail to think through is that there really is no good solution for this problem in the windows ecosystem. If you think you have a better one, dont hesitate to toss it out here.