The Dangling Pointer

Sh*t my brain says and forgets about

Fix ScanSnap on Mac not opening Evernote properly

Do you have a ScanSnap scanner on your Mac and scan things to Evernote?  You notice that if you have Evernote running, ScanSnap can’t launch Evernote properly?  You might get an error message like the following:

Failed to start up Evernote for Mac. Make sure that the selected application is installed correctly.

Failed to start up Evernote for Mac.
Make sure that the selected application is installed correctly.

Turns out Evernote is broken.  EvernoteHelper.app is an embedded application that runs while Evernote is running (or while it’s in the background) and if you’re set to English, its name is the same as the main Evernote application.  Technically, the CFBundleName is being overridden in the InfoPlist.strings file.  You can verify this by running /Applications/Utilities/Activity Monitor.app and seeing:

2013-12-27_15-09-54

How do you fix this?  Well, Evernote should really fix it.  In fact, I’ve opened a support request with them.  But until then, you can follow these steps to modify the bundle name by hand.  Follow these directions at your own risk.

  1. Open Terminal.app in /Applications/Utilities.
  2. Type the following command and hit enter:
    curl -o /Applications/Evernote.app/Contents/Library/LoginItems/EvernoteHelper.app/Contents/Resources/English.lproj/InfoPlist.strings https://i.cloudup.com/ovQskXFl1h.strings
  3. Type the following command and hit enter:
    killall EvernoteHelper
  4. Restart Evernote and try scanning!

Please note that this fix will most likely break every time Evernote is updated.  Like I mentioned I submitted a support request to their team to see if it can get fixed permanently.  This was attempted with the stand-alone download of Evernote, not the version available in the Mac App Store (it may work with the App Store version too).

 

Updated 2014/01/02 – The team handling support at Evernote has acknowledged receipt of the problem and is forwarding it to the product team for review.

Cable companies: Please, take my money!

I cut the cord two years ago from cable TV but am interested in using apps for the iPad and Roku to watch live cable TV.  I called Time Warner Cable today to ask them if they offered a cable TV package that wouldn’t require a physical installation.  TL;DR – using the TWC TV apps (iPad, Android tablet, Roku) requires a physical install.

My Situation

Most of the summer (April – October) I’m not home on the weekends as we have a seasonal spot at a campground about 3 hours away from home.  We ended up cutting cable two years ago and don’t really miss it for what we used of it.  At one time I ran a MythTV server with two tuner cards, and it worked well.  I have since moved to two dual-tuner HDHomeRun units with Elgato’s EyeTV running on a Mac mini.  It works well enough and it allows me to stream and download any recorded content to my iPad/iPhone.  I can even watch live remotely and not pay anything extra.

There are a couple cable shows that I pay for per-episode on iTunes since cutting the cord.  I’m happy to do so as they are high quality recordings that don’t get permanently erased when the shit cable DVR craps out.  Some cable channels stream their content on their site for free with ads included – some are even at HD quality.  There are a couple channels that I really want to watch, but I can’t without an active cable subscription – CNN being one of these.

I recently moved into a new house and it was not wired for cable TV.  I use ethernet and WiFi to pull content from the networked tuners, so it didn’t matter.  The less infrastructure, the better in my opinion.  I do not want cable lines strewn through my house or outside along the siding because the installers can’t take the time to fish cable properly.  No thanks.

What I Want

I want a subscription to cable TV that is solely supported by two things:

  1. All of their apps (iOS, Android, smart TVs, and Roku)
  2. Third-party sites requiring cable subscriptions

Zero infrastructure in my house is a requirement – I already pay for broadband Internet from the cable company.  There is a cable line in my house, terminated at the modem in the basement.  I shouldn’t need anything else.

I want to be able to watch shows live – on demand would be great – through the devices I already own.  I want to be able to log into websites and watch their content which should be offered to the public anyway supported by ads.

Why Cable Companies Won’t Do It

Well, at least why they won’t do it soon.

Cable companies have invested a LOT in their television signal processing and distribution technologies.  They’ve made the move in the past five years to going to a switched (IP-based) network to allow them to grow outside the constraints of electromagnetic spectrum limitations of cable line medium.  They also have a lot of people working for them to support the networks including sales staff, engineers, technicians and all the associated management around that.

There are also several legal limitations to take into account.  Local municipalities and States levy heavy tariffs [examples] against cable companies that are passed onto the consumer.  Internet service is typically not covered by this – only sales tax.  TV not limited to a physical location gets tricky when taxation is involved.

This move means their primary bread & butter will be broadband Internet.  More people are ditching cable TV and keeping their broadband Internet.  Internet access is now a utility and is as difficult to live without at home as it would be without gas or water.  Requiring people to have broadband Internet service keeps a good portion of that cable network support staff employed.

The Sad Reality

Finding content that you want to watch can be really difficult.  Studios and distribution companies have made it way too complicated (if not impossible) to legally purchase or view some shows.  Sadly, people are still going to turn to BitTorrent to find the shows they want to watch.  It’s lost revenue for advertisers, cable companies, and software developers for cable companies not to support this new model of accessing TV.

Cable companies need to adapt and quickly.  We’re only going to say “TAKE MY MONEY!!” for so long before we move on!

NSNotificationCenter Block-based Observer

Back in iOS 4, a nifty block-based observer method was added to NSNotificationCenter:

- (id)addObserverForName:(NSString *)name object:(id)obj queue:(NSOperationQueue *)queue usingBlock:(void (^)(NSNotification *))block;

Super convenient, right? I love using blocks to pass simple callbacks to controllers instead of creating a delegate protocol. There is a catch with this method, and it’s not terribly obvious unless you’re looking closely. The method returns (id) – according to Apple’s documentation the return object is “An opaque object to act as the observer”.  What does this mean?

Typically when you register your class instance as an observer, you pair it with a removeObserver somewhere else usually in dealloc.  The thing is, removing self will NOT remove block-based observers! The opaque object that the method returned needs to be retained somewhere so that removeObserver can be called with that object. This is especially important if you’re calling self within the block to eliminate a retain cycle/memory leak.

Read more about the method and it’s usage in Apple’s documentation.

Paying Attention at Automattic

All of my teen and adult life I realized that I perceive the world a little differently than most. I’d like to think I’m a smart guy but I never did very well in high school on exams especially for topics that weren’t science/math/computer related. I couldn’t read textbooks very well; my eyes would gloss over the details and I’d realize after reading a page I retained none of it. I hated research papers the most. In my early teens I discovered electronic music (at the time everything was called techno) and I realized listening to it while doing homework would keep that part of my brain busy so I could somewhat focus. I never put a name to the condition and just moved forward.

In my adult life, I coped with the challenges of whatever this condition was through a series of tools that I put together through trial and error. None of these tools were formally created by myself, much like the music discovery in my teens, I found what worked and continued with it. I ended up continuing on into college part time at night while working full time – I found the context shift during the day allowed my brain to focus on the learning. I did very well and my grades finally reflected how I felt what my potential could be. Work itself was a challenge, but I realized I liked taking on a number of different tasks and spending a pre-determined amount of time on each every day, keeping a structure in place to prevent boredom. I continually wanted to learn new things. Music and noise-canceling headphones also were still in my toolbox.

As I elevated myself in my career, getting more responsibilities like peer mentoring and tech lead on projects, I found the tools I had in the past didn’t quite work for this. Having to interact with others and integrate with their workflows caused me to derail pretty quickly. Keeping focus and retaining facts got hard at times. I plugged on.

Flash forward to me starting at Automattic.  Automattic, if you’re not aware, is an entirely distributed company.  All of us work out of our homes or wherever we may be.  We are all forced to be self-starters and good communicators over IRC and through posting of internal blogs.

I realized pretty quickly – within the first week there – that my quirkiness with focus and attention was more than just an annoyance. It was preventing me from maintaing cohesiveness between the work days and I felt like I was losing track of important details. I had an annual physical coming up so I decided to voice my concerns with my primary care doctor. He was receptive to what I was talking about but required me to talk with a specialist in the clinic – she is a trained counselor that deals with a variety of issues, ADHD being one of them. It was apparent to her that I had been showing signs of ADD (not so much hyperactivity) and suggested we take a layered approach to combating it. I was not comfortable with being on medication for the rest of my life but was willing to give it a whirl so I had some idea of what “normal” feels like.

So what’s my next steps and am I seeing any improvement? Short answer, yes, the medication seems to be helping with attention and focus. I can have conversations with people and I hold onto the train of thought much easier. I’m doing other things as well including meditation, yoga, exercise and some computer software to keep things in check. I’m also started a new internal blog at Automattic called Automattention for those of us who want to talk about ADHD and how it affects our lives at Automattic. I also plan on sharing my experiences here as I think it’s something a lot of people can benefit from hearing!

iPhreaks Show – Guest Panelist

I had the awesome privilege of being a guest panelist on the iPhreaks podcast talking about scalable cloud apps to back your mobile phone apps.  We talked mostly about Parse but we did also discuss a lot of new service offerings like Microsoft Azure, Simperium, and a few others.  It was fun and unscripted for sure.

http://iphreaksshow.com/021-iphreaks-show-scalable-cloud-applications-with-aaron-douglas/

Take a listen and make sure to subscribe to their podcast if you’re even remotely interested in Mac and iOS development!

Apple App Store Deprecated Version Nightmare

At first glance this news seems awesome for consumers:

Apple offering ‘last compatible version’ of iOS apps for older hardware

Finally my old iPhone 3G can download apps that I purchased after iOS 4 became obsolete!  This should have been communicated to us as developers and the revenue channel for Apple.

 

Developers, on the other hand, should be ready for an onslaught of support requests they can do absolutely nothing about.  We’ve assumed, since the beginning of Apple App Store time, that old versions were not installable by devices unless they pulled a backup IPA and installed it manually.  We know this happens fairly rarely.  Some of us put checks in the app to notify users of new versions in the App Store, but did we prevent the app from functioning?  Probably not.

If we have a backend in our apps, we probably continued to support the old version for a while by versioning the API calls.  Most likely iOS 4 is not even something we test against our API.  Now imagine users turning on old devices and installing an ancient version of your app.  Do we expect it to work?  We knew that this was a scenario but now that Apple is allowing downloads of an old version it implies we as developers support that version.  We really need the ability to issue point releases for a particular older OS if this is to be a viable option for users.  Up until now we’ve been told to abandon old iOS versions fairly quickly.

Hopefully Apple communicates this change to us formally and gives us the tools to prevent bad app reviews and an onslaught of support requests we can’t do anything about.

Manual note-taking epiphany

I’ve never been able to put in words the reason why I am attached to using written notes over my iPad until today.

I was sitting in a talk today by Rob Martin when I had an epiphany. When I’m holding my opened notebook, the crisp clean chunky feel of unused pages on the right feels like raw potential. The pages on the left, roughened from notes written on them, feels like accomplishment.

And now I realize why I am inspired to write and record more on my paper Moleskine notebook than in Evernote on my iPad.

Going Down the Core Data Rabbit Hole

I gave a talk today at That Conference in Wisconsin Dells, WI USA.  I’m posting my slides here so that others who didn’t have the chance to go can peruse them.  Hit me up with any questions or if you’d like to have audio to go with it.  I’d have to record it, but would love to do so if there is a desire.

Cheers!

GitHub: https://github.com/astralbodies/CoreDataRabbitHole

[slideshare id=25224548&style=max-width: 427px; border: 1px solid #CCC; border-width: 1px 1px 0; margin-bottom: 5px;&sc=no]

Migrated back to WordPress

I’ve been using Octopress for over year and I really enjoyed it.  You have to love the command line, understand Git, and know your stuff when something breaks.  Oh, and it will break.  A lot.  But when you fix it, you get that satisfaction that you’re a geek and you got it.

I was kind of done with the shit breaking.  (That and I got a job with Automattic)

So now I’m back to WordPress.  Luckily I had kept my WordPress site around that I migrated from to Octopress.  I found that Octopress, because it was a simple type and post software, made me blog a lot less. A LOT less.  That benefited me because I was able to copy and paste the 12 or so blogs I made into WordPress.  I made sure the titles were the same, the date published matched, and I copied the tags.  I had to install a GitHub Gist plugin because I used a lot of Gists in my posts now.  I also had to manually upload images from my posts into the blog.

I had to modify the default permalink setup to match Octopress’ way of doing things to keep search engines from breaking.  Then I installed the official Disqus plugin and synced in all of my blog comments into WordPress and then shut off Disqus.

Custom permalink: /blog/%year%/%monthnum%/%day%/%postname%/

I’m really happy to be back.  Ping me if you have questions about how I did the migration!

Diversity in Developers

I had an excellent weekend at CocoaConf Chicago meeting interesting people and reconnecting with many as well.

One of the subjects that was brought up in Brittany Tarvin’s Friday Keynote talk was that of women in the technology field. I had the pleasure of meeting Brittany at SecondConf and it was great to see her challenge to encourage women (and girls) to be software engineers brought to CocoaConf. Her talk stirred a lot of discussion, especially in the reverse panel discussion Saturday. The overwhelmingly positive response to her message was inspiring. Nowhere before have I experienced such open-minded discussions and outright admittance that we can all do more for women and other minorities in the tech field.

I talked with a Brittany at SecondConf about the topic of the disadvantages women have when dealing with a white male dominated field. I admitted to her that I have similar experiences being gay and working for companies that have a “brogrammer” type of atmosphere. I left one job because I felt there was no way I could be open about myself there. The job had the typical “brogrammer” atmosphere – mostly if not all male development staff, a good majority right out of college, discussions of a sexual nature, and pressure to conform ever-present. The job became too much when I worked on-site at a client install for nearly a month. Discussions of going to “titty bars” and frequent use of the word fag and gay topped my list of offensive remarks.

I’m usually the type of person who lets things slide, opting for a neutral reaction. Instead of trying to fix everything at the company, I left. My current employer has been fantastic, and I feel no need to have to hide who I am. I am certainly more productive and my coworkers see me as a part of the team. I’m by nature an outgoing person (you can thank my mom the social butterfly) – so being the “shy” one at the more conservative company should have been a flag to myself.

Geeks need to be more empathetic and understand that not everyone thinks the same way. Parents need to encourage their children to do what they want to do and not limit them to things that are pink if they’re girls and blue if they’re boys. When you’re at work, don’t make assumptions that just because you work with someone means that you understand them completely. We all are unique people and we all have beliefs and emotions. I’m not asking for you to accept these emotions and beliefs, but just respect that they are there and try to work together.

I encourage you to get involved in school outreach programs to teach children about technology. Open their minds at a young age and enforce the idea that we all can be what we want to be. Gender/race/sexual orientation bias is not acceptable in this day and age.

Simply put: Quit being a dick.

Please check out Brittany’s work at Tumblr and Twitter. Check out Brittany’s employer Fading Red whom also actively supports her.

Page 25 of 30

Powered by WordPress & Theme by Anders Norén