15 May 2016

OS Review: Windows 10

I have decided to do a short series on window managers I have used.  I titled this OS Review, because most people don't realize there is a difference between a window manager and an operating system, and because, in the case of Windows 10, it is the OS as well.  Most of these will be Linux window managers, but because I have primarily been using Windows 10 recently, I am starting with it.


I have been using Windows 10 since early January.  That makes it about 5 months.  For some context, before that, I used Linux primarily, and I went through several window managers over the last several years.  I bought a new laptop at the beginning of the year, and after some research, I decided to give Windows 10 a try.  I have not used Vista, practically at all, I used Windows 7 a bit at work, and I also skipped over Windows 8.  I have used Windows XP off and on since it was originally released (and I am still using it on another machine, for playing games).  I chose to try Windows 10, because it is almost as light weight and as stable as XP, and it does not have the tons of worthless features that started with Vista and continued into Windows 7.  In short, in my opinion, Windows 10 is the first version of Windows that is actually better than XP, since XP itself (the later DOS versions of Windows still beat XP in my opinion).

My research indicated that Windows 10 Home and Pro both included "features" that I will not tolerate.  The big one is mandatory updating.  When an update is released, the OS will give you two options: You can install and restart now, or you can install and restart in exactly 30 minutes.  Once at work, we had an online meeting scheduled from 2pm to 3pm.  At precisely 1:58pm, an update was released.  We had to choose between installing immediately and being late to the meeting, or installing in 30 minutes and interrupting the meeting.  This is a bad thing.  More recently, a professional gamer had an update cut him off in the middle of an important game.  This is also a bad thing.  (If you cannot see it, imagine the stadium kicking everyone out for 10 minutes in the middle of a Super Bowl game, to install a new score board.)  The operating system should not control the user's schedule, and it should never force a restart without the consent of the user.

So, the first thing I did when I got my new laptop was to wipe the disk and install Windows 10 Enterprise.  (I work at an educational institution that provides access to this at no cost to employees.)  This version allows the user to schedule the update and restart for any time, though it is still not very forgiving if you pick a bad time yourself (for example, maybe you end up having to deal with a server emergency at 3:00am).  Still, this is way better than the other versions.

Windows 10 is very good for an MS product.  For the first few months, it never crashed.  Then it crashed twice, which is unacceptable for an operating system but way better than previous Windows operating systems.  The Intel video driver crashes regularly (this is Lenovo's fault, for not updating it to a newer version), but miraculously, Windows does not crash.  It actually recovers, giving me a notification that the driver crashed and has been restarted.  This is a huge step forward for Windows.

One of my favorite features in Windows 10 is Cortana.  I have tried to add voice control to Linux, but it is just too young at this point.  Cortana is a lot of fun, but sadly, she is very limited.  You can start applications with her, but she cannot handle any ambiguity.  If a command is ambiguous, she will give a list of matching options, but by the time you figure out which one you need, it would have been faster and easier to use the keyboard.  The one thing Cortana is good at is web searches.  Getting her to use Google with Firefox was a pain (she uses Edge and Bing, the MS "decision engine" that is really just a thinly veiled advertising scheme, by default), but at least it is possible.  Of course, if she misunderstands a command, here comes Google (or Bing), whether you wanted it or not!  Honestly, it is just faster to type your search into the browser directly.  In addition, you cannot add custom commands to Cortana, which further undermines her value.  I have found myself relying on Cortana less and less, because she is just not that useful.  She could be useful, but it is going to take some work from MS to make her into a real input device.  The one thing I still use Cortana for is scheduling reminders.  I have this nice wind up pendulum wall clock that has to be wound regularly, so I set up a weekly reminder to wind it.  If course, even this is not ideal.  This clock is a 20 day clock, so really it only needs to be wound about twice a month, but Cortana cannot handle that.  She cannot even handle every other week.  So I have a weekly reminder, and sometimes I skip it (though never twice in a row).  Yeah, Cortana needs work.

Another thing I like about Windows 10 is the system tray clock application that can display both the time and the date.  In fact, I dumped the LXDE Linux window manager because it failed on this one.  This is a big deal for me.  I don't bother to memorize the date, because it changes too often (over 350 times a year, in fact).  Having it sitting there right under the time is invaluable to me.  Of course, I also like to use my computer clock to time things; unfortunately, Windows 10 does not have any option for displaying seconds.  Yeah, turns out MS cannot do anything 100% right.  (They say updating the clock every second would slow the computer down too much.  I have experience with very many Linux systems that disprove this claim.)

To top off what I like about Windows 10, is the virtual desktops.  I have been a regular Linux user for over 15 years now.  Every Linux system I install has 4 virtual desktops.  This works very well for my normal workflow.  Windows XP had a PowerToy that could add this functionality, but it was not very good.  Windows 10 boasts fully functional virtual desktops.  Remember how I said MS cannot do anything 100% right though?  Their failure with this feature is the inability to add keybindings to go to a specific desktop.  They have designed the virtual desktop system with the assumption that the typical user will constantly add and remove desktops as needed.  Unfortunately, it turns out most people don't do this.  People who use virtual desktops tend to use desktops for dedicated tasks.  For example, I tend to use my first desktop for my highest priority work.  My second one will be for keeping documentation open and ready.  The third will be for very low priority stuff that I just want to keep alive (a browser video game, for example).  The fourth is usually left empty, just in case I need it for something not in those categories (maybe someone needs to check their email on my computer).  Because of this, I find it very valuable to be able to switch to a specific desktop instantly, with one command.  Windows 10 does not provide any way to do this.  On my old laptop, I can switch to a desktop by pressing Win+Fx, where x is the desktop number.  If my wife needs to check her email, I hit Win+F4.  If I am working and I need to glance at documentation, Win+F2, and then Win+F1 to get back to my work.  In Windows 10, it is Ctrl+Win+left or Ctrl+Win+right to cycle through desktops.  If I need to go to desktop 4, it is Ctrl+Win+right+right+right, and I have to watch two desktops I don't currently care about whiz by.  Not only is this confusing, it is so unintuitive that I don't end up using desktops 3 and 4 very much, which cuts into my productivity.  In addition, the Windows hotkeys are too close to hotkeys that do other things.  If you accidentally press Ctrl+Alt, pressing left or right will changes your screen orientation (my wife had this happen, and she was only using one desktop).  If you accidentally press up or down instead of left or right, it will minimize or maximize the current window.  If you trip over spacebar, it can change something somewhere that will make it so your keyboard no longer registers certain letter keys (this is manufacturer specific, I believe, but it is really frustrating).  This particular combination is both slow and prone to errors that have serious effects on productivity.  It would be trivial for MS to add the ability to bind specific key combinations to specific desktops, but they just assume that no one wants that, despite the fact that it has been a common Linux convention for over a decade.  At this point, they are also ignoring constant pleas on their forums for this feature as well.

Aside from the two crashes, there is really only one seriously bad thing I have to say about Windows 10: The unicode support sucks.  On their website, MS has an article about code pages.  MS DOS did not have support for millions of characters, so instead it used code pages, which offered a way to select a specific set of 256 characters.  This allowed MS DOS to handle many different languages, albeit, only one at a time.  As the internet got big, it became more important for computers to be able to handle all languages at once, and unicode was born.  According to MS, code pages are "legacy", which means, they are only supported so old programs that use them will still work.  Their documentation says that modern programs should support unicode, instead of code pages.  Of course, at the same time as telling everyone else to use unicode, here is MS, in 2016, still using code pages in their own OS!  The terminal program, run with the command "cmd", is still using code pages, which makes it very difficult to do anything with a filesystem that is using non-English characters (Japanese, for instance).  To mitigate this, MS provides code page 65001, for unicode, but it is buggy, and it is not the default.  Even worse, the default terminal font does not actually contain many foreign characters, so they all display as boxed question marks, even if you do set the terminal to unicode.  And, even worse than that, the terminal is so picky about character width in fonts that it is nigh on impossible to get it to use a font with foreign characters, even if you hack the registry to add more font options.  My specific experience is with Japanese, which requires most of its characters to be twice as wide as normal English characters, just to be readable.  I spent many hours of research over two days trying to find a solution, and nothing would work.  Thanks MS.  Wish they would take their own advice.

Honestly though, if foreign language is not a significant issue for you, Windows 10 is the best version of Windows since 3.11 (ok, it may even beat that).  MS has finally added a lot of very useful features that Linux has had for over 15 years now.  Cortana is a really good start for voice control.  The virtual desktops are better than they were in the XP PowerToy (but still need work to compete with what Linux has had for over a decade).  It also crashes less, and it seems to handle driver crashes (historically the most common source of blue screens in Windows) much more gracefully than in the past.  It is lighter than most versions of Windows since XP, and the PC interface is not designed exclusively for phones and tablets.  Windows 10 is not a bad OS for the average American, if you can afford the Enterprise version, or if you can put up with your computer dictating its own update schedule.

If you are not using English exclusively though, you might want to consider Linux or even Mac.  Some Windows applications have decent unicode support, but Windows itself does not.  Neither cmd.exe nor PowerShell has sufficient unicode support to work with most foreign languages by default, and neither of them can handle Japanese, Chinese, Korean, or any other language where characters must be wider than English to be readable.  If you are in this category though, you probably already know this.  If you are just starting to need this (in my research, I found several businesses who were starting to work with people overseas that were affected by this problem), you should be aware that you are out of luck.  MS just does not care about you, and your only solutions involve using a more modern OS, like Linux or even Mac OS X.



That was the conclusion, but I would like to share the aftermath of my experience with Windows 10, for anyone that is interested.  I am currently working on learning Japanese.  I want to learn both the spoken and written forms of the language.  I recently bought some stickers I can put on my keyboard, so I can see what Japanese characters will be printed when I use my keyboard in Windows IME mode (or in Japanese mode in Linux).  I am also looking into buying an actual Japanese keyboard.  As such, Japanese support, and more broadly, unicode support (I am not stopping at just Japanese), is essential to me.  Around the time I started this endeavor, I discovered that Enlightenment, my long time favorite Linux window manager that has always been missing just enough important features that I was never able to use it, is now mature enough to be in a popular Linux distribution.  I am not going to use that distro (I'll discuss that in a future OS Review), but I decided it was time to try it out again.  To my happy surprise, it is just as awesome as it used to be, and it seems to meet my needs now.  Linux in general has excellent unicode support and has had it for many years.  This problem with unicode support came to the front about 2 days after finding the Enlightenment is still going strong.  So today, I tested Enlightenment, with a serious eye on dumping Windows again, and so far, it is great.  The only other roadblock is whether or not Debian has updated to a Linux kernel that supports my wireless card, and honestly, I am not sure I would be opposed to compiling the most recent kernel myself if Debian has not done it yet.

01 May 2016

The Search for Perpetual Motion

Perpetual motion has been a sort of holy grail of science since the discovery of momentum, inertia, velocity, and similar ideas from classical physics (electromagnetism gave it a major boost).  Around the same time though, the Laws of Thermodynamics were conceived, which state that perpetual motion machines are impossible, because the energy in a closed system cannot increase, and entropy cannot decrease, which means that any organized motion will eventually decay to nothing as it radiates thermal energy (from friction, in most cases).  This proof, however, has not stopped the search.  Any kind of working perpetual motion machine would prove that it is possible for a closed system to either increase in total energy or at least for entropy to decrease, and this essentially means that we could create devices that would create free energy.  This is, essentially, a search for gold, and many people are willing to doubt the proof against it if there is a promise of riches at the end of the rainbow.  Of course, this search is so absurd that the U.S. Patent Office will not even consider patents for perpetual motion machines.  Until about 10 minutes ago, I was of the opinion that we would be better off if everyone would just give up on this fool's errand and do something useful with their time.  What happened 10 minutes ago, however, is that I realized several things.

The first thing I realized is that science cannot prove anything definitively (I already knew this, but I applied it to this problem in that moment).  The closest science can get to proof is to disprove all other possibilities, but even then, it stands on shaky ground.  The fact is, science proves things by observation.  The Laws of Thermodynamics are not literally proven physical laws.  They are statements about what has been observed.  The Laws of Thermodynamics state that we have never observed conservation of energy to be violated and we have never observed entropy to decrease in a closed system, given an enormous number of observations.  This is the closest science can get to proof, but it does not mean that it can never happen.  Perhaps there is some very specific situation where conservation of energy can be violated or where entropy can decrease in a closed system.  Until every possible situation has been tested, the Laws of Thermodynamics are just widely accepted theories that apply to every situation that has been tested.  In other words, we don't actually have solid proof that perpetual motion and free energy are impossible.

Now, I don't want to imply that I think perpetual motion is possible, and I certainly am not trying to suggest that we should put more resources into this endeavor.  Given how much effort has been spent on this without any progress, odds are that even if it is possible, the situation required is so complex or otherwise difficult to discover that we will probably never discover it.  Of course, it is also possible that we just don't have the technology to do it, but if this is the case, it will likely be solved as soon as we develop that technology.  The fact is, it probably does not matter if perpetual motion is possible or not, because we probably would have found it already if it is something we have the means to do.

The second thing I realized is that the work done on perpetual motion machines has produced value.  A great number of very useful inventions have drawn from discoveries and ideas found while trying to make perpetual motion machines.  Now, I said that we probably don't need to put more resources into this search, but this is where more resources might really produce useful things.  In fact, we are already seeing useful ideas come from the search for free energy, beyond just perpetual motion.  There are many people experimenting with "crystal cell" batteries that seem to be able to continuously produce very small electric currents for far longer than standard batteries can last even in storage.  The hope is that these batteries can be improved and scaled up to produce large amounts of energy for very long periods of time, but even if this fails, there are plenty of applications for very long life, low current batteries, and the number of applications will only increase as we improve the energy efficiency of technology.  As long as people are constantly trying new things, we will see new discoveries, even if the end goal is impossible.

There are two reasons we should continue the search for perpetual motion and free energy.  The first is that maybe it is possible, and we have just not found it yet.  The second, more important reason, is that this search can provide us with very valuable knowledge and discoveries, even if we never reach the goal.  This second reason may even be sufficiently valuable to encourage or even help fund the search.