Who does a boycott really hurt?

The latest social media shitstorm is about Guido Barilla saying, “I would not do a commercial with a homosexual family, not for lack of respect toward homosexuals – who have the right to do whatever they want without disturbing others – but because I don’t agree with them, and I think we want to talk to traditional families.”

This has resulted in the angry gay mob calling for a boycott of his company’s products.

Before you change your grocery shopping plans, just ask yourself: who does a boycott really hurt?

A loss of sales will affect a company’s revenues. A measurably large loss over a long enough timeframe might actually exert some kind of business pressure. But, realistically: what?

Do you suppose, as the chairman of a major multi-national conglomerate, if your revenues dropped in any significant way, you’d say to yourself, “Boy, I had best take a pay cut in order to make ends meet! Ouch!” Oh, hells no, of course not. What you’ll actually do is: “I’d better lay off enough of my workforce to compensate for the loss of revenues.”

The reality is, any boycott first hurts the employees the most. Sure, any employer who loves their employees is going to hurt indirectly when their employees suffer, but it’s also business; if the employer can’t stomach adjusting the shape of the business to adapt to market environments, they’re not going to be in business very long.

So, what should a concerned individual do, then?

If you truly want to make your voice heard, instead of a boycott, buy Barilla product, and hold a fundraising pasta dinner and donate the proceeds to an LGBT organization. Since we’ve already established that a boycott is mostly just a symbolic gesture, why not send one that says:

“We will use Barilla product to raise funds to support LGBT causes.”

If Guido is personally opposed to such causes, then knowing his company’s product is furthering those causes should create emotional distress that he cannot ignore or avoid. Perhaps this is a dirty and underhanded tactic, but it’s really the only one that has an actual effect.

Ultimately, who really cares?

Honestly, I don’t even understand the big deal, here. This is one man saying he wants to use the heteronormative family model to advertise his company’s product. It’s a choice he gets to make, and clearly the marketplace has rewarded him richly for such a decision–until now. Are gay people really that dumb that they never noticed the lack of same-sex families depicted in Barilla ads until now? What, you thought it was a coincidence?

Frankly, it would be nice to see the LGBT community practice what they preach, you know, tolerance and acceptance, for another person’s views and way of life. If you actually read what Guido is quoted saying, he expresses a very reasoned and tolerant opinion. Let me quote it for you, again, in case you weren’t paying close enough attention earlier:

“I would not do a commercial with a homosexual family, not for lack of respect toward homosexuals – who have the right to do whatever they want without disturbing others – but because I don’t agree with them, and I think we want to talk to traditional families.”

These are not the words of a hateful, bigoted, closed-minded homophobe. Even though he didn’t have to, he acknowledges his very liberal attitude towards people who are different to him: “do what [you] want without disturbing others.” If he said something like, “Gay people shouldn’t eat my pasta,” (like A&F CEO Mike Jeffries did, saying, “A lot of people don’t belong [in our clothes], and they can’t belong.”), it would be an offensive comment. But, to tell Guido that the way he’s choosing to live his life is wrong and offensive? Pot, meet kettle.

Sometimes, the “Best By” date is right

Sam and I just had a conversation that went something like this:

Sam: I think these peanuts don’t taste right.

Me: Oh?

Sam: The “best by” date said August… It’s been less than a month!

Me: I guess that’s why they don’t taste their best, now…

Sometimes, that “best by” date is no joke. Who knew? :-)

A lesson in buying eggs

The other day, my daughter was instructed to go get the eggs while out shopping, and she did. However, upon later inspection at home, it turns out several of the eggs were cracked in the carton she selected.

One dozen eggs in a styrofoam carton

It’s not until something like this happens that you realize how much we take for granted. At some point in our lives, we instinctually know to open the carton and quickly inspect the eggs to see if any are broken before buying them, but even after years of watching us select eggs, this lesson hadn’t sunken in.

Being the totally silly Dad that I am, as part of the “please, check the eggs before you take them” lecture, I threw this out:

Me: “You know what they say about buying eggs, right?”

Her: “Um, no?”

Me: “YALO.”

Her: *puzzled look*

Me: “You Always Look Once.”

She began to laugh uncontrollably at this meme-gone-bad that I’d thrown out there. I don’t know if she’s learned the lesson, but hopefully she’ll remember it now …

Suzie and her monkey friend

20130620-115006.jpg

Just testing out the WordPress iOS app’s handling of “Quick Photo” posting—I’m curious as to what markup it’ll generate.

And, what better to use as a test than a great picture of Suzie with her little monkey friend? :-)

Why PRISM, and programs like it, really don’t matter

The government obviously has had this data for quite some time, and no one I know of has been grabbed by the secret police, nor could they use the data to stop the Boston marathon bombing before it took place.

Government organizations are simply incapable of making use of the data they have access to. I have no doubt of that. I am much more fearful of this breadth of data in the hands of an enterprising individual with a specific, focused agenda. Bureaucracy by sheer existence will ensure this data will remain impotent in the government’s hands.

We should focus on real threats, not imagined ones, like what our government did to a person like Aaron Swartz. After this PRISM leak, is the Everyman going to care more about “this risk to my personal freedom and privacy” (which never existed in the first place–what a farce), or what our government actually DOES do to destroy a citizen’s life, like Aaron’s?

Smart money on the fact that people care less about what happened to Aaron than what they THINK might happen to them (but it never will), simply because they are not Aaron. And, that is the tragedy here…

I’m still not blogging more

I honestly thought I would be blogging a little bit more, since switching from Android to iPhone, since the iOS WordPress app is so nice, but I just don’t seem to get into it. It’s just too easy to post short stuff to Twitter, and photos to Instagram or Facebook …

I think a part of this is the belief that more people follow me on Twitter, or are friends of mine on Facebook, than read my blog.

There are times when I need to write something down because I know my poor rat brain won’t remember it, so I post it to my blog for my future self.

Then, there are times I want to share something with others… and those are the kinds of things I post to social media sites because that’s where I figure I’ll reach the most people. I suppose if I had the kind of audience that celebrities have, I could post everything here… but I don’t.

I guess I’m just doing some thinking out loud here (uh, typing out loud? writing out loud? writing in plain view?) … just confirming that my lack of posting is definitely not because of some barrier of difficulty: this iOS WordPress app makes this so damn easy.

Debugging a strange MacOS X printing problem

At some point in time, something changed on my system that resulted in my printer no longer printing. (Cue a relevant scene from Office Space here…) A quick Googling of relevant keywords didn’t turn up anyone else complaining about what I was observing, so I did what any lazy person would do: I found another way to print what I needed to print, and forgot all about it.

Now, several months later, the problem still persists, and while I found a suitable workaround (use the “Generic PostScript printer” driver instead of the Lexmark one), the hardcore geek in me felt it necessary to struggle against the injustice of this whole “it doesn’t work” thing. It should work, damn it.

First, here’s what the most obvious symptom looks like:

/Library/Printers/Lexmark/filter/pstopsprinter1 failed

Along with this will be an entry in the system log which you can see in Console.app:

1/25/13 12:19:02.275 PM ReportCrash: Saved crash report for pstopsprinter1[78490] version ??? (???) to /Library/Logs/DiagnosticReports/pstopsprinter1_2013-01-25-121902_localhost.crash

If you look inside the crash report, you’ll see:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFArray length]: unrecognized selector sent to instance 0x1006036b0'

Great. Just great. So, we fire up our handy-dandy debugger, and what is the object it’s choking on?

(gdb) po 0x1006036b0
<__NSCFArray 0x1006036b0>
[redacted],
panoptic.com
)

Aww, damn. I recognize what that is. Those are the domains defined in my /etc/resolv.conf‘s “search” parameter.

Here’s the whole backtrace:

(gdb) bt
#0  0x00007fff93b09ce2 in __pthread_kill ()
#1  0x00007fff9392a7d2 in pthread_kill ()
#2  0x00007fff9391ba7a in abort ()
#3  0x00007fff8ce037bc in abort_message ()
#4  0x00007fff8ce00fcf in default_terminate ()
#5  0x00007fff8d9931b9 in _objc_terminate ()
#6  0x00007fff8ce01001 in safe_handler_caller ()
#7  0x00007fff8ce0105c in std::terminate ()
#8  0x00007fff8ce02152 in __cxa_throw ()
#9  0x00007fff8d992e7a in objc_exception_throw ()
#10 0x00007fff954c81be in -[NSObject doesNotRecognizeSelector:] ()
#11 0x00007fff95428e23 in ___forwarding___ ()
#12 0x00007fff95428c38 in __forwarding_prep_0___ ()
#13 0x00007fff9539f426 in CFStringGetLength ()
#14 0x00007fff953affac in CFStringFindWithOptionsAndLocale ()
#15 0x00007fff953b67da in CFStringHasSuffix ()
#16 0x00007fff953ed7f6 in -[__NSCFString hasSuffix:] ()
#17 0x00007fff8e1ab6da in __-[NSHost resolveCurrentHostWithHandler:]_block_invoke_7 ()
#18 0x00007fff90497c75 in _dispatch_barrier_sync_f_invoke ()
#19 0x00007fff8e1a9b5d in -[NSHost resolveCurrentHostWithHandler:] ()
#20 0x00007fff8e1aa5a7 in __-[NSHost resolve:]_block_invoke_1 ()
#21 0x00007fff90495a82 in _dispatch_call_block_and_release ()
#22 0x00007fff904972d2 in _dispatch_queue_drain ()
#23 0x00007fff9049712e in _dispatch_queue_invoke ()
#24 0x00007fff90496928 in _dispatch_worker_thread2 ()
#25 0x00007fff9392a3da in _pthread_wqthread ()
#26 0x00007fff9392bb85 in start_wqthread ()

Well, let’s see what it was trying to resolve, maybe that’ll give us a clue:

(gdb) frame 20
#20 0x00007fff8e1aa5a7 in __-[NSHost resolve:]_block_invoke_1 ()
(gdb) po $rdi
[redacted].panoptic.com

Yup, that would be the DNS name of my machine, based on the reverse DNS of my IP address on my local private network. However, it appears that forward DNS for that FQDN isn’t resolvable, due to a recent change in my DNS setup. Let’s fix this, and correct the DNS so that the FQDN resolves, and test again.

Still fails. Damn, not going to be that easy, huh?

(gdb) frame 13
#13 0x00007fff9539f426 in CFStringGetLength ()
(gdb) info frame
Stack level 13, frame at 0x1003d72c0:
 rip = 0x7fff9539f426 in CFStringGetLength; saved rip 0x7fff953affac
 called by frame at 0x1003d7770, caller of frame at 0x1003d72a0
 Arglist at 0x1003d72b8, args: 
 Locals at 0x1003d72b8, Previous frame's sp is 0x1003d72c0
 Saved registers:
  rbx at 0x1003d72a8, rbp at 0x1003d72b0, rip at 0x1003d72b8
(gdb) po $rbx
<__NSCFArray 0x1006036b0>(
[redacted],
panoptic.com
)

And, here it is. CFStringGetLength is expecting a CFStringRef and instead getting handed a NSCFArray, and is blowing up because CFStringGetLength trying to [str length] it.

I wish I knew someone who was doing OSX development at Apple to pass this bug along to …

Updated: I filed this as a bug in Apple’s Radar bug reporting system. It was assigned bug ID #13089829.

iTunes 11 is a total failure

ITunes 11

I just accepted the upgrade to iTunes 11 this morning, and am so incredibly disappointed. Can I downgrade back to iTunes 10.7? Thankfully, the iPhone wiki has an excellent list of Apple’s direct download links for past versions! Later, I’ll figure out how to uninstall this abomination and downgrade.

Removal of iTunes DJ is a huge mistake: it was the only feature of iTunes that actually kept me using it as a media player instead of using a non-Apple one. The “Up Next” functionality that Apple replaced it with is NOT a suitable replacement for iTunes DJ. The beauty of the iTunes DJ implementation was that it acted like a special Smart Playlist, which you could see both currently queued and previously played songs in one view, and easily drag-and-drop songs in the queue to rearrange their play order along with dragging new songs into the queue to play them in the order you want. While you can click-and-drag to reorder in “Up Next”, it’s far less configurable – matter of fact, I couldn’t find any settings in Preference that control the Up Next functionality.

Up Next? More like Up Yours, Apple.
“Up Next”? More like “Up Yours”, right Apple?

Changing the keyboard shortcut for MiniPlayer (e.g. Command-Shift-M to Command-Option-M) – why would Apple do something stupid like this? Do you not understand and value muscle memory in consistent User Interface design? The MiniPlayer was one of iTunes’s killer features, and part of its utility was its hotkey which a MacWorld article even included in its 10 essential iTunes keyboard shortcuts last year.

iTunes 10 MiniPlayer

Also, why hide the currently playing track information in the MiniPlayer?! Upgrades should be improvements that add or at least refine features, not remove useful features that existed in previous versions! Now, in order to see what track is playing or how long it is or to seek around in the song, I have to click on the cover art icon in the MiniPlayer, first?

iTunes 11 MiniPlayer
I mean, look at this. What is this garbage?

I know Apple recently fired Scott Forstall. I do hope Apple fires whoever the Product Manager is in charge of this iTunes 11 release. It looks like they were more concerned with the redesign of the application icon and overall visual design of the application and totally ignored the ridiculously stupid changes that were being made to its functionality.

iTunes 10 to 11 icon WTF?
Wait, someone thought this was an improvement?

Shame on you, Apple. It’s a good thing Steve Jobs is dead, because this kind of embarrassing change would have KILLED him.

Charlie at WordCampNYC 2012

We arrived a little late, but we made it. Here’s Charlie at WordCampNYC 2012.

Charlie at WordCampNYC 2012

How young is too young … for WordCamp?

WordCamp NYC

I was thinking about attending WordCamp NYC 2012 this coming June, and I thought, “Hey, Charlie has a WordPress blog, maybe she’d like to attend, too.”

I mentioned this to Samantha, and it brought up the question: Is she too young to attend? I’m not so sure. Charlie’s quite bright for her age, she’s occasionally shown an interest in blogging, and seeing the wide range of possibility by meeting and interacting with other bloggers could give her new ideas, inspire her, generate additional interest, etc.

What say you, blogosphere? Are there likely to be too many age-inappropriate topics discussed within earshot? Will she just be ignored and written off as too young to interact with, and therefore be bored and discouraged?