I've been running Vista on my home/gaming rig for over a year now. It runs Steam, Fallout, Oblivion, Half-Life, Office, DevStudio, Firefox, Thunderbird, KeePass, Paint Shop Pro, Python, AV, iTunes - lots of stuff, some old, some new, some MS, lots of ISV.
I probably encounter a UAC prompt every week or two. Going into the control panel is pretty much guaranteed to trigger it, ad does updating a device driver, or installing/updating software.
That's pretty much it. I have at least one app that writes settings into its program files directory, but Vista silently redirects that to somewhere in the profile directory without requiring UAC.
The reality is that MS has been pushing ISVs for years to stop relying on admin access. Look at the requirements for getting the Windows logo on your app - one of the reqs is that it has to run as a normal user.
Between that pressure and the fact that Vista does trap and redirect some of the most common accesses to HKLM and Program Files, most shrinkwrap userland apps work fine in Vista.
When you start talking about things that a guy in the IT group whipped up in a few days back in 1998 thinks aren't nearly as rosy, but most home systems don't have to deal with that crap.
OK, now I am confused. The article that is currently in the summary is not the one I recall reading. And I specifically remember reading petabytes, not the abbreviation PB which I see in the informationweek article referenced in another comment.
Color me confused, but not intentionally karma whoring, and not normally dyslexic.
Prior to the recycle bin added in Win 95, undelete utilities for DOS were incredibly common. People used them all the time, and wanted them to work. So MS changed the FAT allocator to intentionally not reuse recently deleted files unless it needed the space.
Since NTFS came out later than that, I suspect it does not have the same intentional bias, but I have never heard one way or the other.
In his excellent books "Unauthorized Windows 95" and "Unauthorized DOS", author Andrew Schulman went to great lengths to debunk the popular misconceptions about DOS7 and Win95.
Oh please. I read the Unauthorized Windows 95 book and the central gist of it was that Windows PE executables still had a PSP data structure at the front that was used to communicate with OS services. He had his undies in a bunch over what was really technical minutiae.
Win 95 was not a complete rewrite, and I don't think any technical person at MS ever claimed it was. But there is no denying that it was a huge departure, both in technology and architecture, from the Win 3.1/DOS combination we had been using up to that point.
Given that the driving desire was the ability to reuse the spectrum taken up by analog TV broadcasts, I don't know how you would do that in a forward compatible manner. Once the channel is at a different frequency that ship has sailed.
Perhaps the fact that the relative advantages of the two platforms has changed in the last 5 years is a reflection that neither has stood still in that period.
MS has poured enormous resources into Enterprise software - Exchange, Sharepoint, WMI, SMS, unattended installs, group policies, etc.
Meanwhile, Linux has focused on attacking the consumer polish. Both platforms are much improved compared to 5 years ago.
Sorry, but TiVo is not a Linux product. I admit that it runs Linux inside, but I've been a Tivo customer for years and there is absolutely nothing visible that tells the owner they are working with a Linux device.
You may as well say it is a plastic product, since the case is mostly made of plastic.
Well if I had a car with a hood that didn't open, but I wanted to benchmark, I could think of a number of things:
1. How fast will it go? If I don't trust the speedometer I can go to a known course with a stopwatch, or use a radar gun. 2. What kind of mileage does it get? 3. What is the stopping distance? 4. What is the turning radius?
All of these are things that a driver should rationally care about, and I can measure them without needing to know what is under the hood. Whether it has 4 or 6 cylinders or uses fuel injection is an implementation detail. If it meets my criteria as a driver, why do I care?
Similarly, why do I need access to the internals of an OS to benchmark the behaviors that are relevant to me as a user of the system? If it turned out to be written in a mix of COBOL and VB6 running on a UCSD p-System interpreter written in Python, but was still 25% faster than XP, would you care?
I was in Thailand this winter, and the affection in which he is held is quite amazing. River boats with lights that spell out (in English, so presumably for foreigners) "We love our king". Ordinary people on the streets wearing a T-shirt with his picture on it, often with a slogan like "long live the king".
Every mile or so on the road there will be a picture of somebody in the royal family.
The really amazing thing is I saw no indication that it was forced or calculated - it seemed to be genuine.
I would love to see someone develop an OS that followed a similar philosophy of using as little RAM as possible.
Whatever for? MS-DOS or CP/M were both developed with a goal of using very little RAM. Likewise VMS and O/S 360. Are any of those the model you aspire to?
I can buy RAM for something like $20/GB, and hard disk storage for $0.15/GB. At that kind of cost, why do I care about RAM and hard disk efficiency.
Rather than effort going to a smaller RAM footprint, how about improving:
- performance per watt - robustness - security - ease of use
The arrogance and narrow mindedness of this attitude is astonishing:
Your data is not worth more than $4000AU. so why bother backing it up?
I have never yet met a small business owner that didn't have more needs than they have cash to cover them. Usually that means accepting some risks (and then lying awake at night worrying about them). Perhaps they could budget 6K for backup instead of 4K, but if they do that a key employee leaves because they didn't get a raise, and revenue tanks and the company goes under. Perhaps the money not spent on backup is going to health insurance, because the owner believes that if he has to make a choice between healthy people and healthy data he sleeps better at night when he chooses healthy people.
By all means make management aware of the risks they are running and outline alternatives. But don't pretend that the owner can wave a magic wand and make the budget suddenly appear.
I completely understand not wanting a bunch of law enforcement officials looking at his private data. The thought that it is allowed infuriates me.
But the practical side of me says that I have come into the US several times in the last year, and not once has anyone even asked me to open my bags, let alone turn on my laptop.
Security through obscurity is probably the best bet here - and obscurity means looking just like all the thousands of other tourists coming in from Mexico every single day.
Ever hear of "dogfooding", or "eating your own dog food"?
The products MS offers for sale almost always predate the developer tools they create, but from reading some of the developer blogs there is always pressure to move their own products onto their own developer tools.
MSBuild is integrated into TFS, which is their enterprise level source control/work tracking/build environment. It is easier to sell TFS to large businesses if MS uses it internally, so there is pressure to make the switch.
Re:amazing what doesnt get asked
on
C# In-Depth
·
· Score: 1
I agree with you (though I've been in the Windows world for years and not an MS basher), and I'll even throw in some specifics.
The Win32 APIs reflect the fact that C/C++ have no built in string type. Anytime string data has to be returned to the caller, you had to answer questions about who allocated the data, how it was terminated, how long it needed to be, etc. The most common method of handling this (and yes, not all APIs do it the same way) required two API calls - once to ask how big the data is, and a second one to actually get the data. And of course the caller still had to allocate and free the data.
Compare that with.Net - it has a built in string type, so no confusion over how the data is represented. And with a single garbage collected allocator, the API can allocate the needed data and return it to you. So instead of multiple calls and an allocate/free, you can just call an API that returns you an object of type string.
Even better, since.Net has built in collections, the APIs are free to return things like arrays or lists of strings or objects. In Win32 that was exceedingly cumbersome.
WinForms and WPF are both dramatic improvements over the Win32 dialog resources, which is still the defacto standard for Windows C++ applications.
Defining event callbacks/handlers is simple and expressive in the.Net language, compared to the huge preprocessor macros for things like BEGIN_MESSAGE_MAP ON_WMHSCROLL, ON_COMMAND, etc.
Back to strings: strings in.Net are immutable, and string.Format is a static member of the string class, that returns a string. So instead of declaring a char buffer or a CString or std::string and then initializing it, you can do it all inline: MessageBox( string.Format( "Enter %0 password", "Bill's" ) ); That expressiveness makes it simpler to write code without having to stop and backup when you realize you need to create a string object somewhere.
Little tiny things in C# (and Java I believe) like the fact that when using enumerations they are prefaced with enumeration name. Not only does this cut down on errors, it makes it much easier for the IDE to autocomplete for you.
But realize that to the huge majority of the world, and certainly to the majority of business executives, there is no moral stigma attached to proprietary/closed software. Just as the GPL exists to enforce the wishes of the copyright holder on all downstream consumers, there is nothing morally wrong with a company offering its products for sale on its own terms - specifically with no rights to the source.
Given two morally equivalent choices, won't business people always opt for the one with the greater return on investment?
Proprietary software has paid my mortgage for many years. I am skeptical that open source would generate the same standard of living for me.
Because by saying it runs Windows, they are implicitly defining the development tools and APIs that it supports.
So an organization that has Windows devs but needs more horsepower is likely to turn to this before looking at a Beowolf cluster.
Now, writing massively parallel code is admittedly a different skill set than writing ordinary desktop or web development, but starting with the same tools and environments gives them at least a head start.
No, his argument is that with a faster processor he no longer has to care that they are slower.
The threshold of caring is subjective. If you are launching a new process to respond to a mouse move message you probably still care that process launch is expensive.
If you are launching a process to create a new tab, something which is governed by human scale time perception, you probably don't care. Especially since almost all the pages you need are already in RAM, so you may not even hit the disk.
And yet, people who care truly, madly, deeply about maximising their return on investment in a game disagree with you.
I have never seen anything but anecdotal evidence to sway me one way or the other. But I think it is telling that the people who have the most to gain/lose have almost all opted for some sort of DRM.
You can repeat "DRM just doesn't work" as often as you want, but that doesn't make it true.
On that level, door locks, bank vaults and body armor don't work either. There is always a way around a protection mechanism. For the person employing the protection mechanism, the question is does it work well enough to bother with?
From a business perspective, it is not clear that DRM doesn't work. DRM will never stop a determined opponent. But if the amount of casual piracy it deters is greater than the number of people it turns off, it is a net win for the company.
Steam's DRM gives me good value. It imposes some restrictions on me, but in return all I have to do is remember my username and password. Last time I bought a new PC I just logged in to Steam and told it to download the games I had already paid for. Far easier than going through tedious reinstall of the original CD plus all the patches, etc.
Sure it needs an internet connection, but so what - I have one. And it enforces the terms of the license that Valve delivers the software under - which is their right.
I've been running Vista on my home/gaming rig for over a year now. It runs Steam, Fallout, Oblivion, Half-Life, Office, DevStudio, Firefox, Thunderbird, KeePass, Paint Shop Pro, Python, AV, iTunes - lots of stuff, some old, some new, some MS, lots of ISV.
I probably encounter a UAC prompt every week or two. Going into the control panel is pretty much guaranteed to trigger it, ad does updating a device driver, or installing/updating software.
That's pretty much it. I have at least one app that writes settings into its program files directory, but Vista silently redirects that to somewhere in the profile directory without requiring UAC.
The reality is that MS has been pushing ISVs for years to stop relying on admin access. Look at the requirements for getting the Windows logo on your app - one of the reqs is that it has to run as a normal user.
Between that pressure and the fact that Vista does trap and redirect some of the most common accesses to HKLM and Program Files, most shrinkwrap userland apps work fine in Vista.
When you start talking about things that a guy in the IT group whipped up in a few days back in 1998 thinks aren't nearly as rosy, but most home systems don't have to deal with that crap.
OK, now I am confused. The article that is currently in the summary is not the one I recall reading. And I specifically remember reading petabytes, not the abbreviation PB which I see in the informationweek article referenced in another comment.
Color me confused, but not intentionally karma whoring, and not normally dyslexic.
The summary is wrong. I actually did RTFA, and it said 1.6 petabytes, not 1.6 terabytes.
Manufacturers are moving from CCFLs to LEDs for laptops primarily because of power issues - lower power consumption == better battery life.
Prior to the recycle bin added in Win 95, undelete utilities for DOS were incredibly common. People used them all the time, and wanted them to work. So MS changed the FAT allocator to intentionally not reuse recently deleted files unless it needed the space.
Since NTFS came out later than that, I suspect it does not have the same intentional bias, but I have never heard one way or the other.
In his excellent books "Unauthorized Windows 95" and "Unauthorized DOS", author Andrew Schulman went to great lengths to debunk the popular misconceptions about DOS7 and Win95.
Oh please. I read the Unauthorized Windows 95 book and the central gist of it was that Windows PE executables still had a PSP data structure at the front that was used to communicate with OS services. He had his undies in a bunch over what was really technical minutiae.
Win 95 was not a complete rewrite, and I don't think any technical person at MS ever claimed it was. But there is no denying that it was a huge departure, both in technology and architecture, from the Win 3.1/DOS combination we had been using up to that point.
Given that the driving desire was the ability to reuse the spectrum taken up by analog TV broadcasts, I don't know how you would do that in a forward compatible manner. Once the channel is at a different frequency that ship has sailed.
Perhaps the fact that the relative advantages of the two platforms has changed in the last 5 years is a reflection that neither has stood still in that period.
MS has poured enormous resources into Enterprise software - Exchange, Sharepoint, WMI, SMS, unattended installs, group policies, etc.
Meanwhile, Linux has focused on attacking the consumer polish. Both platforms are much improved compared to 5 years ago.
Sorry, but TiVo is not a Linux product. I admit that it runs Linux inside, but I've been a Tivo customer for years and there is absolutely nothing visible that tells the owner they are working with a Linux device.
You may as well say it is a plastic product, since the case is mostly made of plastic.
I think the article was not referring to addons in the sense that a geek thinks of them - adblock, firebug, noscript, etc.
Instead, they mean the biggies - acrobat, flash, quicktime. Most systems will have some or all of those installed.
Well if I had a car with a hood that didn't open, but I wanted to benchmark, I could think of a number of things:
1. How fast will it go? If I don't trust the speedometer I can go to a known course with a stopwatch, or use a radar gun.
2. What kind of mileage does it get?
3. What is the stopping distance?
4. What is the turning radius?
All of these are things that a driver should rationally care about, and I can measure them without needing to know what is under the hood. Whether it has 4 or 6 cylinders or uses fuel injection is an implementation detail. If it meets my criteria as a driver, why do I care?
Similarly, why do I need access to the internals of an OS to benchmark the behaviors that are relevant to me as a user of the system? If it turned out to be written in a mix of COBOL and VB6 running on a UCSD p-System interpreter written in Python, but was still 25% faster than XP, would you care?
I was in Thailand this winter, and the affection in which he is held is quite amazing. River boats with lights that spell out (in English, so presumably for foreigners) "We love our king". Ordinary people on the streets wearing a T-shirt with his picture on it, often with a slogan like "long live the king".
Every mile or so on the road there will be a picture of somebody in the royal family.
The really amazing thing is I saw no indication that it was forced or calculated - it seemed to be genuine.
I would love to see someone develop an OS that followed a similar philosophy of using as little RAM as possible.
Whatever for? MS-DOS or CP/M were both developed with a goal of using very little RAM. Likewise VMS and O/S 360. Are any of those the model you aspire to?
I can buy RAM for something like $20/GB, and hard disk storage for $0.15/GB. At that kind of cost, why do I care about RAM and hard disk efficiency.
Rather than effort going to a smaller RAM footprint, how about improving:
- performance per watt
- robustness
- security
- ease of use
The arrogance and narrow mindedness of this attitude is astonishing:
I have never yet met a small business owner that didn't have more needs than they have cash to cover them. Usually that means accepting some risks (and then lying awake at night worrying about them). Perhaps they could budget 6K for backup instead of 4K, but if they do that a key employee leaves because they didn't get a raise, and revenue tanks and the company goes under. Perhaps the money not spent on backup is going to health insurance, because the owner believes that if he has to make a choice between healthy people and healthy data he sleeps better at night when he chooses healthy people.
By all means make management aware of the risks they are running and outline alternatives. But don't pretend that the owner can wave a magic wand and make the budget suddenly appear.
If that amount is irrelevant, does that mean you are willing to pay my taxes too?
Regardless of what happens to prices, the amount of money I pay in income taxes is significant to me.
Gee, I wonder how I am managing to use Outlook web access with Firefox pretty much every day...
I completely understand not wanting a bunch of law enforcement officials looking at his private data. The thought that it is allowed infuriates me.
But the practical side of me says that I have come into the US several times in the last year, and not once has anyone even asked me to open my bags, let alone turn on my laptop.
Security through obscurity is probably the best bet here - and obscurity means looking just like all the thousands of other tourists coming in from Mexico every single day.
Ever hear of "dogfooding", or "eating your own dog food"?
The products MS offers for sale almost always predate the developer tools they create, but from reading some of the developer blogs there is always pressure to move their own products onto their own developer tools.
MSBuild is integrated into TFS, which is their enterprise level source control/work tracking/build environment. It is easier to sell TFS to large businesses if MS uses it internally, so there is pressure to make the switch.
I agree with you (though I've been in the Windows world for years and not an MS basher), and I'll even throw in some specifics.
The Win32 APIs reflect the fact that C/C++ have no built in string type. Anytime string data has to be returned to the caller, you had to answer questions about who allocated the data, how it was terminated, how long it needed to be, etc. The most common method of handling this (and yes, not all APIs do it the same way) required two API calls - once to ask how big the data is, and a second one to actually get the data. And of course the caller still had to allocate and free the data.
Compare that with .Net - it has a built in string type, so no confusion over how the data is represented. And with a single garbage collected allocator, the API can allocate the needed data and return it to you. So instead of multiple calls and an allocate/free, you can just call an API that returns you an object of type string.
Even better, since .Net has built in collections, the APIs are free to return things like arrays or lists of strings or objects. In Win32 that was exceedingly cumbersome.
WinForms and WPF are both dramatic improvements over the Win32 dialog resources, which is still the defacto standard for Windows C++ applications.
Defining event callbacks/handlers is simple and expressive in the .Net language, compared to the huge preprocessor macros for things like BEGIN_MESSAGE_MAP ON_WMHSCROLL, ON_COMMAND, etc.
Back to strings: strings in .Net are immutable, and string.Format is a static member of the string class, that returns a string. So instead of declaring a char buffer or a CString or std::string and then initializing it, you can do it all inline: MessageBox( string.Format( "Enter %0 password", "Bill's" ) ); That expressiveness makes it simpler to write code without having to stop and backup when you realize you need to create a string object somewhere.
Little tiny things in C# (and Java I believe) like the fact that when using enumerations they are prefaced with enumeration name. Not only does this cut down on errors, it makes it much easier for the IDE to autocomplete for you.
Most proprietary software companies are all marketing?
Like Adobe?
Like Intuit?
Like Autodesk?
Like Blizzard?
Like Id?
Like Corel, Symantec, McAfee, and hundreds of others?
Look around. There are thousands of proprietary software companies out there, and they all employ programmers.
But realize that to the huge majority of the world, and certainly to the majority of business executives, there is no moral stigma attached to proprietary/closed software. Just as the GPL exists to enforce the wishes of the copyright holder on all downstream consumers, there is nothing morally wrong with a company offering its products for sale on its own terms - specifically with no rights to the source.
Given two morally equivalent choices, won't business people always opt for the one with the greater return on investment?
Proprietary software has paid my mortgage for many years. I am skeptical that open source would generate the same standard of living for me.
Because by saying it runs Windows, they are implicitly defining the development tools and APIs that it supports.
So an organization that has Windows devs but needs more horsepower is likely to turn to this before looking at a Beowolf cluster.
Now, writing massively parallel code is admittedly a different skill set than writing ordinary desktop or web development, but starting with the same tools and environments gives them at least a head start.
No, his argument is that with a faster processor he no longer has to care that they are slower.
The threshold of caring is subjective. If you are launching a new process to respond to a mouse move message you probably still care that process launch is expensive.
If you are launching a process to create a new tab, something which is governed by human scale time perception, you probably don't care. Especially since almost all the pages you need are already in RAM, so you may not even hit the disk.
And yet, people who care truly, madly, deeply about maximising their return on investment in a game disagree with you.
I have never seen anything but anecdotal evidence to sway me one way or the other. But I think it is telling that the people who have the most to gain/lose have almost all opted for some sort of DRM.
You can repeat "DRM just doesn't work" as often as you want, but that doesn't make it true.
On that level, door locks, bank vaults and body armor don't work either. There is always a way around a protection mechanism. For the person employing the protection mechanism, the question is does it work well enough to bother with?
From a business perspective, it is not clear that DRM doesn't work. DRM will never stop a determined opponent. But if the amount of casual piracy it deters is greater than the number of people it turns off, it is a net win for the company.
Steam's DRM gives me good value. It imposes some restrictions on me, but in return all I have to do is remember my username and password. Last time I bought a new PC I just logged in to Steam and told it to download the games I had already paid for. Far easier than going through tedious reinstall of the original CD plus all the patches, etc.
Sure it needs an internet connection, but so what - I have one. And it enforces the terms of the license that Valve delivers the software under - which is their right.