Thursday, May 29, 2014

Windows 8.1 Update 1 fails with error 0x800F0922

Ah, the dreaded 0x800F0922 error - bane of more than a few Windows 8.1 users trying to install Update 1 so they can get security patches in a few months. I ran into this myself, bashing my head against DISM and SFC more than a few times, until I finally decided to sit down and sort out, once and for all, what the primary cause of the error was. To do that, however, I needed an installation log, something that would tell me what was going on and where. Thankfully, Windows leaves those in C:\Windows\Logs\CBS. More specifically, I needed the CbsPersist_YearMonthDayTime.log file that was last updated right after Windows rolled back the Update 1 installation. Once I did so, I performed a quick search for the error in question:
2014-05-28 15:00:38, Error                 CBS    Startup: Failed to process advanced operation queue, startupPhase: 0.  A rollback transaction will be created. [HRESULT = 0x800f0922 - CBS_E_INSTALLERS_FAILED]2014-05-28 15:00:38, Info                  CBS    Setting ExecuteState key to: CbsExecuteStateInitiateRollback | CbsExecuteStateFlagAdvancedInstallersFailed
2014-05-28 15:00:38, Info                  CBS    SetProgressMessage: progressMessageStage: -1, ExecuteState: CbsExecuteStateInitiateRollback | CbsExecuteStateFlagAdvancedInstallersFailed, SubStage: 0
2014-05-28 15:00:38, Info                  CBS    Progress: UI message updated. Operation type: Update. Stage: 1 out of 1. Rollback.
2014-05-28 15:00:38, Info                  CBS    Setting original failure status: 0x800f0922, last forward execute state: CbsExecuteStateResolvePending
Okay, I know I'm in the right file. Question is, what caused the installer to reach that point? To do that, I needed to search for "Error", heading from this point to the beginning of the log. Doing so revealed this:
2014-05-28 15:00:16, Info                  CSI    000005e6 Begin executing advanced installer phase 38 (0x00000026) index 1122 (0x0000000000000462) (sequence 1161)
    Old component: [ml:374{187},l:372{186}]"Microsoft-Windows-BootEnvironment-Core-BootManager-EFI.Resources, Culture=zh-TW, Version=6.3.9600.16384, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=amd64, versionScope=NonSxS"
    New component: [ml:374{187},l:372{186}]"Microsoft-Windows-BootEnvironment-Core-BootManager-EFI.Resources, Culture=zh-TW, Version=6.3.9600.17031, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=amd64, versionScope=NonSxS"
    Install mode: install
    Installer ID: {c5f0e9d7-e844-4507-89e4-701b5a747221}
    Installer name: [34]"CSI Boot File Servicing (BFSVC) AI"
2014-05-28 15:00:16, Error                 CSI    000005e7@2014/5/28:22:00:16.548 (F) base\wcp\plugins\bfsvc\bfsvc.cpp(218): Error HRESULT_FROM_WIN32(123) originated in function Windows::WCP::Bfsvc::BasicInstaller::Install expression: HRESULT_FROM_WIN32(GetLastError())
2014-05-28 15:00:16, Info                  CBS    Added C:\Windows\Logs\CBS\CBS.log to WER report.
2014-05-28 15:00:16, Info                  CBS    Added C:\Windows\Logs\CBS\ to WER report.
2014-05-28 15:00:16, Info                  CBS    Added C:\Windows\Logs\CBS\ to WER report.
2014-05-28 15:00:16, Info                  CBS    Added C:\Windows\Logs\CBS\ to WER report.
2014-05-28 15:00:16, Info                  CBS    Added C:\Windows\Logs\CBS\ to WER report.
2014-05-28 15:00:16, Info                  CBS    Added C:\Windows\Logs\CBS\ to WER report.
2014-05-28 15:00:16, Info                  CBS    Could not get active session for current session file logging [HRESULT = 0x80004003 - E_POINTER]
2014-05-28 15:00:16, Info                  CBS    Not able to add pending.xml.bad to Windows Error Report. [HRESULT = 0x80070002 - ERROR_FILE_NOT_FOUND]
2014-05-28 15:00:16, Info                  CBS    Not able to add SCM.EVM to Windows Error Report. [HRESULT = 0x80070002 - ERROR_FILE_NOT_FOUND]
2014-05-28 15:00:16, Error      [0x018049] CSI    000005e8 (F) Failed execution of queue item Installer: CSI Boot File Servicing (BFSVC) AI ({c5f0e9d7-e844-4507-89e4-701b5a747221}) with HRESULT HRESULT_FROM_WIN32(123).  Failure will not be ignored: A rollback will be initiated after all the operations in the installer queue are completed; installer is reliable (2)[gle=0x80004005]
2014-05-28 15:00:16, Info                  CSI    000005e9@2014/5/28:22:00:16.579 CSI Advanced installer perf trace:
CSIPERF:AIDONE;{c5f0e9d7-e844-4507-89e4-701b5a747221};Microsoft-Windows-BootEnvironment-Core-BootManager-EFI.Resources, Version = 6.3.9600.17031, pA = PROCESSOR_ARCHITECTURE_AMD64 (9), Culture = [l:10{5}]"zh-TW", VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35}, Type neutral, TypeName neutral, PublicKey neutral;23421us
2014-05-28 15:00:16, Info                  CSI    000005ea End executing advanced installer (sequence 1161)
At this point, I'll note that my PC had been configured to dual-boot between Windows 8.1 and PC-BSD using GRUB - this is important because the installation process for Update 1 expects to be able to modify key boot loader files. Since it was expecting to find Windows Boot Manager files to update and was unable to find them, the update was erroring out. To test this hypothesis, I restored the Windows Boot Manager by:

  • Downloading the Windows 8.1 Enterprise Evaluation,
  • Burning the ISO to a DVD.
  • Rebooting the PC and selecting the DVD as the boot device.
  • Choosing Repair your computer once the DVD loaded.
  • Choosing Troubleshoot.
  • Choosing Advanced Options.
  • I then tried Startup Repair.
    • This failed, however, which meant I had to do it manually. After it failed, I went back to the Troubleshoot menu and chose Command Prompt.
Now it was the time to figure out which partition had my Windows partition on it. To do that, I ran diskpart:
This loaded the DISKPART> prompt:
DISKPART> select disk 0
DISKPART> list partition
  Partition ###   Type               Size      Offset  -------------   ----------------   -------   -------  Partition 1     Primary             350 MB   1024 KB  Partition 2     Primary             763 GB    351 MB  Partition 3     Primary            1099 GB    763 GB
Most dual boot situations start with a PC that already has a Windows partition, which is then shrunk to make room for a Linux or BSD partition. Consequently, the first partition in such a setup is usually going to be the System Restore partition (Partition 1 in the above example), followed by the actual system partition (Partition 2), followed by the *nix partitions (Partition 3 in this example, though there can be more if you're triple-booting or if you partitioned folders like /home and /var into separate partitions). Consequently, you can usually assume that Partition 2 will be your Windows system partition and work from there. However, if you're feeling uncertain or set up your multi-boot system in some other order, you can actually confirm from here whether you're dealing with your Windows system partition or not:
DISKPART> select partition 2
Partition 2 is now the selected partition
DISKPART> detail partition
Partition 2
Type  : 07
Hidden: No
Active: No
Offset in Bytes: 368050176
Volume ###  Ltr  Label        Fs     Type      
----------  ---  -----------  -----  ----------
Volume 2     D                NTFS   Partition
Note that I left off some of the columns from the above output to keep the formatting straight here - the big one to pay attention to is the Fs column, which gives you the file system of the partition, assuming Windows can recognize it. By contrast, here's what diskpart will output for a UFS file system:
DISKPART> select partition 3
Partition 3 is now the selected partition.
DISKPART> detail partition
Partition 3
Type  : A5
Hidden: Yes
Active: No
Offset in Bytes: 819647741952
There is no volume associated with this partition.
Alternatively, here's what diskpart will report for the System Restore partition:
DISKPART> select partition 1
Partition 1 is now the selected partition.
DISKPART> detail partition
Partition 1
Type  : 07
Hidden: No
Active: No
Offset in Bytes: 1048576
Volume ###  Ltr  Label        Fs     Type
----------  ---  -----------  -----  ----------
Volume 1         System Rese  NTFS   Partition
Having successfully identified which partition contained my Windows system partition (Partition 2 in this case), I was now ready to work against it:
DISKPART> select partition 2 
Partition 2 is now the selected partition. 
DISKPART> active 
DiskPart marked the current partition as active. 
Note that, if you don't activate your Windows system partition in diskpart, the next few commands won't do much good.

Now it's time to rebuild the Windows boot manager. To do so, type in these commands:
bootrec /fixboot
bootrec /fixmbr
bootrec /restorebcd
That should do it - your system should now have a stock Windows boot loader once more, which means you should be able to apply Update 1 successfully. Once you've applied Update 1, you can then reinstall GRUB or use EasyBCD to restore your multi-boot configuration at your leisure.

For completeness' sake, I'll point out that I haven't tested whether or not Update 1 will apply successfully with EasyBCD or any other Windows-based boot loader managing the boot process. I'll also note that my particular solution to the dreaded 0x800F0922 error may be unique to my particular workstation, so don't be afraid to do the work, check your logs, and make sure you're experiencing the same issue I am before you dig in too deeply on this one. 

Good luck!

Tuesday, May 27, 2014

My Unofficial 2014 Voter Guide

Ballot Boxes by Keith Bacongo is licensed under CC BY 2.0.
Recently I was asked for my opinion on the Washoe County primaries by a libertarian-leaning Republican. After blasting off some superficial thoughts via email, it occurred to me that he might not be the only one wondering who I support.

Before I reveal the list, I'll point out that I'm not, by any stretch of the imagination, a professional political analyst, and there were definitely times - especially when looking at the District Judge races - when I really could have used some more information. However, I think I made the most of a bad situation; realistically, local news in Reno just falls flat when dealing with primaries here, which is in part a reflection of the traditionally poor turnout Washoe County normally experiences with such things. So, without further ado, here's a race-by-race breakdown (races in red are GOP partisan primary races; black are non-partisan primaries that even Libertarians get to make an impact in):

Reno Mayor - Eddie Lorton

This one was an easy one. The Libertarian Party of Nevada endorsed him almost a month ago and I've been volunteering for his campaign for a while now. I have no doubt that there are more libertarian-sounding candidates in the race - though it would take some effort, what with his incisive fiscal analysis of Reno and with his willingness to discuss business property rights - but when it comes to action, he's the one candidate that took Reno City Council candidates to court and won. Plus, there aren't any registered Libertarians in the race.

To be honest, I'm going all-in on this race. This is the first chance in years that people in Reno have had a credible chance to take on the entrenched political families in the area. I, for one, would like to take advantage of it.

State Controller - Cort Arlint

Since the person asking me about some of these races was a Republican, I held my nose and took a look at the field. Here were my thoughts:

Citizens Outreach PAC recommends Ron Knecht, and though I have no doubt they know more about the race and the candidates than I do, I personally find it curious that they went with the one GOP candidate that isn't a CPA. Based on their interviews of the candidates, I think they're selecting Knecht more on his political experience than his accounting experience. However, based on the information I'm seeing, I'd go for Cort Arlint. I just think he's better qualified for the job.


County Assessor - Mike Clark

Curiously, the only people running for this office are Republicans. The current Assessor is Joshua Wilson, who has held the position since 2007. Wilson has done absolutely nothing to resolve the Incline Village tax assessment issue in a satisfactory fashion, so he's out. Fonda Crandall's background as a medical coder doesn't lend itself well to the position - I just don't think she's qualified for the job. That leaves Mike Clark.

County Clerk - Nancy Parent

The current County Clerk is Nancy Parent, who is running in the GOP primary against Randy Amestoy. I'm not aware of any issues with Nancy's performance as County Clerk and it definitely appears she has the weight of endorsements between the two. Personally, I like Randy's "Eco-Friendly Office" platform, which is a too-clever-by-half name for supporting online filing of county documents, but it looks like Washoe County is already heading that direction anyway. Plus, speaking as an IT Manager, "paperless" initiatives require money, which we really don't have right now. I do think there are some serious savings, both in terms of cost and convenience, in supporting an initiative like that, but I'm not sure that really justifies replacing our County Clerk. So, I'm going to go with Nancy Parent on this one.

County Sheriff - Chuck Allen

I actually gave a different answer when I sent this email, and, to be honest, I voted a different answer on Saturday. For honesty's sake, I'll put down what I originally sent out, then I'll explain why I'm changing my mind below.

The current County Sheriff is Michael Haley, who isn't seeking reelection.

James Beltron couldn't even be bothered to spell check his filed candidate info, so he's out - yes, I'm one of those that do view that as a reflection of attention to detail and judge accordingly. Tim Kuzanek is the current #2 in the WCSO, so he's probably the most likely to win this one; he also has endorsements from several law enforcement agencies and Bob Cashell, so that's three strikes against him in my book. Jim Lopey also strikes me as someone that's been in the system a little too long - like Kuzanek, he's also been working in the Nevada Threat Analysis Center, along with various other agencies that cooperate with the federal and state governments, so he's out.

This leaves Chuck Allen and David Butko. I think both are very solid candidates. Allen's focus is primarily on community engagement (which is good - we need more of that), while Butko's is on cost containment (which is good - we need more of that). If we could combine the two into some sort of super-Sheriff, I'd endorse that candidate in a heartbeat. I think that Allen's shot is the most realistic of the two since he already has some name recognition, so, if you're voting pragmatically, I'd choose him. I personally voted for David Butko for the alarmingly superficial reason that I liked both candidates about equally but David has the same name as I do, so... well, it was a coin flip and I had to make a choice somehow.

I still think that, policy-wise, they're a coin flip. However, I think that Chuck Allen has the more realistic shot of the two and should thus get the nod. If he makes it past the primary, he'll be my vote in the general election.

District Court Judges
Department 5 - Cynthia Lu
Department 6 - Jenny Hubach
Department 8 - Lidia Stiglich
Department 11 - John Hope, Jr.
Department 14 - John Springgate

I'll note right here and now that I'm not particularly well connected in the legal community so I couldn't tell you which judges or candidates are considered "problematic" in the industry. Caveat emptor.

Department 5 is currently occupied by Hon. Deborah Schumacher, who is stepping down. The two running appear to be a current judge from District 2 and a private attorney. A while back I mentioned that I lean left, so, though it might be counter-intuitive for a libertarian to support a career state employee over a private sector employee, that's exactly what I'm going to do here and go with Cynthia. Way I see it, this is a Family Court judge - having someone in that position that's a little more on the touchy-feely side and has some experience in the chair is probably for the best. Your mileage, of course, may vary, which is why I'm explaining my thought process in the first place.

Department 6 is currently occupied by Hon. Brent Adams, who is stepping down. The only one of the candidates with a useful web site is Doug Rands and his background isn't half bad. He also has the Veterans for Politics endorsement, which is a group that has also endorsed a number of Libertarian Party candidates down in Clark County, so that's another benefit in his direction. Lynne Simons' bio suggests a strong "law & order" approach (former Paul Laxalt staffer, mentions the "drug crime epidemic"), which leaves me a little cold - I somehow doubt she's someone who's looking to reduce victimless crime sentencing. Jenny Hubach, however, was a Reno News & Review "Attorney of the Year", and runs a marijuana-centric legal firm. So, guess which way this Libertarian is going?

Department 8 is currently occupied by Hon. Lidia Stiglich, who is seeking reelection. Running against her is Keith Tierney, who's been floating around the legal community for ages. Lidia, meanwhile, was appointed to her current position by Brian Sandoval. I know a lot of people would hold that against her, and I don't blame that instinct; however, I'm a libertarian, not a conservative, and I'd rather see judges supported by RINOs than died-in-the-wool law & order conservatives, so my first instinct is to go with Lidia on this one. I'd be lying if I said I had a strong opinion on this one, though.

Department 11 is currently occupied by Hon. Chuck Weller, who appears to have made some "friends" - nothing like having a couple people run against you to drive home some dissatisfaction. Chuck used to have a radio show on KKOH, which suggests some conservative leanings - make of that what you will. Caren Cafferata-Jenkins is clearly the liberal in the race, though not in the hands-off "liberaltarian" flavor that I prefer. Frankly, her bio suggests some old school progressivism in her background, which leaves me shaking my head. John Hope Jr., meanwhile, is a nice middle ground between the two. Former veteran, not completely in the progressive tank, a little more balanced. He also has some wonderful charts illustrating why he's running against Weller.

Department 14 is currently occupied by Hon. Linda Gardner, who is stepping down. The challengers for this one are former County Commissioner David Humke (Interesting fact - I ran against him in 2010) and John Springgate. Honestly, I think Humke's been collecting a public paycheck plenty long enough, and as Heinlein once said, "If you can't vote for someone, find someone to vote against." So, I'm going with John Springgate.


So there you have it. Agree? Disagree? Tell me why in the comments below or on whatever social network you found this on. I'll note that, if the comment is something like, "Well, you need to get more educated on these candidates and the issues," I'll immediately agree and ask for places where I can find additional information.

Sunday, May 25, 2014

The UCSB shooting, PUAs, and hashtag activists

"Henley Gate, UCSB" by Ryosuki Yagi is licensed under CC BY 2.0
As the news has been quick to point out, there was a shooting yesterday at UC Santa Barbara, which started at the suspect's home. Wikipedia, as usual, has a decent compilation of the details. The suspect, who will remain nameless and formless throughout this post - it (not he, not she, not whatever) deserves no further identification or humanization and I will not be the one providing it any. I will be discussing its motives for a bit, though, because there are quite a few things about the incident and people's reactions to it that I find disturbing and, unfortunately, I can't discuss those without discussing the hostile object and why it claims it became murderously hostile.

I'm not happy about that, mind you, but things are what they are.

With that out of the way, let's begin by establishing something - sexual desire is the first instinct a child-adolescent has that, in order for it to be fulfilled in a socially acceptable way, requires consent. Shelter, food, and parental love are all usually given for free before the child has any idea they need these things, much less possess the ability to verbalize that need. Friendship and companionship among peers gets closer, but even then, that's usually a given - children naturally will play with other children. Just watch some at a park sometime.

Sexual desire, on the other hand, is different. It's the first instinct, the first drive, where, in order for it to be fulfilled, a child-adolescent has to ask for it to be fulfilled from another individual. Or, at least, they really should. There are ways to short-circuit that process, though, to fulfill the desire with asking, and we have a word to describe that short-circuiting - rape. Rape messes people up because, once you're raped, the idea that sexual desire and fulfillment comes from consent and mutual agreement is thrown out the window. Sexual desire becomes a source of danger. The sexual fulfillment of other human beings becomes something that is done to you, either through force (violent rape), mental manipulation (drug/alcohol rape), or emotional manipulation (child molestation and certain kinds of "date rape").

On the flip side, though - and before I begin, let me point out that I'm not equating any of this with the severity of rape or sexual assault - a lot of people have serious issues learning how to communicate their sexual desires with other human beings in a way that's mutually fulfilling. These individuals often had problems communicating with their peers before their sexual drive began to assert itself within them, but now there is a sense of urgency behind that failure to communicate that can, in extreme cases, become all-consuming and obsessive. Normally, this obsession manifests itself in the form of what we now call "nice guy" behaviors - they'll "be friends" with their object of affection for as long as it takes for them to become comfortable enough with their object of affection to take the risk of communicating their real desires with that object. In extreme cases, it can lead to stalking or, in this particular case, murder. Note that I refer to the desired individual as an "object" - this is intentional. In the mind of the afflicted, the person they desire isn't a person, an individual with desires of their own. Instead, the object of affection is something that must be earned or gained somehow. Indeed, those with this particular sort of communication difficulty often have trouble viewing people as individuals in a mature sense because their ability to communicate their desires to other people, and their ability to understand the desires of others when communicated to them, is sorely lacking. Worse yet, their ability to understand their own desires, in a mature sense, is hampered by this inability to communicate - their ability to communicate with themselves, to understand themselves, is every bit as poor as their ability to communicate and understand others. If you're feeling analytical, you can thank the Sapir-Worph Hypothesis for this - if you don't possess the means to communicate with others about how you feel or what your desires are, you probably lack the ability to communicate those feelings or desires with yourself.

I'm pretty familiar with this problem - painfully, intimately so, in fact. I haven't recovered entirely from it, but I can at least say that I'm on a path of improvement, partially by getting to know people and partially by exposing myself to material from people who are far more comfortable with expressing their emotions than I am and learning how to express emotions from them. One particular piece of material I'm rather fond of in this regard is Taste It Twice, a well-written if intermittently updated blog by Avens O'Brien. Go bookmark it.

To overcome this problem, many afflicted individuals will initially gravitate toward the Pick-Up Artist (PUA) community. Though there are many warranted criticisms of the movement - their response to the shootings, for example, leaves a lot to be desired - it can provide some legitimately useful advice and in a way that those afflicted with particular sorts of communication problems can understand and act upon. For example:

On top of that, the PUA community does an excellent job providing step-by-step instructions on how to act on this advice. Saying that you need to work out more is one thing. If you've never been inside a gym and couldn't tell the difference between a dumbbell and an elliptical, you're going to need some details and fast. This also holds true for communicating with women - or people - in general, especially when you're trying to learn how to communicate sexual desire to another human being. The oft-derided "cheat code"-style walkthroughs for "seducing" women are an aid - one that's meant to get a person comfortable enough to communicate sexual desire to another person in some fashion so that they can eventually develop their own communication style and pick up on others' communication styles. In that capacity, they can actually be useful with a little practice and common sense.

Where things go wrong, however, is when PUAs start treating their advice as a logically consistent philosophical framework for living one's life. It's best treated as a phase - a toolbox that can be used to learn how to approach "objects of desire" as human beings. The goal should be to become comfortable enough around women where you can actually have some conversations with them and learn that, yes, women are people, too. When the PUA community uses their limited mental model of the world to draw crude characterizations of evolutionary psychology, sociology, domesticity, politics, religion, and yes, even rape, that's where you know they've failed to recognize the limits of their particular mental model. When you hold a model hammer, it's tempting to see the world as a collection of model nails, and PUAs are not alone in this tendency. It's the same tendency that drives fundamentalism of all stripes; fundamentalism, after all, is merely the idea that One Particular Model can find the Solution To Anything Ever. Unfortunately, the universe is an infinitely complex place, one that does not lend itself to a Theory of Everything - models, by their very nature, must be limited in scope and must make simplifications to be useful. The PUA model of human behavior is no different in that regard.

Things brings me to my biggest issue with the responses I've seen to this shooting. Because of the purported motives and history of the assailant, it's attracted, like a lodestone, two particularly limited models of human behavior with limited, fundamentalist followers. One such model was the PUA community and its associated adherents, which I already touched on above - here's a good example of model fundamentalism in action. The other, meanwhile, is what I'll call the Women's Victimization movement. The Women's Victimization movement, in my view, is every bit as well-meaning as the PUA community, and I mean that both positively and negatively. Both communities are trying to establish how to communicate about sexual desire with other human beings, a complicated and emotionally fraught issue, and we need more of that. However, just as the PUA community relies on a set of potentially dangerous simplifications that, if taken too far, can lead to severe harm for everyone involved, the Women's Victimization movement relies upon the dangerous simplification that expressed male sexual desire should be feared. 

Case in point: #YesAllWomen

To be clear, many of the instances on #YesAllWomen are truly horrible. There are stories of rape, of sexual harassment, and plenty more. Women should not have to worry about whether their drink has been doctored. Women should not experience sexual advances from people in a position of power over them, whether those individuals are family members, religious leaders, employers, or teachers. Women should not have to worry about whether a jilted lover will beat them or kill them. When a woman rejects sexual advances, that rejection should be taken at face value and respected. In short, choices regarding female sexuality should be treated just as respectfully as we treat any other choice. 

However, we need to be clear about something here. The shooting is only considered a part of the pattern of behavior #YesAllWomen are highlighting because we're taking the assailant's purported motives at face value. We're actually assuming that a crazy, psychotic, dangerous thing unworthy of acknowledging its humanity is capable of enough self-awareness to successfully identify who its victims should have been and why it was choosing to eliminate them. In truth, more men have been killed than women so far - the current count is four men to two women, though the identities of the thirteen injured victims has not been revealed. We also need to understand that being shot at is very, very different from... well, how about this?

Or this:

Here's the thing - communicating about sexuality is going to be uncomfortable sometimes. Some people are better about it than others, and it's important for both sides of the issue - those communicating and those being communicated to - are able to establish boundaries with one another. However, demonizing either side of the communication is not helpful. It's important that people respect each other when they're communicating with each other about anything, really, but sexual communication is a particularly sensitive subject, one filled with vulnerability and longing, and it has the most potential for damage. Even so, it's important that everyone communicates and it's important for everyone to understand that complete comfort for any side of the conversation at all times is going to be impossible. Rejection is uncomfortable for both sides - nobody likes to be disappointed and nobody likes to disappoint - but it's an important part of communicating. Handling rejection is a learned behavior. Rejecting is a learned behavior. Learning something new, especially something as important as this, is oftentimes uncomfortable. But it's imperative that all people learn both of those behaviors if they're going to become mature adults.

Limited mental models have their uses. Discussing how some women are victimized is important. Discussing how to open communication with someone you find sexually desirable when you're not even capable of viewing yourself or that person as a human being is important. Finding solutions to these problems will help all of us become better human beings and help all of us suck just a little bit less. However, we all need to take a deep breath, step back, and realize that these discussions, and the solutions found from these discussions, have limited utility and meaningfully analyzing the acts of a psychopath falls well beyond the limits of their utility.

Saturday, May 17, 2014

Meanwhile, on the other side of "The Pond"...

View of White Cliffs of Dover from France by J Marsh is licensed under CC BY 2.0
For various reasons (one of my sons wanted to watch Doctor Who), I'm watching PBS at the moment, which apparently turns into a poor American's mirror of the BBC on Saturday nights. While I wait for things to get moving and for the episode to start, I figured I'd see what's on BBC News:

Well, it's not the Horst-Wessel-Lied, if that's what you're asking.

The Darién is still a mess, even in modern times. If you've ever asked yourself why you can't just drive to Argentina, like, right now, it's because of the Darién Gap. In a way, it's nice to know that there are still places modern technology can barely touch, especially when previously forbidding places like the North Pole are accessible via pickup truck.

Look - the BBC can do whimsy, too! For example, we now know the limitations of snail homing abilities.

Though it sounds like a bad day at the local Dr. Bronner's soap distributor, it's actually something far worse - the Co-Op Group was founded over 150 years ago, employs over 100,000 people, and has interests in several industries in Great Britain, including banking and insurance. It's the latter two that have absolutely decimated the Co-Op Group's balance sheet over the past few years, to the tune of £2.5 billion.

Long story short, the economy might be improving, but it's not improving for one of the largest companies in the financial capital of the planet. That's not a good sign.

With that, Doctor Who is on. Don't blink...

Friday, May 9, 2014

What's my cultural dealbreaker?

Vintage Television by Gary Lund is licensed under CC BY-NC 2.0.
This article on the A.V. Club got me thinking - what is my cultural dealbreaker? What is something that, if a new acquaintance came up to me and said, "Hey, I like this," I would roll my eyes at and walk away?

I'm going to start with one of the answers I more or less agree with:
Caroline Siede
I’m going to get a bit meta here and say that my pop culture dealbreaker is a person with a pop culture dealbreaker. While that might seem like conflict avoidance, it’s actually just a way for me to defend my horrible, horrible taste. I have a high tolerance—perhaps even a sadistic fondness—for truly terrible entertainment. 
My taste in pop culture is legendarily bad. I bought a TJ Hooker DVD box set that is at a friend's house because, if I tried to watch it at home, I'd no longer have someone to sleep next to or share the rent with (slight exaggeration, but still). I own several They Might Be Giants and Weird Al Yankovic albums. I've also been spending more time focusing on family, work and politics and less time following pop culture - note that this isn't some sort of grand statement of maturity or superiority but simply an acknowledgement that my priorities have changed and I have responsibilities now that I didn't have previously. Consequently, I'm not going to begrudge someone their opinion on pop culture - there are things I like, there are things others like, and I'm secure enough in my own taste where I don't feel particularly threatened by what others like if it happens to differ from my own. To be honest, given the virtually nonexistent amount of time I have to keep track of what's new and exciting, finding someone who likes something I don't gives me a rare opportunity to expand my horizons a bit.

That's not to say that I don't have strong opinions about certain pop culture products, though. First, someone else from the original article that I agree with:
Caroline Framke
I agree with 90 percent of what Other Caroline said about not liking pop culture dealbreakers, except that I totally have a pop culture dealbreaker. I do an actual, physical double take when someone tells me they like the Saw movies. It’s one thing to like horror—I don’t, but only because I’m too skittish for a genre that thrives on sudden movements—but torture porn is vile. I just can’t see the appeal or the point of watching a demented psychopath peel co-eds’ knuckles off with a rusty fishing hook. So while anyone who does like Saw won’t necessarily lose my respect, they will make me back away slowly.
One of the reasons I enjoy reading, whether you're talking about blogs, books, or whatever, is that I oftentimes find myself experiencing a feeling about something that I can't quite put into words. When I watched the first Saw movie, something about it felt almost morally offensive to me in a way that I couldn't quite pin down. Then, I watched Saw 2, and felt the same feeling even more strongly than before. What frustrated me about the feeling was that it was different from my usual objections to most horror movies - they're mindless, they require a suspension of disbelief I have troubles reaching, they're thinly veiled morality plays. Then I started reading some of Bob Grimm's reviews about the Saw movies and that's when it hit me - torture porn. The Saw movies were nothing more than porn, only instead of sex, it was torture. There was no plot. There was no acting. It wasn't even all that scary. It was just people getting tortured for no particular reason. Now I finally had a term I could use to sum up my feelings, an anchor that I could use to ground the emotional state those movies created in me. Without reading those reviews, I would have labored under an endlessly inchoate sense that something was wrong with those movies, a wrong I wasn't previously familiar with.

No, I didn't like Hostel, either. Thanks for asking.

Another cultural touchstone that I'm not particularly fond of is The Big Bang Theory. I'm not going to go into lengthy detail about why - that's something other people have dug into far better than I can. However, if I had to sum my feelings up in a sentence, I'd say that I'm not sure if the show's laughing with me or at me, and I'm quite certain I know what the audience is doing. I've been compared to Sheldon enough times by enough people to know that it's not a good-natured comparison, which tells me plenty about the audience for that particular show.

Finally, there's news television. I'm lumping MSNBC, Fox News, CNN, RT and the rest in this pile - I don't care what your ideological spectrum is, it's all crap. At its best, it's affirmation, not information. At its worst, it's repetitive sports television for people that want to feel "smarter" than people that watch SportsCenter. Go ahead, explain to me the difference between analyzing a late-April baseball game for half an hour, inning by inning, and masticating on the latest developments in the Benghazi "scandal". Explain to me how one has more impact on the world than the other. Take your time. Or perhaps you'd like to explain to me why I should care that some cute American girl may or may not have killed someone in Italy. Don't get me wrong, I follow the news. I just read it. I can skim news, filtering out the time-filling outrage fuel, a lot faster than I can sit through a commercial-laden news show. I can draw my own conclusions without having some talking head somewhere explain to me which side "lost" this particular down possession inning... er... news cycle.

Even so, I have friends that liked the Saw movies (at least the first couple, anyway), I have more than a few friends that enjoy The Big Bang Theory - and yes, they even remained friends after comparing me to Sheldon - and I even have friends that watch news television from time to time. Different people are into different things and different people are not into different things. That's part of what people interesting - learning not only what we like from each other but also discovering what we don't like.

Now, if you'll excuse me, someone on the Internet just said that Scream Blacula Scream is vapid and unwatchable. I'll be back after I explain via geometrical proof why they are hopelessly wrong.

Friday, May 2, 2014

Well now I've done it...

This... is not good.
While playing with PC-BSD at work today, I realized that PC-BSD doesn't ask me to update much. At first I was willing to write it off as just the "BSD way" - after all, BSD aims to be less "thrown together" than Linux, so perhaps that had something to do with it. Then, in the spirit of "a little knowledge is a dangerous thing", I started reading about the FreeBSD Ports collection.

Ah!, I thought to myself. There's where my software updates are hiding.

I got to work. I fetch'd and updated my portsnap. I installed portmaster. I instructed portmaster to update all the things.

It failed.

I told portmaster to try again. Like a good, predictable, consistent automaton, it failed again. All right, time to get to troubleshooting, or, failing that, at least a basic exercise in literacy. I read the error message - portsnap was trying to update a port that had grown stale, meaning the maintainer had fallen off a cliff, so the powers-that-be in FreeBSD decided to prune the tree and remove the poor, neglected port from circulation. Trouble was, this stale port was a dependency for one of my other ports, which, curiously enough, actually needed to be updated.

Hmm. What to do? Well, let's try updating the ports one at a time. Maybe that'll work.

After updating a few ports individually, including my X server - that's the part that draws pretty pictures and windows in Linux* and BSD, for those of you paying attention at home - I decided it was about time to reboot. When my system rebooted, I was not greeted by pretty pictures.

Hmm again.

No worries - this isn't the first time in my life that I found myself dumped unceremoniously into a shell prompt. Back when I first started playing with Ubuntu during the heady days of Breezy Badger - I had a complimentary CD! - I made it a regular habit to update my graphics driver, which led to me making a regular habit out of rebuilding my X configuration and my kernel from the shell to recognize this new driver whenever either the driver or the kernel updated itself, which was obnoxiously often. It was scary the first time, annoying the second, and moderately frustrating after that, at least until Ubuntu introduced DKMS, which allowed binary graphics drivers to install much more smoothly than they had in the past. Though it had been a few years since I had dealt with that particular annoyance, I was still on familiar enough ground - no need to panic. It was, however, time to read the instructions a bit more carefully:

Before attempting an upgrade, read /usr/ports/UPDATING from the top of the file to the date closest to the last time ports were upgraded or the system was installed. This file describes various issues and additional steps users may encounter and need to perform when updating a port, including such things as file format changes, changes in locations of configuration files, or any incompatibilities with previous versions. Make note of any instructions which match any of the ports that need upgrading and follow these instructions when performing the upgrade.

Oh. I skipped that step, didn't I?

Well, no matter. I got to work - I started reading the UPDATING file, then realized very quickly that updating 500 ports in one shot was not a good idea. I was either going to be staring at the shell for the next week trying to rebuild each port from scratch, or I needed a way to get back to where I was. Of course, I didn't bother with backups - there wasn't anything really of consequence on that partition anyway, so wiping and reformatting wasn't out of the option. However, there had to be an easier way.

Then I stumbled across this.

Ah! Instructions for turning a FreeBSD 10 install with arbitrary ports installed into a PC-BSD installation - that might work. If nothing else, it might get my ports to get back to a PC-BSD-approved homeostasis. I started carefully at the beginning:

  • I made sure /usr/local/etc/pkg/repos still existed - it did.
  • I made sure /usr/local/etc/pkg/repos/pcbsd.conf still existed and confirmed that it had the approved incantations inscribed within.
  • I decided that, if the configuration file was still there, chances were that the security certificate was still there, too. Besides, I was looking at the instructions on my phone since my computer only had the terminal, and writing a long, arduous command via touch-type sounded less than ideal. So I proceeded to the next step...
  • pkg upgrade -fy dutifully ran. And ran. And ran. Over 2000 binary ports downloaded and reinstalled themselves. After a good 30-45 minutes, KDE relaunched itself and I found myself looking at the familiar PC-BSD login screen. Oddly enough, the keyboard and mouse didn't work, so I let the system sit until the hard drive light stopped blinking (I lost track of where in the chain of 2000+ ports the system was at and wanted to make sure it installed them all), then hit the power button.
After the reboot, everything was back to normal - I had a fully functioning PC-BSD system once more. I re-ran pkg upgrade -fy again just to make sure nothing was missing, rebooted once more after I confirmed its successful completion, then called it a day.

The experienced reminded me of my early days with Ubuntu Breezy Badger in another way. Back then, Ubuntu was much more closely linked to the Debian project than it is now - it wasn't just a meta-package that you could trivially install over a Debian Testing installation, but it was awfully close. Trouble was, if you tried to treat Breezy Badger as just a Debian Testing installation and started syncing your software accordingly, it was only a matter of time before you discovered the hard way that there was actually some coordination between Ubuntu's various installed packages, and no, you really didn't know how the different parts worked better than they did. That was a problem if you weren't careful since that touchy, uncoordinated Debian system was still lurking underneath, daring you to dig in and play, and the line between the coordinated but brittle Ubuntu universe and the laissez-faire Debian Testing installation underneath was poorly demarcated and documented. Frequently, you wandered right over it, blissfully unaware that you were on the wrong side of the tracks until, suddenly, the system pushed you against a wall and mugged you of your precious time.

For Ubuntu, I'm happy to report that those days are long gone. PC-BSD, on the other hand, is a different story. It might look like a FreeBSD install. It might even say it's a FreeBSD install when you feed it a uname -a in the shell. But it's not - not really. Not if you want everything to work right. There's a reason PC-BSD maintains their own ports repository and it's not because they're trying to keep FreeBSD's bandwidth costs down. You've been warned.

For the record, I haven't had this much fun in years.


* Unless you're running Wayland or Mir, both of which are precisely the sort of half-developed chaotic nonsense BSD folks find so disheartening about Linux.