Philosophy

In a recent article Sophos had a poll asking what the appropriate sentence for tech related fraud — such as fake “Windows Support” call saying you have a virus and asking for $300 to fix it over the phone. I have covered what to do with any unsolicited phone calls before (The “short” answer: do not believe any claim of identity and ask for proof such as their employee ID#, the company they are representing {which they are often obligated to give you}, the case number for your issue, & a callback number and hang up. Then look up the company contact info — make sure the company is on the up and up {has a physical address, look up consumer complaints about the company, etc.} — and call the official number with your case number if it all checks out. And never be afraid to get a second opinion — if a person tells you not to bother contacting someone else for a 2nd opinion — or worse discourages contacting a 3rd party — it is a huge red flag.) 

Excuse the outlandishness of this idea — it is just an idea that needs further refinement. If you are extremely narrow-minded or think “nothing can change/nothing will help” please stop reading now, to avoid reading something that might upset you. You have been warned…

Continue Reading

Don’t get me wrong. The people at MacUpdate usually do a great job of managing and taking user feedback. But even with their careful curation of Mac & iOS apps that receive updates (sometimes numbering close to 100 OS X apps alone in one day), things slip through the cracks. I wasted about 5 minutes trying to figure out why an updated app was not available via one-click update using the built in software updater nor MacUpdate’s Desktop app. After going to MacUpdate, it was only by reading the comment and then hovering above the download link that the answer was clear: the app was a beta, and using the built-in update tools both within the native app & the MacUpdate Desktop App wouldn’t work. Even though I have “show beta/pre-release” unchecked, it still showed up in the MacUpdate Desktop list.

I realized the problem when looking at the comment and the confusion about version numbers used and how Adobe doesn’t distinguish betas with “b” or “(beta).” Then I took a few minutes to write this. The focus is not what MacUpdate did — it is an edge case which reflects more poorly on Adobe. Instead it is a example of what UI designers everywhere are doing to the detriment of both advanced and novice users everywhere.

Making Simplicity Difficult (Form Over Function)

If you accept that the purpose of computers is to make tasks easier to accomplish than doing them without them, then what follows is logical. When the interface gets so polished the labels are rubbed off, advanced features are hidden or removed, and labels are replaced unlabeled/undocumented icons, it leads to problems using an application no matter what type of device the application runs on. Here is my brief comment on that.

I don’t mind clean, nice-looking interface (I strive to balance aesthetics with easy-to-access, powerful features), but don’t let streamlined designs actually slow productivity; whether that productivity is actually getting work done or doing administrative tasks such as updating your software.

This confusion is a clear case of form over function, which is the wrong direction (unless you’re selling soda or commodities…) for computing interfaces to head because it handicaps learning via obscuring helpful, orientating/navigating details and slows advanced users.

If the trend in UIs were to spill over in the real word, we would see street signs replaced with pictures of maps and street addresses removed from the front, and instead only inside each building. Menus boards would have descriptions and prices hidden, until a person opened a flap to read the price and description.

In houses rather than work aesthetics around function, some streamlined houses would only have one control panel that controlled all the lighting, heating, etc. but that panel would be fixed next to the circuit breaker box. If a house had individual light switches, they’d be placed at whim of a designer who never lived or had even been in a house. Some would be oriented at any angle the designer liked and on any surface — some nowhere near the door or on one or both sides of the door. Some switches would glow only when they were off, and not when they are on, and vice versa which is actually happening with electronic switches. All building layouts would depend on the whim of a designer that had no concept of architectural design patterns nor a care about the building’s function.

This current trend toward “flatness” that was a backlash against “skeuomorphic” design of last generation all dance around the real point of GUIs: to make things easier by giving feedback to users that allows them to assess both current application state and orient where they are in the system. The trend is stripping away both of these, making things harder to use, not easier. Sadly, people think simplifying the interface will help users whose learning is being retarded by confusing inconsistent and low-feedback designs. This over-simplification is in fact hurting more than helping. This is because simple is not necessarily a synonym for easy. (Easy things are simple, but simple things are not always easy oddly enough.) Product managers and designers think people want simple, when they really want easy. Making things easy should be the focus. The easier a more complex the task is, the more useful your software.

Making Complexity Easy (Form Follows Function)

Designers should look for the frustrating points and the complex points and make complex tasks as easy as possible — which means removing steps if it can be done without making the user’s knowledge have to ramp up greater than the complex steps.

This is my Menubar. This is easy:

menubar

It is very dense with information. By looking at it you can see with a glance that Bluetooth is on, I’m connected to the network with light traffic, my processor load, my sound volume, the day & date, my current battery level (full) & that I am plugged in, the time, the moon phase, the CPU temperature & CPU voltage draw. I could have the default OS X menubar, but then I wouldn’t be able to see this without opening applications, slowing me down. I often refer to network speeds and CPU load when something seems bogged down. I often check the date and time, and that calendat icon pulls down so I can see my schedule in Fantastical without opening the Calendar App. The functionality is available if I pull down my sound menu is Audio Switcher.

audio-switcher

All these save me time each use. The march of Menu Items and GUI Enhancements I use all take a complex array of data, navigation, and bother of doing complex things and make some of them a click or less away. While this might be ugly to some, it is not distracting and works well. This is my current balance point, but with each stripping down towards “simplicity,” this ease becomes more difficult. Thankfully the developers of iStat Menus, Fantastical, Bartender, Audio Switcher, Moom, TotalFinder, Default Folder X, Alfred and PopCar (among others) see the problem that streamlined interfaces bring. But rather than strip away information, they strive to arrange information in a way that is not overwhelming and give user configurable interfaces to really harness the power of a GUI. These companies (while not all perfect — some have fallen into this hole at least slightly) have UI designers, not artists making flat colorful mystery icons with unpredictable UIs that confuse people calling themselves UX designers.

(I think of myself more as a User/Communication Efficiency type of person, so while the “UX Designer” title sounds fancy, I’d rather be a “User Interface Communication Efficiency Designer” to put the emphasis not of the “experience” of using a product, but on the efficient use of communications media available. Plus, UICED sounds like a term that could be played with. But titles are kind of limiting in a way… so I’ll just be myself. When people ask me my title, I just sum it up to say “IT Consultant” since whenever I actually start to talk tech I notice most people’s eyes glaze over.)

I try to focus on what matters to get work done, so I can get work done with less effort and faster. Anything that gets hinders more than helps my efforts falls out of use. BTW, if you are not familiar with these products, many are mentioned and linked on my Recommended Apps page. You can also check out MacUpdate.com and see the trove of software — most at least decent — that they list. They are good guys, so if you see errors, write them and be nice please. They will get back to you if needed with a personally written reply, which is always worth a star in my book. “When I was a kid several days of Mac SW updates could fit on one page… now several pages might span one day.”

Thanks for reading.

Excuse any typos, but this is a seat of my pants post… I finished up one job last week, which led to time to refactor this proof of concept class while revising other work. Exterior demoes of these proofs get reactions akin to saying, “Wow!” But I feel like Oz, saying “pay no attention to the duct tape and zip ties holding up the curtain!”

When I say “proof of concept” I usually mean, if you look at the underlying code you realize the magic is in the amount of code smell (aka Bad Practices used) — which happens when I just sit down with an idea and just write something that works and best practices aren’t at the forefront. An analogy of this would be an artist sketching a picture quickly to just practice the art and exercise their perception-hand-eye-coordination. Another dev would see this stream-of-consciousness sketch-style coding, and think “that’s crap!” because trying to modify it would be a huge pain. And I couldn’t disagree, because modifying would be a huge job in comparison to writing new code.

However, It is times like these I like to reread this: http://stilldrinking.org/programming-sucks to remind myself that when I mentioned how I hate working with “crappy” code or incomplete documentation. 

Any time I do toss a stone at some crappy code, I get some snarky “this is where the magic happens” comeback, and sometimes even that venn diagram showing my comfort zone outside it. Yeah, guys… I get it. I realize that we are all guilty of it because of workload or time constraints — no one is perfect. There is only so much one can do in one session, even if that session is a solid 13 hours (which I have done before). So, I can either throw stones or TRY to develop better sketch practices with each sketch. This is what I have been doing the past week. I will write a class with comments, DI, patterns, etc. Then look back and see where the comments/structure broke down or when things got vague or messier. Things are improving, but they aren’t where I would like them to be.

But, does it really matter if my on-the-fly code is written poorly as long as it doesn’t crash? Probably not to anyone that might use it, but oddly I can’t get a voice out of my head that says this is wrong. If I want to see better examples from others, I should practice what I preach, and only release the refactored stuff, and things that don’t set off any code reflection warnings. Last week I only had the energy to write 3 base classes, each one had at least 2 or 3 code smell warnings. This week I refactored and got fewer warnings, but then the limits of the docs smacked me in the face, and things broke. I suppose this is part of the growing pains of learning how to use new tools. And then I bang on the problem until I either revert to a smell-but-working version or figure out what the documentation meant. This is when I re-read this: http://stilldrinking.org/programming-sucks so I don’t feel so bad about why I am not getting it.

This past year saw another significant increase in page hits, which is cool in some respect. However I value interaction more, and comments are few and far between. Still people seem to care mainly about music and bluetooth headphones. The great thing is, BT headsets are now in the realm of “very affordable.”

FYI, the prior post generated a few “corrections” as to the song title of Squeeze’s “Another Nail For My Heart.” After a short discussion, and seeing both versions in print, with most favoring the one I thought to be inaccurate, I decided to write the songwriter to ask because it was starting to bother me. After listening to that song for a good 3 decades, I was convinced it was a mistake someone made, who was not familiar with the song. The lyrics said different, while the old saying says something else. It would have been natural for someone, early on, to favor the familiar saying, instead of the more subtle lyric. I alway interpreted it as if the “nail” was either a love song or a drink, or both. Here is a guy heartbroken over a breakup, drinking his sorrows, while the piano player sings  songs, each love song, another nail for the writer’s heart. This is conjecture, unless the songwriter weighs in, but it is my interpretation of it.

I figure, you can strive to be right or you can strive to be accurate. Favoring the former will mean less of the latter, whereas striving for accuracy will often net you being right more often. I was well prepared to be wrong, learn yet another small thing and wait a week while whomever intercepted the message, hopefully passed it on. To my surprise, about 5 minutes later, the songwriter, Chris Difford, answered, and wrote back:

Thanks for the email, it is indeed – for my heart…..

its been many years and it has chopped around on set lists, but from the original this is the real title

many thanks.

Cd

That, in and of itself was pretty damn cool. Sometimes I love the Internet, and being able to reach out and ask someone whose songs you have been listening to for over 30 years a question and get a fast as light answer, definitely falls within the realm of cool. By the way, I will leave readers with my summary, and a new axiom:

You can strive to be right, or you can strive to be accurate, but trying to be accurate instead of being right will get you both more often.

Someone probably already said this. If not, this one is mine. That, and I appreciate people who actually take the time to look things up — unfortunately, in the above case, the info is mostly wrong. Thanks for reading.

Continue Reading

If I like an application or see one with potential, I usually write the author or company that made it with a feature suggestion explaining why I want to do it, and how it would add value to an application — sometimes a great amount of value. Occasionally, I’ll receive a human written response that explains upcoming features along those line, says they’ll consider it, or explains some technical limitation. Either way, I will have to wait months if not years to see a feature added if it is ever added at all. I appreciate the feedback to my feedback. It lets me know the company or individual is receptive to comments.

One of the things I cannot stand is when a company sends me is an automated reply thanking me for the feedback. Big companies, I forgive slightly more, but small shops should probably take a minute to let users know their breath wasn’t wasted if they want to foster a good relationship with their customers.

After a programmer makes a great app, their next challenge is getting the word out. Unfortunately engineers tend to think differently than mere mortals: in general, the more brilliant an engineer the less likely they are to have the social skills to market their great apps, I have found.

Continue Reading

On occasion someone comes across something I have written and completely misses my point (despite covering it in often more ways than one). That person completely misses the attitude and approach I use. That person thinks I am either a hypercritical hard ass, unappreciative consumer or worse, a hypocrite. So often I have to clarify and correct whatever false assumption they made in order to get the point across.

When I tear apart a program or site and call it on its BS, I am also thinking that I should avoid those problems or errors in my own endeavors. Or I am recollecting memories of a time I did the same thing, and how it was now filed under “learning experience.” Also, people think that I do not look upon my own work with the same unforgiving eye for detail that I use when evaluating a piece of software or hardware. Sorry, wrong again: I am my own worse critic. When someone points something out that they think is stupid, I will either explain why it really isn’t because of X,Y and/or Z, or do something a lot of people have a hard time doing: agree with them whole heartedly, call myself a moron, and fix it if I can.

Hey we aren’t all perfect. And that’s another thing: I realize that no one is perfect, and when I point something out, I do not want to use it as a jumping off point for a person’s defense of themselves. I want to signal “hey this is good, but what I think would make it better is…” As a matter of fact, there is another post in the pipe about having to write verbosely (Mode Verbose) in order to prevent misunderstandings. It is about how writers often have to straddle, clarity and conciseness. If you detect a lot of wordiness and over explanation in my writing and do not see why I am beating a dead horse, than I apologize for wasting your time. I just do not want an expression of an idea to turn into a flamewar or dismissal (thus, missing the point) because I didn’t qualify a statement, and someone with less comprehension than you misunderstood. It is also one of the reasons I try to avoid making blanket statements and over-generalizations, such as prefacing or peppering my comments with words such as “the best,” “every,” “all,” “none,” and “never.”

Last, I tend to treat my opinions like science treats its theories: subject to change upon receiving new good information. I think this flexibility allows me to alter course quickly if I am about to make a mistake (If I see it in time). Some people think those that change their minds about something are weak-minded, and this might be true in some cases, but in mine and many others, I see it as a sign of strength. For some weird reason people think someone has to exhibit perfection in order to maintain credibility and confidence. That is not true: A person who is not bound so tightly to their beliefs, and doesn’t cling to them to give them a sense of self, has a stronger sense of identity. Think of it. Do you know who you are and only feel secure if your world is one defined by external forces, knit into one stable zeitgeist? Or do you define yourself, and revise that person daily to adapt to an every-changing worldview? I fall into the latter category because there is also such a thing a professional and social Darwinism. That is why when I make a mistake, I tend to find out what I didn’t see, why I fell into it and how I can avoid it in the future. So, call me hypercritical if you wish: I call it being mindful.

A while back I ended up on a newer friend’s shit list, unbeknownst to me. After a few days of short interactions or lack of interaction when possible, it was apparent that it wasn’t just a bad mood, but completely about something I did to upset this person. I did not know what I had done, so I had to backtrack to the place where I last saw the keys of friendship that I had lost.

The next opportunity I had to speak with this person, I asked if it was a case of me saying something offensive: Yes it was. It turns out I made a comment, completely intended as a joke, that was interpreted as something completely different. Upon discovering what the comment was, I was stumped as to why it was offensive. I asked, and as it turns out, the way the comment was interpreted touched upon a sore spot within this person’s past experiences. So, I apologized, having not meant it as anything but a joke, and told this person that it would not happen again now that I knew where the issue was. I asked if we were cool, and the reply was yes.

However, since then, any attempt to connect to hang out hasn’t received a reply. In short, I’m on their shit list. After 2 attempts at communication, I usually give up if someone doesn’t reply: I can take a hint. But it is sad I cannot tell this person my philosophy about how I handle people who have wronged me. It boils do to this:

Continue Reading

I was initially very hesitant to start a blog. Who the hell cares about what I think or what I do? The only people that might care, I talk to in person or via IM, regularly. But a funny thing happened since I established my first blog years ago: I realize that things obvious to me regarding technology and its proper use and abuse, were not so clear cut to others.

I have always seen over the next hill when others are staring at the road, and a few are looking at the top of the hill as far as where tech is going. I know the ultimate purpose of technology that practically everyone seems to forget. I know that all the current mainstream interfaces will eventually be replaced by things that are only in laboratories now. And I recognize that even those could be superseded by more refined technologies that would look like magic to anyone not paying attention.

Continue Reading

I have been following Dalton Caldwell on Twitter and reading his blog posts for sometime now. A vast majority of the time, I am nodding along to each of his points, as he points out a company or industry’s fundamental breach of trust or lack of sense in some new strategy that will revolutionize the industry.

This time Dalton is trying to kickstart a new social network with a twist: App.net. Instead of selling you, the user, and having you do all the work by posting content and telling the company what you like, only to have them turn around and sell your data to marketing and advertising agency. So, they can resell it to businesses looking for people in your demographic as a higher priced “targeted ad,” he aligns the social network with users by having the money come directly from the users. Dalton—being a “very smart guy”—knows the idea of paying for a service that is usually free in order to get better treatment has come.

When live journal, tribe, friendster and myspace were all trying to figure out how to monetize their social networking sites, the public at large, didn’t understand how valuable having a way to broadcast to the internet was. Now, that the public has had a taste, the idea and acceptance of social networks being a valuable way to communicate with friends has allowed people like Dalton to finally offer a service that people know the value of paying for. Tribe, Friendster, MySpace, LiveJournal, etc. were all trying to ride the wave when it was still out at sea while also getting towed be boatloads of advertising cash. Facebook, Google and Twitter are now trying to catch a line from the advertising boat, and alienating some of the people generating the wave.

They could easily turn around and offer a paid, ad-free service, however the real damage is with their selling and sharing of your data—things such as you email address, name, age, sex, address, zip code, etc. Once sold, the Facebooks of the world cannot redact any of that information. There is no mechanism to pull your data once it is let out to a third party app or game a person tries even just once. While FB’s compliance policy says the app maker must delete your data if you remove their “free” game, there is no enforcement, nor any auditing to make sure this is actually happening. So, really, it is time for a new entity with a clean slate to start with a center that is based on serving the people who pay for the service rather than the advertisers and companies that pay lip service to privacy concerns.

The saddest part is, even when a big company such a Google or Facebook adopt practices that are gross violations of privacy or make errors that would land a person in jail, they get what amount to a slap on the wrist, and publicly apologize, saying, “it will never happen again.” But we all know that their profit-margin from either alleged “mistakes” such as bypassing a DO NOT TRACK header, or sneaking persistent ID cookies in there to follow your browsing habits far outweigh any penalty once they get caught.

For instance an executive at BP could have sat in his office knowing full well they would be forced to cough up up to 2B for gross negligence (as long as they kept their mouths shut and never admitted wrongdoing), but also the net profits will be up 50% to 15B. That 2B dollar fine is just the cost of doing business and still a 30% jump above last year. (All of this is speculation, and I haven’t even checked their numbers, but you get the idea.) The same could go on every day at a large company in the social network space as well. An executive could weigh the risk-reward ratio of any illegal action, and figure that with enough spin, plausible deniability and legal fees and decide that the penalties are far enough down the road, and that public scrutiny only lasts so long.

I see BP gas stations today and they are doing business as usual with pump prices holding steady a lot higher than before the explosion in the Gulf, because people don’t care unless it is convenient for them to. If it is inconvenient to not use a product or service that they know is from an ethically deficient company, they generally make excuses or just admit, “I don’t care” if they are a more honest person. In fact as long as their interests align, they are willing to put up with a few questionably ethical practices.

The thing is, if one of these companies deices that their quarterly profits are worth more than a permanent injury to a group of people (such as their identity being stolen and their credit destroyed) or the environment (such as sea life mutating thanks to oil dispersants used in concentrations that would affect cell replication), then you or the victim of their risk-reward calculation are fucked. Because all that will happen will be a slap on the wrist, and lip service. There is no such thing as a corporate death penalty for accidents, nor gaming the system. But there should be.

That’s why I hope Dalton succeeds. If his service takes off the ground and holds to its ethical center of “people over profit (but a profit is needed)” then companies like his will take care of killing the parasitic companies and the sociopathic companies for us. So, while I haven’t backed the project yet. I will definitely earmark part of my budget for it, and help by telling people. I do the same for any company that “gets it,” such as duckduckgo.com: because face it, Google’s “‘do no evil’ mantra” has evolved into (as George Carlin would say) “pure bullshit.”

I am not against making money, but I think no company should ever place the basis of their revenue stream at odds with sound ethical practices. If their is ever a question, then obviously you are in the wrong business or talking to the wrong people. Advertising and marketing are usually at odds with maintaining honesty and privacy, and those are the areas I would never work in. For instance: What would I say if asked to develop a system to help people find information when they want it? “Great!” Develop a system to monitor what people are doing with this tool? “Fuck off.” Why? because it’s a basis of freedom, and the word “freedom” does not mean “We will monitor what you do, so only do what we want you to.”

So, yeah, I have $50–$100 for dalton because I value people who put their business practices inline with my concerns for privacy and ethical behavior. Do you? Ask yourself if you really do too. Are you concerned enough to pay someone for this so they can erode those that are paying the numbers with your health, safety and security as their poker chips?

I just saw the mini post it notes today on ThinkGeek (https://www.thinkgeek.com/homeoffice/supplies/ba1d/). I wish I had thought of a few of those sayings. Oh wait! I did…

An old CDT friend loved these so much he stuck them on his walls.

Continue Reading