Sunday, June 8, 2014


I heard a quote not related to programming, but fits it well. 
Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.Antoine de Saint-Exupery
This is a great way to explain the single responsibility principle for classes. Classes should have a single purpose and not be a jack of all trades. Kind of like an over sized Swiss Army Knife can do it a lot, but it doesn't do most things better than a purpose built item.

In programming, classes that have a clear and specific purpose makes them more testable and reusable.

Sunday, May 4, 2014

Fixing Visual Studio's Uppercase Menu

After reloading my computer and reinstalling Visual Studio 2013, I had forgotten I need to fix the UI menu case. I wish there was a way to run this registry tweak automatically as part of the install.

Thanks to this MSDN post for helping people,

Once again, I think when it comes to UI change, people should be given the choice. After all, they know what they want and like. To impose arbitrary decisions that disrupt their users isn't a winning business strategy.

Saturday, July 20, 2013

Some quick thoughts about Windows 8.1 Pro Preview


  • The boot to desktop is long over do, but now it is here.
  • Boot time seems reduced.
  • Multi-select of Start Screen tiles.
  • Splitting the Start Screen is better.


  • No Start menu, only a Start button.
  • A lot of cruft still get into the Start Screen. Probably need a way to expand/collapse items you choose to hide.
  • Mystery Scheduled Tasks make explorer and network traffic too slow to use. This task is triggered when the computer has been idle for about 10 minutes. When that happens, either you need to wait for however long it takes, or reboot. Rebooting is usually much faster. As of yet, I've been unable to track down what task is firing, why it doesn't detect the computer isn't  idle,
  • No way to create a custom keyboard shortcut, without pinning to the task bar. (Not sure if this is also a problem in Windows 8.)
  • Many of the features still seem hard to discover, at least for me.
  • Still no syncing or sharing between Windows two desktops (the regular Windows desktop, and the Windows RT desktop.) Opening an app in one doesn't open the app in the other view. Nor can I share something from the desktop IE like from the RT desktop. I hope that will be fixed because it seems sharing is just a contract. I assume similar may be done to sync apps between the two views. That said, I say the two views, but it is really closer to the two operating systems. Probably sooner or later Microsoft will need to allow both desktop to access both worlds. I believe both worlds run on IL, so there should be a way to use one program (like IE) and see IE in the desktop view and RT view.
  • My ReadyBoost SD card is no longer fast enough to be used by Windows 8.1 Preview.
  • Only other problems I has was I needed to update my laptop's BIOS and use OEM drivers to get Windows 8.1 Preview to play a whole YouTube video. Before then (fresh install, out of the box) about 3 - 4 minutes into the video, Windows would take offline my NIC and I was unable to make it active again. Rebooting fixed the problem after manually re-enabling the NIC.


I don't see much reason not to update to Windows 8.1 if you are on Windows 8. I still hope Windows 9 has polish for both the desktop and RT worlds. Microsoft was able to recover from Vista with Windows 7, hopefully Windows 9 will be at least as great of an improvement. That said, they have even more ground to cover that they did in Windows 7 so hard to say. Restoring the desktop to Windows 7 quality or better shouldn't be too hard, they had already done it once before.

Thursday, May 30, 2013

Batch command to delete a specific directory recursively

I noticed folders called "@eaDir" was created in each folder in a share of mine. To recursively delete the "@eaDir" directories I used the following command:

for /d /r %G in ("*") do rd "%G\@eaDir" /s /q

I added the /s /q just to make sure to get rid of the @eaDir directory because I wasn't sure if all those directories were empty, but I do know they were all unwanted.

Saturday, May 4, 2013

Windows 8 Review: The Good, The Bad, and The Ugly

The Good:

Windows 8 does seem to run better on lower powered hardware than Windows 8. I have an ATOM based Nettop computer that seem to be faster with Windows 8. I can see they did some performance tuning.

The Bad:

The biggest complaint with Microsoft is they are moving choice. It has been a long-standing unwritten rule that there are many ways to do thing in Windows. Another unwritten run is allowing users to customize Windows. Windows 8 breaks both of those rules.
  1. You can't choose which desktop you want to boot into, the Windows or Windows RT.
  2. The Windows desktop is crippled because of no Start Menu.
  3. Microsoft won't let you by default change the picture on the back of the Start Screen. Nor the application button colors, nor the images displayed for an application.
  4. There are no common programs for both desktops. What I mean is if you launch IE in Windows and then go to Windows RT, IE isn't also available there too, already running in the exact spot your Windows desktop view of the application is at. Instead, Windows RT has a different IE, and there is no way to make them the same. I had hoped that an application could be accessed from either desktop and depending on the desktop you are in, is how the application would be presented to the user. Now there are two different and unequal applications.

(As a side note, I've noticed that Windows 8 desktop crashes are a lot harder to get through. I've had Explorer.exe crash, and back in Windows 7, the OS would start a new Explorer and the desktop will come back. In Windows 8, not only does Explorer not restart, but I can't pull up anything that will allow me to start an Explorer. I usually have to click the power button and have the laptop shutdown. I'm not sure why Windows 8 desktop is less stable than Windows 7, but I hope that gets fixed.)

The Ugly:

The Ugly is that users will have to deal with all these problems until a better alternative is made. I don't know if it will be Linux or third party vendor creating a Windows shell that gives the users what they want (which means is configurable).

I can see businesses and desktop/laptop users will still need a Windows 7 like desktop, a desktop mainly designed for high interactivity. There are also tablet uses for Windows that require low interactivity. Each is good for that it is designed for and bad at the other.

Bolting touch onto Windows 7 probably wouldn't have worked out too well, like wise needing to type and draw with precision doesn't work well only using touch.

I hear Microsoft isn't going to give users a Start Menu in Windows 8.1, but I guess we all can hope in Windows 9 the Windows desktop of Windows 7 will be restored. Also, the two desktop will be fused so only one application is needed, and depending on your view, is how you will see it.

Lastly, I guess I would have to put the Windows RT desktop under the ugly column. The irony isn't lost upon me where Microsoft wanted us to upgrade our machines to computers with stronger GPUs so we could have this pretty Aero Glass interface. Not Aero was removed from Windows 8 and not only does the Start Screen look ugly but now the Windows 8 desktop as well. It is sad that the start menu uses flat colors (no gradients no curves, no 3D tile look, no shiny gloss finish) and makes no attempt to look beautiful. Also sad is how the Windows RT designers say the removed all the chrome and only show content. However the Start Screen is full of buttons, and the layout of information in apps do break into lines. The "designers" in Windows 8 need to realized they may have renamed things but they are about the same. Everything they claim to have gotten rid of and can found in the new interface. (For example "wasted space by having the chrome", if you look at a Window RT application, there is plenty of space in applications that is not used. Some applications do a better job than others, but many of the default templates waste screen space.) Personally, I will be glad when the Metro/"Modern" interface gets improved into something that not only looks good but is also more useful.

Tuesday, February 26, 2013

git-flow for Windows

Figure from
Post Title: A successful Git branching model
Published: January 05, 2010

Found a good post on how to install git-flow on Windows.

If I can get this down and works, I think this will help at work.

Wednesday, February 22, 2012

Acrobat Reader X Poor UI Design

One of my big pet peeves is forcing the user to accept your application they way someone else thinks it should be.  Nearly every UI change in the last few years had not been helpful for the power users, or those that don't fit the programmer’s idea of a "typical user".

Vista, Windows 7, and the soon to be Windows 8 are bad enough, but I see Adobe not to be left out decided to get on the band wagon.  I have been avoiding using Acrobat 9 Pro on most of my machines, which is fine.  But I keep bumping into one machine I have Acrobat Reader X installed.

The thing I can stand about the UI is the eat up my smallish laptop screen pixels and give no value by forcing me to display options I would never use, and can't remove.  In the right third of the toolbar (which can only be one row high) I can't find a way to hide these "tools" and make room for something useful.

UI designers should never restrict the users to one row of toolbars, and then also restrict them to have mandatory items show.  I do have more tools selected, and it isn't like these tools are filling unused space.  I actually have more tools that one row would allow, but for some reason Adobe decided for everyone that we should have these pixels reserved for what the typical Acrobat Reader user would need.  In my opinion, Acrobat Reader users want to read and navigate the PDF.  If they wanted to do more, there is an Acrobat Pro.

Anyway, I don't normally like to make negative comments, but I think someone needs to stand up for the user and the answer that is never wrong is "give the user what they want", which means the flexibility to customize things as they wish.