A Coffee Retrospective

2016-04-01 10.51.28Back in March, I was inspired by Manton’s Austin coffee quest and decided to try my own “30 Days of Coffee.” Starting on April 1 and continuing for 30 straight days, I would experience a new cafe or coffee shop that I had never visited before. The rules I set for myself were fairly simple:

  1. I must visit a coffee shop each day for 30 days.
  2. I can not have had coffee there previously.
  3. The coffee shop must reside within the boundaries of N/NE Portland. (I did this so that I could somewhat mimic Manton’s challenge given the plethora of coffee shops in Portland vs. Austin.)
  4. In order to count as a “coffee shop” it must serve lattes (my drink of choice)

I have now completed my 30 days, and I have to tell you that despite sounding easy, it’s actually quite difficult to do ANYTHING for 30 days straight. There were more than a few times that Tiffany had to remind me that I hadn’t made my daily trip (especially difficult since most non-chain coffee shops close at 4 p.m.)

Along the way, I documented each visit on my microblog which you can find here. I also snapped a picture of each location that hopefully gave a small glimpse into the ambiance of each.

This entire endeavor was an experiment in a number of areas, and I can honestly say that I learned a little bit about myself along the way. As I mentioned, I was microblogging the adventure and somehow ended up having a number of people who followed along. A few have even asked for a summary/recommendation list, to which I am more than happy to oblige.

The following is my list of coffee shops that I would gladly return to again. The rankings are relative to me, which means that it’s based on a blend of coffee quality, ambiance, location and overall comfort (including my ability to work remotely). This is simply a ranked list out of the 30 that I visited, not my overall list for Portland. In fact, I think only one of these would crack my Portland top 10 list.

So, with all of these caveats out of the way, here is my ordered list of places that I would gladly revisit:

  1. Blend Coffee – I cannot say enough good things about this place. From the cleanliness to the thoughtfulness of the seating to the ridiculous number of power outlets, everything about this place is well thought out. I only wish it was closer to my home. That being said, this is the only coffee shop on my list that I would go out of my way to visit. If you haven’t been here, I absolutely recommend a visit.
  2. Bassotto – This place was an absolute gem of a find because it’s actually a fantastic coffee shop disguised as a gelateria. It also doesn’t hurt that it’s located next door to the amazing Tamale Boy, but I think I’d come back even if it was located elsewhere. Finding Bassotto was one of the reasons that I did this challenge. It allowed me to find an awesome place that I normally wouldn’t have tried on my own.
  3. Prince Coffee – This place is SMALL. It’s also very new and in the beautiful Kenton neighborhood. I will revisit this place if for nothing else than their homemade stroopwafels.
  4. Miss Zumstein – This location is very comfortable, but their pastries are wonderful. The staff is friendly, and they have great coffee, but man are those pastries good.
  5. Locale Coffee – This is another of the new-wave Portland coffee shops located in the Mississippi neighborhood. I would definitely go back to it again, but there’s nothing particularly special about it. If you’re looking for a decent place to meet someone for coffee and you need to be near Mississippi, you can’t really go wrong here.
  6. Saint Simon – This is yet another stereotypical new-wave Portland coffee shop. It has good coffee, is nice inside, has a good location, but is a little too “trendy” for my taste. Think I’m exaggerating? Everything from the moose head on the wall to the forced industrial look to the “wood block” seating just screams Portlandia. I’d definitely take coffee from here again, but I probably wouldn’t stay for long.
  7. Seven Virtues – I didn’t want to like Seven Virtues because I find the entire Zipper building to be somewhat pretentious and annoying, but I have to admit that it was pretty nice inside and they had good coffee to boot. I’ve heard from at least one person that they went here right after it opened and were very unhappy with their experience. Perhaps they had some initial issues getting going?
  8. Posie’s Cafe – I’m not sure if I liked Posie’s based on its own merits or because it’s located in the Kenton neighborhood. Regardless, I found it to be very charming and a nice place to pop into if you’re looking for a quick caffeine pick me up. They had a lot of seating and had some pretty good looking pastries as well.

And that is it. Out of 30, I would revisit 8. Of the 8, only one of them would crack my top Portland Coffee Shops list. (I’ll try to put that together soon as well.)

As I mentioned, the challenge was more difficult than I expected given how often I go to coffee. In fact, I’ve started thinking differently about 30 day challenges in general and I have a few more I might try in the next few months. If you’d like to see the entire list of 30, I’ve included it below. You can also find my posts on Twitter or Facebook with the hashtag #pdxcoffeehunt.

  1. Cathedral Coffee – 7530 N Willamette Blvd
  2. TwentySix Cafe – NE 7th Ave
  3. Miss Zumstein – 5027 NE 42nd Ave.
  4. Saint Simon Coffee – 2005 NE Broadway
  5. Tiny’s Coffee2031 NE Martin Luther King Jr Blvd
  6. Fillmore Coffee – 7201 NE Glisan St
  7. Prince Coffee – 2030 N Willis Blvd
  8. Bison Coffee House – 3941 NE Cully Blvd
  9. Seven Virtues – 2705 NE Sandy Blvd
  10. Batter – 4425 NE Fremont St
  11. Kopi – 2327 E Burnside St
  12. Locale – 4330 N Mississippi Ave
  13. The Fresh Pot – 4001 N Mississippi Ave
  14. Goldrush – 2601 NE Martin Luther King Jr. Blvd
  15. Bassotto – 1760 NE Dekum
  16. Spielman Bagels – 2200 NE Broadway St
  17. Wholesome Blend – 4615 NE Sandy Blvd
  18. Cup & Bar – 118 NE Martin Luther King Jr. Blvd
  19. Heart Coffee Roasters – 2211 E Burnside St
  20. Blend Coffee Lounge – 2710 N Killingsworth St
  21. Cafe Eleven – 435 NE Rosa Parks Way
  22. The Arbor Lodge – 1507 N Rosa Parks Way
  23. Whole Foods Coffee Shop
  24. Extracto – 1465 NE Prescott St
  25. Coffee People – Portland Airport
  26. J Cafe – 533 NE Holladay St
  27. Coffee House Five – 740 N Killingsworth St
  28. Case Study – 1422 NE Alberta
  29. Posie’s Cafe – 8208 N Denver Ave
  30. Elevated Coffee – 5261 NE Martin Luther King Jr Blvd

 

 

The Trouble With Cross Posting

Recently, I setup a microblog (http://jonhays.me) to supplement my interactions on Twitter, Facebook and Instagram. After several conversations with my friend Manton, I decided that I would setup a new WordPress site and use that as the content “repository” and use cross-posting tools to distribute out to Twitter, Facebook and Instagram.

There are several reasons for doing this, but my primary motivations are:

  1. I want to spend less time on the individual social media platforms.
  2. I want to own my content and have better control over it.

After a little bit of consternation over appropriate domain names and blog names, I set about assembling the site and my work flow.

One of my high level requirements is that I wanted to be able to post to my microblog from my phone. Another of my requirements is that I wanted to be able to post entries both with and without images. Of course the third requirement that I mentioned above is that it needs to cross-post to Twitter, Facebook and Instagram.

Naively, I just assumed I could use the WordPress app and setup a few IFTTT triggers and be done with it. As you can guess, it’s not quite as simple as that.

Let’s tackle cross-posting of images first: what should be posted to Instagram for a blog entry with no image? With multiple images?

Realizing that simply posting from WordPress wasn’t going to work, my first instinct was to modify my workflow so that if I wanted to post an image, I would post from Instagram and use an IFTTT action to then cross-post the image to my microblog which would then cross-post to Facebook and Twitter.

Unfortunately, using this method is like playing a game of telephone with social media and the end result looks like this on Facebook:

Screen Shot 2016-04-12 at 10.30.16 AM

Several of my friends replied after seeing these asking if my computer got “hacked.”

Images aren’t the only troublesome area either. Take for instance cross-posting of text posts larger than 140 characters to Twitter. It turns out that IFTTT is actually quite terrible about handling these as well:

Screen Shot 2016-04-12 at 10.47.32 AM

Simply truncating the text without a link back to the original post is the worst kind of tease and also not acceptable. What a good cross-post tool should do is truncate at word boundaries and provide a link back to the original post. IFTTT is simply not up to the task for this.

In fact, as it turns out, IFTTT is actually quite terrible for cross-posting to just about every platform. I am investigating other alternatives at the moment but as of right now, I am still stuck with those terrible Facebook cross posts, and I have no way to post directly on the microblog and have the ones with images get cross-posted to Instagram.

Fortunately, there are smart people working on these problems! I’m using a beta tool to do the cross-posting to Twitter. The beta tool actually works quite well and I’ve been trying to convince the author to expand to include Facebook as well, but he’s reluctant to add more features at the moment because he’s trying to launch.

With so much out of control negativity and lack of author control on Twitter and Facebook, it feels like there is an opening for something like micro-blogs to augment existing platforms in a positive way. And while I don’t think Twitter or Facebook are going anywhere, I believe micro-blogs can help fill the gap for content creators that are conscientious about their craft.

I’m still exploring other avenues for cross-posting and I’ll try to post updates as I find them either here or on the microblog, but it feels like this is a viable, mostly untapped market.

 

First Musings on WWDC 2014

I’m writing this sitting in the San Francisco airport waiting for my return flight after a great week at Apple’s annual developer conference. It’s been an amazing week and I’m still processing a lot of what I experienced. First off, let me say that I believe that WWDC 2014 will be considered a turning point when viewed in retrospect. As a developer, I am absolutely giddy with all of the possibilities that Apple has opened up with their announcements. There is a stark contrast between last year’s developer conference and this year’s conference. At the end of last year, I was thinking about all of the things that I HAD to do with iOS 7. With iOS 8, I am absolutely bubbling with ideas of things that I GET to do. iOS 8 is going to be a big deal. From HealthKit to HomeKit to Extensions to CloudKit, Apple has paved the way for some amazing things to be built.

And then there is Swift. Swift has taken my excitement about the new frameworks and cranked it to 11. Not only has Apple provided a sorely needed modern language to the platform, they have delivered it complete with a fantastic toolset. Clearly this has been in the works for a very long time. Swift development reminds me of the early days when I was first learning to program. Back in those ancient days, you simply turned on your computer and started typing. Swift very much has the same feel to it. In fact, I actually plan to have my 9 year old son sit down with me and learn it together.

This is big stuff. I am still processing a lot of what I have seen and learned and will post more as I unravel it. I think this is going to be a great year to be an iOS and Mac developer!

Free Code!

For Sunlit 1.1 we decided to expand the import capabilities to include both Flickr and Instagram photos. One of my challenges in developing the interfaces was to simplify down the various functions available from Flickr and Instagram’s APIs and to try and provide a somewhat consistent interface across the two services for the app despite their differences. Writing this code was no mean feat for me as I had to implement OAuth not once, but twice because Flickr and Instagram use slightly different variations so I couldn’t simply reuse the code across the two classes.

By the time I was done, I was relatively happy with the interface I had created, and in the spirit of openness and sharing with the community in which I develop, I have decided publish the source for querying and requesting data from both these services in my open source toolbox code. Affectionately named UUFlickr and UUInstagram, the classes are relatively simple to use, and you should be able to get you up and running quickly. The only moderately tricky part is updating your app to handle the URL callback mechanisms required by the OAuth implementations. I had fun developing this code, and hopefully someone will find this useful. If you’re interested in using it in your project but need a little help, feel free to ping me and I’ll see if we can’t figure it out.

Enjoy!

What the Flappy Bird Knows

The strange case of Flappy Bird seems to be all over the Internet right now. If you’re unfamiliar with the app, take a moment to educate yourself. Reading comments from its creator, it’s clear that the developer did nothing to promote his app, and obviously had no idea that the wave of success was coming his way. Anyone with a discerning eye that plays the game will also come away confused because quite bluntly, there’s nothing noteworthy here. Instead, what you see is a bizarre case of mob mentality charging through the App Store, and ultimately, I feel sorry for him. However, what concerns me most about this situation is that it highlights all the things that are wrong with the App Store and the most troubling aspects being that these two things have now become the accepted norm:

  1. The App Store is viewed as developer hostile
  2. Success on the App Store is more or less a lottery ticket.

The App Store is Apple’s ace-in-the-hole advantage in the Smart Phone platform wars and it should do everything it can to protect that advantage. As a case in point, I recently tried carrying a WindowsPhone for a week (more about that in a different post) and I found the device quite pleasing overall, but ultimately I couldn’t get past the lack of essential third party apps. This is Apple’s huge advantage, and as a platform, it is in Apple’s best interests to treat the App Store as a meritocracy where the best of the best rise to the top. Right now, that isn’t happening. I really hope that someone at Apple is paying attention.

Apple’s Next Love

Apple’s next product is going to be a smart band. Not a smart watch; a smart band. The difference is subtle, but significant: a smart watch implies that the device’s input is chiefly on its face and that its primary job is to display information to the wearer. As a long time smart band wearer, I can tell you that a smart band very rarely displays information and is much more important as an information collector, and this is where it gets interesting: Apple’s next product is going to convince you to put a device in direct contact with your skin. If they succeed in convincing you the things that can be done are limited only by the complexity of its sensors: heart rate sensors, respiration sensors, temperature sensors, vasculature visualization, non-invasive glucose monitoring, and more. This also falls in line with some of Apple’s recent hires: Roy J.E.M Raymann, Michael O’Reilly M.D., Nancy Dougherty, Ravi Narashimanetc. This has the potential to radically change healthcare in our world. Apple’s new device could revolutionize how we think about detection and prevention, and if you ask any medical expert they will tell you that prevention and detection is orders of magnitude more important than treatment.

Manton Reece thinks that Apple needs to fall in love with their next product category, and I think he’s right, but I actually think that Apple has fallen in love with its next product which is exactly why it hasn’t launched yet. One of the problems with being in love with something that you’re developing is knowing when to ship 1.0. It needs to be right. It needs to be perfect. I have a feeling, though, that they’re getting close, and when they do finally announce it, we’re going to be amazed.

The Schemes of Sunlit

One of the things that we established early on as a core principle for Sunlit was that we wanted to make sure we were focused on story telling and the sharing of stories and not on things on the periphery. Many times during development, we were tempted to create an über-camera or a whiz-bang photo editor, however the App Store is full of other apps that do these things and do them well. We do include a fairly simple camera in the app as well as some beautiful filters that can be applied, but what we really envisioned was people using either the built in camera app or a great third party app (such as Favd) to take their photos and then create a story with Sunlit using the pictures they had already taken.

To us, the true beauty of Sunlit is how it pulls together the value created from other platforms (App.net, Dropbox, Ohai, etc.) and creates something that combines all those things into something that is somehow more moving than any of them alone. To that end, it was important that we provide a way for Sunlit to fit into this evolving macro-system because we recognize that the best apps and the best user experiences come when things work cohesively. We are always re-evaluating how we can do this best, but I am very happy that Sunlit launched with 1.0 support for a number of URL schemes, including support for the x-callback specification. We also have a number of actions that can be invoked externally to allow other apps to extend support for Sunlit into the activities that they do well. The URL schemes are documented here and are updated as we add support for other actions. If you are interested in adding support for any of these and need assistance, feel free to shoot me a message on ADN (@cheesemaker) or post your question in the Sunlit Glassboard Forum (invite code SUNLIT) or just shoot an email to support@riverfold.com

Now go build something great!