The film utterly loses me at the start. The captain of a tug boat (Michael Cane), his first mate, and a girl (Sally Fields) his first mate happened to pick up the night before stumble upon a massive upside down "four star" passenger liner, having seen a coast guard helicopter flying away from it. Now I cannot imagine any sea faring sort (or any human for that matter) coming upon the massive wreckage of a ship, the sea of debris and bodies that must surround it, and not being emotionally overwhelmed when they consider the hundreds or perhaps thousands who must have lost their lives. The normal reaction would be to look around the nearby ocean for survivors, for bodies, do something of service. Instead this crew of three immediately decides that the logical thing would be to climb onto the upturned, sinking ship find a way inside, and loot it for all its worth (sorry, "salvage" it). Now, being that this is the sequel to "The Poseidon Adventure" and that that movie was a tale of people desperately trying (and many of them failing) to escape the very same sinking ship, it's bizarre to think that these three idiots would be trying to get on board and make their way deep inside an upside down, unfamiliar, still on fire/exploding, ship they know is only minutes to hours from sinking completely. And sure enough they're not even in the ship five minutes before one of the many ongoing explosions prevent them from escaping the same way they came in. Rather than immediately try to get out they continue their looting. Flash forward through all the nonsense of finding some trapped folks they end up saving, including a blind man, a murder mystery, and an ongoing battle with Telly Savalas and his crew who have boarded pretending to be medics but really are there to haul out thousands of pounds of guns and plutonium, and most of Michael Cane's extended crew escape, but he's lost his first mate, and all their loot, save an uncut diamond Sally Fields smuggled out in her belly button. Oh, and now Sally Fields's and Michael Cane's characters are in love, or lust, or something. So I guess the death of his first mate was worth it after all, Michael Cane certainly betray any sense that it wasn't.
My beef with the movie is that I can never get past the fact that no three humans on the face of the earth presented with this situation would have done what these three idiots gleefully did. It simply defies everything I know about people. Sure, one idiot in any large group might potentially put themselves in harm's way to make a few bucks, but here we're talking about almost absolutely certain death: an unfamiliar, upside down, presumably unlit, debris ridden, fire/smoke/explosion ridden, sinking ship. And so every minute watching the movie I'm silently cursing these idiots and praying for the justice which would be delivered by their deaths. At best this is a movie focused on a day in the life of three mental freaks, perhaps a-logical sociopaths or something, at worst it's just an awful, unrealistic movie written/created by people who are a-logical sociopaths and think everyone's depicted behavior is somehow normal or believable. (And don't get me wrong, even "normal" people are capable of tremendous, horrendous thoughts/actions (the Nazis reminded us of that), but even then the evil callousness develops, grows, becomes believable because it fits into an increasingly awful pattern of thought/behavior. )
Attempting to measure one's own accomplishments is generally a monstrously bad idea. Even the most successful of men may find themselves coming up short when they compare themselves to a yardstick of their own making. Those who succeed generally do so by finding themselves perpetually shy of achieving some newly important and consuming goal. That having been said, taking stock of yourself is a sobering necessity, something which me must do if we are to re-align our compass with an objective, societal true North. It is in this brutally reflective frame of mind that I make the following observations about myself, most easily expressed as a Guide to Leading a Highly Ineffective Life. The objective reality is that I have achieved quite a lot, more than many, less than many, and a reasonable amount given my particular make up and life challenges. Nonetheless, I have observed in myself the following limiting, (at times) crippling characteristics that have kept me from being far more than I am.
20 Things You Can Do To Be Highly Ineffective
- Work on many projects simultaneously.
- Associate with no professional colleagues.
- Cultivate few friends.
- Spend almost all of your time by yourself or with a girlfriend only.
- Work in secret. Share almost none of your ideas or work.
- Do everything from scratch. Build your own rather than modifying existing software/code.
- Believe your mind and/or abilities are failing you over time.
- Be deathly afraid of judgment. Ensure you never finish any task properly.
- Ignore important details.
- Explore periods of intense lassitude.
- Be mildly obsessively interested in many, many generally unrelated things.
- Choose relationships with people that require vastly more energy put in than you get out.
- Secretly believe that those who succeed are magically different from you, possess something you entirely lack (as exemplified by the tone of this list).
- Put off until tomorrow that really hard thing that intimidates you, never try to do it today, never right now.
- If you find yourself not particularly challenged in a situation (job, life, etc.), then maintain the status quo, choose comfortable over challenge.
- Develop as little self-discipline as possible. Go to bed when you want, eat what you want, exercise as little as you feel like.
- Constantly wrestle with existential and philosophical doubts rather than engage in the business of actually living. Wonder about what the point of living is if you die rather than actually focus on getting the most from every minute of life.
- Avoid seeking professional, psychological help for things like depression and anxiety, assume that you alone can surely defeat obstacles which have bedeviled humans for millennia.
- Have tremendous difficulty switching tasks/projects, avoid doing so because it's mentally painful.
- Watch TV.
This post would be more relevant if I wrote it thirty years ago rather than now, but the Internet wasn't much of a thing back then and I only just stumbled across Murder on Flight 502 again...
My favorite comedy for much of my childhood and Airplane (1980). The absurdest humor was like nothing like I'd seen before, and it scratched me right where I itched. It was 15 years before I discovered that most of the scenes and characters from the movie (and the other Zucker-Abrahams-related movies) were send ups of specific scenes and characters in other movies (movies like Murder on Flight 502 and Airport, Airport 1975, Airport '77, and Airport '79). Now knowing that there was now so little about the movie which was truly original, aside from turning each element on its head, robbed me of most of my appreciation for and enjoyment of the movie. Part of what impresses me about stories is the author's selection of characters and events, why did they decide to add this character to the story, why did they give him the personality they did, why did they inject him into this particular interaction with another character. So suddenly finding out that most of those decisions were copied from other writers made Airplane seem a lot less impressive a creation. It's still funny, of course, but it feels now funny in a more Mystery Science Theater 3000* sense of just adding jokes on top of something rather than creating an entire world of new, funny material.
* I've always wanted to love Mystery Science Theater 3000, and I've watched dozens of episodes, but I watch them for the B-movies they show and seem to tune out the running commentary, which I don't think has ever produced even a hint of a chuckle. I wish I could laugh at it, I honestly do, but it's just not my sense of humor, I guess.
Dogs descend from wolves. As wolves have an average lifespan (in captivity) of 13 years it's no surprise that large breed dogs' average lifespan is 13 years. I would argue that anyone creating or perpetuating a breed which is significantly below this average is being extremely selfish. The decision to do so requires a human thinking, "My desire for a dog with a particular look or nature is more important than the dog's right to its full share of years on Earth." Consider some of the dog breeds with the shortest average life spans: Irish Wolf Hound 6.2 years, Bull Dog 6.7 years, Bernese Mountain Dog 7.0 years. These breeds have half the normal lifespan of the dogs (and wolves) from whom they are descended. That seems to me like a monstrously horrible thing to do, to gradually over many decades craft an animal with a shorter and shorter lifespan just so it can possess certain qualities that nature is doing its best to insist (through manifested defects) should not be possessed by a single breed.
In my view, breeding dogs with unnaturally short life spans can only be immoral. Perpetuating the market for such dogs by buying them from professional or hobby breeders can only be immoral. How can it be right to perpetuate this cruelty? If you love these breeds rescue one from a shelter or a rescue group, do not buy them. I accept that people have strong appearance and temperament preferences, but too many people fail to realize there are many pure bred dogs to be had at shelters (25% of shelter dogs are pure of breed) and countless others to be had rescue groups, including breed specific rescue groups.
For those who don't see this as a moral issue I'll share an analogy... Lets say you and your spouse want to have children and discover in a routine health screening that you possess a gene that virtually guarantees any child you might conceive in the future would have a lifespan half normal, only 38 years. Would this not cause you to seriously reconsider intentionally bringing a child into the world knowing the result (when you could adopt or use a donor sperm/egg)? If you love dogs and feel a connection to them, how can you not respond similarly? You can't adopt a dog and fix its lifespan, but your adopting one will remove the financial incentive from those breeding dogs and reduce the number of dogs dying prematurely for breed-specific reasons.
I'll be the first to admit that my argument may not sway a single life-long pedigreed bulldog fancier, but hopefully it might cause some more open-minded people to rethink some the questionable decisions we make on behalf of dogs.
P.S. - Gaddy wrote in to raise the extremely valid point that, "beyond just longevity, there is the issue of quality of life. ... Some dog breeds are so far removed from their wolf ancestors, that they become prone to infections, or can no longer move or breathe normally." I couldn’t agree more and just wanted to explain that the only reason I focused exclusively on longevity in this post was because I sometimes like to try and reduce a more complex topic down to what feel to me like less arguable fundamentals. While some people might argue whether a particular bred-in feature is bad/unhealthy/painful/etc. few can argue the evil of a halved lifespan. And if they do argue it then the argument goes in a direction which I think is more easily countered (as well as being philosophically more interesting).
How can one justify a Bulldog living only half the lifespan of its wolf relative?
1) They can say that animals don’t know how long they are supposed to live so therefore it doesn’t matter if they live shorter lives, they don’t feel robbed of anything or suffer more. But if that were true and valid then would these people be in favor of engineering dogs which lived conveniently short lives? What about a dog that lived for exactly one year, dying just after it’s puppy-ness began to wane, just in time to buy another limited-lifespan puppy? How could this be wrong and half-lived Bulldogs not be wrong?
2) They can argue that a Bulldog has a different perception of time which makes its 6 years *feel* like the norm of 13 and so they are not cheated out of anything. The argument would presumably fall out of the observation that animals have radically different lifespans and we don’t feel like any of them are cheated out of longer ones. But of course the flaw here is that most animals lifespans and presumably their perceptions of them seem to relate to the fundamental rate at which their life is lived. Humans have a 77 year lifespan, great sea tortoises have a 250 year lifespan, and humming birds have a 3-4 year lifespan, and a casual observation of each shows that there’s clearly some connection between their perception of time and their lifespan. Hummingbirds clearly process and react to information far faster than humans can, their movements and reaction times prove the point. Sea tortoises clearly process and react to information far slower than humans do, their movements and reaction times prove the point. So, it seems likely that one’s sense of time and perception is tied to heart rate and some sort of rhythm of the brain. So for this argument about a Bulldog’s altered perception of time to work you’d really need to show that Bulldogs are radically different medically from wolves (in heart rate, brain rhythm, or the external manifestations of cognition/reaction time) and I don’t think there’s any evidence of that.
And I’m sure there are other arguments they could make as well, but those are the first two I could imagine.
I love C#. It takes everything I loved about my years programming in early Java and adds boatloads of wonderful. But, there is one thing that perpetually infuriates me. All C# source code includes coder-included class, type, and other references that are all relative to a list of "using" statements at the top of the source code file and also a list of libraries managed separately in the Visual Studio UI. The problem is that all the wonderfully helpful source code that people post on the web never includes these UI-managed library references, which means that any time you copy and paste those bits of C# source code you will get lots of squiggly red lines telling you that Visual Studio has no idea to what the classes, types, etc. given in the source code refer. And since I've just searched the web because I didn't know how to solve a problem or because I'm learning some new framework or paradigm via some example on a page, I usually have no idea what library or libraries I need to reference in order for all the dependencies to be satisfied.
Case in point, I just had a look at the Google Drive API "Quickstart". They show you a simple snippet of source code you are supposed to try yourself. They do not give you a Visual Studio project, just the code on the screen you need to copy and paste. They also tell you to download the API libraries. I did. The library has what looks like a common library directory with 10 or so DLLs (and various other files) and a separate folder with 45 folders for various "Services" and inside those more DLLs. And I am somehow supposed to know which DLLs this 20 line piece of source code needs??? So to be safe I end up including all the common libraries and both the libraries under the "DriveService". But the code won't compile. All the references are satisfied but now there's ambiguity between because an extension method is defined in two separate imported DLLs. It takes me another 20 minutes to figure out which one I don't need. Why do we have to go through all this??? It is all so utterly needless. I can't tell you how many times I've been unable to try out a piece of source code because something has gone wrong in figuring out and finding the libraries that were needed, and which versions of the libraries were needed (since libraries can radically change with every release).
What boggles the mind is that neither Visual Studio nor third-party VS plugins like ReSharper do anything to help. Surely something could be done to largely eliminate this problem! At the vary least, why couldn't they include a "header" like region at the top of the VS editor UI which lists the actual fulfilled references for that active file. It wouldn't actually be part of the source code, it would just be a handy little (perhaps collapsed) virtual piece of commented code that would be copied whenever you ctrl+a ctrl+c file contents. And when you pasted it elsewhere it would let people know what out-of-band files they were missing. The format would probably just specify the Portable Executable data for the file and the hash (not the actual path which would be less useful and less anonymous).
Here's hoping they do it one day, or someone makes a nice little third-party plugin that is able to sort it out for you (by having a massive DB of exported library functions and some good heuristics)...
All certificate signing agencies basically do the same thing, they provide a means by which a user browsing a site or using a piece of software can know who is operating the site or writing the software. Code signing (and signing in general) is a wonderful thing. I fully believe in it. But you don't need these centralized commercial entities to provide it. And I'm just not convinced of the value add of signing authorities which charge a lot of money to (in my view) add only a thin veneer of security.
The vast majority of those applying for certificates are surely entirely legitimate and provide entirely legitimate details. That means that the vast majority of certificates signing authorities give out are entirely valid. But that's not proof that the system is good. Surely the effectiveness of security is determined not by those who intend to stay within the law but those intend to violate it. Airport security is not good because it finds no bombs on lawful people, it is only good if it is able to find bombs on unlawful people. Certificate agencies' version of due diligence is laughable, they generally require nothing more than emailed (or faxed) images of desired documents. Could someone submit easily photoshopped documents to a signing authority and have their credentials "validated" such that they get a signing certificate? Yes, it's been done. And even if the certified owner was valid at the time the certificate was issued, the security provided to end users (those looking are supposed to rely upon the certificates) is fleeting at best; the certificate owner can always move, disconnect their phones, or give the certificate to others.
Now in no way are these signing authorities radically different than the purveyors of other more traditional security products. It's true that we put locks on our houses and secretly know they would keep out only the laziest or stupidest of criminals (lock picking being an easily acquired skill and glass being easily broken), but signing certificates have the potential to be so much better. The fact that they are not, and that they cost so much for not being so superior to self-signed certificates, frustrates me. I just wish signing authorities would either do more (require you show up face-to-face at an office with a passport to be fingerprinted and DNA mapped) or do less (acknowledge how easily they may be deceived and not make you jump through hoops to proffer false 'proof').
But here we are in the land of is... God bless the industry of false security.
The free, multi-party video conferencing offering Google+ Hangout is a pretty fantastic alternative to Skype (and its paid multi-party option). Wouldn't it be wonderful to have a UI control you could drop into any .NET application that gave you all the power of Google+ Hangout? Well, it would... and I've been working on it, but so far it's not proved easy.
First a bit of back story. I have been working on an app which features embedded video conferencing and had gone initially with Skype. Skype has been a somewhat miserable experience thus far, workable but only just. The only way I've been able to integrate with Skype thus far has been their Skype4COM option. Skype4COM allows you to remote control certain features of Skype from a third-party application. You can initiate calls, hangup, mute, and things but you can't hide the original Skype interface or embed its video in your own application. There is a way to do all that, and it's SkypeKit. But for reasons unknown to me they seem to have suspended SkypeKit access. I applied to the program many months ago and my account still says something like, "We'll get back to you about SkypeKit when we're ready for you." I've heard from others that that's just the way it is right now, that they are redoing SkypeKit or something. At any rate... Skype isn't a great solution at the moment. Google+ Hangout on the other hand would be perfect, if only it worked.
I spent a few days a few weeks ago trying to create a Windows control that would let me embed Google+ Hangout inside a Windows control. The logical approach to do that would be to customize a web browser control to load up the web-based Google+ Hangout and just modify the rendered content and inject JS as necessary to achieve the desired control-ifying of Hangout. I've done that before, so I didn't think it would prove so tricky.
Microsoft WebBrowser Control
I first tried using the built-in Microsoft WebBrowser control as the hosting control. I automated Google account sign-in and had it load up the Google+ Hangout page. I hit the first major roadblock. The page gave me a warning about my browser agent not being supported. I went back and added code to spoof it, but that didn't seem to work as the WebBrowser control isn't all that sophisticated and only spoofs the user agent for the first request, not subsequent ones or ones that the loaded page fetches. I tried several alternative WebBrowser extension classes that try to intercept navigating requests and replace them with navigate calls that include the spoofing, but they didn't seem to work properly. If memory serves I did reach a point where I was able to call the JS to start a hangout but everything hung when it tried to install/start the hangout.
The next option I tried was Awesomium, a Chromium-based behind the scenes browser rendering system. After looking at some of their examples and struggling a bit with their concept (which differed radically from the WebBrowser control and MozNET control approaches I was used to) I ended up realizing I could use one of their demo apps as a quick way to test the concept. They had a tabbed web browser demo which I used to access Hangout. I was able to initiate a Hangout but the video of the Hangout was not contained as it should have been within the Awesomium demo browser, the Hangout window was at the top left of the screen whereas the browser was in the middle. So it worked but if they couldn't control where it was rendering then I didn't think an Awesomium would be an easy solution.
MozNET / Xulrunner
Next I tried my old friend, MozNET. MozNET is a XULrunner implementation which I've quite enjoyed using before. There again I wen the easy route first and used a demo browser example to see if I could get it working. Sadly it did not work. It would just hang at the step where Hangout is checking for its plugin. I feel like a MozNET solution wouldn't be too hard to achieve, but I don't have the depth of knowledge in it to make it happen easily. I know MozNET can be made to work with various XPI-based plugins.
Oddly enough, Google+ Hangout doesn't seem to be an XPI plugin. I did a procmon.exe dump of a Firefox when using Hangout and I see access to:
And a separate EXE gets launched:
C:\Users\foo\AppData\Local\Google\Google Talk Plugin\googletalkplugin.exe
But I'm not sure how what is doing the communication between Firefox and the Hangout code.
If anyone has any thoughts they'd like to share, please let me know! I think the world would benefit from an embeddable Google+ Hangout control... I know I would.
When Kindles (and all the other e-reader marketplaces) came into the world one of the big selling points was that books would now be cheaper! And how could they not be cheaper, there was no physical book to manufacture or ship! All the various e-reader marketplaces do showcase many lower priced books, but more and more I'm seeing the Kindle version of books priced much higher than the physical books (BOTH hardcover and paperback)!
Take this recent example, the paperless Kindle version of "The Art of Innovation" is 13% more expensive than the hardcover and 70% more than the paperback!
The original logic of "it costs less to publish an ebook so we'll charge less and the consumer will then buy more e-books" has now given way to "let's charge the consumer more for the convenience of an e-book, bank the extra profit, and who cares if they buy more e-books". I'm not saying publishers can't do what they like, shouldn't do what they like, I'm just a little tired of being white lied to. If the ultimate goal is to screw us into paying more for books, don't butter us up and suggest the future will be the complete opposite.
“Be American! Buy American!” Says the Foreign-Born Mini-Mart Owner Selling Chinese Lighters, Drug Paraphernalia, and Porn
When I first saw the sign I was ready to be offended, assuming the sign was a misguided attack against completely legal, hard-working immigrants who often found employment the only place they could, at mini-marts. But the moment I walked into the store the tables suddenly turned and suggested that I was the one discriminating against someone, not them. The store was in fact owned and operated by a family who immigrated from India.
The odd thing is, even now (months after I first saw it) the sign still bugs me and I can't figure out exactly why.
Part of my frustration with the sign stems from the fact that I still don't know exactly what it means. Typically someone telling you to "Buy American" means you should buy products made by US companies at factories in the US. But this sign can't possibly mean that because the store is hardly so exclusive, they sell all your typical, cheap, Chinese-made mini-mart crap and then some. So the next likely interpretation is that it means you should buy from stores owned or operated by Americans (as opposed to buying from stores owned by foreign corporations or staffed by illegal aliens). But this also confuses me because so far as I'm aware there are no stores within 5+ miles which are not owned and operated by Americans. We're in rural Pennsylvania, the vast majority of people around here have been here since at least the civil war. In fact the nearest and most popular competitor to this mini-mart is one called Sheetz, an American owned chain, operated by a whole lot of lily-white, native speakers. So, what would be the point of a sign saying you should do something that realistically you cannot avoid doing anyway? And that's what seems to generate most of my dislike for the sign. It feels not like a sign meant to celebrate, cement, and secure the owner's adopted homeland, but like a gimmick, a cheap marketing technique intended to somehow justify their excess prices, encourage a faithful customer base, or discourage robberies by patriotic Americans. Fueling my dislike for the sign and the store is also that the store is hardly representative of an America I want encouraged. Unlike other local mini-marts, this blue-blooded American neighborhood mini-mart sells many unsavory things: drug paraphernalia and raunchy porn. Perhaps those items were made in America, but I'm not sure that's sufficient justification for selling it. (The drug paraphernalia are mesh screens (which I understand are used for smoking various drugs), a large selection of rolling papers, Swisher Sweetz (and other cigarillos that people seem to put drugs into), etc.)
Separate and apart from my dislike for the nature of the shop and my suspicion about motivation for the sign, I can't help but admit to some vague and hard to define (or defend) uneasiness with the "new kid on the block" telling us native-borns what to do. I love the USA and I love that other people love it, too. I want people to become lawful citizens, marry themselves to our culture, accept our best and our worst, and want to join in our attempt to be better united than we are apart. But were I to move abroad and become a citizen of elsewhere it would never occur to me to tell anyone there how they should be. They were there first, they know their culture far better than I do, they "get" the nation I will be forever getting. I certainly do and will defend any new or old citizen of the USA their right to share their thoughts and opinions, but it doesn't mean I have to like it. Maybe that is a prejudiced position, or maybe it's just a natural position that all cultures have to encourage stability and discourage imposed change from unfamiliar or outside influences. I don't know.
A few times a year I run into situations where an application, a driver, or something effectively locks me out of my computer. After trying various remedies I am ultimately forced to do a hard power down of the computer. I cringe every time I am forced to take that action, praying I don't end up with corrupted files.
Today I had enough. I went to shutdown my laptop and head out the door to go get a working lunch only to have my computer log me out and show me Acronis True Image's dreaded, "Operations are in progress. Please wait. The machine will be turned off automatically after the operations are complete." That is Acronis True Image's way of saying, "We're not going to shut down until a backup or backup verification finishes." The problem is those operations can take hours, and nine times out of ten the message is bogus, indicating not something in progress but a job that's hung. Today's case was one such example that would have left me waiting forever; the backup drive was disconnected, so Acronis True Image could not have been doing anything at all. When this message is displayed there's no normal way to force a shutdown other than forcing a power off with the power button. There is no ability to log in locally, no ability to log in remotely via RDP, no ability to use System Internal's remote tools (I am not sure if the reasons relate to permissions or not, I've not adequately investigated). So, today I decided to put in a back door which will save me in such situations.
Schedule a Task to Periodically Run a Remotely Editable Batch File
In all the cases where these sorts of things have happened I've noticed that I can still remotely access the computer's file system just fine. This got me to thinking I could use that as a vector for forcing Windows to execute some code to force the shutdown. To that end I created a shared folder on the laptop called "backdoor", made sure permissions allow only myself the privilege of editing its files, and created a single batch file inside it called backdoor.bat. I then set up a task in Windows Task Scheduler to execute that batch file as administrator (UAC) every 5 minutes from now until forever. When not needed the batch file is effectively empty, just a couple of commented out batch commands. If I find myself locked out I can populate the file with whatever executable commands might be appropriate to force the shutdown (e.g., System Internals' pslist, pskill, psshutdown).
Since setting this up a month ago I've already had two occasions where this method saved me and allowed me to shutdown my computer gracefully!
For anyone curious, the commands I put in the backdoor.bat file are:
C:\systeminternals\pslist -accepteula > pslist.txt
C:\systeminternals\pskill -accepteula trueimagehomeservice
C:\systeminternals\pskill -accepteula trueimagehomenotify
Those lines are commented out until and unless I need them. The first line lets me grab a snapshot of the running processes and put them in a text file I can read, very useful if the system still doesn't shut down. Since my task will only run every 5 minutes if the first attempt doesn't shut things down I've got several minutes to review the process list and find other processes to try and kill. The last two lines kill the processes that are typically hanging my shutdowns (I haven't bothered to check which of the two processes is the problem, so I just list both.)
Initially I tried to just use a more generic approach and force a shutdown ("psshutdown -accepteula -r -f -t 60") but I could never get this method to work, it didn't ever seem to kill the jobs that were hanging things up.
Since setting this up I've needed to use it a dozen times or more, saving me almost as many hard resets. The most frequent situation in which I need to use it has been when Stardock's Multiplicity prevents my keyboard and mouse from being used and when Acronis' True Image prevents shutdown (see above).
Multiplicity is a fantastic app that lets your mouse and keyboard seamlessly switch between different computers as though they were just extra monitors on the one computer. It is brilliant software, but has had a hugely serious bug in it for all the years as I've used it. If Multiplicity gave focus to another computer and that computer went offline (network outage, sleep/shutdown, software crash) it won't let you regain the use of your primary computer. Whatever timeout logic should restore your ability to use your primary computer fails the vast majority of the time and you are locked out of your own computer, unable to send commands to it. My backdoor trick lets me kill off Multiplicity and regain access.