Sunday, May 10, 2015

Big Star Documentary:Journey to a Place You Probably Won't Understand

Netflix streaming service is a funny place. There are a ton of things to watch, but at the same time, it's kind of like watching last year's cable TV -- lots of channels really equates to a ton of things that you don't want to watch; but they are playing all of the episodes of that WB show that you never considered watching when it was on.

Having just finished binge-watching whatever show it was, I was browsing through the Netflix muck looking for something to watch when I happened upon this documentary about the band Big Star.

For me, it was one of those awesome trips down memory lane. It's loaded with interviews with key figures in the Memphis music scene -- not the Sam Phillips / Sun Records / Elvis scene, more the It Came From Memphis scene. Without specifically saying it, this movie connects to the difference between what rock and roll was and what it has become. You can learn a lot about music in between the lines in this movie.

Thursday, May 7, 2015

Weird Fail: Microsoft Excel Brings Entropy to Simple Data Manipulation

I came across this weird issue with Microsoft Excel. I was in the middle of a project where I was updating a lot of numbers in a database. I had a list of specifications stored in a MySQL table, My friendly neighborhood product engineer provided me with a associated specifications listed as a range of numbers like 126.025 - 126..050. A couple of days later, it became clear that my friendly neighborhood product engineer hadn't actually looked at the existing spec table and that the number already existed. So he decided that he just wanted to add tolerance information to the existing number.

Predictably, what I received from the engineer could be calculated by the base formula Number_of-Specs X Effort_Engineer_Willing_to_Spend_Producing_Equivalent_Number (Lots x 0). After thinking about the problem, I realized that I should be able to manipulate the data in Excel and extract the tolerance info -- inertia can be a powerful force in engineering problems.

First, I began by extracting the numbers one each end of the range cells using a combination of new columns and left and right formulas. After I had two columns of individual numbers, I subtracted one number from the other and I now had a column of tolerances. I copied these numbers, then replaced them with the resulting values using "Paste Special - Values". Then I began preparing to import my new tolerance numbers back into MySQL, when I noticed an issue:

While Excel displayed the result as 0.025, when I looked at the underlying data in the formula bar, I saw 0.0249999999999915. WTF?

It's true that 0.0249999999999915 looks a lot like 0.025, but it is not 0.025. For mathematics and calculation, it may be similar, but it is not .025. At first I thought I had done something wrong, accidentally deleted something unintended or otherwise messed it up. But then I did some more tests and produced the same result. Next I thought, "great, my Mac has one of those Pentium errors." I tested on different systems with different processors. Same issue. I tested different versions of Excel. Same issue. I even tested a Bootcamped Mac Mini running Excel in Windows XP. Same issue.

Binary Numbers and Floating Point Precision Errors
In doing a bit more research, I came across issues where it's noted that Excel has issues with accuracy because it stores numbers as binary. Typically though, this tends to impact numbers at 15 figures of precision. In this case, my numbers were -- at least on the surface -- pretty simple.

Here's my best guesses at root cause:
  1. This binary number issue impacts numbers more significantly than the 15-digit binary issue.
  2. Microsoft is taking in .0000000000000085 on each transaction. Similar to the Superman / Office Space strategy, this percentage will enable them to profit some way.
  3. Microsoft has successfully generated an Entropy simulator that operates in the background in Excel. Where did you're data go? Entropy.
Needless to say, it's left me skeptical about using Microsoft Excel for some of these data manipulation tasks.

Tuesday, April 28, 2015

Photography and Skin Tone

Here is an interesting article I came across talking about the history of photography and how the process was optimized for white skin tone. If you've spent any time attempting to color correct or color-balance a photo with a number of people in it, you're probably familiar with some of the challenges and limitations.

One thing that this article seems to miss is that there's also a skin type that seems to celebrate the reds in the photography process. Often, when you get this skin type, it looks like the person is in the middle of a drunken bender -- something I used to think was entirely possible for one of the corporate executives that had this skin type. Sadly, I seem to have hit this stage in life myself -- the exceptionally red-face, not the drunken bender -- and I'm often plagued with trying to desaturate the reds in my face without screwing up the rest of the image or making me look unnatural. It's a reminder that, for however good the newest cameras might be, there are still limitations inherent in the process.

Tuesday, April 21, 2015

Ethics, Business and the Economy of Principles

How big of a factor do your values and principles play in your career choices? Do you 'make a difference' through your job? Are there certain jobs or activities that you simply won't do, no matter how much you might be paid?

How much of your own personal values are you willing to give up for a chance to grab some great prize? The torturous life of the trade-offs -- it's a classic literary theme and a heroic myth that we carry along in our day-to-day lives, shaping our decisions and our struggles. What character are we playing, the heroic rebel, the principled sage, the idealistic fool, or the spineless corporate sycophant?

By it's very nature, work is a choice with a host of implications and moral ambiguities. We all have to make choices. Each choice has consequences, and we all have to measure our choices against our ability to endure the consequences, good or bad.

Taking A Stand
Myself, I've tried to follow a core set of principles and values throughout my career. There was a time when an employer could require an employee to take a polygraph test just to be considered for a job. There was this record store that I thought would be cool to work for, but they required a polygraph test. While I found myself tortured by the 'potential' of work, my principles told me that any employer that required a polygraph was not a place that I wanted to work.

Principled decisions are easier when they aren't life threatening. When you aren't starving or cold, and when the decision won't put your loved ones in jeopardy, it's easy to be selective. But as we gain responsibilities, the weight of saying 'take this job and shove it' becomes increasingly heavy. Got a spouse and kids who depend on your salary to provide food and shelter? It can transform you into a virtual indentured servant.

In the past, our moral choices might have centered on things like whether or not to work for a tobacco company or in the defense industry. These days, moral decisions may be taking a McJob with no health care benefits versus holding out for something with some semblance of a living wage. Or, if your lucky, whether to put up with the demands of an over-reaching work environment or desperately search with hopes of something better.

In Silicon Valley, you get used to the idea of living with your career head in the corporate guillotine, but our ecosystem depends upon being able to easily shuffle from one unstable opportunity to the next. Making great products requires a moral commitment from the people involved, a passion and a desire to do what's necessary to make it great. That moral commitment goes hand-in-hand with the flexibility to become disenchanted, pick up your toys, and go. When people lose that freedom or are forced into unpleasant resolutions of those moral choices, sucky products follow.

If work is a contractual agreement between you as a laborer and the business you work for, then fundamentally, your power as a cog in the labor force is the ability to interrupt or cancel that agreement. Whether as an individual or a collective group, this is your leverage in the relationship -- to say that the situation isn't acceptable and that you won't participate. It's an axiomatic component of our free market system, the basic check and balance that says, "you have other alternatives."
Some of the most talented, capable people I've known were people who, in the midst of watching the march to an IPO, looked at the direction that the company was going and said, "nope, this is no longer the kind of business I want to be a part of. I'm done." For some, ethics and values are can be more important than easy money.

Today's Ethics
How much does ethics affect your choices these days? Would you work for a company that makes military tech? What about a company like Palantir that provides 'surveillance' networking tech? Would you work for a company like Uber? Do you speak out in your company about improper use of private customer data? Does your company use aggressive electronic tracking techniques to obtain data on customers, or, would you work for a business that practiced these kinds of behaviors? Where is your line that you won't cross?

Or, on the other side of all of that, does none of it matter? Are you dreaming of your opportunity to get Zuckerberg money? Do you imagine the day when you can be Travis Kalanick and run your business as an extension of your philosophy? What would your TED Talk be about?

Monday, April 20, 2015

Apple Yosemite, iCloud & My Shit Don't Sync

Another day, another frustration with Apple's brilliant implementation of software. Today we have the next chapter in "Everyone Must Use Yosemite, possibly the worst implementation of Mac OS to get shoved down our throats". It goes without saying that I truly hate this version of the OS, but my dissatisfaction just keeps getting worse and worse.

As you may have noted from a previous post, I use 1Password software to manage my passwords. Since my first challenge during install, overall I've been pretty happy with the software. It does as promised and has operated without fail -- although typing your long master password into your iPhone consistently can be a challenge, but that's a user issue.

So I've been happily running 1Password on my work system, my home system, and my iPhone, but I started to notice an issue. As I began to look carefully at the list of passwords, I happened to notice that the number of passwords on my work system didn't seem to match the number of passwords on my home system. And yet, when I checked the sync settings, all of the settings appeared to be correct. Both systems were syncing to iCloud and claimed to have synced within five minutes of when I checked the settings. It says it's correct, so it must be correct.

Then one day, I went to perform an operation at work that I normally perform at home. After three attempted password entries using my work 1Password, I was locked out. After getting the system reset, I checked the password on my home system and discovered that it was different. Sync does not quite what mean what you think it does. I started to think about contacting 1Password's great customer service team, but I thought I might search for a solution before I contacted them. Unfortunately, I couldn't find a clear set of similar experiences easily and moved on for a bit. After all, if you're careful, you can manage this issue, even if you don't know what it is.

So one other issue with using 1Password came up as I learned more about the root cause of the sync issue. When your system restarts, if you're presented with a password menu -- like the login screen for iCloud and your iTunes password -- you don't have access to the password on your system until your system is up and running. Meanwhile, the geniuses at Apple (not the ones that work at the stores) implemented the Yosemite iCloud login such that, if you don't log in during that boot time, the installation and login fails. If you try to go back to iCloud through the control panel, it's too late -- your hosed.

As it happened, I discovered this error when I happened to have a written copy of my password with me during the restart process after the most recent system update. It then took me to the iCloud upgrade process -- which should be called the iCloud buster. It offers to update your iCloud, but with two choices -- if you don't update, none of your computers can share files stored on iCloud. If you do update, your computer that's running the old version of the software won't be able to share files with the devices on the new versions of the OS. Hobson's choice. Gotta love the new Apple -- way to do backwards compatibility.

It's not 1Password that is the problem, it's Apple's iCloud. My solution path is either I can update my work system to Yosemite -- but since I can't stand the stupid pastel transparency interface, I don't want to do that. Alternatively, I need to use a different method (like Dropbox) in order to sync my passwords -- essentially, paying to not use Yosemite. Right now, that's looking like the preferred option.

Perhaps the funniest part was right after I finished the Hobson's choice iCloud upgrade, the system presented a message that said, "hey, you've updated your iCloud. Would you like us to encrypt your hard drive and store the keys in your new updated iCloud?" Uh, yeah, no thanks. You've already done enough. Is is too late to reinstall Mavericks?

Friday, April 10, 2015

Salesforce.com and POP/IMAP Email Sync - An Update

Recently I wrote about how Salesforce had decided to EOL support for POP/IMAP in it's Outlook Connector. Since that time, I spoke with my Salesforce account rep expressing outrage. If you're reading this, I hope that you have too. I'm still considering writing a similar 'outrage' email that I send to Marc Benioff.

In positive news, community specialist Kristie Garafola has updated the success.saleforce.com page on this issue. She is now asking for input as to what POP/IMAP platforms you are using.
Hi Everyone-  I’ve been speaking with our product team to get more information for you and have a few questions.  Can you see below and let me know your thoughts?

IMAP and POP3 are communication protocols to access email servers. What we need to know to address the request is what are the email servers you are connecting to (through IMAP and POP3) when downloading your email? If it's not an Exchange Server, is it mostly Gmail? What about other email services? Understanding what email servers you’re connecting to and their popularity will help us prioritize our focus beyond Exchange.

For those currently using Apple Mail on Mac to connect to an Exchange server, you may use our Exchange Sync model and get calendar events and contacts syncing. With Exchange Sync, it does not matter whether the user is on a Windows machine or a Mac, and which email application is in use, as long as the back-end email server is Exchange 2010 or 2013.

As for the Salesforce App for Outlook, it will work in OWA on a Mac when using a browser, and eventually on Outlook for Mac when downloading it from Office 365 (i.e. only the newest version).

We can evaluate bringing support for IMAP and POP3 with SFO, or even better, explore the possibility of porting Exchange Sync-type capabilities to sync contacts and calendar events with Gmail. Once I have more information on that, I will post again.
There's more, but I didn't want to grab the whole thing. On the upside, what I take from this is that the outrage is being discussed. I don't think that they're in full-on head-slap mode, but I think that they know that there are a bunch of people who are pissed. At the same time, I'm not sure if it's enough outrage to actually spur action -- or simply one of those "oh yeah, we're listening" followed by nothing.

What I take from Kristie's post is that she's trying to get a grasp on an issue with outrage (Salesforce for Outrage?), but she does not seem particularly versed in the technology of email. Her post reads sort of like somebody who stepped into a quagmire of crap, then discussed the issue with the product team and they responded with something like "fine. which way should we through the rope to pull you out..." followed by more frantic sinking.

There are really a couple of issues here:
First and foremost: Salesforce.com's solution for handling email integration and syncing SUCKS! For years, they have provided support for Outlook integration (early on, it was seemed like it was important to them, but the first step down the FAIL path started with Salesforce for Outlook). When they partnered with Google to do Google Apps integration, they could have implemented a Gmail integration at that point -- or shortly thereafter -- but they didn't. As for Mac email support, probably the best tool was always the MailDrop app developed by a guy who thought it would be useful -- but never adopted by Salesforce. And he's quit supporting MailDrop. Bottom line = Email Sync is really an afterthought.

Second: Kristie's post gets a little muddled in dealing with the difference between clients and server sorts of issues. Put simply, the client is the thing that lives on your computer, the server is the email system that lives in a data center or in the cloud somewhere. It's the place that collects your email when you're not connected.

Connect for Salesforce was client-side add-on. It was designed so that a Sales guy could install it on their system and sync their emails to Salesforce. MailDrop and most other email sync tools are client-side add-ons. A server-side sync tool would require that your IT team install something on their overall email system. Most IT teams hate doing this because the software (e.g. Exchange) that runs email is finicky and a bit of a pain in the ass to run. Between SPAM, hacking and other mysterious issues, the server side of email is sort of like the Devil's Triangle of IT -- beautiful when the weather is nice, but subject to spontaneous bouts bad.

Salesforce for Outlook claimed to be a server-side sync tool, but the reality was that, while there were server-side permissions, it is still a client-side add-on. In it's early days, essentially what Salesforce for Outlook would do is sit on your system and, when you flagged something to sync to Salesforce, use the same basic approach as Email to Salesforce (where you simply BCC your email to Salesforce). That's why it worked with POP and IMAP even though it wasn't "supported".

This confusion between client-side and server-side makes sorting through solutions and planning an updated roadmap even more challenging. While Exchange is popular, we use Google Apps and Gmail, but there are others beyond that. From open source solutions to old systems or perhaps even for IT teams that just don't want to use Microsoft or Google, the back-end of email could be in place for a variety of reasons. For users on these systems, POP/IMAP typically provides the bridge to the client. Imagining a server side component to fit this landscape is like trying to imagine a single tire that fits every car. 

Back on the client side, there are wide array of options as well. On the PC side, one of the things that made Outlook such an attractive option for a Salesforce sync client is that Microsoft bundled it with their Office suite, so virtually everyone using the Office suite could potentially be supported. Are there other email clients? Sure, but building for Outlook probably touched the broadest user base.

Meanwhile, in the Mac world, there are different options. For a long time, people in the business world took the approach that the Mac didn't exist. Over the years, that landscape has been shifting significantly. While it might have been "tolerable" for Salesforce to ignore the Mac back in 2005, the times have changed. On the Mac platform, the Apple Email client is probably the default standard, but there are many email client options out there. For Apple users in the Microsoft realm, Microsoft used to sell their client as "Entourage" because it wasn't exactly compatible with the Outlook/Exchange environment. In recent years, they changed the label to Outlook, even though the Mac and PC versions are sometimes not equivalent. Historically, most Mac users connect to their email system using POP/IMAP, because most server side email systems don't support a proprietary Mac connection.

Google's Gmail lives in it's own special category. The server side of Gmail is managed by Google and the native email client is actually a web browser. Most business users would access Gmail through Google Apps which provides some administration tools and potential extensions or plug-ins. Google also develops extensions for Gmail; some are supported in Google Apps, some are not. Many users also connect to server-side Gmail through POP/IMAP and run other clients like Outlook, the Apple email client and others. It's probably also worth noting that the Outlook-Exhange interaction is so important to some businesses that Google actually built an Exchange-protocol support for Gmail in order to streamline sales of Google Apps to businesses. In other words, you could be in a business, connecting to Gmail through Outlook where your Outlook thinks it's communicating to an Exchange server even though it's talking to Gmail. This is part of what makes the SFO-Exchange server validation so frustrating for some end-users -- Gmail can pretend to be Exchange enough to satisfy Outlook, but not enough to satisfy the new SFO.

My Ideal Salesforce Email Sync Roadmap
If I were defining the product roadmap for email sync in Salesforce.com, here's what I would do. First, I would eliminate the Exchange Server validation in Salesforce for Outlook. Put simply, if it used to work and now it doesn't, you broke it. POP/IMAP support in Outlook takes care of a huge chunk of legacy systems and users on the PC. I would also make an officially supported sync tool for Mac and the Apple Email client. It's overdue. This should address a broad cross-section of users out there. I would also partner with Google to offer a plug-in or extension for integrated sync from Gmail and Google Apps. An easy extension for syncing to Salesforce from Google Apps would be a big win for many in the SMB market. This initiative would say, once and for all, that Salesforce cares about email sync.

But my roadmap wouldn't stop there. There are some people that want to have a single integrated environment for eveything. If Salesforce added a browser-based email client -- ala the Gmail browser client -- they could pull emails into a window in Salesforce. For many users and administrators, the ability for users to manage their email from within Salesforce would bring a significant bump in adoption. Imagine if Email was a tab.

Anyway, that's how I'd set the table. What I actually expect to happen is some lip service to this issue, promises of future improvements, but no action. When you look across their existing "partner" landscape, there's a lot of money changing hands in email sync. Unlike the old days when platform providers like Microsoft, Apple, Facebook and Twitter saw something that looked like a cool extension of their functionality and, essentially, brought it in house, Salesforce has shown that their strategy over time is, if there is something developed by Salesforce Labs or some cool functionality that is convenient to bake in -- if somebody is willing to pay another $15-however much more per user for that feature, monetize it. If they don't support it and you have to pay an additional cost, oh well. Remember, your success is what's important to them.

Wednesday, April 8, 2015

Is Apple Becoming Dell? Transparency and the Exile of the Pro User

Yesterday, I finally disabled the transparency effect in Yosemite. After looking at something I was working on and trying to understand where the blue color cast was coming from, I finally realized it was coming from a blue area in the window below it. I've written in the past about how terrible the transparency effect is, but until it begins to negatively affect your work, it's easy to forget how insidiously frustrating it really is. It's really a complete departure from the days when we spent time and money to ensure that our displays were calibrated and our color previews were precise.

But this is the Apple we have now -- the Apple that's more focused on consumers and fashion than on the professional users who were lifeblood of their customer base back when there weren't smart phones and the rest of the world revolved around Redmond. We were loyal because the platform was ours. It was uniquely suited for the demands of type, design, video and images. As the web world grew, OSX was well matched with its Unix core.

But there is another thread inside of Apple, tugging on its designs and strategies; the drive to simplify. At times, simplify equates to streamlining complex processes, like using the GUI to move a file from one directory to another. Other times, simplified can best be described by the pre-OSX feature they tried to implement at one time, "The Launcher", a one click button to launch an application because -- I don't know, maybe double-clicking on the application was too complicated for some people. It was a stupid idea back then, but somewhere in the halls of Apple, there are still fans. iOS basically runs a Launcher interface, and Launchpad is now baked into OSX. And for pro users like you and me, it gets the same amount of use that the original Launcher did -- none. 

When they radically simplified FinalCut Pro, Apple faced a tremendous outcry from the professional video editing community. Some of that outcry resonated -- they added extensions to return a few features -- but if you look across the broader Apple software landscape, you'll see an overall weeding out of technical and control, instead being replaced by the idiot light or nothing at all. Remember the activity monitor in Safari? Gone.

So what does the Apple roadmap have in store for us? Who knows. I cannot help but expect the day when we're forced to have a giant clock running in the background because somebody has decided that OSX should mirror the functionality of the Apple Watch. Could they just give us an OSX pro version that doesn't include all of this crap?