Software Run Amok

Discussion in 'Interesting/Unrelated' started by bphlpt, Oct 14, 2019.

  1. bphlpt

    bphlpt A lowly staff member Staff Member

    I've mentioned before, as have most of you, that I've found the software bloat to have gotten out of control, MS OS as a prime example, but I ran into the below two articles through a post at MSFN that completely explain my frustration, and I thought you would all appreciate them as well.

    After reading them, you might agree with me that maybe Johnrw's approach to go back to DOS and Win 3.1 might not be such a bad idea. :)



    ===============================================================================

    https://tonsky.me/blog/disenchantment/


    Software disenchantment


    [​IMG]
    Translations: French Italian Korean Portuguese Russian Spanish

    I’ve been programming for 15 years now. Recently, our industry’s lack of care for efficiency, simplicity, and excellence started really getting to me, to the point of me getting depressed by my own career and IT in general.

    Modern cars work, let’s say for the sake of argument, at 98% of what’s physically possible with the current engine design. Modern buildings use just enough material to fulfill their function and stay safe under the given conditions. All planes converged to the optimal size/form/load and basically look the same.

    Only in software, it’s fine if a program runs at 1% or even 0.01% of the possible performance. Everybody just seems to be ok with it. People are often even proud about how inefficient it is, as in “why should we worry, computers are fast enough”:

    @tveastman: I have a Python program I run every day, it takes 1.5 seconds. I spent six hours re-writing it in rust, now it takes 0.06 seconds. That efficiency improvement means I’ll make my time back in 41 years, 24 days :)

    You’ve probably heard this mantra: “Programmer time is more expensive than computer time.” What it means basically is that we’re wasting computers at an unprecedented scale. Would you buy a car if it eats 100 liters per 100 kilometers? How about 1000 liters? With computers, we do that all the time.

    [​IMG]
    Everything is unbearably slow
    Look around: our portable computers are thousands of times more powerful than the ones that brought man to the moon. Yet every other webpage struggles to maintain a smooth 60fps scroll on the latest top-of-the-line MacBook Pro. I can comfortably play games, watch 4K videos, but not scroll web pages? How is that ok?

    Google Inbox, a web app written by Google, running in Chrome browser also by Google, takes 13 seconds to open moderately-sized emails:

    It also animates empty white boxes instead of showing their content because it’s the only way anything can be animated on a webpage with decent performance. No, decent doesn’t mean 60fps, it’s rather “as fast as this web page could possibly go”. I’m dying to see the web community answer when 120Hz displays become mainstream. Shit barely hits 60Hz already.

    Windows 10 takes 30 minutes to update. What could it possibly be doing for that long? That much time is enough to fully format my SSD drive, download a fresh build and install it like 5 times in a row.

    [​IMG]
    Pavel Fatin: Typing in editor is a relatively simple process, so even 286 PCs were able to provide a rather fluid typing experience.

    Modern text editors have higher latency than 42-year-old Emacs. Text editors! What can be simpler? On each keystroke, all you have to do is update a tiny rectangular region and modern text editors can’t do that in 16ms. It’s a lot of time. A LOT. A 3D game can fill the whole screen with hundreds of thousands (!!!) of polygons in the same 16ms and also process input, recalculate the world and dynamically load/unload resources. How come?

    As a general trend, we’re not getting faster software with more features. We’re getting faster hardware that runs slower software with the same features. Everything works way below the possible speed. Ever wonder why your phone needs 30 to 60 seconds to boot? Why can’t it boot, say, in one second? There are no physical limitations to that. I would love to see that. I would love to see limits reached and explored, utilizing every last bit of performance we can get for something meaningful in a meaningful way.

    Everything is HUUUUGE
    And then there’s bloat. Web apps could open up to 10 times faster if you just simply blocked all ads. Google begs everyone to stop shooting themselves in the foot with the AMP initiative—a technology solution to a problem that doesn’t need any technology, just a little bit of common sense. If you remove bloat, the web becomes crazy fast. How smart do you have to be to understand that?

    An Android system with no apps takes up almost 6 GB. Just think for a second about how obscenely HUGE that number is. What’s in there, HD movies? I guess it’s basically code: kernel, drivers. Some string and resources too, sure, but those can’t be big. So, how many drivers do you need for a phone?

    [​IMG]
    Windows 95 was 30MB. Today we have web pages heavier than that! Windows 10 is 4GB, which is 133 times as big. But is it 133 times as superior? I mean, functionally they are basically the same. Yes, we have Cortana, but I doubt it takes 3970 MB. But whatever Windows 10 is, is Android really 150% of that?

    Google’s keyboard app routinely eats 150 MB. Is an app that draws 30 keys on a screen really five times more complex than the whole Windows 95? Google app, which is basically just a package for Google Web Search, is 350 MB! Google Play Services, which I do not use (I don’t buy books, music or videos there)—300 MB that just sit there and which I’m unable to delete.

    [​IMG]
    All that leaves me around 1 GB for my photos after I install all the essential (social, chats, maps, taxi, banks etc) apps. And that’s with no games and no music at all! Remember times when an OS, apps and all your data fit on a floppy?

    Your desktop todo app is probably written in Electron and thus has a userland driver for the Xbox 360 controller in it, can render 3D graphics and play audio and take photos with your web camera.

    [​IMG]
    A simple text chat is notorious for its load speed and memory consumption. Yes, you really have to count Slack in as a resource-heavy application. I mean, chatroom and barebones text editor, those are supposed to be two of the less demanding apps in the whole world. Welcome to 2018.

    At least it works, you might say. Well, bigger doesn’t imply better. Bigger means someone has lost control. Bigger means we don’t know what’s going on. Bigger means complexity tax, performance tax, reliability tax. This is not the norm and should not become the norm. Overweight apps should mean a red flag. They should mean run away scared.

    Everything rots
    A 16GB Android phone was perfectly fine 3 years ago. Today, with Android 8.1, it’s barely usable because each app has become at least twice as big for no apparent reason. There are no additional features. They are not faster or more optimized. They don’t look different. They just…grow?

    The iPhone 4s was released with iOS 5, but can barely run iOS 9. And it’s not because iOS 9 is that much superior—it’s basically the same. But their new hardware is faster, so they made software slower. Don’t worry—you got exciting new capabilities like…running the same apps with the same speed! I dunno.

    iOS 11 dropped support for 32-bit apps. That means if the developer isn’t around at the time of the iOS 11 release or isn’t willing to go back and update a once-perfectly-fine app, chances are you won’t be seeing their app ever again.

    @jckarter: A DOS program can be made to run unmodified on pretty much any computer made since the 80s. A JavaScript app might break with tomorrow’s Chrome update

    Web pages working today would not be compatible with any browser in 10 years time (probably sooner).

    “It takes all the running you can do, to keep in the same place”. But what’s the point? I might enjoy occasionally buying a new phone and new MacBook as much as the next guy, but to do so just to be able to run all the same apps which just became slower?

    I think we can and should do better than that. Everyone is busy building stuff for right now, today, rarely for tomorrow. But it would be nice to also have stuff that lasts a little longer than that.

    Worse is better
    Nobody understands anything at this point. Neither do they want to. We just throw barely baked shit out there, hope for the best and call it “startup wisdom”.

    Web pages ask you to refresh if anything goes wrong. Who has time to figure out what happened?

    [​IMG]
    Any web app produces a constant stream of “random” JS errors in the wild, even on compatible browsers.

    The whole webpage/SQL database architecture is built on a premise (hope, even) that nobody will touch your data while you look at the rendered webpage.

    Most collaborative implementations are “best effort” and have many common-life scenarios in which they lose data. Ever seen this dialogue “which version to keep?” I mean, the bar is so low today that your users would be happy to at least have a window like that.

    [​IMG]
    And no, in my world, an app that says “I’m gonna destroy some of your work, but you get to choose which one” is not okay.

    Linux kills random processes by design. And yet it’s the most popular server-side OS.

    Every device I own fails regularly one way or another. My Dell monitor needs a hard reboot from time to time because there’s software in it. Airdrop? You’re lucky if it’ll detect your device, otherwise, what do I do? Bluetooth? The spec is so complex that devices won’t talk to each other and periodic resets are the best way to go.

    [​IMG]
    And I’m not even touching the Internet of Things. It’s so far beyond the laughing point I’m not even sure what to add.

    I want to take pride in my work. I want to deliver working, stable things. To do that, we need to understand what we are building, in and out, and that’s impossible to do in bloated, over-engineered systems.

    Programming is the same mess
    It just seems that nobody is interested in building quality, fast, efficient, lasting, foundational stuff anymore. Even when efficient solutions have been known for ages, we still struggle with the same problems: package management, build systems, compilers, language design, IDEs.

    Build systems are inherently unreliable and periodically require full clean, even though all info for invalidation is there. Nothing stops us from making build processes reliable, predictable and 100% reproducible. Just nobody thinks its important. NPM has stayed in “sometimes works” state for years.

    @przemyslawdabek: It seems to me that rm -rf node_modules is indispensable part of workflow when developing Node.js/JavaScript projects.

    And build times? Nobody thinks compiler that works minutes or even hours is a problem. What happened to “programmer’s time is more important”? Almost all compilers, pre- and post-processors add significant, sometimes disastrous time tax to your build without providing proportionally substantial benefits.

    [​IMG]
    You would expect programmers to make mostly rational decisions, yet sometimes they do the exact opposite of that. E.g. choosing Hadoop even when it’s slower than running the same task on a single desktop.

    Machine learning and “AI” moved software to guessing in the times when most computers are not even reliable enough in the first place.

    @rakhim: When an app or a service is described as “AI-powered” or “ML-based”, I read it as “unreliable, unpredictable, and impossible to reason about behavior”. I try to avoid “AI” because I want computers to be the opposite: reliable, predictable, reasonable.

    We put virtual machines inside Linux, and then we put Docker inside virtual machines, simply because nobody was able to clean up the mess that most programs, languages and their environment produce. We cover shit with blankets just not to deal with it. “Single binary” is still a HUGE selling point for Go, for example. No mess == success.

    [​IMG]
    And dependencies? People easily add overengineered “full package solutions” to solve the simplest problems without considering their costs. And those dependencies bring other dependencies. You end up with a tree that is something in between of horror story (OMG so big and full of conflicts) and comedy (there’s no reason we include these, yet here they are):

    [​IMG]
    Programs can’t work for years without reboots anymore. Sometimes even days are too much to ask. Random stuff happens and nobody knows why.

    What’s worse, nobody has time to stop and figure out what happened. Why bother if you can always buy your way out of it. Spin another AWS instance. Restart process. Drop and restore the whole database. Write a watchdog that will restart your broken app every 20 minutes. Include same resources multiple times, zip and ship. Move fast, don’t fix.

    That is not engineering. That’s just lazy programming. Engineering is understanding performance, structure, limits of what you build, deeply. Combining poorly written stuff with more poorly written stuff goes strictly against that. To progress, we need to understand what and why are we doing.

    We’re stuck with it
    So everything is just a pile of barely working code added on top of previously written barely working code. It keeps growing in size and complexity, diminishing any chance for a change.

    To have a healthy ecosystem you need to go back and revisit. You need to occasionally throw stuff away and replace it with better stuff.

    [​IMG]
    But who has time for that? We haven’t seen new OS kernels in what, 25 years? It’s just too complex to simply rewrite by now. Browsers are so full of edge cases and historical precedents by now that nobody dares to write layout engine from scratch.

    Today’s definition of progress is either throw more fuel into the fire:

    @sahrizv: 2014 - We must adopt #microservices to solve all problems with monoliths.
    2016 - We must adopt #docker to solve all problems with microservices.
    2018 - We must adopt #kubernetes to solve all problems with docker

    or reinventing the wheel:

    @dr_c0d3: 2000: Write 100s of lines of XML to “declaratively” configure your servlets and EJBs.
    2018: Write 100s of lines of YAML to “declaratively” configure your microservices.
    At least XML had schemas…

    We’re stuck with what we have, and nobody will ever save us.

    Business won’t care
    Neither will users. They are only learned to expect what we can provide. We (engineers) say every Android app takes 350 MB? Ok, they’ll live with that. We say we can’t give them smooth scrolling? Ok, they’ll live with a phone that stutter. We say “if it doesn’t work, reboot”? They’ll reboot. After all, they have no choice.

    There’s no competition either. Everybody is building the same slow, bloated, unreliable products. Occasional jump forward in quality does bring competitive advantage (iPhone/iOS vs other smartphones, Chrome vs other browsers) and forces everybody to regroup, but not for long.

    So it’s our mission as engineers to show the world what’s possible with today’s computers in terms of performance, reliability, quality, usability. If we care, people will learn. And there’s nobody but us to show them that it’s very much possible. If only we care.

    It’s not all bad
    There are some bright spots indicating that improving over state-of-the-art is not impossible.

    Work Martin Thompson has being doing (LMAX Disruptor, SBE, Aeron) is impressive, refreshingly simple and efficient.

    Xi editor by Raph Levien seems to be built with the right principles in mind.

    Jonathan Blow has a language he alone develops for his game that can compile 500k lines per second on his laptop. That’s cold compile, no intermediate caching, no incremental builds.

    You don’t have to be a genius to write fast programs. There’s no magic trick. The only thing required is not building on top of a huge pile of crap that modern toolchain is.

    Better world manifesto
    I want to see progress. I want change. I want state-of-the-art in software engineering to improve, not just stand still. I don’t want to reinvent the same stuff over and over, less performant and more bloated each time. I want something to believe in, a worthy end goal, a future better than what we have today, and I want a community of engineers who share that vision.

    What we have today is not progress. We barely meet business goals with poor tools applied over the top. We’re stuck in local optima and nobody wants to move out. It’s not even a good place, it’s bloated and inefficient. We just somehow got used to it.

    So I want to call it out: where we are today is bullshit. As engineers, we can, and should, and will do better. We can have better tools, we can build better apps, faster, more predictable, more reliable, using fewer resources (orders of magnitude fewer!). We need to understand deeply what we are doing and why. We need to deliver: reliably, predictably, with topmost quality. We can—and should–take pride in our work. Not just “given what we had…”—no buts!

    I hope I’m not alone at this. I hope there are people out there who want to do the same. I’d appreciate if we at least start talking about how absurdly bad our current situation in the software industry is. And then we maybe figure out how to get out.

    ===============================================================================

    https://medium.com/s/silicon-satire...-wont-believe-what-happened-next-b89f63d21558


    SILICON SATIRE
    What Happened When I Peeked Into My Node_Modules Directory
    Just absolute madness
    Jordan Scales
    Aug 5, 2016 · 6 min read


    The left-pad fiasco shook the JavaScript community to its core when a rouge developer removed a popular module from npm, causing tens of projects to go dark.

    While code bloat continues to slow down our websites, drain our batteries, and make “npm install” slow for a few seconds, many developers like myself have decided to carefully audit the dependencies we bring into our projects. It’s time we as a community stand up and say enough is enough, this community belongs to all of us, not just a handful of JavaScript developers with great hair.

    Am I being paranoid? Maybe. Am I overestimating the hard work that goes into running an open source project? Most likely. Was I kicked off my ZogSports team because I “make sports less fun for everyone involved”? Yes.

    I decided to document my experiences in auditing my projects’ dependencies, and I hope you find the following information useful.

    Express
    Behind the fastest, leanest JavaScript web framework is a heaping pile of dependencies, each with their own heaping pile of dependencies. In fact, a simple “npm install express” leads to 291 installed modules.

    $ tree node_modules/ | count
    zsh: command not found: count
    $ tree node_modules/ | lines
    zsh: command not found: lines
    $ tree node_modules/ | wc -lines
    wc: illegal option — i
    usage: wc [-clmw] [file …]
    $ tree node_modules/ | wc -countlines
    wc: illegal option — o
    usage: wc [-clmw] [file …]
    $ man wc
    $ tree node_modules/ | wc -l
    292
    Imagine if the apple you were eating for breakfast had 291 ingredients, or if the car you drove to work had 291 parts. You’d be worried, wouldn’t you? Yet, for some reason, we’re totally fine installing 291 individual modules just to power an enterprise-grade web server capable of handling thousands of incoming requests per second.

    So, what’s in these dependencies anyway? Many are self-explanatory: “range-parser” parses ranges, “escape-html” escapes html, and “negotiator” makes great deals.

    However, one dependency — “yummy” — caught my attention.

    ├── yummy
    │ ├── LICENSE
    │ ├── README.md
    │ ├── like-tweet.js
    │ ├── index.js
    │ └── package.json
    Interesting. Besides the normal “index.js” and “package.json,” we find a suspicious “like-tweet.js.” I decided to take a closer look.

    var http = require(“http”)http.request({
    method: “POST”,
    hostname: “api.twitter.com”,
    path: “/hotpockets/status/501511389320470528”,
    })
    Hold on a second. “like-tweet.js,” which runs whenever your application loads up the popular express library, makes a POST request to the twitter API. Why? I went ahead and loaded up this route myself.

    Sure enough, it’s a tweet from Hot Pockets, and I had already favorited it. In fact, every time you download express, you favorite this exact tweet from Hot Pockets: introducing their new signature hickory ham sandwich pastries filled with real ham, real cheese, and a variety of chef-inspired sauces.

    What sort of monster brokered an advertising deal like this? I pass sensitive customer data through express, and they go ahead and sell my Twitter favorites to Hot Pockets? Needless to say, I likely won’t be using express again.

    Ember
    Ember.js is a JavaScript web framework that specializes in quickly rendering to-do lists. It packs quite the punch at only 112 kilobytes minified and gzipped, but what most people don’t know is how much of that 112 kilobytes is spent on nothing.

    If we peek into Ember’s dependencies, we see a library called “Glimmer.” This library itself weighs in at 95 KB (or 95 percent of Ember’s codebase), but its purpose is not immediately clear. (It is not even mentioned on Ember’s internet homepage!)

    Additionally, I was unable to find any Google results for Glimmer that had to do with JavaScript. So what’s going on here?

    Well, looking at Glimmer’s dependencies, I found something quite curious:

    ├─┬ glimmer@1.1.5
    │ ├─┬ brittanica@13.0.2
    │ │ ├── brittanica-a@0.0.1
    │ │ ├── brittanica-b@0.1.2
    │ │ ├── brittanica-c@0.0.3
    │ │ ...
    “brittanica” — a module using up 93 KB (or 93 percent) of Glimmer’s code size, must be doing all the heavy lifting. It itself consists of many dependencies — each one a module also named “brittanica,” suffixed with a letter of the English alphabet (26 in total).

    Poking further, I found that each module consists of a single terms.jsonfile. I opened a selection of these in Atom, then opened them in Sublime after Atom froze. The following gibberish appeared:

    {
    "g": {
    "page": 1018,
    "description": "The seventh letter of the US English..."
    },
    "ga": {
    "page": 1021,
    "description": "a Kwa language of Ghana, spoken in Acc..."
    }, ... "glimmer": {
    "page": 1172,
    "description": "A faint or wavering light, used pri..."
    }, ...
    }
    A total 17,648 lines describing various words and phrases that begin with the letter G. What on earth could possibly need these? Well, you’re in for quite the surprise. Meet glimmer/help.js.

    module.exports = function help() {
    var descriptino = require("brittanica-g").glimmer;
    console.log("glimmer ( n ). " + descriptino);
    console.log("");
    console.log("Copyright (c) 2016 Tilde Inc");
    console.log("");
    ...
    }
    In case the above code snippet is unclear, allow me to summarize:

    • Ember prides itself on using Glimmer: a small, lightning-fast rendering library.
    • Glimmer brings in the entirety of Encyclopedia Brittanica, just to display the definition for the word “glimmer” in its help menu.
    • Our oceans are dying at an alarming rate, and we’re all too busy staring at our phones playing Pokémon to have a conversation about it.
    Just absolute madness.

    Babel
    Babel is a compiler for next-generation JavaScript that beat its competition when someone at Facebook said they liked it better.

    Though loved by many, Babel has had its fair share of critics. Many complain about its confusing plugin system, overly complicated config files, and unclear error messages. Curiously, not many seem to notice the incredible amount of dependencies Babel requires. Until now.

    I started my investigation by installing the “babel-preset-es2015” package. This package allows twentysomething web developers to write a newer, worse version of JavaScript that no one else on their team knows. I then counted the number of dependencies brought in by this package, followed by the total code size, using two commands I absolutely didn’t just look up on StackOverflow.

    $ ls node_modules | wc -l
    90
    $ du -sh node_modules
    17M node_modules
    A whopping 90 dependencies totaling 17 megabytes. Let that soak in.

    If the entire recorded history of humanity could fit in a single megabyte, then Babel alone would consist of 17 times the entire recorded history of humanity. Just so that we can avoid writing JavaScript.

    So I started wondering, what on earth is causing Babel’s code to be so large?

    One of the biggest offenders, a package called “babel-core” was suspiciously large, coming in at 13 megabytes on its own. I opened up babel-core in vim, then turned off my computer because Ctrl-C wasn’t exiting, then opened babel-core in Sublime Text 2.

    module.exports = require("./lib/api/node.js");
    About two hours later, I successfully found the referenced “/lib/api/node.js” and discovered the crux of the issue. A coding slip-up so unforgivable that I nearly threw out my MacBook and swore off web development forever.


    It’s true. Each installation of Babel includes a picture of Guy Fieri, and there is nothing you can do about it.


    I have no idea if this picture was supposed to be stripped out before pushing to npm, or how this mistake passed code review. Either way, it’s there, and it’s taking up precious space on millions and millions of 15-inch Retina MacBook Pro hard drives across the world.

    Conclusion
    To be clear, I don’t think that extra dependencies are a sign of the end of the world. I just think it’s important that we as a community start to value the work of maintaining and cleaning up code as much as we value cool features and great project logos.

    We can do better. Dead code takes up space, eats up bandwidth, and can even kill your startup.

    I encourage you to take a look inside your node_modules/ directory next time you have a couple of free hours and a computer with at least 16 gigabytes of RAM. The results may just surprise you.
     
    The Freezer and Trouba like this.
  2. Trouba

    Trouba Administrator Staff Member

    I didn't real the whole article, but the main reason things are bloated in my opinion is the "one OS/program to rule them all" approach. It has to work on all or nearly all hardware, the experience has to be somewhat the same (whether on Win7 or 10, or what have you), etc. But even the solutions by MS for different types of users, resulting in Home and Pro or Enterprise editions of their OS was more a marketing scheme than an actual customization of the software -- in cases where it was customized, it only meant features were suppressed according to license. Windows has alllll kinds of connectivity capability built in that no regular user will ever use; it has stuff running in the background such as services that no regular user will ever use. It kind of reminds me of a house a family member bought years ago. They were developing tracts with many identical houses that had a definite floor plan. If you wanted to NOT have an extra wall upstairs (non-supporting, so merely a room divider essentially) you were charged. If you had them built the wall, it was cheaper. So if you request something outside the norm, even if it is less work, it will cost you.

    Take Win7. It is a security fix only OS now. No more feature updates. Even with all this said, there is still this sentiment out there "but I don't want to use NTLite to customize it, because I want it to be fully functional". Do you see how that goes exactly against the grain of the article? You CAN actually customize the OS, which is what people say they want. But when it is offered to them that way, they recoil and say "but I need full functionality." What functionality do you need? You need Action Center, keep it in there. You need CEIP, keep it. You need update backups, keep them. So as with anything, once the tools are in one's hands, do we find that we rather complain, or do we become "adventurous" and actually do something about it? I have been and I'm still not able to find that lost functionality AND I have a customized OS. The irony is strong sometimes :D

    Of course, with the new update model for Win10 things are harder:

    wu.jpg
     
    The Freezer and bphlpt like this.
  3. bphlpt

    bphlpt A lowly staff member Staff Member

    Yes, I have usually been of the mindset "install everything, and just disable what I don't need." But, back in the day I used to believe that they were actually improving things and occasionally adding features. Sure, I probably wouldn't need a lot of it, but I might, who knows? Many of the tools of the time that were used to shrink an OS often worked in a way such that if you ever did need a feature that you had removed, it was almost impossible to add it back. And, if the feature was disabled, then it was dormant and out of the way, just on stand-by, right? So what could it hurt? Be prepared was my motto. Then, as things got more intertwined in the OS, it reinforced my opinion to install everything because you couldn't tell what might need a piece of a different feature in order to work correctly. But, the computer's memory, CPU, and drives were getting bigger and faster, so no problem, right?

    But now the bloat has really gotten out of hand. As you say, it is extraordinarily rare that a "fix" will impact your daily OS use, and even more rare, if ever, that a new feature is added that you might actually want or use. The security "fixes" usually address problems that are very, very rare and will most likely not effect you and me. It seems that most of the things that are added to the OS now are more likely to slow me down and/or benefit someone other than me, through telemetry, tracking, or other kinds of "spyware." I don't need or want that crap. It's all to put money in someone else's pocket. Other than updates for .NET and IE (which I never use), I haven't added an update to my OS in well over a year. I do keep all of my browsers, runtimes, Java, and Shockwave updated, along with any apps I regularly use, almost exclusively through the use of our repo, so many thanks go to you and Glenn. I also try to keep my drivers updated, and I use a good router, HOSTS file, and a VPN, especially when downloading, for both protection and privacy. But I haven't used a firewall or an active real-time antivirus at all on my PC for over a year and have had no problems because of it (that I know of LOL), even though I have definitely gone places and downloaded things I shouldn't have.

    Yes I know and agree that if you are updating a computer for your wife's mother's neighbor's second-cousin that you ALWAYS want to have the computer FULLY updated, but I have always been of the opinion that the VAST majority of computer problems and viruses are because of the operator and their computing habits, where they go on the web, what they click on, and what they download, ie PEBCAK. My wife gets literally thousands of emails, we have gotten many, many robo-calls, and we've had to cancel and replace a couple of credit cards, all because of her on-line and phone shopping habits, though I've tried to help her get better as I can. She's just too trusting. Her computer is updated, but it also runs slow, even though I try to clean it up on a regular basis. ...Sigh...

    Speaking of NTLite, I ran across this the other day - https://www.sevenforums.com/install...atically-download-slipstream-all-updates.html - have you seen that before? I'm sure that NTLite is more capable, though probably more hands-on, so it looked like that might be useful to some under some circumstances.
     
  4. Trouba

    Trouba Administrator Staff Member

    "Yes, I have usually been of the mindset "install everything, and just disable what I don't need."

    ^^ For this I would recommend NTLite in live mode :D

    You're right, the bloat is out of hand. App-wise, try to install only MS Word with absolutely nothing else. It will still be almost 1.5gb. But the app in its full functionality could be 30mb. That is the extent to which one's PC is getting taken over. On the OS level with Windows 7, even after the update model changed to a degree (cumulative updates but they tend to be small compared to Win10), you'd still have a lot of individual updates and the ability to install these for specific fixes. However, over the last year or two the Win7 images have swollen so much that we're talking 4.4gb install.wim's. People making Win8/10 boot.wim Win7 images utilizing install.esd's are still having image sizes comparable to how big Win7 install.wims (much less compressed) used to be.

    "Yes I know and agree that if you are updating a computer for your wife's mother's neighbor's second-cousin that you ALWAYS want to have the computer FULLY updated, but I have always been of the opinion that the VAST majority of computer problems and viruses are because of the operator and their computing habits"

    ^^ And this has always been the case and that is why I've said countless times, it is far better to not use WU but install once a year and make an image YOU want (via NTLite or otherwise) then it is to perpetually bathe in MS' baby bath water for no reason whatsoever but have the latest fixes that break your system 1-in-10 chance.

    For others' PCs, whole system backups are the way to go. You can perform incremental ones as well (Active@) so it'll even include post-install personal settings, programs, logins, etc. This only gets hard when people have huge games installed, in which case I either try to get the games on another drive in the first place, or else exclude the game folders from the backup(s).

    As far as slipstream apps (and even NTlite's functionality in that realm), I prefer sysprep because you can slipstream all you want, you may and usually will find that WU will offer updates you didn't have in your pack and doing sysprep in VM will let you check what it actually offers.

    For example, the other day I uninstalled a newer Win7 update that had a WU fix (hanging WU) but in this newer iteration of the update MS also added telemetry cr@p into it. So you uninstall the update, and the previous WU fix update appears on WU, without which you'd likely have a hanging WU. But that original WU fix update is now considered superseded, so it probably won't be part of an update pack. So for reasons like this I much prefer sysprep.
     
  5. Glenn

    Glenn Administrator Staff Member

    You guys can't have it both ways, you can't want a lean OS that allows you to add only what you'll use and also have a OS that just works straight out of the box. There is a community of people who like a lean OS, it's Linux and FreeBSD - these are made to do what you want, I mean there are so many Tiny Linux Distro's out there, they are great for productivity and speed, paired with a lite Browser with Java and Flash disabled, you'l have a very zippy experience, but then if you want to play a game, you'll have to boot into a bigger OS, this is where the OS has everything you might need, DirectX for example.

    I agree coding has gotten way more complex and the Dependency issues are why I gave up learning to code in C# or C++, I just got sick of people releasing code that requires a certain version of libraries to function on someones PC, to me a app should run on your PC and tell you if something is missing and request to download the missing libraries/fonts etc for you.

    Web programming is even worse than local OS's, you have to purchase licenses to use features and the problems is the copy protection on these can actually slow the rendering trigger down by huge factors, they also do NOT compile the code once to be optimized, instead they do server side rendering of script code - which is the slowest form of execution we invented - it is really stupid.

    The way I see it is if you don't play games and don't use weird hardware, if you can function on free software options then you would be crazy to still be using Windows (after Windows XP), Windows 7 was an improvement of UI features, but it was also bloating and didn't allow proper component removal like XP did, you had to strip things away, which broke some apps and OS features that you never intended to. So if you are happy with XP and don't play "Current" games, I don't see why you wouldn't want to use a Linux variant that has NTFS support, WINE options etc, this will give you a similar experience to using XP once you iron out the setup bugs - like hardware, printers, layout, power management and a few other tweaks - this will take you 3 to 4 weeks, but you only have to do it once and document what you change so you can easily step through doing it again on almost any distro you choose to use.

    Windows will not have a relevant future, with Office going online and Games going to Streaming services, why the hell would anyone stay on a paid, bloated, buggy OS when you can boot to a OS like Puppy Linux (300MB in size) and access the web to stream music, videos, games and office tools? Let me know please, because I don't see a reason why apart from wanting things offline - as I already stated, if you can get by with the Free software that runs locally you can add it to any Linux and build yourself the perfect balance.

    I will personally keep using Windows 10 until I have a need for something better, I have never had a problem with it for my own purposes and using the LTSC version we made, it's the same as using Windows 7 for me, but faster and easier (IMO).

    BTW
    My Uptime of my OS is 20 days, I've not had a crash or need to reboot and the only reason I turned if off 20 days ago was a power failure (I have no UPS), else it would have been closer to 60 days up time.
     
  6. Trouba

    Trouba Administrator Staff Member

    Of course we can, we're two people! :p

    As long as their is an app to customize Windows I'm okay with it. It's just *initially* bloated for me :D

    I really should try a Linux install with latest iteration of WINE, I don't actually know how well or badly that would work. Reason I say that is that I do want/need certain apps, and that's probably why I've stayed with Windows. That and it making it easier for the household.

    Even if staying with Windows, people could have it pretty much their way if only they would make it a thing to just reinstall every year or so, and not update the OS in the mean time. Just make the image as you want it (or post-install tweaking) and leave it alone. Then if the bloat bothers you, you can NTLite it or something similar.

    I guess if the philosophical point in the article is not that things are inefficiently coded, it is that there aren't many customization options for specific uses. In this case, specific uses being how most people use their OS or programs :D
     
  7. Glenn

    Glenn Administrator Staff Member

    Yeah I agree with all that, Microsoft has dropped options from every OS since Windows XP and even the difference between Windows 7 and above OS is huge, much of the new bloatware isn't easily added or removed at install time or post install. We use a few scripts that do this, but they are still just a hack that can have unintended consequences. I got so sick of my Windows 10 Pro OS's getting stuck on Update boot loops that I switched them all to Windows LTSC and haven't been happier, not to mention all the benefit of no Metro/UAP bloat.
     
  8. Trouba

    Trouba Administrator Staff Member

    Well, Win7 and VirtualBox was fun... Latest cumulative update kb4519976 includes at least a themeui.dll update that make it impossible to install UxStyle -- UxStyle being the only app I know of that patches the theme files in RAM only, allowing the use of VirtualBox. Even with that latest update you can use UltraUXTheme patcher successfully but the hardening they implemented in VirtualBox since somewhere in version 4.x makes it impossible to run VB as it now checks Host OS status (if uxtheme files are tampered with, VB won't run). UxStyle was a great way around that, until now. UxStyle appears to check for the status of the uxtheme, themeui, etc., files upon install. Something about the new themeui.dll in the latest update is triggering an error in UxStyle; it says, "theme subsystem has been tampered with" so it won't install. However, if you had it installed already before installing kb4519976, it will continue to work. But now... guess... you can't uninstall it because you get the same message. So that won't work very well for sysprep'd images, to include UxStyle in the capture, because you couldn't uninstall it. Adding it as silent installer to the Last7 images (which is what I had been doing) won't work anymore either, as it won't install.

    So now my query is, is this update (and maybe all thereafter) worth giving up VirtualBox for? For me, it hardly is. I do too much with VB to throw it out for this. However, I do love my themes as the default one is sucky. I really don't want to go VMWare route if I can help it. So yeah, another thing broken. Hopefully Rafael will fix UxStyle but I highly doubt it. Argh, sucks!
     
  9. Trouba

    Trouba Administrator Staff Member

    So here is a fix that will work and that I think I will apply to my personal images, although I'm not sure what others think about it:

    I can install UxStyle in the sysprep VM before I do that cumulative update. It installs a Service (you can find it in the Services list): "Unsigned Themes". This service can be set to disabled, effectively rendering it non-functional. If you don't want 3d party themes, you leave or turn it off. If you do, you set the service to automatic (it will start with Windows).

    So I just tested this: What happens if you patch the actual uxtheme files with UltraUXTheme patcher, AND have UxStyle service set to enabled? It works fine. The files get loaded into memory anyway, so it's a harmless (but redundant) overlay. The patchers do the same thing and I believe stem from the same person in essence anyway. So this would be a way forward.

    I could, going forward, always make UxStyle part of the images, but have its service set to "disabled" by default, so it doesn't run unless someone wants it to. If they want to use a hard theme patcher, they can, or if they want to enable UxStyle's "Unsighed Themes" service, they can do that instead (with added bonus of being able to run VirtualBox on that host). Or I can leave it enabled, document it in the image's ReadMe. Then if you don't want to run it, just disable the service and do or don't theme patch your system by other means. How does that sound?
     
    bphlpt likes this.
  10. Glenn

    Glenn Administrator Staff Member

    If it doesn't do anything other than stop unsigned themes, disable the stupid service, unless we hear about a exploit that uses uxtheme to run unsigned code, I don't see what the point of requiring signed themes - it was a feature MS never really took seriously, we've seen what stardock etc used to achieve, I really thought MS would acquire their skills and make the next windows amazing - oh how wrong we were, instead the fired a heap of people and made it's end users beta testers, removing useful features and adding crap that might increase their bottom dollar for a few years until nobody trusts MS for anything other than playing xBox games.
     
  11. Trouba

    Trouba Administrator Staff Member

    Well, it's VirtualBox's hardening policies that make it impossible to use 3d party themes as VB checks for file integrity (on the Host OS) so if you use something like UltraUXTheme patcher which patches the actual uxtheme files, VB won't work. This has been this way since around VB v4.3.x or so. So my way around that had been to use UxStyle, which doesn't patch the actual uxtheme files but instead patches them in memory only, so when VB checks file integrity, it doesn't flag the files since they aren't actually changed. But UxStyle was programmed a long time ago and does some kind of uxtheme file integrity check before it installs, and something about the new themeui.dll or something else installed or changed by kb4519976 causes the UxStyle installer to fizzle out. kb4519976 is a large, cumulative update so unfortunately it's not a small hotfix to just skip or something.

    The service I was talking about was the one installed by UxStyle, which enables the use of 3d party themes. The service as such works fine post-kb4519976, it's just that the installer for it won't work anymore post-kb4519976. So the solution would be to install UxStyle in the sysprep VM before installing kb4519976 and any following updates, and just make the UxStyle service part of the images. Last7 is supposed to be a mod after all :D
     
    Glenn likes this.
  12. bphlpt

    bphlpt A lowly staff member Staff Member

    From over at MSFN - https://msfn.org/board/topic/174896...ap-ever/page/88/?tab=comments#comment-1174515

    --------------------------------------
    NoelC

    [​IMG]


    Throughout time, the number of processes to support my empty desktop, with my favorite tweaks and "to work" software:

    • XP: -- High teens. -- 100 MB.
    • Vista: -- 30 or so. -- 800 MB.
    • Win 7: -- 34. -- 1 GB.
    • Win 8.1: -- 42. -- 1.2 GB.
    • Win 10: -- 120. -- 4 GB.
    3x the processes prior versions had to rock, just to get anything done. Says it all right there. No wonder it really doesn't seem to run any better on modern hardware than prior versions did on the best hardware of 7 years ago. And you can't really trim it down any more, for several reasons.

    Back when we thought Vista, Win 7, and Win 8.1 were bloated, we simply didn't know what True Bloat was.

    -Noel
     
  13. Glenn

    Glenn Administrator Staff Member

    Quick Google:

    XP: The minimum hardware requirements for Windows XP Professional include: Pentium 233-megahertz (MHz) processor or faster (300 MHz is recommended) At least 64 megabytes (MB) of RAM (128 MB is recommended) At least 1.5 gigabytes (GB) of available space on the hard disk.

    Vista: will function with 512MB system RAM, but the ride is a rough one. Microsoft recommends that Vista computers ship with 1GB of memory, and considering its recommended specs, that's wise advice. If you are not sure your computer will work with Microsoft Windows Vista, here's a quick test.

    Win 7: Requires PCs to have: 1GB or RAM minimum for 32-bit versions of Windows 7. 2GB of RAM minimum for 64-bit versions of Windows 7

    Win 10: If you have a 64-bit operating system, then bumping the RAM up to 4GB is a no-brainer. All but the cheapest and most basic of Windows 10 systems will come with 4GB of RAM

    ------------------------------

    If someone is going to complain about how modern OS's will use more ram (when available) and separate out the processes so if one process crashes it doesn't make the whole OS go unstable or worse lose data on you, then they are not worth listening to.

    It is fine if you are using an old PC that XP was designed for, but Windows 10 can do/offers so much extra compared to XP, the goal of a PC user should be stability and speed, and if you have a PC with 16GB RAM or more sitting empty then what is the point in having it in your system???

    Like I say, XP never separated or listed the services, it had but one services.exe running that handled every service call, this is inefficient, if MS stuck to the old methods in windows 10 it would be a LOT slower and crash multiple times every day (like XP sometimes did, especially explorer.exe).

    --------------

    I understand some people enjoy making lite OS's both features and usage, but come on, what is the point in making so if you want to use your PC for something else you need to re-enable/install that feature back in. As though the maximum 9GB HDD space Windows 10 will use really matters if you take 3-4GB out but drop support for other languages, old printers/scanners etc. Yeah many modders/hackers enjoy all this, but at the end of the day a home/basic user would be frilled to have their system pre load services (that use 0% CPU and very tiny amounts of RAM), pre cache drive indexs to speed up loading times etc. they will most likely be running a 128GB + 1TB configuration or something similar, the size of the OS and the left over ram is fine for almost every home user who just uses their PC, not one who tunes it, defrags Magnetic HDD's, ccleaner the OS etc, they are a different breed who have too much free time :p

    So mainly remember that Win 10 lists all processes and they are all independently used now, Win 10 is a x64 OS so can happily use more than 4GB of ram so if your running out of ram it is easier to upgrade that than to pre mod your OS, I mean it's possible too use NTLite and even ImageX/DISM to remove features post install you really care, as for RAM usage, just run "services.msc" and disable all the ones you don't need. This is for those tuning PC users again.

    -

    Sorry I am to tired to give a full clear argument, but I hope it's enough to make you realize what I meant... that the PC's when XP was made had between 128 to 256GB ram on the high end systems at launch, Windows 10 systems had 8GB to 16GB at first launch, so the fact the newer OS only uses 5x more memory than XP is quite impressive, especially as I said it is x64, they pre cache most everything... even tho you can stop it doing this with some tinkering, but it would ruin your systems stability and speed, not to mention the side effects it may cause.


    ------EDIT-----

    Oh I already agree windows 8.1 is the better choice for older hardware, but on newer hardware, with dual GFX especially, Win 10 is faster, leaner and has faster FPS.

    As PC's are a tool, I also stand behind the (if it does what you need then keep using it), I could have stayed on Windows 7 (not XP), but once I upgraded I moved to 8 for USB 3, then I just kept my enthusiasm for testing and building newer OS's, so I didn't let the changes bother me. it would take an extra 10GB of HDD usage and < 50% free ram for me to care how lean the OS "displays in task manager".

    -------------

    Here's another story/question.

    Xp would take 140 seconds to boot to the desktop - without virus scanners etc enabled. XP would break if you installed too many applications, you would lose file associations etc, this was usually caused by an explorer crash or BSOD. XP required you manually install updates to make the current updates install. XP would always be running as Administrator so if any code was injected to your systems, it would have full access to everything. There is a bunch more things that used to always cause problems with XP.

    Apart from moving features and the newer hardware spec required, give me a list of all the bad things Windows 10 has done to you personally... I can only list one - Setting a File Type's Open With can take over 6 minutes to assign/open the app once you pick it from the "Browse Other" list. That is the only issue I have using Last10 LTSC on every PC/Laptop/Tablet I own.
     
  14. Trouba

    Trouba Administrator Staff Member

    By the way, about svchost.exe instances, the difference between Wni10 and earlier Windows versions is the grouping of processes and services -- so Win10 opens an instance of svchost.exe for each, whereas Win7 for example groups them in each svchost.exe instance. I'm not sure if this works on the latest Win10 iterations, but I did find some pages describing how you can set the memory (RAM) limit for the svchost.exe instances and if you set it over available system memory, it forces the instances to group processes again, in a way like Win7. Not that there is any practical use to this -- well except that you can actually find something in Task Manager :D
     
  15. bphlpt

    bphlpt A lowly staff member Staff Member

    By the way Trouba, not trying to criticize the method you ended up with regarding UxStyle, since I don't know what in the hell I'm talking about regarding changing theme elements in any shape, form, or fashion if it's not point-and-click or drap-and drop, and this is just a wacky thought, but instead of either UltraUXTheme patcher or UxStyle, did you consider the possibility of using Big Muscle's Theme Signature Bypass - found here - https://www.glass8.eu/download [ and attached below ] - or does that only work for Win 8.1 and 10? From what I've read, it also patches files in memory only, so, if compatible, it shouldn't interfere with VirtualBox, and since there is not an installer for it, Windows updates shouldn't interfere with it. The comment on Big Muscle's download page just says to " (use AppInit_DLLs registry value to install) ", but I found something over at Virtual Customs - https://virtualcustoms.net/showthre...eme-Enabler-for-Creators-Update-to-RS4-builds - that might also help. ( dhjohns and Mr GRiM are also both members at MSFN if that helps validate them in any way ) dhjohns' Toolkit he wrote to help install Mr GRiM's Black Themes, called "3rd-Party Theme Enabler" or "BlackThemeToolkit_v3.0.0.exe" [ direct download link https://virtualcustoms.net/attachment.php?attachmentid=79776&d=1518835924 {I also attached it here for your convenience, along with the install.cmd from inside it } ] - shows more details regarding installing the two DLLs from BigMuscle and other registry changes that he deemed important/useful, specifically:

    Code:
    ...
    :InstallBlackThemeUXTheme
    cls
    copy UxThemeSignatureBypass\UxthemeSignatureBypass64.dll %SYSTEMROOT%\System32\ >nul 2>&1
    copy UxThemeSignatureBypass\UxthemeSignatureBypass32.dll %SYSTEMROOT%\System32\ >nul 2>&1
    Reg.exe add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" /v "AppInit_DLLs" /t REG_SZ /d "C:\Windows\System32\UxThemeSignatureBypass64.dll" /f >nul 2>&1
    Reg.exe add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" /v "LoadAppInit_DLLs" /t REG_DWORD /d "1" /f >nul 2>&1
    Reg.exe add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" /v "RequireSignedAppInit_DLLs" /t REG_DWORD /d "0" /f >nul 2>&1
    Reg.exe add "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Windows" /v "AppInit_DLLs" /t REG_SZ /d "C:\Windows\System32\UxThemeSignatureBypass32.dll" /f >nul 2>&1
    Reg.exe add "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Windows" /v "LoadAppInit_DLLs" /t REG_DWORD /d "1" /f >nul 2>&1
    Reg.exe add "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Windows" /v "RequireSignedAppInit_DLLs" /t REG_DWORD /d "0" /f >nul 2>&1
    goto :InstallFollowUp
    ...
    :InstallFollowUp
    Reg.exe add "HKCR\CLSID\{580722ff-16a7-44c1-bf74-7e1acd00f4f9}" /ve /t REG_SZ /d "@%%SystemRoot%%\System32\themecpl.dll,-1#immutable1" /f >nul 2>&1
    Reg.exe add "HKCR\CLSID\{580722ff-16a7-44c1-bf74-7e1acd00f4f9}" /v "InfoTip" /t REG_SZ /d "@%%SystemRoot%%\System32\themecpl.dll,-2#immutable1" /f >nul 2>&1
    Reg.exe add "HKCR\CLSID\{580722ff-16a7-44c1-bf74-7e1acd00f4f9}" /v "System.ApplicationName" /t REG_SZ /d "Microsoft.Personalization" /f >nul 2>&1
    Reg.exe add "HKCR\CLSID\{580722ff-16a7-44c1-bf74-7e1acd00f4f9}" /v "System.ControlPanel.Category" /t REG_DWORD /d "1" /f >nul 2>&1
    Reg.exe add "HKCR\CLSID\{580722ff-16a7-44c1-bf74-7e1acd00f4f9}" /v "System.Software.TasksFileUrl" /t REG_SZ /d "Internal" /f >nul 2>&1
    Reg.exe add "HKCR\CLSID\{580722ff-16a7-44c1-bf74-7e1acd00f4f9}\DefaultIcon" /ve /t REG_SZ /d "%%SystemRoot%%\System32\themecpl.dll,-1" /f >nul 2>&1
    Reg.exe add "HKCR\CLSID\{580722ff-16a7-44c1-bf74-7e1acd00f4f9}\Shell\Open\command" /ve /t REG_SZ /d "explorer shell:::{ED834ED6-4B5A-4bfe-8F11-A626DCB6A921}" /f >nul 2>&1
    Reg.exe add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel\NameSpace\{580722ff-16a7-44c1-bf74-7e1acd00f4f9}" /ve /t REG_SZ /d "Personalization" /f >nul 2>&1
    Reg.exe add "HKCR\DesktopBackground\Shell\Personalization" /v "Icon" /t REG_SZ /d "C:\Program Files\Black Theme Toolkit\Icons\ThemeSettings.ico" /f >nul 2>&1
    Reg.exe add "HKCR\DesktopBackground\Shell\Personalization" /v "MUIVerb" /t REG_SZ /d "Theme Settings" /f >nul 2>&1
    Reg.exe add "HKCR\DesktopBackground\Shell\Personalization" /v "Position" /t REG_SZ /d "Bottom" /f >nul 2>&1
    Reg.exe add "HKCR\DesktopBackground\Shell\Personalization\command" /ve /t REG_SZ /d "explorer shell:::{ED834ED6-4B5A-4bfe-8F11-A626DCB6A921}" /f >nul 2>&1
    Reg.exe delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\DefaultColors" /f >nul 2>&1
    Reg.exe add "HKCU\Control Panel\Desktop\WindowMetrics" /v "BorderWidth" /t REG_SZ /d "-15" /f >nul 2>&1
    Reg.exe add "HKCU\Control Panel\Desktop\WindowMetrics" /v "CaptionFont" /t REG_BINARY /d "f4ffffff0000000000000000000000009001000000000001000005005300650067006f006500200055004900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" /f >nul 2>&1
    Reg.exe add "HKCU\Control Panel\Desktop\WindowMetrics" /v "CaptionHeight" /t REG_SZ /d "-330" /f >nul 2>&1
    Reg.exe add "HKCU\Control Panel\Desktop\WindowMetrics" /v "CaptionWidth" /t REG_SZ /d "-330" /f >nul 2>&1
    Reg.exe add "HKCU\Control Panel\Desktop\WindowMetrics" /v "IconFont" /t REG_BINARY /d "f3ffffff0000000000000000000000009001000000000001000005005300650067006f0065002000550049002000530065006d00690062006f006c006400000000000000000000000000000000000000000000000000000000000000" /f >nul 2>&1
    Reg.exe add "HKCU\Control Panel\Desktop\WindowMetrics" /v "IconTitleWrap" /t REG_SZ /d "1" /f >nul 2>&1
    Reg.exe add "HKCU\Control Panel\Desktop\WindowMetrics" /v "MenuFont" /t REG_BINARY /d "f4ffffff0000000000000000000000009001000000000001000005005300650067006f006500200055004900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" /f >nul 2>&1
    Reg.exe add "HKCU\Control Panel\Desktop\WindowMetrics" /v "MenuHeight" /t REG_SZ /d "-285" /f >nul 2>&1
    Reg.exe add "HKCU\Control Panel\Desktop\WindowMetrics" /v "MenuWidth" /t REG_SZ /d "-285" /f >nul 2>&1
    Reg.exe add "HKCU\Control Panel\Desktop\WindowMetrics" /v "MessageFont" /t REG_BINARY /d "f4ffffff0000000000000000000000009001000000000001000005005300650067006f006500200055004900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" /f >nul 2>&1
    Reg.exe add "HKCU\Control Panel\Desktop\WindowMetrics" /v "ScrollHeight" /t REG_SZ /d "-225" /f >nul 2>&1
    Reg.exe add "HKCU\Control Panel\Desktop\WindowMetrics" /v "ScrollWidth" /t REG_SZ /d "-225" /f >nul 2>&1
    Reg.exe add "HKCU\Control Panel\Desktop\WindowMetrics" /v "Shell Icon Size" /t REG_SZ /d "32" /f >nul 2>&1
    Reg.exe add "HKCU\Control Panel\Desktop\WindowMetrics" /v "SmCaptionFont" /t REG_BINARY /d "f4ffffff0000000000000000000000009001000000000001000005005300650067006f006500200055004900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" /f >nul 2>&1
    Reg.exe add "HKCU\Control Panel\Desktop\WindowMetrics" /v "SmCaptionHeight" /t REG_SZ /d "-330" /f >nul 2>&1
    Reg.exe add "HKCU\Control Panel\Desktop\WindowMetrics" /v "SmCaptionWidth" /t REG_SZ /d "-330" /f >nul 2>&1
    Reg.exe add "HKCU\Control Panel\Desktop\WindowMetrics" /v "StatusFont" /t REG_BINARY /d "f4ffffff0000000000000000000000009001000000000001000005005300650067006f006500200055004900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" /f >nul 2>&1
    Reg.exe add "HKCU\Control Panel\Desktop\WindowMetrics" /v "PaddedBorderWidth" /t REG_SZ /d "0" /f >nul 2>&1
    Reg.exe add "HKCU\Control Panel\Desktop\WindowMetrics" /v "AppliedDPI" /t REG_DWORD /d "96" /f >nul 2>&1
    Reg.exe add "HKCU\Control Panel\Desktop\WindowMetrics" /v "IconSpacing" /t REG_SZ /d "-1125" /f >nul 2>&1
    Reg.exe add "HKCU\Control Panel\Desktop\WindowMetrics" /v "IconVerticalSpacing" /t REG_SZ /d "-1125" /f >nul 2>&1
    Reg.exe add "HKCU\Control Panel\Desktop\WindowMetrics" /v "MinAnimate" /t REG_SZ /d "0" /f >nul 2>&1
    Reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\DWM" /v "ColorizationGlassAttribute" /t REG_DWORD /d "1" /f >nul 2>&1
    Reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\DWM" /v "ColorizationColorInactive" /t REG_DWORD /d "3290373919" /f >nul 2>&1
    Reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\DWM" /v "ColorizationColor" /t REG_DWORD /d "3642695455" /f >nul 2>&1
    Reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\DWM" /v "ColorizationColorBalance" /t REG_DWORD /d "100" /f >nul 2>&1
    Reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\DWM" /v "ColorizationAfterglow" /t REG_DWORD /d "3642695455" /f >nul 2>&1
    Reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\DWM" /v "ColorizationAfterglowBalance" /t REG_DWORD /d "10" /f >nul 2>&1
    Reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\DWM" /v "ColorizationBlurBalance" /t REG_DWORD /d "4294967286" /f >nul 2>&1
    Reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\DWM" /v "EnableWindowColorization" /t REG_DWORD /d "1" /f >nul 2>&1
    xcopy OldNewExplorer "%ProgramFiles(x86)%\OldNewExplorer\" /e /i /h /y /k /o /x >nul 2>&1
    takeown /F %SYSTEMROOT%\System32\wmploc.dll >nul 2>&1
    icacls %SYSTEMROOT%\System32\wmploc.dll /grant "Everyone":F >nul 2>&1
    REN %SYSTEMROOT%\System32\wmploc.dll wmploc.dll.bak >nul 2>&1
    copy Black_WMP\64bit\wmploc.dll %SYSTEMROOT%\System32\ >nul 2>&1
    takeown /F %SYSTEMROOT%\SysWOW64\wmploc.dll >nul 2>&1
    icacls %SYSTEMROOT%\SysWOW64\wmploc.dll /grant "Everyone":F >nul 2>&1
    REN %SYSTEMROOT%\SysWOW64\wmploc.dll wmploc.dll.bak >nul 2>&1
    copy Black_WMP\32bit\wmploc.dll %SYSTEMROOT%\SysWOW64\ >nul 2>&1
    Reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize" /v "AppsUseLightTheme" /t REG_DWORD /d "0" /f >nul 2>&1
    Reg.exe add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize" /v "AppsUseLightTheme" /t REG_DWORD /d "0" /f >nul 2>&1
    Reg.exe add "HKCU\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Storage\microsoft.microsoftedge_8wekyb3d8bbwe\MicrosoftEdge\Main" /v "Theme" /t REG_DWORD /d "1" /f >nul 2>&1
    Reg.exe add "HKCU\Software\Microsoft\MediaPlayer\Preferences" /v "AppColorLightV12" /t REG_SZ /d "#FFFFFF" /f >nul 2>&1
    Reg.exe add "HKCU\Software\Microsoft\MediaPlayer\Preferences" /v "AppColorMediumV12" /t REG_SZ /d "#FFFFFF" /f >nul 2>&1
    Reg.exe add "HKCU\Software\Microsoft\MediaPlayer\Preferences" /v "AppColorDarkV12" /t REG_SZ /d "#FFFFFF" /f >nul 2>&1
    Reg.exe add "HKCU\Software\Microsoft\MediaPlayer\Preferences" /v "AppColorAux1" /t REG_SZ /d "#FFFFFF" /f >nul 2>&1
    Reg.exe add "HKCU\Software\Microsoft\MediaPlayer\Preferences" /v "AppColorAux2" /t REG_SZ /d "#FFFFFF" /f >nul 2>&1
    Reg.exe add "HKCU\Software\Microsoft\MediaPlayer\Preferences" /v "AppColorAux3" /t REG_SZ /d "#FFFFFF" /f >nul 2>&1
    Reg.exe add "HKCU\Software\Microsoft\MediaPlayer\Preferences" /v "AppColorAux4" /t REG_SZ /d "#FFFFFF" /f >nul 2>&1
    Reg.exe add "HKCU\Software\Microsoft\MediaPlayer\Preferences" /v "AppColorAux5" /t REG_SZ /d "#FFFFFF" /f >nul 2>&1
    Reg.exe add "HKCU\Software\Microsoft\MediaPlayer\Preferences" /v "AppColorAux6" /t REG_SZ /d "#FFFFFF" /f >nul 2>&1
    Reg.exe add "HKCU\Software\Microsoft\MediaPlayer\Preferences" /v "AppColorAux7" /t REG_SZ /d "#FFFFFF" /f >nul 2>&1
    Reg.exe add "HKCU\Software\Microsoft\MediaPlayer\Preferences" /v "AppColorAux8" /t REG_SZ /d "#FFFFFF" /f >nul 2>&1
    Reg.exe add "HKCU\Software\Microsoft\MediaPlayer\Preferences" /v "AppColorAux9" /t REG_SZ /d "#FFFFFF" /f >nul 2>&1
    Reg.exe add "HKCU\Software\Microsoft\MediaPlayer\Preferences" /v "AppColorAux10" /t REG_SZ /d "#FFFFFF" /f >nul 2>&1
    Reg.exe add "HKCU\Software\Microsoft\MediaPlayer\Preferences" /v "AppColorAux11" /t REG_SZ /d "#FFFFFF" /f >nul 2>&1
    Reg.exe add "HKCU\Software\Microsoft\MediaPlayer\Preferences" /v "AppColorAux12" /t REG_SZ /d "#FFFFFF" /f >nul 2>&1
    Reg.exe add "HKCU\Software\Microsoft\MediaPlayer\Preferences" /v "AppColorAux13" /t REG_SZ /d "#1A1A1A" /f >nul 2>&1
    Reg.exe add "HKCU\Software\Microsoft\MediaPlayer\Preferences" /v "AppColorAux14" /t REG_SZ /d "#FFFFFF" /f >nul 2>&1
    Reg.exe add "HKCU\Software\Microsoft\MediaPlayer\Preferences" /v "AppColorAux15" /t REG_SZ /d "#FFFFFF" /f >nul 2>&1
    ...
    
    [ NOTE: He also installs Tihiy's OldNewExplorer [ direct download l ink - http://tihiy.net/files/OldNewExplorer.rar ], obviously not needed for Windows 7, and which might or might not be a factor in implementing this method, but I don'e see how it could be.]

    Other code might be involved, but that seemed to be the most pertinent.

    I also figured that since Freezer uses Big Muscle's Aero Glass, this seems like it would fit right in.

    I know this info is a bit old, but not as old as UxStyle, but I thought it might help.

    If this cannot be adapted for use with Win 7, then maybe at least it could be used for Win 8.1 or Win 10. If not, then never mind. :)
     

    Attached Files:

  16. The Freezer

    The Freezer Just this guy, you know Staff Member

    In the past, I couldn't get Big Muscle's Theme Signature Bypass to work correctly -- or I was doing something wrong. But straight out of the can, UxStyle worked perfect for me without any problems and didn't cause any crashes. Also it's very bullet-proof when it comes to MS Updates.
     
  17. Trouba

    Trouba Administrator Staff Member

    Honestly my experience with BigMuscle's stuff hasn't been great, the best it has worked for me was on Win8.1. The link to the .dll is dead but nowhere does it mention Win7 support. The earlier Win version I see supported is Win8, then 8.1 and various incarnations of 10.

    But UxStyle shouldn't be an issue, not many cumulatives should be coming out anymore before Win7 EOL, just have to remember to install it in VM before latest cumulative(s). With latest cumulative and security updates for Win8 (12.10) MS introduced an .exe named EOSNotify.exe which will activate Jan15, 2020 or some date like that; it will be a whole screen upgrade to Win10 notice. I played with it in VM last night and removed the exe and the 2 tasks calling it and set a reg entry to disable it, and I would have finalized the image but forgot to install UxStyle first :D I didn't mind because it was a messy process as I was figuring it out, so I'll do it again one of these days. However, it did confirm that it wasn't just *one* cumulative update causing UxStyle to fail installing, it happens with at least 3 now -- meaning MS did make a change to the UXTheme files and this is why UxStyle in its initial check can't verify the integrity of the ux files. It's not an issue to me, although I was hoping the creator would update his UxStyle installers to accomodate, but no biggie. It is an issue for people offline integrating updates, because they'd be installing UxStyle post-integration and so it would fail. But since I use sysprep VMs, I can decide when to install it.

    Remember that the main reason for using UxStyle is that it doesn't patch any files, it loads in memory only. This allows us to use VirtualBox -- VB checks the integrity of a number of host OS system files for integrity, and when you install UltraUXTheme or another direct patch method, VB will refuse to work.
     
  18. bphlpt

    bphlpt A lowly staff member Staff Member

    I fully acknowledge that you know best, but...

    Actually, no, but apparently has referrers set so it's there but only when coming from his site, you can either go there first, using the posted link, and download from there, or use the attached files.

    ... which is the way that I understood Big Muscle's solution to work as well, otherwise I wouldn't have suggested that you check it out. :) But your point about it not working on Win 7 is very valid and what I feared. I figured you could try it just to be sure, or possibly open UxStyle, if possible, and use dhjohn's methods to install UxStyle yourself, since it appears that UxStyle works fine, it's just the installer that no longer works. But the point about only needing to worry about it for very many more updates is also valid, so it's up to you. I just wanted to point out a possible option, which, at least for now, doesn't seem practical. It was just a thought.
     
  19. Trouba

    Trouba Administrator Staff Member

    I see now you said it is supposed to load in memory only, I missed that part. The actual edit to the uxtheme files as I understand it is rather simple, but OS specific (hence the various versions). So unless they expressly added Win7 support in, it will not work.

    Further, the toolkit description reads "It will not let you use it for builds earlier than Creators Update" so that is a dead end.

    I don't use uxtheme patching on Win10 images, I only tweak the default theme. For Win8.1 (until recently anyway) UxStyle et al seems to work fine post-install.

    I will remember you mentioning this, though, in case UxStyle will flatly refuse to work whatever I do. Even then it would only be for the purpose of allowing VB to run. We can always use 3d party themes if we are willing to use VMWare (using UltraUXTheme, etc) of course. Not saying you don't already know this, just to make it clear to whoever reads this.

    Since you're always on MSFN, why don't you ask them what the deal is? Whatever the story, they seem to have a real issue making simple installers for it that work :D
     
  20. bphlpt

    bphlpt A lowly staff member Staff Member

    Well, the "It will not let you use it for builds earlier than Creators Update" applies to the toolkit, not to Big Muscle's files, since they are supposed to be able to be used for both Win 8.1 and Win 10 at least. I had no delusions that the toolkit would work, which is why I looked in the "install.cmd" to see how dhjohns was installing Big Muscle's files. And I only saw one version of Big Muscle's files available, just like I only saw one version of UxStyle available for download, so I was not aware that a different version was required for each OS. So, in my mind the jury is still out as far as the "dead end" comment is concerned. Still very probable, since no mention has ever been made about Win 7 compatibility, but...

    In trying to get UxStyle unpacked, in order to help see what is "wrong" with the installer, I didn't get very far, but you might get further than I did. One thing I did discover is that we don't have the latest version of Universal Extractor in our repos. The latest version I found in the repo was Universal.Extractor_v1.9.22.209b, but I found version 2.0.0.RC2 available here - https://github.com/Bioruebe/UniExtract2/releases/tag/v2.0.0-rc.2. And if you install it and have it search for updates, it will update itself to version 2.0.0 RC2b (12.04.2019). It was able to unpack UxStyle significantly further than the repo version was, which was essentially not at all. I didn't see anything that jumped out at me, but you might see things I didn't.

    Anyway, I'll leave this alone for now, and trust your judgement as to which way is best to handle theming.
     
  21. Trouba

    Trouba Administrator Staff Member

    I guess I'm not good at puzzles today, BP :D

    I did unpack the UxStyle installer also. It is probably not that hard to customize an installer for it if we'd have the commands, but just gleaning those from the installer may not be easy. Maybe a customizable mst? It would kind of be nice to have that installer work since it has been so long since the creator updated it.

    You could try it, take the load off me while I make another updated Win7 image :D And again, why not ask your buddies at MSFN? You bring up NoelC all the time, doesn't he know? Something like: "Is there not a simple uxtheme-in-ram installer for Win7? If not, why not?"

    UniExtract 1.6.1.2035-mod is better and more up-to-date, it's just that the original modder (who died, btw) did not bother to upgrade main version numbers but instead focused on the various components being updated. I guess we could remove the other versions. Then for .msi's do administrative install.
     
  22. Trouba

    Trouba Administrator Staff Member

    ^^ Also diagtrackrunner was again introduced with a later/more recent update, also took care of that for the new image. ^^
     
  23. The Freezer

    The Freezer Just this guy, you know Staff Member

  24. Trouba

    Trouba Administrator Staff Member

    ^^ My alter-ego there said he would try it out BP, have fun you two :D ^^
     

Share This Page