Brad Wardell's Blog


Windows XP skins section added

Published on Thursday, October 25, 2001 By Brad Wardell In WinCustomize News
With today being the launch of Windows XP, it only seems fitting that we (WINcustomize) do something special. To that end we've created a new category called "WinXP Skins". WindowBlinds UIS skins that have been optimized for XP will be displayed there. For skin authors - when you upload your skin, upload them to the WindowBlinds section and it will ask if your skin has been optimized for Windows XP. If you have, select yes and it will appear in both the WB section and the WinXP skins section. WinXP skins require WindowBlinds 3.

Windows XP and skinning explained

Published on Thursday, October 25, 2001 By Brad Wardell In WinCustomize News
Let me mention a few additional points not really discussed in the article here:

When I'm surfing I will occasionally see people talking about WindowBlinds. Normally it's positive but sometimes it's really really negative. The reason is that those people ran into problems in either stability or performance.

Let me address that issue:

On Windows 98, ME, NT, and 2000, WindowBlinds provides its own skinning engine (wblind.dll). But on Windows XP, it uses uxtheme.dll for much of the work - i.e. on XP, WindowBlinds is a native solution so to speak.

The problem WindowBlinds has traditionally suffered on Windows 98Frogboy is that those two versions of Windows are restricted to 128K in GDI memory. It doesn't matter how many megabytes of RAM you have installed, if you're using Win98/ME, you get 128K of GDI. And the more GDI that's used, teh slower things get until things start to crash.

The Windows 98Frogboy GUI by default has no bitmaps in it. It's drawn directly by Windows. WindowBlinds obviously adds bitmaps to the equation - bitmapped titlebars/scrollbars, buttons, etc. The good news is that Windows is designed for this from a performance point of view. The bad news is that on Win98/ME you can run out of GDI objects (or get low which slows things down).

So what Stardock has done with WindowBlinds 3 (and it should be quite noticeable -- we hope) is make it a LOT smarter about what it loads. Most programs do not use every single GUI element possible (that is, not every app has scrollbars, radio buttons, tab controls, header controls, etc.). But WindowBlinds 2 would just load the entire skin for each and every app. WindowBlinds 3 doesn't, when the app is loaded, it sees which controls it uses and loads just those. This speeds things up and causes it to use fewer resources as the system goes (this isn't to say that on a freshly booted system with just WIndowBlinds that you'll have more GDI resources free since it only really shows up when you start loading a bunch of apps). So this should make things better for Windows 98Frogboy users who will represent the majority of users for some time to come. And based on beta feedback, things are going pretty well there.

The other note I wanted to make is about the "native" or "real" skins. Some WinXP users have confused .msstyles ("XP visual styles") as being more "native" than WindowBlinds. Their proof is that WindowBlinds required a loaded process.

In fact, .msstyles requires a loaded process too called svchost.exe (one of the myriad of them). I guess if we were smarter we'd rename the WB process to be svchost.exe and voila, we're home free.

A year from now, skin formats will be likely seen as the same thing as graphics formats. Just because Windows 95 came with only the ability to use .BMP files didn't stop people from using .JPG files or .GIF or .TIF or .TGA files. .UIS skins are just as "native" as any other skin format on XP as long as they use the XP APIs to do their thing which is what counts.


Ego and the skinning community

Published on Tuesday, October 23, 2001 By Brad Wardell In WinCustomize Talk
When I got to work on Monday morning, my coworkers were talking about how nasty the WinCustomize MB was that day and I learned about being called a "Nazi".

Over the weekend, I had been called names by dozens of people over in discussions on DeviantART. Jier began the festitivities by responding to Skin Primer that I wrote, on my own time mind you, for the community. For that effort, Jier called me "worthless" and said I was worse than Sam (the guy who owns eFront). Jier finished by saying he was going to dedicate himself to making freeware equivalents of everything in Object Desktop.

Bear in mind, Jier is supposed to be one of those "respected" members of the community. This isn't some random guy behaving like that. This is the guy who runs 545 Studios.

Then he went on to critique my article on XP skinnning (https://www.stardock.com/stardock/articles/xpskinning.html). Amongst accusing me of lying, he fabricated a story that I had made claims that were untrue and created a thread on DA called "545 vs. Stardock". After quite a number of people came on proclaiming how awful they think I am (with a few people standing up for me at least) but with more people trying the moral equivalence angle which as people at the office knows, really bugs me. In most arguments, somebody is right and somebody is wrong (or at least more right than the other). Jier was wrong. Dead wrong. Completely wrong.

Meanwhile, l0c used his high access here to post a news item here. His access here allows his news submissions to bypass moderation. His news item accused TGTSoft of commiting a crime. This could be considered libel. And it became more obvious how much of a problem the news item was when the anti-Stardock contigency made the valid point that it sure looks bad having a Stardock owned site have a news item that accuses a competitor of a criminal act. So I responded and said that I would be deleting the news item in a few hours if there were no objections. A few hours later I did.

So then I woke up the next day to hear about being called a Nazi by l0c - Jier's roommate.

What would people have me say in response? I felt that a line had been crossed. And usually I could see the other person's point of view even if I don't agree with it. But this was beyond that. l0c, like Jier, was wrong.

I didn't know what to say in response. When adding up all the crap from over the weekend I needed a couple of days of introspection. Every virtual community has its own character.

For instance, the warez site that has been sending the rather nasty people to our site attacking us has a lot of really awful human beings on it. People who just don't abide by the ethical or moral standards that we take for granted. And I don't say that lightly. It was like a mirror universe of our community.

Or at least, I'd always assumed that our community was made up of generally good people. Sure, Paxx and myself might debate some point. Or Plastic and I may have a different perspective. But at the end of the day, a difference in opinion doesn't mean a difference in integrity.

Which brings me back to the post. By the time I got in, it was too late to just delete it without people seeing it. So I had to decide whether to defend myself or remain silent. Obviously the latter choice was the one I went with.

The "community" can be identified by a collection of discrete actions. The regulars define it. How would the community respond to something that was so blatently wrong?

Someone asked how I have been personally handling the abuse I've received of late. Well I'm human. For a moment I really wasn't sure if this "community" was something I wanted to be part of.

Take a step back for a moment. Shoggot asked, who hasn't done something really nasty during their years? I'd like to think most of the people I'd consider friends would never create a new post on one of our skin sites that existed soley to hurt someone else. I don't think most of you would.

What kind of community do we want to be? Arguing issues or disagreeing on things is normal. But some things are wrong. Some things are bad. Deeds considered acceptable by the community reflect on that community.

Our community doesn't accept warez on its sites for instance. That reflects well on us(I think anyway). And I'd like to think we don't accept people calling other people "worthless" or "Nazis" or worse. Or hopefully we don't accept trying to argue moral equivalence, that someone the person being attacked might have somehow deserved of this.

The good news seems to be that most people don't accept that. Certainly not here anyway. And our community is more united than it appears on the surface. The relationship between the admins of DeviantART and WinCustomize is extremely close.

But there is also a clash of cultures in our community. You could almost call it a fundamentalist movement within it that is ugly and nasty and it I think we just witnessed for the first time a clear rejection of it. That no one, regardless of who they think they are has the right to make viscious personal attacks on other members of the community.

I hope this incident lets us turn the corner, that civility will be considered a defining virtue as much as how many skins we make, or how much software we make.

Let me say as a software developer that being a software developer doesn't make me or any other developer more important or better than the skin authors or people who write FAQs or help people on the groups. We are all important parts of the community and we all deserve respect.

That's my little novel for the night.



Brace yourselves, the warez kiddies are attacking

Published on Sunday, October 21, 2001 By Brad Wardell In WinCustomize Talk
Last week Stardock's legal team partially shut down a warez site's message board that was fully of links to pirated copies of pretty much every program youc an think of (including Stardock's stuff naturally).

Well, needless to say, the warez folks aren't happy about that and in an amazing bit of timing are logging on here enmasse to try to spam the site full of anti-Stardock or anti-WindowBlinds comments and flames.

This puts us, the admins in a delicate situation. We don't want to censor people for having an opinion. But we don't want our website used as a propaganda tool for warez people.

So what should we do? Here's what we are doing, I hope none of our regulars are too upset about this but I'm not sure what else we can do. Basically, users logging on today and for the next couple days who randomly jump into a post or create a post that's basically flaming SD, WB, or WinCusto will have the post removed.

Users who have been here for a period of time are free to post what they want as long as it's on topic. Hopefully the warez kiddies will get tired and go somewhere else to vent their frustrations.

You may use the space below to vent on me for being a facist censoring bastard or whatever.

The truth on Windows XP skinning

Published on Thursday, October 18, 2001 By Brad Wardell In WinCustomize Talk
Here's the article I wrote on it:

https://www.stardock.com/stardock/articles/xpskinning.html

Introduction
One of the things that has been driving me crazy since the earlier Windows XP betas (back when it was known as "Whistler") is that Windows XP was going to come with some sort of XML based skinning language that would let users create their very own skins (known as visual styles in Microsoft speak). This is a rumor that was not perpetrated by Microsoft but by overly enthusiastic beta testers who saw that Microsoft was going to allow people to switch between the old Windows 95 look (Classic) and the new Windows XP look (Windows XP style). The code-name to the Windows XP style was "Luna". The fact is, you cannot add additional visual styles to Windows XP that are not Microsoft certified without a third party program.

So how does this work and what does all this mean for users of Windows XP? Microsoft's goal was simply to let people choose between two different looks. That's it. It was not their intention (and they have said this specifically to me countless times) for a bunch of "skinnerz" to go hog wild and create "skinz" for it. They specifically did not want this and did not want it enough that they put forth some effort to ensure this wouldn't happen. They ensured this by digitally signing their visual style files (that have an extension called .msstyles). Why? I can't speak for Microsoft on this but the reasons should be pretty obvious: 1) They don't want the support hassle. That is, someone downloads a "skin" and it messes up their system and who do they call? Microsoft. And 2) Non-Microsoft made skins will almost certainly be slower. They aren't likely to be optimized to be the perfect size and shape in the actual file. Want proof of this? When you see someone say WindowBlinds is "slow" or "bloated" they are really talking about the skin they're running. Stardock WindowBlinds uses a trivial amount of memory and resources. And it is fast. Extremely fast. It's faster than visual styles even at painting. But there's not much one can do about skins. People who make skins are people who generally are not worried about a modest loss in GUI performance in exchange for a much cooler or more functional UI. Afterall, performance freaks are better off just sticking with "Classic". And those not as into it will always find it easier to blame the engine than the skin. You can almost see the nasty magazine reviews write themselves if Microsoft had let people make their own skins -- "Windows XP: Nice features, dog slow." The skinning engine doesn't really have to do that much, it just has to take the bitmaps and draw them with standard APIs and hope that the video drivers support those APIs properly (which unfortunately they don't always).

What is native?
The basic misconception that people who advocate visual styles is the claim that "visual styles are 'native' and WindowBlinds is some bloated third party add-on." This is a claim made by non-technical people who confuse bundling with nativity. Let's talk about how visual styles work:

On a Windows XP install, there is a file called "Luna.msstyles". This is the "skin" that is known as "Windows XP style". It is 4 megabytes. When you load Windows XP, a service known as "Themes" is loaded into memory. If you look in your tasklist, you'll probably notice a few processes called svchost.exe. This is one of them.

When you switch from "classic" to "Windows XP style", this service loads up Luna.msstyles, verifies that it is digitally signed and then talks to a couple of DLLs, most notably uxtheme.dll which handles most of the drawing. If the program in question is theme aware, Windows XP "skins" its buttons and scrollbars and other goodies. If it is not theme aware (i.e. 99% of apps) then it will just handle the title bar and possibly the scrollbar.

So what does this mean? Windows XP includes a program that loads up a skin and applies it to the system. The difference between that and a third party program is purely one of bundling. Microsoft bundles uxtheme.dll. It could just as easily had made it a download. If Stardock renamed wblind.dll to uxtheme.dll and it was included with Windows XP, would it magically become "native"? Of course not. That's because the term "native" has been so abused over the years that no one agrees on what "native" is anymore. WindowBlinds XP is not only just as "native" as visual styles, but it uses the same DLLs and same API calls for 90% of the work.

Visual Styles are not better or worse than the myriad of third party programs that can do this sort of thing, it's just included. Microsoft's developers are no better or worse than the third parties on average. And one could argue that developers who have done nothing but eat, drink, and sleep this sort of thing for 3 or 4 years are in a position to know lots of ways to get the most out this sort of thing.

I don't want third party stuff, I want "native" XP styles!

So you want to make your own skins? You can't. You'll have to get a third party program. That's because Windows XP will only read Microsoft digitally signed .msstyles files. Maybe Microsoft will release more. Maybe. There aren't any in Plus XP though. Maybe someone will crack digital signing? Let's hope not. That would be bad in so many ways that we'll leave that for a different discussion. But you still want "native" skinning on Windows XP?

There is a solution to this in the form of WindowBlinds 3 (in beta form as WindowBlinds XP). So how is it "native"? How does it work? The reason you have to use a third party program is straight forward - Windows XP by default reads in .msstyle files. .msstyle files have to be Microsoft digitally signed in order to work. Changing an existing .msstyles file will break it. So what you have to do is find a way to not have to use the theming manager built into Windows XP. This means a third party program has to be involved. Once you have a third party program, it's a question of whether you want that third party program still go ahead and use non-Micrsosoft digitally signed .msstyles or some other skin language.

Here are the two basic scenarios for the third party program:

1) You can use the .msstyles language (it already exists after all -- assuming MS doesn't sue you for violating its intellectual property). The third party program then just has to load it and send it over to uxtheme.dll. Don't be fooled though, this route isn't the same as simply making your own "XP" skins. It's simply borrowing someone else's skin language to make their own skinning program. You still have to run the third party program to get this to work.

or

2) You create your own skin language and have that talk to uxtheme.dll. This is what WindowBlinds XP does. It uses .UIS (User Interface Specification) files and then sends them over to uxtheme.dll. Since it has additional features, a second DLL (wblind.dll) is loaded to handle the portions that uxtheme.dll can't handle (for example it can make all apps "theme aware", it handles the title bar and border of a window since WindowBlinds can handle all sorts of different visual styles). But ultimately, it's the same deal on XP - you load up a skin, you send it over to uxtheme.dll to draw.

Either way is equally "native". Both require that a third party program be running in the background to handle loading up the skin and sending it over to the uxtheme.dll. But which way is better?

Skin languages: What's the best route?
This gets into a matter of philosophy. In my mind, as soon as you require the user to run a third party program, the choice should become a no brainer - pick the program that supports the better skin language. So what makes one skin language better than another? In practical terms, there are two choices: MSSTYLES and UIS (User Interface Specification). Let's talk about them.

MSSTYLES is an INI based (not XML as some people have claimed) skin language that Microsoft created to create the Windows XP visual style. It was designed for internal use and is not supported for use by third parties. It has 1 "skin" (Windows XP style). It runs only on Windows XP. It is, in my biased opinion, very complex yet incomplete. I read on-line where someone claimed that MSSTYLES could skin more things than WindowBlinds. It's an assertion that reality doesn't agree with. Not because Microsoft couldn't create the greatest skin language in history if it wanted, but because that wasn't their intent. They created a skin language in order to create the Windows XP visual style. It wasn't designed to be the end all skin language. UIS was though. UIS was designed by skin authors over the course of 3 years to make it powerful yet easy to use for skin authors. It is very flexible. For instance, UIS can make skins that resemble MacOS. MSSTYLES cannot. It doesn't support centering of the title bar text with a bitmap behind it. You could not make a BeOS type skin with it. There are a host of visual features that users who want to have nice looking skins would have to live without if they chose MSSTYLES. IAnd of course, UIS supports plugins, additonal buttons (rollup, always on top, link buttons, shortcut buttons, clocks, stock tickers, what have you), animation, sound effects, scripting, etc. Not that most users would care about these things. But they are there and some of them are quite useful. UIS also works on Windows 98/ME/2000 via versions of WindowBlinds for those platforms. These are things that matter to skin authors. A good skin takes weeks of effort. A good skin author is going to care whether the skin language was designed with them in mind. They're going to care whether it lets them do what they want it to do. And they will also care twhether their friends and family who may not have Windows XP can use it or not.

WindowBlinds also has one additional advantage -- there are thousands of skins available for it. Most of them aren't very good. But that's the case with anything of this nature. Out of every 100 skins, maybe 5 of them are really good. So if you want to have 50 good skins to choose from, you have to have a thousand skins made.

Stardock could allow WindowBlinds to read .msstyles and apply them. But why? Why put in work to basically use a crippled skin language? It would be like asking Id to allow Quake 3 to load up DOOM 1.0 levels.

But I want it for free!
Which is ultimately what it comes back to. A user who has purchased Windows XP doesn't want to have to buy another program to get more visual styles. Heck, even downloading a third party program seems obnoxious. But the fact is, as it stands now, any solution is going to require the user to download something. And remember, users can use WindowBlinds for free. It's the additional features that require the user to register. And WindowBlinds XP does everything that Windows XP's own visual styles do and more. So in the case of WindowBlinds, it's a matter of downloading a megabyte file or so and installing it and off you go. If there are features beyond what's "native" in XP, then they have the option to buy the enhanced registered version. Stardock's view is straight forward:

Most people will probably be satisfied with the "free" version. But a large enough segment will want these key features of WindowBlinds 3:

It can make all your apps theme aware. The "free" version of WindowBlinds is like Windows XP itself. If the app isn't theme aware, it doesn't skin it completely. The enhanced registered version makes all applications theme aware so the system is completely skinned.

Without WindowBlinds, most of these buttons and scrollbars, and checkboxes and such would look like Windows 95.

It can dynamically color a skin on the fly. The "free" version is like XP here too. Windows XP comes with 3 color choices (Olive, Silver, Blue). If you don't like them, too bad. But the enhanced registered version of WindowBlinds lets you pick out a color from the color wheel and change the color to anything you want.

WindowBlinds can change the color of a skin dynamically

WindowBlinds 3 will have SmartBars. Basically this means being able to add buttons to your title bar as a user. Want to have a button that lists your top 5 most used websites? Or one that rolls-up the window? Or brings up a menu of your most used apps? SmartBars can do these sorts of things. The "free" version won't do these sorts of things since XP itself doesn't.

There are tons of little things that are nice. WindowBlinds 3 will eventually introduce SkinCast for registered users so that they can more easily access high quality skins of different categories. Additional effects, sound effects, HyperPaint, and much more.


The pattern here is that the "free" version of WindowBlinds 3/XP will do what users are asking -- let Windows XP have additional visual styles. Stardock's bet is that out of the millions of users who use Windows XP, many thousands of them will want these kinds of features.

Conclusions
The only downside of the "free" version is that you have to have a fairly small program residing in memory to handle the loading of the .uis files and sending them over to uxtheme.dll. Of course, it's all about perception. Next time you're looking at your tasklist in XP (Ctrl-Shift-Esc) note how much ram those svchost.exe processes use. WindowBlinds uses less RAM than a typical XP powertoy.

Adding additional visual styles to Windows XP will definitely require some third party program to be involved. This is because .msstyles have to be Microsoft digitally signed. There will likely be a host of programs that take various strategies to load up a skin and send it to uxtheme.dll. Since it does much of the hard work, there's no doubt users will have various options to add additional skins to Windows XP. The question will merely be one of which third party program are you going to use to do it? And which types of skins do you want to use? Just don't let yourself be fooled that one way is more "native" than another. The only completely "native" way would be if Microsoft got rid of the digitally signed requirement for .msstyles files. But even if they did that, it would still come down to whether one would rather use .msstyles based skins or some other skin language and the overall features the various methods provided.

There's also the other thing, Microsoft doesn't recommend any given third party product over another. But Stardock developed WindowBlinds XP with close contact to Microsoft. It was officially launched on September 26 at Microsoft. It is Microsoft Windows XP certified. In short, it's not some bloated quickie third party hack messing with your system. It integrates seamlessly into it.

I'm a biased source but I'd choose WindowBlinds 3 over any potential alternatives even if I weren't involved with it. It's native on Windows XP (not bundled). It has thousands of skins. A skin language designed by the skinning community. And tons of really cool features. And the free version does what XP does anyway. Not to mention, as a developer, I need to be able to make my windows always on top and WindowBlinds is the only program available that lets me put an always on top button on my title bars.



The Skin Primer 2002

Published on Monday, October 15, 2001 By Brad Wardell In WinCustomize News
We Admins of skin sites get asked questions by users new to the world of customization all the time. To help answer those questions, I've written up this Skin Primer that acts as a guide to the skin sites, skinning programs, and customization in general. Click on the download link to check it out. Hope this helps!

Video game: Stronghold skin

Published on Monday, October 15, 2001 By Brad Wardell In WinCustomize Talk
I'm supposed to do this for Take 2 but I'm running out of time. Anyone interested in creating a UIS1+ skin for the upcoming game, Stronghold in exchange for a free copy of the game?

If you are (and it has to be UIS1+ not UIS2) I can email you some screenshots and such.

Visit Teknidermy!

Published on Sunday, October 14, 2001 By Brad Wardell In WinCustomize News
For those who are interested in keeping up with some of the latest news in the skin community, the Teknidermy home page has been revamped in recent weeks and is just awesome. Check it out.

Where is The Artist?

Published on Friday, October 12, 2001 By Brad Wardell In WinCustomize Talk
I was looking to download those two really cool DesktopX themes by "The Artist" but they don't seem to be there now. Does anyone know what happened to them and The Artist?