724
« on: August 28, 2014, 04:08:21 PM »
I told myself I would hold onto this until I was done/ready to writeup a blog post. I will still be doing that, probably before the weekend, but I seem to be so full of enthusiasm that I need a release, and writing for the public is a good way to organize your head, and the unplanned micro/surprise-release ahead could benefit from some writing about it in advance.
I noticed during the last release just days ago that there were issues around the Windows 7/8 taskbar that I had not personally encountered because I keep most of my work files on a networked drive, which to this day Windows still treats as a second class citizen in the disk world--I wonder if it does the same for external drives, like thumbdrives too or what--and as such I hadn't encountered the pinning element since it doesn't work with network addresses, not even when they are "mapped" to drive volumes.
So I hastily prepared a patch to sweep all of the embarrassing stuff under the rug, and I thought that would be the end of it. But afterward I wanted to go a little bit further. I gotta admit XP is feeling kinda sub-optimal these days, and Vista had such a stigma I doubt anyone is using it, so I reckon 7/8 are dominant right now. 8 is like a puzzle box to me that I still can't believe anyone can use effectively for anything, but I know it uses the 7 style taskbar, albeit without the Start menu. So I wanted to seriously invest in this new feature set, also knowing that once Microsoft adds a feature that lasts more than one version of Windows then it is almost always sure to stay around... forever.
The new "pin" setup impose serious restrictions on applications that never existed before. There's nothing wrong with the way SOM works, but it's completely antithetical to the way the "pin" system works. Not only can you not pin the tools, the one tool you can pin is SOM_MAIN, and you rarely use it for more than half a minute before moving onto SOM_EDIT. So if you pin it then its pin slot will just be taking up space even after SOM has loaded itself up. And of course in our case, extended SOM_MAIN can't even be pinned, because it needs to go through a launcher.
Taking all of this into consideration I began trying different things. I'm pleased to announce that I'm really pleased with the results, which is nothing less than a complete rebranding for SOM, and also a window into its future development.
I've tried to gather everything I could into one screenshot to share. The one thing that is missing can be seen in screens there were provided along with the late patches. That is that all of tools are grouped together in one place on the taskbar...
Also I've added a Tasks--- section to the right-click menu which can't be seen. It just contains one entry so far called Setup. I may've posted a screenshot of this, I can't recall. I think I will probably add a Tasks submenu to the start menu so that you can customize the tasks to your liking.
I finally figured out how icons work, and have standardized them. Before some of the icons didn't even support the big view in the taskbar and icons were sampled differently in different places. The reason I think I could never understand icons is the obvious LoadIcon API is used to load "big" icons, which seem like they would've come later in Window's lifetime. Whereas the small icons used on windows must use the LoadImage API. It's totally backwards IMO. What's stranger is the constants for setting the icons are 0 for the small icon, and 1 for the big icon, suggesting small was first, even though LoadImage seems like an API that setup wise would've came well after LoadIcon, and the small icons use a system metric that is prefixed, but I digress. Naturally I standardized around the tools' icons. I think the sword icons could benefit from being remade from scratch, but I did improve them somewhat. The black shadow owes to the fact that they came from the original SOM_MAIN icon with a black background. The thinner black contrast comes from downgrading the 32x32 icons with transparency around the edges I think. 7 seems to have dropped the shadow effect on icons, so it would be better I think to have icons without a shadow. But they'd still need an outline so not to blend into the frames.
First things first, in order to have an icon that can be pinned, and because since 7 Microsoft seems to want to kill the systray outright by hiding all of the icons so that users must manually opt in without having any idea that the icons in the systray even exist in the first place! When opting out is super easy to do just by removing any systray icons you don't want. This leads me to believe that it's only being kept around because it's owed to application that depend on it, even while cursing those applications to not be able to expand their user base by virtue of new users not knowing where to find the application in the systray...
So in other words, SOM can't depend on the systray going forward, and while I'll continue to support it because I prefer it, there has to be an alternative. So the Pin slot I've given to SOM_EX.exe, the launcher, and it is designed to behave virtually identically to the systray icon.
This means SOM_EX suddenly becomes the entry point into Sword of Moonlight. I'd always intended that to be the case, I just thought it would be more of a minimize to the systray kind of setup. I'd made an icon for SOM_EX.exe that looks like the tool icons modeled after SOM_SYS's in fact, except I changed it to look like an ampersand, or & in a font that look like Ex. Because & means Et, so imagine the t turned 45 degrees...
I'm not sure why I made the icon, the file just needed one I guess, and it seemed like it would be fun to try. It never got used since the Start.bat file would assign SOM_MAIN's icon to the shortcut to SOM_EX in the Start menu. But now SOM_EX has to be assigned the Moonlight Sword icon, and so the & seemed even less worthwhile in hindsight. Except! for the fact that since the tools are all grouped together into one icon now, and the icon shifts from SOM_MAIN->SOM_EDIT, then it occurred to me that it would be better if SOM_MAIN's icon matched the other icons. So as it turned out the & icon was perfect for this purpose. So I've unilaterally decided to change SOM_MAIN's icon to that. Of course the icon is up to the language/theme pack.
The new & icon for SOM_MAIN helps to illustrate I think that this isn't old SOM_MAIN, and reminds users that SOM is extended. Plus since SOM_MAIN is the entry point to all of the other tools, the & prefixes them as well, as if saying this is SOM_EX. To be honest I would prefer to change the file name of SOM_EX, and probably will, but I don't know what to change it to. SOM is already taken...
It was around this time that I also had the idea to idiot proof a couple things. I added the big button seen in the screenshot to SOM_MAIN.exe so that if anyone is just poking around or trying to hard and so ends up running SOM_MAIN directly, they won't get far, and will be helped back on the right track. I imagine for people who are too socially awkward to ask for help, this might save some people from having a bad experience.
And in addition to that I followed through with an idea I've been debating with myself for a while, of having Start.bat run SOM_EX for the first time. Most installers let you decide to run the app after the installer finishes. I didn't want to give the idea that Start.bat is a launcher. Its real purpose is to setup the Start menu. But also my thinking was, some people might not even be able to figure out the Start menu, so at least this way they will see SOM in action at least once as a reward for downloading all of the files. Again these same hypothetical people are too socially awkward to just ask for help, and probably not at all persistent enough to be using software to develop anything in the first place, but hey, first impressions are everything.
EDITED: upon reading this it also occurred to me that Windows 8 doesn't even have a Start menu! So Start.bat may be the only way to get the program onto your taskbar and pin it there. 8 is truly insane. I find it very difficult thinking in terms of 8. It's a good thing only hypothetical people are using/trying SOM right now, or I'd need to be coached on how to smooth out the 8 experience, but I think this release should go a long way towards that, if not as far as 8 allows. Lets be honest, there's probably no way to smooth out 8.
The reason I decided to do this in fact was the way 7's extended taskbar works is the program itself needs to set it up. So until the program is ran for the first time the right-click menu is not populated. So I thought Start.bat can complete the process by running the program and populating this menu...
But what totally surprised me, and hadn't even occurred to me is first of all, this gave a perfect opportunity to at least show off once the ASCII art in the commandline as can be seen in the screenshot. But more importantly by running the program for the first time, it can actually complete the setup process by prompting the user to setup their language/theme and update all of their components. Which is something that feels more like part of setup than the initial run. My thinking is people might be surprised or let down at least if they are asked to update when running for the first time, even though that's how the PS3 seems to do everything! But if the update procedure is part of setup then they will be more comfortable.
Finally it was at some point during all of this tinkering that I realized the "Setup" program, SOM.exe is actually a spot on metaphor for the Dragon Sword. And because SOM needs to shutdown in order to manually update it (without chancing running into a lock) that is like the Moonlight Sword in its inert state (aka. the Dragon Sword) and so in order to differentiate the icons between SOM.exe and SOM_EX.exe's new icon (which up to this point were identical) SOM's icon could be like the Dragon Sword, basically a desaturated version of the Moonlight Sword. And I thought not only is this a cheap and easy way to make an icon, it would also be visually interesting when doing just-in-time updates since the software would startup with a greyed icon asking to be updated, and then become fully lit up when it's ready to go!
The only problem with all of this is there is currently nothing, literally nothing, to show for the SOM_EX program. It's a launcher after all. And what's more since 7 the program shows a thumbnail in the taskbar, even if it has nothing to show. As you can guess the default for nothing to show is not pretty.
And on top of this, the name for SOM_EX in the Start menu up to now has been "Sword of Moonlight". But not only did this title not look well to me in the taskbar, especially next to the more spartan titles, SOM, SOM_MAIN etc. neither is SOM_EX itself necessarily "Sword of Moonlight", even if it is an entry point. So that coupled with the way Windows 7 generates the name of apps in its extended taskbar forced my hand to totally rethink the Start menu...
So what I did, and this can't be seen in the screenshot, is change the names of the shortcuts to "Dragon Sword" and "Moonlight Sword" respectively, further embracing this relationship, and I think making a more enduring product in the process. However in the extended taskbar menu "Dragon Sword" is referred to as Setup, since that's its task, and its window title is SOM as you'd expect, not Dragon Sword. However that is its product description, since that is one way that Windows 7 generates the names of applications in the "extended taskbar menu". And likewise for SOM_EX.
And likewise just the same the window title. Not being "Moonlight Sword" that is. I tried different titles, but ultimately because the SOM_EX taskbar title is meant to be identical to the systray icon, I went with that. I changed what the systray icon says too. It now just says your username, so that's the title of the SOM_EX taskbar icon too. Your user name next to the Moonlight Sword icon, suggesting that it's your sword in hand. This is a detail that I think communicates and empowering message, but also it's something that's just a coincidence. The systray icon will need to reflect who the user is ultimately, so that's that.
The Windows 7 taskbar also has extra features I think that let you change its colour to signal different notification states, and it has a built in loading bar too, there may be other things as well. Actually, this gave me the idea that the jewel embedded in the Moonlight Sword is perfect for an LED like status indicator. So rather than modulating the colour of the sword to indicate status I reckon better to use the jewel, since the sword pretty much stays cyan anyway.
The red jewel comes surprisingly well contrasted in the 16x16 icon just by chance. I wonder if its single pixel would be visible enough if made bright red or green.
PS: The thumbnail visible in the screenshot is kind of a hack. To get it to display if must be drawn into the corner pixel of the display, which isn't reliable on multi-monitor setups, even though I hope that's going out of fashion since widescreen displays offer more than enough workspace (admittedly CRTs definitely did not) for the sane among us. So... basically the work I have cut out for me is to move the splash screen into SOM_EX one way or another, so that it can be displayed center screen, which ironically seems to be the only way to get the thumbnail to work (there's just no way to generate it from off screen.)
After this release there will still be multiple instances of SOM_EX.exe running, but the eventual goal is definitely to only ever have a single instance. It will just take more work to get there that hasn't even been scheduled yet.
PPS: About the screenshot. I don't use big icons like this myself, or grouping, and my taskbar is usually two or three times as wide as this, but I wanted to show it in more of a default arrangement, and to show off the glorious big icons. I don't know if big is still the default these days, but I am pretty sure taskbar on the bottom is still default and it's usually as tall as the icons are. I very much prefer titles in my taskbar and couldn't imagine working without them.
Also BTW, you can see my icon is named Michael. There will be a team based messenging service as the centerpiece of SOM_EX or whatever it will eventually be called in the future. But by default it will probably still use your Windows user name, and that was just the easiest thing to use as filler for now. Plus the contents of the registry depend on your username, so it's important to communicate "who" you are using SOM as I think. I very much don't like to hide implementation details from users. I think in the long run it's not helpful. Especially for applications that are geared toward software development.
EDITED: So in both places in this screenshot where it says "Swordofmoonlight.net->Sword of Moonlight" it should say "->Moonlight Sword" now instead. My intention is not to monopolize the Moonlight Sword here, but to contrast it with the Dragon Sword. Plus I do think that "Moonlight Sword" is just easier to ramble off than "Sword of Moonlight" as program names go. And Swordofmoonlight is already in the folder name, so it seems a little bit repetitive/silly to repeat it.