What Really Happened with Vista: An Insider's Retrospective
blog.usejournal.com
blog.usejournal.com
I see two reasons for why it has such a bad reputation.
1. It exposed how terrible device manufacturers are at writing drivers. nVidia alone (which only has niche hardware) themselves stood for the majority of Vista BSODs. And no printer or scanner company had probably written a device driver in a decade now so it took another 5 years for them to catch up (and they just continued creating bloat ever since).
Yes there were major architectural changes but this was the perfect opportunity since it was the first MS (consumer) mainstream 64 bit OS (I don't count the 64 bit version XP). Unfortunately the driver situation made things rather different between the 32 bit and 64 bit versions of windows, this did not help.
2. Pre-fetch/super-fetch or whatever they called it was WAY to aggressive. If you had a decent amount of RAM on launch day, or just a new regular computer 6 months after launch, the pre-fetching algorithms were so aggressive that they completely overloaded the harddrives that perform terrible with that random access load. It meant that the first 10 minutes after boot was spent trying to speed up that you might want to do at the extreme cost of slowing down things you actually wanted to do. Yes they were supposed to be run with low priority but it really exposed how bad spinning harddrives are at multitasking. If doing one task takes 1s, doing two tasks each taking 1s will now take 9 seconds if run in parallel etc.
After enough time this wasn't a problem as all your freely available RAM had been used up by prefetch or actual programs. If you seldom rebooted you never had to worry about it. But the regular user wants to use the computer right away after boot and will only remember the agonizing slowness of trying to start the browser and office applications after boot.
Compared to Vista, Windows 7 was just a new (much better) taskbar, better tuned prefetch and with the very important difference that by the time Windows 7 arrived the drivers had matured and many of them even supported 64 bit systems... But that was all that was needed for Vista to be seen as a disaster and Windows 7 an unparalleled success.
To this day the Win7 is arguably the best OS (supported til 2020), followed by the aging XP.
Anyway, how is a consumer product that provides a bad experience to the user (regardless of the reasons) "amazing"?
[1]: https://blogs.msdn.microsoft.com/oldnewthing/20160816-00/?p=...
What a great new perspective.
The only time I can think it ever came in handy was if the user had an unprivileged account and would need an admin to type in the password - hopefully the admin would ask the why question and dig into it before dismissing the UAC prompt.
For me, part of the solution was to go into the device manager and edit the properties for my mouse and my network controller. On the "power management" tab I disabled the "allow this device to wake up the computer" option. I only use the keyboard to wake the PC.
Additionally, when I left the machine sleeping overnight, there was some scheduled task that would occasionally wake the machine. There is a way to disable that, but I forget the specifics.
I really wouldn't be bothered by occasional wakeups if it would go back to sleep afterwards...
That's pretty much the best case scenario. A lot of chipmakers (Conexant, Jmicron, Intel in many cases) don't allow you to download drivers directly from them. So you are stuck with whatever the OEM provides. In some cases I've found that newer model laptops by the same OEM use the same audio/media controllers under the hood in some case and I can use the newer driver from the updated model.
My next computer will be something from Microsoft's Surface line. They seem to be the only manufacturer who can make proper devices (everything working and power bricks which last more than 6 months - thanks Apple).
I wouldn't ascribe anything that generous that to a surface device as long as they still use the marvel wireless cards, which have a storied history of causing hardware connectivity problems[0]. I largely enjoyed my Surface Pro 3 but frequently had the same issues. The Surface Book seems to have issues with sensing connectivity between the keyboard and screen, as well. Anecdotal, at work we even had a developer hololens go paperweight because the wifi stopped signalling. MS told us to junk it, unrepairable.
[0]https://www.google.com/search?q=marvell+wifi+surface+problem...
Face it, sample amounts being so big, you're not going to find anything which always worked for everybody. Anecdotally, having worked for a Dell-only place and typing this on a 7-year old XPS, I never encountered severe issues. Only standard hardware problems caused by wear (HD/memory/keyboard keys failing after +5 years of usage).
Vista sped up file copying operations but fixed that bug, leading to a faulty perception of slowness. Worse, the progress bar behavior encouraged that perception of slowness. A progress bar that speeds up at the end will be perceived to be faster than one that is perfectly even which in turn is perceived faster than one that slows down at the end. And vista's progress bar usually slowed down at the end because it didn't properly account for those disk sync et al operations ahead of time. The result was a worse feeling experience despite what was happening under the hood.
The ad campaign featured people spotting deer at dawn from their home office, and the message was, this will completely change your life and bring about your inner sense of wonder, as if you were born again, a new person in a brave new world.
In reality, it was an OS upgrade that didn't work too well and that was more-or-less forced on you if you bought a new device, while at the same time XP continued to work just fine on all your older PCs.
People were disappointed, upset and angry. All other things being equal, a little more humility and a lower profile would have helped.
1. I dare you to try it on a computer with a 5400 RPM hard drive. A fresh installation will spend the majority of its time sitting around with 100% disk usage as telemetry, superfetch, defender and more all eat up the entire ~2M/s hard drive bandwidth for more than 30 minutes after boot. And then halfway through your day, it'll decide to start recompiling .NET, or some other package with zero user notification and your computer will come to a halt. But hey, you're resourceful right? Just disable those services! Nope, too bad. Every version of Windows (including creators updates) have made it harder and harder for a user to disable features that break. Services get moved to TRUSTEDINSTALLER, an account that you can't override. Those services get restarted without asking you. Some as few as a couple hours. And Windows Defender will restart itself, and the before-last creators update KNEW people were disabling it so they moved the link in Metro/settings to be more obscure.
2. I just spent Friday for a client trying to "fix" Windows for Microsoft and failed. He bought a "Windows 10" laptop with a 30 GB SSD drive. Too bad, Window alone, took 97% of the entire hard drive. I removed literally every application (including 1 GB avast) except for Chrome and Windows 10. Every time I removed space, removed the hibernation file, removed any and all disk cleanup stuff... Windows would then fill it with patches.
It also had a 2.6 GB "C:\recovery" folder. I checked online and they said "Feel free to delete it, it's from an old OS." I tried deleting it, no permissions--even as an admin. I went in, changed the owner from the glorious TRUSTEDINSTALLER and made myself the owner of all the files. I deleted some files, but one file refused to delete. The file? 2.6 GB. It said this file was open in "Windows Provisioning". I checked Windows 10 backups, restorepoints, file history, all that jazz. Zero.
I check online. Maybe I'm insane. What are the Windows 10 requirements for hard drive space? Oh yeah, 15 GB. So there are, "Lies, damned lies, and Windows hardware requirements."
Meanwhile, Windows 10 keeps spamming that "You need to free up space to continue downloading windows updates!!!"
Really? REALLY? Thanks for the update.
I download Process Explorer. They say find the open search and find the file handle of the file open. I do it. ZERO RESULTS.
I download a tool that lets you delete a file on reboot before a program will acquire the file lock. It queues it up. It runs. It fails. Still NOTHING in services.msc that has Provisioning in the name.
Okay, change gears. ALL they want, is to freakin' install Office 356 on their craptop. They've got an SD card with a 32 GB card.
By now, after clearing up at least 4 GB, C: is now down to 100MB free.
I download the 5 MB Office auto-installer. It fails with a pop UNDER error that you don't notice at first under the loading screen. Okay, instead of giving you a description, it gives you an obscure error code. Clicking it at least gives you the KB for "out of disk space." Lovely.
I load up the Microsoft website, I find an alternative downloads link. I find the offline installer.
But back to task at hand! I load up the same link on this slugger of a Windows laptop and I go "Fine, I'll download it to the SD."
But wait, sorry! Thanks to the ultra-progressive, consumer-friendly Microsoft, they're too forward-thinking to let you have a download link. No, you get a Javascript button. It goes right into the full drive and fails. Okay, control click? Nope, Javascript. Okay, load up chrome settings and change where the default save location is and point it to the SD card.
I download it for ~40 minutes. Why? Because it's 4.6 FREAKING GIG for the offline Office suite. What basically boils down to an e-mail client, and word processor, is larger than an entire Linux distro with apps. (<-Yeah yeah, there's more apps, but I'm pissed at this point so I'm taking comedic liberty here.)
So I wait, and it finally downloads to the SD card, and at 99%, it stops and goes "download failed." There must be some Chrome bug with temporary space or something.
Well! I'm not defeated yet--this is my job and I'm paid for results. I've got a USB flash drive and my Linux laptop (read: running an OS that actually works and can be configured and fixed by the end user).
I go to the same website as before with my Linux netbook. But wait, the page... it's... different?
Everything is the same except that wonderful offline installer link? They removed from the page. That's right. Go there with Windows, and then Linux, and go to same Microsoft download links and they will intentionally hide the ISO links and only give you the auto-installer link to ensure you're only going to run it on a Windows system. So customer friendly! (They do the same thing with Windows 10 ISOs, try it out.)
At that point, the client's laptop owner had to drive back 3+ hours to his office location so he had to take his laptop back.
I spent at least half a work day.. trying to (fight Microsoft) to free some space... on a machine that 100% meets Windows system requirements.
Thanks Microsoft. I wonder why do all my game and app dev on a Linux box these days. It's almost like I like feeling like I own the machine I paid for. Could you imagine having to go through all of these anti-consumer, anti-solution when doing hardware upgrades? What if you couldn't release the case on your machine without getting a "poweruser" license key from HP first? After all, they're just trying to protect you and they know how to run their hardware better than you. The more you look at that analogy, it really becomes insane how much we let Microsoft get away with bricking our own machines. The answer to a working machine should never be, "throw it out and buy a new one" when simply changing a config setting (if you were allowed to modify those registry values--sorry!) would suffice.
"I see you're trying to turn your SSD onto ACPI mode. Have you purchased an Enterprise SSD license yet?"
For reference, absolute minimum requirements are 16 GB for 32 bit and 20 GB for 64 bit [1]. So in theory your client’s laptop should work, but it’d probably be a poor experience. (Likely also a bad experience with modern Linux on 30 GB.) Given that your client’s Windows 10 laptop has an “old OS” on it, I think there’s some info missing in this story. A fresh laptop shouldn’t have an old OS install on it. (Or maybe this is OEM recovery gunk?)
I just checked my laptop and the Windows folder is 18.7 GB. Did your client's laptop have a Windows.old folder taking a bunch of space? Large updates to Windows will create these. You can whack this if you need. [2] (Should also get deleted automatically after 10 days automatically.)
Disclosure: Microsoft employee
[1] https://www.microsoft.com/en-us/windows/windows-10-specifica...
[2] https://support.microsoft.com/en-us/help/4028075/windows-del...
I just did an install of modern Linux (the latest CentOS 7, with Gnome deskop), so I can check. The root partition is using at the moment 4.2G, plus a 2.0G swap partition and a 1.0G boot partition. So if this were a 30G disk, I'd have more than 20G left, even after installing a few applications.
https://help.ubuntu.com/community/Installation/SystemRequire...
So consumer-oriented distros don't seem to be nearly so much lighter than Windows. With the caveat that Ubuntu probably comes preloaded with more apps like Libre Office.
I have 17.10 in a VM and it takes 8,7 GB on the disk, with a few extra apps compared to default install.
I just installed Ubuntu 16.04 a month ago (new laptop), and with /home/ on its own partition, after installing everything I use regularly, root is only using 9.3G
EDIT: For a more realistic number, I just checked my Arch-Linux-based home server, which has a fairly small installation (including some multimedia and X11 stuff for PulseAudio, mpd and youtube-dl, though). Needs just over 2 GiB for the entire system and applications:
df / -h
Filesystem Size Used Avail Use% Mounted on
/dev/sdc2 110G 2,2G 103G 3% /
Of course, you should have some breathing room, but usually not more than 8 GiB on a server, and maybe 16 GiB on a desktop.Somebody who doesn't work in the IT industry - the target demographic of Windows.
I'm also surprised it's possible - but if it cuts the price, then why not? I assume 10GB more than the minimum is enough to earn the Windows badge.
But I don't think the crux of the issue was lack of disk space.
Maybe the manufacturers could have 128GB disks for as little costs as the memory card.
Ultra-cheap computers with MMC flash drives with pathetic read-write speeds. And pathetic other parts. Such as this charmer from Walmart. https://www.walmart.com/ip/Teqnio-ELL1103T-11-6-Laptop-Touch...
It also boggles my mind how, still to this day, it's so hard to get a lower cost desktop or laptop that ships with an SSD, despite the fact that SSDs offer up such a performance improvement that many people consider them mandatory. The average consumer will have a much better experience with a computer that ships with a 128 GB SSD than a 1 TB HDD, yet every manufacturer is offering plenty of the latter (at 5400 rpm no less) and none of the former at sane price points. The two components even have similar costs now. In this era of streaming everything, the average person really isn't using much hard drive space. I know that my non-technical family members certainly aren't.
I just got my mom a $450 refurbished 2012 Dell workstation for common desktop use (mostly email and word processing). She loves it. It's night-and-day faster than the machine it replaced. And the single biggest performance improvement in it comes from, you guessed it, the SSD. A $450 five-year-old used workstation is trouncing any modern desktop in the sub-$1,000 range in practical performance. I would've gotten her a new one, but couldn't find anything in the price range that has an SSD, and the kinds of computers that do ship with SSDs also tend to have unnecessarily upgraded (and costly) processors and graphics cards, which are only useful for gaming.
(Oh, and the used workstation has a Core i7 in it too, so it's not exactly a slouch along any dimension except for 3D graphics performance.)
Don't buy 5 years old hardware second hands, it's poor investment and I speak from experience. Hardware has a limited lifespan then it just dies. The hard drive, the motherboard or the screen fail without notice and you're screwed.
As for hardware endurance, I don't think you're giving quality hardware enough credit. I've owned a lot of computing hardware in my lifetime, and the only failures I've ever experienced have been fans going bad (which is easy to fix) and spinning hard drives crapping out. Oh, and I dropped a laptop really badly one time and broke it that way, but that's not really the hardware's fault. Solid state components last quite a long time.
Entry cars in Europe are in the range $5k to $10k. Not sure closer to which ends. They are certified for regulations and safety.
I certainly had some hardware and I've seen everything die sooner or later. My order would be rotating hard drive, then gaming GPU, then display, then motherboard.
Never seen any computer reach 10 years without any replacement. You're significantly past half life when buying 5 years old.
I've seen plenty of computers last >10 years. So, we'll see how this one goes. Even if one component does need replacing at some point, it'll likely still have been the best choice. Nothing else offers that kind of performance at a remotely comparable price point unless you're willing to build a PC from scratch.
Yes, Europeans generally speaking have smaller cars than Americans. All cars have manual transmission.
Not 10 years with all original components.
https://www.newegg.com/Product/Product.aspx?Item=9SIA1K665X7...
https://www.newegg.com/Product/Product.aspx?Item=9SIA6R46267...
AS you're an MS employee you'll know about WIMBoot and whatever the newer less stupid version of WIMBoot is.
Also, I'd never heard of WIMBoot. Being a Microsoft employee doesn't make me a Windows expert. I don't work on Windows and don't own any systems that WIMBoot targets. Looking at WIMBoot, it doesn't seem relevant for the case discussed here, either, since this client clearly didn't have the small space usage WIMBoot enables.
https://www.newegg.com/Product/Product.aspx?Item=9SIAF136G48...
https://www.newegg.com/Product/Product.aspx?Item=9SIAC4Z6CZ4...
https://www.newegg.com/Product/Product.aspx?Item=9SIA24G6DV4...
https://www.newegg.com/Product/Product.aspx?Item=9SIA6R46JS9...
etc etc.
There are very many machines sold now, today, with Windows 10 (and previously Windows 8) that have only 32 GB drive space.
With WIMBoot any updates would eat drive space and that space was not recoverable, and this would sometimes prevent updating to Windows 10. MS says this here: https://blogs.windows.com/windowsexperience/2015/03/16/how-w...
> The reason Windows 8.1 devices using WIMBOOT are not yet able to upgrade to Windows 10 is because many of the WIMBOOT devices have very limited system storage. That presents a challenge when we need to have the Windows 8.1 OS, the downloaded install image, and the Windows 10 OS available during the upgrade process. We do this because we need to be able to restore the machine back to Windows 8.1 if anything unexpected happens during the upgrade, such as power loss. In sum, WIMBOOT devices present a capacity challenge to the upgrade process and we are evaluating a couple of options for a safe and reliable upgrade path for those devices.
There's a complex workaround of "delete everything, and use two USB sticks" which isn't great for the target user.
The new file compression stuff is much much better than WIMBoot.
Literally just typed "raspbian minimum card size" in Google and Google dug up this as the top result:
"/Pi Hardware /SD Cards. The minimum size SD card you can use for Rasbian is 2GB, but it is recommended to get a 4GB SD card or above. Card Speed. A Class 4 card, which is the minimum recommended has an average read/write speed of 4 MB/sec."
The default packages include things like webkit and libre office, so it looks to be a fully functional Linux install on a popular piece of hardware.
Now, 4GB still seems dangerously small. But if all a client wanted was office plus web, I bet someone like OP could make a workable system within that size limit without Raspbian filling the emptied space with updates.
[1] http://www.raspberry-projects.com/pi/pi-hardware/sd-cards
Raspbian runs on 128 MB RAM or whatever.
And. I purchased one last year because it was outrageously inexpensive and had a i5/7500U, a nice 1080p touchscreen, and a miserable spinning harddrive and a miserable amount of socketed ram.
I consider replaceable harddrives and socketed RAM to be a feature, one I promptly made use of and now have a machine which is quite competitive to machines costing > $1k more than what it cost me for the machine+HD+RAM.
This issue is being discussed a lot and nothing is being done to fight it.
Microsoft and Google with Android - where the same issue can be seen - should step in with more proactive approach to solve this problem.
I don't have a solution but they should probably use some business incentives and possibly something directly from OS like built in benchmark scores/graphs, ideally compared to bare bones for the device so everybody can see how much performance you loose by getting all those "features" preinstalled.
A lot of the bloat on Android phones I see is from Google, apps you can't uninstall without hacking. My Huawei had a few apps from the manufacturer, but they were removable - there's just under 20 Google Apps that came preinstalled many [most?] of which can't be removed.
And even that may be delayed, because the push notifications might be delayed to get the radio the chance to sleep and save battery.
I do not need play services, why would I need it for ? I'm not even sure what this does apart from insta-gobbling my 50Mo monthly data plan downloading updates I don't want and cannot cancel of applications I do not use.
On my personal phone (Sony), I have only Play Services, Play Store, Gmail, Hangouts, Maps and Youtube enabled. All the other are disabled, including the 'Google' app.
I take issue with this statement. Many apps which "depend" on play services work fine on my Google-free android. Some examples are tutanota, duo lingo, and some games. Though it's not an easy path, I wouldn't consider my cellphone experience "kindle-like".
You cannot delete them, physically, because they are on /system partition, which is read only. That means, even if you would delete them as root, you would not get more space for another apps or your data. However, the read-only /system has more functions, that you would lose: it has known file layout (so you can image-update your phone, if you ever get an update), it is signed (so you can know your phone has not been tampered with, as it is not going re-sign itself once modified), it is also for factory-reset/sofware recovery purposes, so once you wipe /data, your phone will be in factory-mint condition (software-wise, of course).
I'm not familiar with the /system partition but it seems logical that if I can delete them as root, it means I can also install something else in its place or put some of my data there, which would help me a lot as my phone does not allow for an additional SD card.
If your vendor prevents disabling the apps, you can still try the route using adb and pm (google for adb pm disable).
The point I was making about /system is, that you don't want to mess with it, even if you have root. You can break more than you think, including dm-verity, and then you are not going to boot anymore. Also, apps installed in /system are getting updates installed into /data, so it is not going to solve your problems with space anyway. You would have to repartition your phone, which on ARM platforms opens a new can of worms (partitions are defined in the secondary boot loader, which is signed too. Moreover, if you do this wrong, you get a brick, you are not going to boot without reflashing the original SPL in an external programmer).
Seemed like. Whenever I quoted one to a customer they always turned their nose down at the price, then paid me several hours to debloat the thing, fix a driver that was shipped faulty, then a year later pay me again to upgrade it! Oh and replace the useless battery. The list goes on!
Case in point: Sony. The amount of CRAP that comes with the Xperia is insane. There was an uninstallable "What's New" app that would notify incessantly when it wanted to push some new app that Sony probably made money on shilling.
And never mind the Google crap.
The day I dumped it an installed LineageOS made my phone usable again.
I remember an update downloading itself and applying itself at shutdown then restarting to apply itself some more and looping like this indefinitely. Best update ever \o/
I'm on mobile now, but from memory you right click the start button and go into taskbar settings.
Personally, I have both set to "only when full". I miss that feature on Cinnamon.
Still, Vista was a disaster.
I remember a conversation I had with a MS engineer at that time:
- Vista is like, the foundations for the good things to come. If you want a solid house, you dig solid foundations.
- I am buying a house, not just pillars in the ground.
(It was the same with the w3c specs: "maybe mozilla and opera are the ones misreading the box model spec and IE has it right", me "ms is on the board...").
A better example would be file line endings, where Microsoft did get it right (\r\n) and all the other OS's screwed up using just \r or \n.
[1] https://en.wikipedia.org/wiki/Internet_Explorer_box_model_bu... [2] https://developer.mozilla.org/en-US/docs/Web/CSS/box-sizing [3] https://css-tricks.com/international-box-sizing-awareness-da...
Well, IE implemented their version of the box model in '97 (coincidently, NN4 did the same); the box-sizing property was first proposed in 1999[1], and first appeared in a draft in 1999[2], and implemented in Gecko in 1999[3] and in IE5/Mac in 2000[4].
That's two years from IE/NN shipping the non-standard box model (the standard one was defined before IE4 and NN4 shipped) to having a property to toggle between them. To me, that isn't "many years".
Really what makes it seem like many years is the fact that IE didn't implement box-sizing until IE8 which shipped in 2009.
[1]: https://lists.w3.org/Archives/Member/w3c-css-wg/1999JanMar/0... (sorry, W3C MO space, but I think at this point nobody cares if I mention that publicly)
[2]: https://www.w3.org/TR/1999/WD-css3-userint-19990916#box-sizi...
[3]: https://github.com/mozilla/gecko/commit/3ee32d59158a036bd667...
IE was stupid to not implement the spec, the spec was stupid for not doing it the way IE did.
Other than that, I don't see it being any more right. But it is a convention that is far older than Windows or MS-DOS. I saw it myself first on CP/M but it was there on VAX/VMS and I expect the Teletypes had it from 1960's.
* H. McGregor Ross (1964-01-01). "The I.S.O. character code". DOI 10.1093/comjnl/7.3.197. The Computer Journal. Volume 7, Issue 3. pp. 197–202.
* Jerome H. Saltzer and J. F. Ossanna (1970). "Remote terminal character stream processing in Multics." DOI 10.1145/1476936.1477030. Proceedings of the AFIPS Conference 36. pp. 621-627.
But mostly I was just reacting to the silly idea that CRLF would be right and lone LF not: Microsoft didn't come up with that idea. It was there already in 1960's and perhaps useful when you didn't want to do any line drivers for converting strings at output. But that's not really any more "right" than other conventions.
You left out a key qualifier: CR/LF is the semantically correct way to represent a newline on a physical device that has a physical carriage that has to move back to x=0 and advance one line in the y direction in order to start a new line. What devices connected to any computer today have that property? Answer: none.
In fact, even on computers that have such devices connected, the semantic meaning of "newline" in any file the user actually edits is most likely not to actually cause a CR/LF on the device. Word processing programs for decades now have separated the in-memory and on-disk file data from the data that actually gets sent to a printer. So the file you are editing might not even have any hard "newlines" in it at all, except at paragraph breaks--and that's assuming the file format uses "newline" to mark paragraph breaks, instead of something else.
Neither world is clean, pure, and free of weirdness that's only properly understood when looking decades in the past.
Dot matrix printers are surprisingly common as they are still cheaper to run than the alternatives. That's at least one.
It's worse than that. His position was: MS's understanding and implementation of the box model is the correct interpretation of the W3C specs (yeah, I know).
The biggest problem is that each OS went its own way (Mac started with \r but of course uses \n now). If they all had the same line ending all along, whatever it was, no one would think much about it.
\r\n has the obvious disadvantage of being twice the size, along with making it possible to land in the middle of a line ending instead of before or after one.
Of course one advantage would be if you're controlling physical equipment where carriage return and line feed are independent of each other. I learned to program in 1968 on a Teletype ASR33 where CR and LF were literal commands to return the carriage to column 1 and advance the paper. You had to use both because they did two different things. Or on occasion you might use CR by itself to overprint a line. LF by itself was pretty rare, but would do what you expect if you used it: advance the paper without moving the print carriage.
CR LF was fine if you were typing interactively - in fact you just had to hit the CR key and the remote system would provide the LF. But usually we would punch our programs on paper tape, dial in, run the tape through and get the printout, and hang up right away. At $30/hour in 1968 dollars, this saved a lot of money. And of course you would run your tape through locally to print out and proofread your program before testing it online.
To be able to print a tape locally, you needed both CR and LF, but even that wasn't quite adequate. You really wanted to allow a little extra time for the machinery to settle, so the standard line ending we punched on a tape was CR LF RUBOUT.
RUBOUT was a character that punched out all the holes in a row of the paper tape. It was ignored by convention, so you could erase a typing error when punching a tape by pushing the backspace button on the tape punch and hitting the RUBOUT key.
Because it was ignored, RUBOUT was also useful as a "delay" character in the newline sequence. So I guess I'll never get over the feeling that the One True Line Ending is: \r\n\x7F
(Nah, I'm happy with \n, but it makes a good story.)
For example, you could define that your file was fixed length records (like the old punch cards); at that point each line doesn't have a line separator at all; the \n or\r is not stored on disk. But when you read a line using the C routines, one will be added.
I am not sure what C or RMS has to do with this
* http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_...
IMHO, what SHOULD happen is that if you have a device that has special timing requirements (like the old fashioned printers with no memory), then the driver is responsible for the handling the timing. Adding in weird bits to everyone's files is a bad idea.
And yes, I know the difference between carriage-return and new-line. And I know that in the old C specs, "\n" didn't have a guaranteed mapping to either.
This is true of all Windows versions, but was particularly true of Vista, and of course the reality was:
* Very few people carry out a clean install when they get a new computer. This is as true today as it was ten years ago
* Hardware manufacturers loaded the PC's up with terribly written adware before shipping (this situation has improved slightly)
The requirements for Windows 10 aren't that much more than Vista, so, the average person would get their new Vista PC running on a Core 2 Duo/Pentium D and 1-4GB of DDR2 Ram, loaded up with crapware and not do a clean install, and it would run horribly.
By the time Windows 7 came out, the PC manufacturers where writing slightly more efficient crapware, hardware was generally a bit more powerful, and they had fixed a tonne of bugs in the OS itself.
Continuous integration and deployment is all done with Microsoft agents orchestrated by VSTS (Microsoft's hosted version of TFS). Yes we use git
Easy to maintain and no performance issues.
Linux and Windows together dominate this market so thoroughly that everything else (UNIXes, BSDs, macOS) is practically a rounding error.
I can approve and deploy a release from my iPad (the website is painful on my phone) by logging into Microsoft's Visual Studio Team Services website.
I won't even start to gush about how easy setting up a build and release pipeline is in VSTS compared to the other tools I've used.
Also with unix servers various bastion hosts and similar "security measures" are minor inconvenience and usually even supported by automation tools, while on windows this usually ends up being major PITA.
There was a time when our net ops team did something and I couldn't Remote Desktop into a server to do something urgent and if course I couldn't just SSH into it where I had to write a quick Powershell script and deploy it via VSTS to make a change. It was ugly.
Besides, I already have sane deployment groups and tags defined by server environment and function. I might as well leverage them.
1) You can install an SSH server on Windows boxes just fine, then use Putty to SSH directly into PowerShell. PowerShell is not a classical shell, but rather a REPL for a procedural, imperative and object-oriented DSL for system configuration and administration based on .NET, with much saner syntax than my beloved zsh. In short, it works quite well.
2) With PowerShell capabilities - I'm a bit fuzzy on the details here, was a long time ago - you don't even need the SSH server, you can issue remote commands from your local PS instance. It required a bit of configuration up front, IIRC, but then you could replace your local session with a remote one with a single command.
So, in my experience - and note that it was probably nearly a decade ago! - Unix-style remote management was absolutely possible and not that much less convenient. And PowerShell is really a solid tool, with easy access to all of .NET and all of the system; the only annoyance I remember was certificate/signature management, dunno if it got any better.
But part of the problem is I have a real prejudice toward local agent based solutions with a central server coordinating everything.
MS updates have made it worse because they stopped caring about this segment. Same story with phones on Windows 10 mobile.
And the problems in UI. And...
In short, it was really good version to avoid, especially as an upgrade. On a new computer it could have been somewhat acceptable. But amazing... no.
One of the things Fathi (OP author) writes is
> [. . .] ecosystem partners hated [Vista] because they felt they didn’t have enough time to update and certify their drivers and applications as Vista was rushed out the door to compete with a resurgent Apple.
This goes some way to mitigating the characterization of device manufacturers as terrible at writing drivers. When considered in the context of "a resurgent Apple", it also provides a counterpoint in the specific example of nVidia as a niche hardware manufacturer.
2006 was the year Vista was released, at that time, Apple was shipping the quad-core Xeon Mac Pro with macOS Leopard (later Snow Leopard) which shipped with an NVIDIA GeForce 7300 GT video card. [0]
I used this particular computer all the way through Mac OS 10.7 (Lion) and if memory serves, I had a handful of kernel panics over the course of 6 years. From all I could tell, nVidia's video card device drivers on Mac OS never interfered with daily operation (up 24/7 as it was also an authoritative DNS server for my personal domains).
So, device manufacturers may be bad at writing drivers but those drivers also depend on stable and reliable APIs of the target OS, and such details have to be communicated between the two teams. Device drivers are an interface between host operating systems and hardware embedded systems. As such, the reliability of any device driver will depend on the sharing of information between the OS and device driver teams just as much, if not more, on the competence of the device driver engineers.
[0] https://everymac.com/systems/apple/mac_pro/specs/mac-pro-qua...
EDIT: remove extraneous words, a couple proper nouns where appropriate, punctuation.
In their defense, Windows Driver Model (https://en.wikipedia.org/wiki/Windows_Driver_Model) may make it possible to wring the last bit of performance out of a system, but it doesn’t make it easy to write a driver. Its documentation also was somewhat of the type “once you know what this page tries to tell you, you will be able to understand it” variety.
It also didn’t help that new hardware frequently introduced new sleep state levels at the time.
- As others have pointed out, UAC was way too active. Just about any application you cared to launch required permission dialogs to be clicked through - irritating to everybody, scary to most users, and quickly ineffective as everybody stopped reading and just reflexively went for the OK button.
- Lots of legacy applications broke for the most trivial of reasons: they were written to store configuration and other data in their installation directory, which defaulted to "C:\Program Files". This worked fine on Windows 9x, which by default allows user-owned processes to do just about anything, but not on NT, where writing to Program Files requires elevation.
So new Vista owners would click through a bunch of obnoxious UAC popups to install their favorite Windows applications, click through more UAC popups to launch them, and then watch them crash or mysteriously lose all their data.
You got extra loser points if you went for the shiny new 64 bit version, in which case your legacy 32 bit application installer was more than likely to try its luck with "Program Files" instead of "Program Files (x86)". Would it really have been so terrible to leave the old directory alone and call the new one "Program Files (x64)"?
None of this was terribly hard to fix if the application was still supported, but it did require the user to upgrade, often at a cost. Worse, if you were a small indie developer, releasing an upgrade now pretty much required buying an expensive certificate to sign it, lest UAC keep warning your users that they were launching an untrusted file from the scary internet. So lots of small free- and shareware apps which people loved were abandoned, undoing part of the Windows platform's greatest advantage: its large library of existing applications.
Or alternatively, why was breaking them out required in the first place? To this day I frequently end up having to look in two places to find something, because it's never obvious which of the two Program Files it should be in. Pre-64-bit Windows there was only ever the one place. This is a permanent usability regression.
And of course, I wouldn't even need to be digging through there in the first place if the Start menu launcher just worked, but no, they had to junk it up with Cortana, which is so incompetent it can't even find installed applications by name. More details on my Cortana rant here: https://news.ycombinator.com/item?id=15758641
Vista tried to take care of that by transparently redirecting to %LOCALAPPDATA%\VirtualStore, writable with user privileges. The feature is called Virtual File Store, and comes together with an analogous Virtual Registry Store.
See https://msdn.microsoft.com/en-us/library/windows/desktop/bb7... at Virtualization
"Program files" is localized so it's not even "Program files" in all languages. Installers that looked to that folder were doing it wrong anyway and wouldn't work on non-English machines.
You could, however, change the path of "Program Files" so your point still holds.
The same thing happened with the System32 folder. On 64-bit systems, System32 actually contains the 64-bit(!) versions, and the equally confusingly named SysWOW64 contains the 32-bit versions.
https://stackoverflow.com/questions/949959/why-do-64-bit-dll...
All those glitches though came from MS's far too aggressive and unrealistic plans for Vista. A couple years before it launched, 2003 I think, I was heavy in the Mozilla world, and had a high-ish profile in the community (I ran MozillaNews.org and was a long time triager). Robert Scoble tried to hire me to be a bridge between MS and Mozilla, a tech evangelist for features of Longhorn (as Vista was known then) that could help Mozilla, or really features that Mozilla could be a showcase for and be a tech ad for MS. I set aside my suspicions and gave it a try, learning about the technical side of Vista. I learned a lot, and wound up not taking the gig. I told him I didn't think these things has any real benefit to a cross platform application like Mozilla, and that I had real doubts they'd have any real impact on the market even if they were delivered, which I had strong doubts about.
The three tentpoles MS wanted Mozilla to use were: 1. Avalon/WPF 2. Palladium 3. WinFS
1. I told Scoble that I saw no benefit in Avalon yet as in 2003/4 Mozilla wasn't really about to dedicate lots of time and attention to coding for some new graphics API that wouldn't be launched for years. He said it would be out much sooner. I said I had my doubts given it's rather early stage of development.
2. "Imagine users knowing their online banking and purchases are 100% secure thanks to the hardware and their OS!" I said I thought the idea was rubbish, a nonstarter, and I hoped it failed.
3. WinFS. My arguments were simple, "apps like this don't care about the FS. Plus, it'll never launch. I have zero faith this feature will be out before 2010. Filesystems are hard, and MS has a long history of cutting features to get products out the door. This is a prime target to be cut."
He argued it was solid and amazing, etc, as a good tech evang should, but in the end I said no to the whole deal. I couldn't in good conscience try to push tech that I didn't believe in and didn't even think would ever release. They were hell bent on shoving all this and more in Longhorn, rather than a smaller release in 2004 and finish the other features later. And thus, we got Vista. Lots of great tech, rushed out the door, and poorly configured.
I never liked Vista, can't say why but so far I think the UI/UX annoyed me. Everytime I boot Win7 I feel home (almost like NT5 or 95)
I'm inclining to believe this was on purpose, and not just in a "we just want to make the OS prettier for users" way. I think there used to be a theory that Microsoft did this to help PC manufacturers and chip makers sell more hardware, too.
Microsoft's mistake was that the resource requirements were too high compared to XP, so like 90% of the PCs running XP were useless when running Vista.
MacOS largely succeeds in this regard. I can access Disk Utility simply by typing ‘du’ (or even just ‘di' or just ‘d’ since it learns your preference) into spotlight and hit enter. I can launch any app this way without the need to clutter by desktop, dock or taskbar with shortcuts. Disk Utility and the various other utilities generally get large well branded icons and names that set them apart. Many of the Windows tools just use pretty bland and similar looking tiny icons making the visual aspect of search useless.
Worse still is that if you can have several Device Manager programs installed. I’ve a lab system that requires Win7. The frame grabber is accessed through its own Device Manager and my flow control system has something similarly named.
Reading the article it is easy to see why this behaviour is the case. There is clearly very little time for polish and for a singular vision on how everything should look and feel (taste?). It not surprising to see new Mac users delight in the attention to detail of MacOS. Windows often is obtuse and gets in the way.
Windows 10, for all its sins, makes some big improvements. Right clicking the start button or pressing Super-X instantly returns a list of all these system tools.
Windows search will often just refuse to give the correct answer until you type an exact match.
Even on fresh, completely updated systems I've found the Start menu is so intermittent that I'm glad I didn't sell them. The quality of Microsoft's work is called into question when the feature you're meant to "Start" with doesn't work.
There was a lot of locking issues, which broke in weird ways. My understanding is that the latest release gets rid of it.
In general I have an even bigger problem with the philosophy of what an OS should do. When I switch on my computer, it's not to admire the OS, its beautiful UI, etc. It is because I want to do something, code something, watch something, read something. I live in the applications not in the OS. The OS should be effortless, surprise-less, it should hide behind and do its basic tasks well. Windows 10 is the exact opposite. It's an OS that is in your face, which interrupts you with full screen banners all the time, which reboots you all the time, which shows you ads, shows you modal pop ups to tell you to do things differently, etc. This is not what we need an OS to do.
The upside is that it is driving developers and users away from the platform. Windows is a dead man walking.
Consider, as a non native speaker, if English speakers used your language of origin to mean "terrible". I don't know your language, but imagine it was Latin, and kids would taunt each other saying, "ha ha you're so latin" on the playground, and "windows search is simply latin". This is a constructed example, of course, but the issue is not that the word is offensive (fucked, or shit would have been fine), but that the word derives its power from being linked to marginalizing and othering people.
For more:
Anyway, I agree that such words should be avoided and not used. (Although it's hard to avoid it completely when talking about the word, without using it.)
The world is a big place and everyone does not (thankfully) live in the liberal US coastal areas :-)
A little more concretely: it's not up to the person saying anything to decide whether or not the thing they say conveys disrespect or harm. It is up to the people harmed by those words to decide. You can, of course, choose to ignore the harm done and continue on as before.
That said, I'm sure the OP's intent was innocent enough - this is the kind of thoughtless use of the word that I (and many other people) work to problematize. I had intended to do so publicly but without much fanfare (one quick sentence), to draw attention to this fact in hopes that we could all work to shift the language.
Speaking subjectively, I find it troubling that the notion that basic decency toward other humans who have a relatively simple ask (use "terrible" or "garbagefire" or "shitty" instead of "r_") is viewed as a "liberal US coastal" practice that should be avoided out of sheer tribalism. Not sure there's much else to say rather than "troubling".
This whole thread is OT at this point, but I'm simply not willing to let this go. The lexicon has plenty of synonyms for "is terrible and unintelligently designed and frustrating to use" that we can afford to drop one.
As to why I have to open mouse settings so often, Windows inexplicably forgets my scroll speed setting every time I plug my mouse in.
On Windows Vista (and later versions) search, sure, it would find the things you were looking for. But no-one gave a thought to how it should be displayed. Does the search work? Check. Feature done.
Apple designed Spotlight in a way that it would actually return the results you expect when you type a search query.
I bet it took a lot of effort at Apple, too, because making a good search is really difficult. If you just depend on the tools given to you by your database, you'll probably end up with something that works, but not necessarily something that does what you want.
Windows has various locations where apps are typically installed or dumped (Program files, Program files x86 , program data, app data...) where the particular executable in buried somewhere amongst everything else. Shortcuts to these and various other applications are scattered all over the place.
If you build such a simple approach to dropping applications into a single directory with big obvious icons, not only does it look clean to a user but it prevents naming duplication and allows your search tool to match to this directory first so you can esasily use Spotlight as a launcher.
Also, Safari.app (e.g.) is not an executable -- it's essentially just a folder with special display characteristics in the Finder. Many app bundles contain several executables.
Heck even using the New... context window in Explorer is a joke.
On top of that, getting info about the application involves parsing .plist files, followed by parsing localization.
Similarly, yes, getting app info involves parsing files in a known location with a known format, how could that situation be better?
I’m not sure how often people fail to put applications where they go. Especially nowadays, where most applications ship as .dmg files that open to a giant arrow telling you to drag the app to Applications, and many nag you if they’re run while not there, and App Store solves this entirely by just putting them there.
To be fair, neither Program Data (which is effectively ALl Users AppData), nor AppData are endorsed as application installation locations by Microsoft. For a variety of reasons. Chrome started quite a trend, though for installations without admin privileges to install to AppData for convenience.
The big change was in the registry: HKEY_CLASSES_ROOT was no longer a direct shortcut to HKEY_LOCAL_MACHINE\SOFTWARE\Classes, but instead was a dynamically merged view of that key and HKEY_CURRENT_USER\Software\Classes.
This allowed you to register COM objects for the current user without requiring administrative privileges.
I and many other people were doing per-user installs long before Chrome existed.
This is especially useful for apps that auto-update. If you install in Program Files [(x86)] then you will pop a UAC prompt every time the app updates. If you install per-user it can be a silent update.
For Windows users switching to Mac OS X, it's not really something they're used to doing. Instead of downloading an installer, clicking "Open" in the browser, and just following a guide leads to less issues with placing the application the correct place (Program Files), instead you get either a Zip file (so the bundle is in Downloads), an actual Installer (typically a .pkg), or a Disk Image which is often never unmounted. (I once saw a family member with 7 Flash Update disk images mounted)
As such, a lot of OS X users find themselves with a the Skype app in Desktop (inside a Disk Image), their Mail on the dock and some other app in Documents or Downloads. It requires that you organise it yourself.
Another way of saying it is that it lets you organize it yourself.
There will always be people who don't understand, or care to understand, how the system works. You can put in all the hand-holdy nonsense you want to cater to them and they'll still exist, but you'll be adding tedious and unnecessary hurdles in the workflow of people who do know what's going on.
This completely breaks scrolling. My eyes can't properly follow that and the touch component is off: you move your fingers, nothing happens, then suddenly a lot. It's not continuous, which makes no sense for finger interaction.
Apparently it's because the app has to support the specific touch input events for scrolling and before creators update, they would simulate it. Now they don't. I really don't give a fuck for their reason if it means even scrolling in Explorer doesn't work anymore.
Windows+X is your friend. It's the power user menu with all of the things you mentioned on it.
There are a ton of useful Windows+key shortcuts. Try all the letters and the arrow keys too.
Right now we have:
* Android - basically ad supported, therefore misaligned incentives
* iOS/macOS - locked into Apple hardware
* Windows - old school licensing until 10, with the problems they mentioned for Vista; new licensing which seems to be more like Android adware
A cheap yearly subscriptions would realign the incentives: I am the client, I want frequent feature updates, I want fast security updates, I want to be the client and not the product, I don't want the company to go under or force development teams into stupid feature development or release trains cause they need to make sure there's a revenue stream.
Basically I pay them for providing timely security and regular feature updates, preferably in an incremental fashion.
Everyone who's not happy with this can either lock themselves into hardware (Apple) or go DYI, basically, with Linux/BSD or just accept that being tracked isn't that bad (Android).
I'd be really sad if the anti-tracking forces within the Windows division lose. There has to be a better revenue model than tracking users and providing ads, somewhere.
Also, they do operate on the other spectrum of this continuum, Windows 10 collects a lot of data, for what I presume is user tracking for ads & co.
I understand that you don’t see it if you don’t look but you certainly are paying for it.
I prefer my FreeBSD box running Motif as my daily driver though.
I've also had the login background turn into an ad for a game.
That time I and a number of others reported it quite loudly IIRC and since then I can't remember seeing anything like that before today.
And yes, ads in the start menu are real as well.
http://www.amigahistory.plus.com/a500batman.html
Back then they were Packs, now in digital format they are ads.
It is not Microsoft that tracks me whenever I am, unless I disable the settings in play services, and even then I am not sure.
It is not Microsoft that sells an OS whose premise is that all my data lives on their servers.
It is not Microsoft that created an office suite that hides my data behind servers, with access to everything I might create with those applications.
Buddling software with the computer being bought was already a thing in the 8 bit era, with C64, Spectrum, MSX and Atari packs.
I bundle telemetry/data collection with ads for my post since in the end they're just different ends of the same continuum.
Hosts-file-based blocking requires Root, which Google has also practically cut off from end-users. Yes, the manufacturers can give you root, so clearly it's their fault, but Google doesn't implement user access control, making Root extremely insecure on Android.
So, if you really need more examples of Google's doing to convince you that it is the platform which causes Android's 3rd party apps to have so much more ads and tracking than other platform's 3rd party apps:
- Android has an "AdvertisingID", uniquely identifying you towards advertisers or anyone else who has a use for it, with essentially no effort required.
- Google's ad display component is a native UI element on Android, so when developing an Android app, you pretty much just need to drag and drop it onto your UI to be 90% there to displaying ads. Really, you don't even need to plan on making revenue with the app, it's so easy to just include ads.
- The Play Store doesn't even attempt to quality control apps in terms of advertisements. No other major software distribution platform is as laissez-faire with that.
But at least Android is $0, and I have the choice to use a fork.
(not that I would use Android for productive work)
Oh God no. I am the client, I DO NOT want frequent feature updates, or any update at all, except important (life-threatening) basic security patches. I want things to NOT CHANGE ever, esp. the UI and the way to do basic tasks.
I'd rather have frequent small changes than Big Bang changes...
This is XFCE in 2003: https://cdn.xfce.org/about/screenshots/4.2-3.jpg
This is XFCE today: https://cdn.xfce.org/about/tour/4.12/xfwm4-tiling-small.png
XFCE has been already been mentioned. But Openbox, dwm, awesome, etc... all could fit.
Note that it's expected, and assumed, that the user can switch to these more conservative UIs if they prefer, even if the base distro defaults to only one.
As long as you don't fiddle around too much under the hood, and don't insert random commands in places because someone on the Internet told you to, things will Just Work like nothing else. There's something to be said to having the developers actually caring about making a useful computer without allowing the marketing department to take charge.
Don't try to run it on some unsupported hardware (including outside "third party drivers"), anything bog standard Intel based will do, and you'll be absolutely fine.
I like AAA games, almost none of the games I play are available on Linux (primarily Blizzard games). A lot of desktop apps I like or need are not on Linux, etc.
In any case, let's just say I used to have a Linux site and forum back in 2007 or so, I'be been through the Linux evangelism cycle a few times.
For many people, such as myself, Linux desktop is acceptable but not the best option. And for a reasonable price I'd rather have the best option for me, personally.
I don't have any first hand knowledge about the AAA gaming industry but from what I understand, the studios offload a lot of the work to the GPU manufacturer (nVidia most likely) who then "fixes" the bugs in what they call a graphics driver.
I think this is the main problem. The so called graphics drivers do too much work and games don't pull their own weight.
What's weird to me is that a lot of games will run on Linux, eg via WINE (PlayOnLinux) say but the companies then appear to be hostile to users doing that. I used to play a load of the Tom Clancy games on WINE [single player], but then Origin messed with something, maybe their cheat system, making it no longer work on Linux. So now I don't buy games from Origin any more and stick with Steam.
It's not just "not ported to", game companies seem actively hostile to [paying!] Linux users, I don't know if MS pay them to be like that or what their motivation is?
Couldn't they just respond to support requests with "we don't support non-MS users" rather than actively preventing the use.
This is an incredibly important point. The community is full of true believers and college students (and many are both) who just can't fathom that almost all of their dev tools and workflows suck compared to professional grade tooling available outside the FOSS echochamber. I have nothing against FOSS in principle, but in practical use I have become convinced that there is no reason to develop on Linux, unless you develop specifically FOR Linux. And even then it's such a PITA to do anything complex that it's often just not worth it to target Linux if you don't absolutely have to. Microsoft and Apple have realized how important it is to make it easy for developers to create good software.
Until you want to change something. It is trivial to target a single use case and make it easy with Linux (most of the time) or almost any other OS, but that isn't what we want from Desktop OS, we want flexibility so we can conform it to our workflow, and Linux Desktop is absolutely terrible at that because it's become a giant Rube Goldberg machine of schizophrenic and often half-thought out components written with the idea that they're in a multiuser server environment but pretending they were designed for personal desktops.
If someone built a new, joy to work with and develop for, userland on top of the Linux kernel that wasn't oriented towards the idea that the system is a multi-user network server in 1983, I would subscribe the hell out of it (though in my opinion it had better be open source regardless). As a side project, I'm actually playing with concepts in this vein, but I'm really not that good a developer and don't have a lot of time to devote to it, it's just that no one else is doing it.
Different distros (that aren't just modified Debian or redhat) can differ by quite a lot.
Disagree. The documentation for systemd is very detailed, and while it is in fact different from sysvinit (which I believe is 90% of the criticism), it is remarkably consistent with itself (compared to a feature-equivalent set of 100 separate tools).
The big achievement of systemd is that it steamrolls over a ton of idiosyncrasies that distributions built over the decades. These days, I can just SSH into a random distribution (Arch, Debian, Ubuntu, Redhat, Suse) and everything works as I expect (querying the status of services, finding logs, issuing administrative commands, etc.).
I don't get where you're getting this idea.
There are attempts being made. Your comment is too vague to be falsifiable, though. Would you mind being more precise as to what you'd like to see changed?
Package management and spreading files all over the hierarchy is a really terribly inflexible way to manage applications. Applications should just be folders that contain any resources the application requires that aren't in the base system (this requires a defined and stable base system). This requires no special management software whatsoever and fits intuitively into the file management metaphor that already exists. See: Application Bundles, AppDirs, AppImage, and just about any desktop os before Windows 95.
Permissions should not be oriented around protecting the system from the user. That's a concept that makes sense in multiuser servers and organization networks, not personal devices. Permissions should be oriented around protecting the user's data from misbehaving applications.
Base system libraries should be stable on at least decade long timelines, barring a severe security issue that cannot be mitigated in any other way. I generally agree with Linus's opinion regarding breaking comparability. Unfortunately, a lot of the developers of the userland stuff aren't Linus.
In general, the OS should not presume it knows what my workflow is. This is the problem with the difference between "easy", which requires understanding what I want, and "simple" which is making systems understandable enough that I can conform them to what I want. It is my opinion that Linux Desktop has put so much effort into being easy that it has destroyed any simplicity it once had (see common Linux Desktop evangelist argument: "normal users don't need that").
The commandline environment and toolset are ass. PowerShell implemented the same concept significantly better.
Explaining my ideas for the how a GUI interface should work would take a long time and are not really relevant because they could exist as just another compositor in the current ecosystem.
You're basically describing OCI/docker/moby containers.
None of them use any containerization hackery to make it work, they just don't hardcode paths at compile time in their applications like UNIX developers do.
The time when applications were universes by themselves ended in 1990 with OLE.
On the disk, it boils down to a single copy of each framework required. Additionally, the flatpak repository is content addressable, the constructed directory trees are hardlinks to the repository, so multiple versions or even separate frameworks will share identical files.
Linus, the guy who doesn't give a shit about breaking the ABI of drivers.
However, the folks who break internal APIs also fix the users of these APIs -- if they are available to them. If they are not, tough luck, if you want to keep the driver to yourself, you get to keep all the broken pieces too.
AppImage did it much better and even that's overengineered, but its goal is to work on all Linux distributions (without a package manager or a new infrastructure or anything) and really doesn't do much more than the bare minimum to make that happen. Naturally, the Linux Desktop community largely ignores it for making too much sense.
Anyway you are missing one of the core problems of linux distros- they are not split between "base" or "core" OS and extra packages; they are a single monolithic thing! That is why debs and rpms install right into /usr/bin along with the core OS. There is no difference.
I may be wrong, but WindowMaker, being based on GNUStep, which was derived from NextSTEP, might have also supported application bundles (as in the actual NextSTEP Application Bundle specification).
“These days, the problem isn't how to innovate; it's how to get society to adopt the good ideas that already exist.” - Douglas Engelbart
> Anyway you are missing one of the core problems of linux distros- they are not split between "base" or "core" OS and extra packages
I didn't miss it, I mention right in there that having a defined base system is a requirement. Something I didn't mention is that I will not call the end product a "Linux Distribution", because it is not intended to play nice with existing Linux Desktop paradigms. It'll be like Android, a completely different OS underpinned by the linux kernel.
There are alternative models out there. There are Chromebooks where you basically live in the browser (which many people do anyway for most of their computing) and there's the app store model we see on phones and tablets.
I guess there's a potential for new paradigms that blend the flexibility of current GUIs with simplicity but I'm not sure a multiuser server foundation has much to do with it.
The mobile OSs orient the permissions system around the applications, protecting the user's data and resources.
You don't need to tabletize your interface to implement this concept. Bubblewrap, FireJail, and some similar software already exists that implements this in Linux (poorly in my opinion, but it works).
The self-contained application bundles idea that you espouse can be found as Daniel J. Bernstein's "slashpackage" mechanism, from the turn of the century. It gives side-by-side installation of multiple versions of packages and simple packaged files installation, upgrade, and removal procedures.
* https://news.ycombinator.com/item?id=10357816
* http://code.dogmap.org/slashpackage/
The ability for users to isolate their own applications from one another is one of the concepts (removing the superuser) that underpins GNU Hurd, where one can sandbox one's own programs using translators and servers that substitute for the root ones.
But there is no system I can install today that makes it the primary way of doing things. That's what I'm trying to build, a new OS (or perhaps "operating environment" would be a more precise term), not a "distribution", on top of the Linux kernel, that takes the good ideas that already exists and makes them the primary way of doing things.
It's likely that even if I did finish the project people would ignore it. Maybe only I think these are good ideas, maybe I'm missing something, but I don't care. When I look at the future of the desktop operating system I see Windows 10 continuing down its path of becoming increasingly uselessly stupid, and the Linux Desktop, and those two futures make me want to become Amish. I'm building this because if I don't build something like this because if I don't I'll probably just leave computing altogether.
For me, Windows wastes about 2% of my time per year (mostly due to Windows update). From a business perspective, that might justify a $10k expense to recover that lost productivity. From a personal perspective, I would pay $500 to recover that time for my own use. No idea if there's enough like-minded people to make a new OS profitable, though.
The sticking point is that to recoup time lost to Windows the new OS would have to completely replace Windows, which means being able to run key Windows-only business software (SolidWorks, etc.). Maybe it makes more sense to just support Wine instead of reinventing the OS.
You just described at least a dozen Linux and BSD distributions. They fit every single one of your points and are free.
Basically, you want Ubuntu/Mint/Fedora, but the last time you used one of them was 10 years ago.
I needed to escape Windows as soon as I installed the Windows 8 preview, and realised Microsoft's incentives where going against mine.
(and don't talk to me about lock-in or software unavailability, I had a 20 year career of MS tech)
> that we would no longer support their legacy apps with deep hooks in the Windows kernel — the same ones that hackers were using to attack consumer systems. Our “friends”, the antivirus vendors, turned around and sued us, claiming we were blocking their livelihood and abusing our monopoly power!
I think most people would expect
/home/geokon/program1/src/
and
/src/program1/home/geokon
to have pretty much the same content
A tag based file system that made the two equivalent would eliminate all sorta of annoyances where you can't decide how to structure your file hierarchy (should you have bin/program1 bin/program2 src/program1 src/program2 or program1/src program1/bin program2/src program2/bin? both layouts have their advantages).
Something like a "path/path/bin/path/path/bin" wouldn't work.. but it's hard to find a case where you really need it. Currently I do from time to time come across 'include' folders inside of 'include' folders, but not for any good logical reason.. more b/c an in-source build vomited something up
You could also have tag based permissions so sharing files between users becomes a lot more sane (file1 has tag 'bob' and tag 'bill' so that they both can access it, instead of having it in .. /home/bob/ and then sim-linked to /home/bill/ or whatever other workaround you'd do in POSIX)
Yeah, the filesystem wouldn't work so great if you have thousands of tiny files... but I'd probably argue that you shouldn't have thousands of tiny files in the first place. If your program needs tens of thousands of tiny files then it should probably use something other than the filesystem
> Yeah, the filesystem wouldn't work so great if you have thousands of tiny files... but I'd probably argue that you shouldn't have thousands of tiny files in the first place. If your program needs tens of thousands of tiny files then it should probably use something other than the filesystem
That's dismissing a core feature of many production file systems today, some of which are used precisely because they support this feature.
You're not wrong, but I think that that situation is rather rare and rather harmless. In the vast majority of cases the context doesn't change the meaning of the name much. The converse situation, where you have many folders with the same meaning, is a lot more common. You probably have dozens of 'src' 'include' 'build' folders on your machine; and you could have dozens of folders called "June" "August" "September" - all which carry the same exact meaning in their respective contexts. But we've been forced to recreate these redundant folders b/c the system forces us into use a tree structure for concepts that don't necessarily conform to it.
It absolutely does, and in a vast number of cases I have duplicate folder names.
I probably have a hundred different folders on my computer called "src". Knowing that it's ~/dev/projectName/src/ helps me know which src folder it is.
For a non-software example, I always organize my client folders somewhat like: ~/clients/A/contracts, or ~/clients/A/designs, ~/clients/A/notes
>-The most frustrating year of those seven was the year I spent working on Windows Vista, which was called Longhorn at the time. I spent a full year working on a feature which should've been designed, implemented and tested in a week.
http://moishelettvin.blogspot.co.uk/2006/11/windows-shutdown...
It was brave to reset after Longhorn but it seems not all the bad ways of working could be shaken off.
Also the fancy Aero UI looked cool but was taxing for the average user’s computer. So a lot of people when they installed Vista didn’t get the experience they had been shown in commercials and screenshots.
On top of that literally everything in the OS had moved around from where people had been expecting it to be as far as settings and configuration stuff. Keep in mind people had a pretty consistent experience from 95 to 98 to XP. Vista flipped the script and users no longer knew how to do things. A mistake Microsoft repeated and was similarly punished for in Windows 8.
The whole world was not delusional to say they didn’t like Vista. When all your users say something sucks then you should listen.
Windows 7 was mostly PR but the big thing is that it had device support on rollout.
It wasn't a security improvement. For one, it mostly just got in the way and trained users to ignore it, negating the purpose of its existence, but it also never protected the user from anything. Case in point: ransomware needs no elevated permissions.
That's the result of how we drew up the security boundaries on desktop operating systems. You don't need admin permissions to rewrite your most important documents, so ransomware running under your user account doesn't either. See also: https://xkcd.com/1200/
Linux and macOS have this problem too. The solution isn't to remove the security boundary between the user and admin accounts and to go back to the Windows 9x-era of having zero OS-level security. The solution is to create more security boundaries, so that not every program running on your behalf has the permission to rewrite all your documents. UAC was an unpopular, but not totally ineffective step in the right direction.
What our real goal is, is to prevent misbehaving applications from compromising the user's work. Obvious conclusion: permissions boundaries should be on the applications. On this we agree.
I had the clear impression that right now, Ubuntu is the friendly way while MS-Windows is the diy/hacker way.
Reinstalled a few months ago and forgot to install Samsung Magician for my NVME drives and so they were capped at something like half their speed.
I don't expect Microsoft to keep up with every vendors drivers but it'd be really nice if they let them tie into Windows update/device manager to tell you "Hey, swozey, I see hardwareID XYXYASUhF12 is running a generic driver, do you want to update to your vendor proprietary driver?"
Maybe they do have that and hardware manufacturers just don't utilize it.
After dealing with that 3-5 times over the last year (migrating to NVMEs, realizing I couldn't encrypt mine, migrating back, yadda yadda) I finally made a Veeam restore ISO which hopefully next time I do this will handle all of it. But I feel like it shouldn't take that to get my system up and running from a fresh install.
Wow. Is there a backstory here in regards to the development of Windows Defender? I think that was introduced with Vista?
Interesting point, reminds me of https://laughingsquid.com/organizational-charts-for-tech-com...
I helped a non-tech friend migrating from a crumbling XP laptop to a newly bought Vista laptop.
Took us the best part of an afternoon, because I was really careful and she was paranoid about losing her stuff.
Two things did not work for her: 1) No way to migrate groups (address lists, not sure of the name) from Outlook Express to Vista mail standard app (I also tried Thunderbird and/or another free email app and in the end had to cobble together a small utility to get the addresses out of sent email headers). 2) Word had to be updated (paid) - I don’t remember exactly what the problem was but I think it just wouldn’t run.
On top of that the UI felt alien and non-intuitive to us both.
So while technically it might have been a jewel, in terms of user experience (including the fact that third-part stuff worked, while MS apps were the only ones giving us problems)it really looked like great advertiing. For OsX...
OOI, what parts of the UI did you find non-intuitive? I found the new Start Menu odd, but it wasn't long before I was more used to pressing Windows, then typing, to launch a program, rather than find it manually. I can't believe I used to spend so much time manually organising my Start Menu! (And I'm usually the type that doesn't like this sort of change)
In any case, the UI was only a minor concern: I was confident that everyone can learn and adjust after a few hours of work with it. But what I could not help to notice was that I still remembered clearly what happened when I started my first Macbook (three years before the Vista episode): the UI felt very different than what I was accustomed to... but it felt also much better. Intuitive, empowering. When something unexpected happened it was, most often than not, a nice surprise like "wow, the global search can find strings even in a just-closed Word for Mac documents!" (compare and contrast with stuff like Magellan on Windows) or how the progress bar on file copies worked (compare and contrast with https://xkcd.com/612/ ).
I was that person in high school who was running a test version of Vista and also the RTM on a pretty powerful Alienware laptop.
Interesting point I'd never considered. Talk about a requirements shift.
It was the first time we ever held on while a new operating system was out. Windows NT to 2000 to XP was just so automatic.
I'd love to get clarification on what "checkin" [sic] means in this context.
Were they waiting for permission for their equivalent of a feature branch to be merged, or were they actually waiting for their code to be added to the repository in the first place?
It’s insecure to not warn people constantly. Full stop. (Never mind that desensitizing people or any of a dozen predictable side effects are ignored). It’s oversimplified black-and-white thinking endemic of many management mistakes.
Instead tablets peaked, then bigger smartphones ate their share instead of tablets taking out the remaining use cases for traditional form factors.
And pushing that agenda tooth and nail.
KDE seems to keep it together. KDE plasma 5 seems an incremental upgrade from what came before, getting rid of some of the weirdness and converging on something sane. Progress at least. I can respect what they're doing.
Microsoft, in all it's bullshit, every few years seems to give the users what they want. Licensing is a headspinner, and privacy is questionable, but otherwise they still make an operating system that feels good to use.
I've been using Gnome now for about three years. I find the hot corner UI to be intuitive (and I find myself trying to use that and the meta-key expose function on other OSes). The favorites dock and the search are things that I use frequently, and the title bar menus make sense to me.
I was a Gnome 2 user for years as well, and yes it was polished and predictable. But it wasn't attractive. I think Gnome 3 was the next logical step for the project as far as contemporary UI patterns go, and it feels very "ergonomic" to me.
I would suggest that Pantheon (the DE for Elementary OS) is more polished compared to Gnome 2. Cinnamon (the DE for Linux Mint) is another solid choice if you wanted incremental improvements over Gnome 2.
Instead it seems like in the main, people have (once again) decided that they don't really care to switch between a PC modality and a tablet modality [ADDED: on a single device], however appealing the concept seems on paper. And, as you say, the smartphones that everyone (to a first approximation) owns grew to their approximately maximum size and those are good enough tablets for a lot of people.
Windows 8 was designed before the iPad was announced, but that 3 year ship cycle this article discusses came back to bite Microsoft. Their vision was a hybrid system but then Apple came out and solidified themselves as the standard tablet. Microsoft lost their ability to define the market and the market liked Apple's definition better.
For example the new ideas for the UI were quite interesting, but it was quite obvious they had ship it way before it was ready. They were interesting, because they solve one (IMHO) big issue: ordinary users have hard time taking full use of their screen real-estate. Windows are hard to manage and people end up switching between full screen apps, while it would be in many case more effective to use them side-by-side. A tiling window manager would help here.
From very far away, WinFS looked like a turkey even a dozen years ago. I don't know how a smart cookie like Gates went for it. Probably was standing too close.
It was a hard time as a developer to feel proud of being part of that world. I saw a company that I admired behaving idiotically and under poor management[1]. I loved developing in C# (especially after .Net 2.0 with Generics), but I was generally unsatisfied with my operating system (Windows XP and later Windows 7 ... my company never went Vista). Because of the massive numbers of competing factions that this author points out, Windows tended to get everything but the kitchen sink and managed to do so in a sub-par manner. Oh, how I loved, killing the file/URI associations to Internet Explorer and Windows Media Player on my own PC in favor of Firefox and VLC only to have to make sure that all of the crap I wrote played well with both of those if they applied to the project[2]. The classic Bill Gates rant about Windows Movie Maker summed up that time pretty well[3].
The last few years under Nadella have been something special to me. Windows 10, despite its flaws/spyware bordering on malware, is enjoyable to use. I have bash (well, zsh, in my case) that functions far better than cygwin/msys ever did, PowerShell -- despite my general hate for its syntax and performance -- can basically handle any scripting task I need to throw at it and is far superior to cmd. Heck, in Windows 10, I can even have a True Color experience in conhost. Visual Studio Code, unlike Visual Studio, is an editor I actually go out of my way to use (as do all of my Linux-only coworkers). Microsoft is developing .NET out in the open and has embraced open-source in a way that a decade ago would have been met with suspicion related to "Embrace and Extend". And when I mention that I write code in C#, I don't have to listen to Java/other folks yelling at me about how evil Microsoft is.
And then there's my home-computing life. Despite my previous statements about Windows 10, some of my love for Ubuntu on Windows actually turned me away from Windows. I'd always run Linux at home. All of my servers are bare-metal Linux with one Windows host in a KVM virtual. I started loathing any time I had to do something that took me out of the tooling I use in the Linux world. Just try fighting with gpg-agent on Windows to get SSH key-auth working using the vanilla command-line SSH. It sucks and PuTTY/Pageant is far from a suitable alternative. Jumping and moving things among hosts via SSH, shell and just generally interacting with Linux is far less painful than Windows. So when I got my new laptop this Christmas, I had no intention of ever running Windows 10 on it. I actually booted it and it hung on "set up Windows Hello". I'm not even sure why I bothered to boot it to the hard drive in the first place. This is the first time in a decade of running Linux that I'm actually running it full-time on the machine I spend the (second) most time on. And I discovered, much to my surprise, Windows 10 flies in a KVM virtual with virtio drivers set up in the relevant places. Any time I'd tried to run any Linux variant in Hyper-V and actually use KDE, Gnome or any graphical interface, I gave up after swearing a bit. No clipboard support, and performance was unacceptably laggy. The other way around, I can barely tell I'm in a virtual (I toss the console off to Desktop 2 and I can flip between Windows and Linux) all without doing fancy things like GPU pass-through. And I really only have it there so I can compile a program with MSVC and test the Windows side of it. At this point I don't ever see going back (or switching to fruit). I love endless configurability (even if it comes at the cost of things not being close to "quite right" at the start) and having a mountain of good, free, choices at my disposal. And that work computer is getting reloaded next month when I'm done with the project I'm working on and have a free moment to do so.
[0] The bane of my existence being Excel and Access -- which employees at the company I worked at at the time used to solve incredibly complicated problems, incorrectly, and then panicked when their drive failed or the Access database become corrupted to the point of no return and we discovered how many hundreds of thousands of dollars was about to be lost due to worker creativity.
[1] Ballmer less so than Gates. That's my opinion, which I would normally be happy to back up, but I'm leaving it alone, today.
[2] Don't use that particular CSS, or worse, mangle it in this manner in case of IE 5/6. And why do we have this massive extra video file, oh yeah, that's the best format we can encode it in to guarantee playback on stock Windows without additional codecs installed -- because expecting a codec installation to work across all PCs always ends in tears.
[3] I'm not actually sure if that's urban legend or not and don't care to dig into finding out -- even if it is, and wasn't spoken by The Bill, every statement made described the mess that had become Windows at that time pretty well.
Funny he considers testing a problem. So this is the new Microsoft: testing is not important.