Page 2 of 2

New Challenges, New Tools

I almost feel like a traitor, which is a weird way to feel about consumer electronics. But my next laptop is not going to be a MacBook. Our current development work on OpenShift requires easy access to a docker service, and Boot2docker just doesn’t cut it.

Apple provides an excellent ecosystem of interrelated apps; they find ways to make it easy to move content from one app to another that seem intuitive. This requires the lock-step portfolio-wide architecture that you will rarely see in open source. At least, not across native desktop apps.

But so much of what used to happen on the desktop has been replaced by the cloud, and so many interoperability problems are being solved by cloud app folks that in reality, the playing field is fairly level between OS X, Linux and Windows. My parting comment in my WWDC piece was:

…as more of our ‘office’ tools move to the cloud, any platform that can run a modern browser is a competitor…

I don’t necessarily want to do all of my work in a browser, but where web UIs go these days, native clients seem to follow.

What I Like About Mac

Thinking over my years of Apple product use, here’s the top three things I’ve loved about MacBook and OS X:

MacBook build quality is as good as it gets.
This is a big deal, and it matters to me a lot. The all-aluminum design is heavier than some carbon-fiber competitors, but the laptops can take a beating.

OS X provides great default apps.
There are many computer-based tasks where I am not strongly opinionated about the tools I use, and OS X bundles apps developed by people who were paid to be strongly opinionated about them. I’m talking about Mail, Calendar, Reminders, and Notes. The net result is a native app potfolio that surpases expectations, to the point where I feel no motivation to seek alternatives.

I can run Windows for Gaming
Apparently, Microsoft’s OS is capable of doing other things as well, but my laptop’s Boot Camp partition has one job: running video games.

But continuing to use a MacBook as my primary system when I am part of a development team that is doing full-stack work against a Linux kernel is just making less and less sense. And having needed to straddle OS X and Linux for the past three years, I’ve found a series of great cloud-based apps that replace or even surpass the OS X app portfolio.

The New Deal

Having taken all of that into consideration, here’s my plan for a replacement system.

OS: Fedora
From a desktop perspective, there are better Linux-based “out-of-box” experiences than Fedora. But for me, a huge part of being productive in OS X was learning the keyboard shortcuts, and Fedora has great keyboard shortcuts. It also provides a full-screen app / screen switching model that is ver similar to OS X, which makes changing desktops easier for Mac users.

I called out some great default OS X apps above; here’s my replacement plan:

  • For Mail, Geary. Geary provides a very similar conversation-based mail display model and works perfectly with Gmail. My one wish-list item for Geary: let me map IMAP folders to the “special” folders so that you can treat my “Archive” folder on the work server the same way you treat “All Mail” on Gmail.
  • For Calendar, California. Made by the same folks who do Geary (and Shotwell). The display is very Calendar like, Geary supports all of the same protocols as well.
  • For Reminders, I’m partially sticking with Reminders. Well played, Apple. For work tasks I’m mostly using Wunderlist because there are clients for Linux (via Chrome) and iOS. But Reminders has the nice “Remind me when I get to location X” feature so it continues to be used, at least on my phone.
  • For Notes, I’m using a combination of Simplenote and Zim Wiki. Simplenote does everything that Notes does, and Zim Wiki provides a more Evernotes-like experience but in a database that is completely not cloud-based. Some work info doesn’t belong in the cloud; it goes in Zim Wiki so I can still search on it and take freeform notes.

Hardware: HP Omen 15"
If you are not a gaming enthusiast, you’ve probably never heard of VoodooPC. They were a boutique PC manufacturer that made high-end gaming computers. They were bought by HP and after that, Voodoo continued to be associated with HP’s bleeding edge laptops and desktops. These days, the “Voodoo” name has disappeared from HP’s product portfolio, but their DNA remains in products like the Omen 15“.

Like the MacBook, the Omen features an all-aluminum body and a solid-state hard drive. Like the top-end MacBook Pro 15”, the Omen features a discrete graphics processor with its own dedicated RAM. But that’s where the similarities end.

The Benefits of Change

Feature-wise, and based on what we’re hacking at work, I believe I’ve won out in the bargain. Here’s how moving to the Omen matches up…

Lower Cost
As of the time of this blog post, the same-spec’‘ed MacBook Pro 15" with a lesser discrete graphics card cost more. Now, a major argument in favor of Apple has always been that they don’t charge for OS upgrades and Windows does, but in this case, 1) I’m using Linux as primary, so that’s moot, and 2) Windows 10 is also going to be a free upgrade.

Better Linux Hardware Support
I actually ran Fedora directly on a MacBook Air for a while, but the hardware support is not rock solid. Most notably, Apple’s choice of a PCI-based webcam with no open source drivers meant that I could never videoconference from my laptop. These are non-issues on the Omen.

Business in the Front, Party in the Back
The Omen has an almost embrassing amount of LED-driven “bling lighting”. It has LEDs backlighting the keyboard (which is pretty standard), but also in the speakers and fan exhaust ports. Happily, I can turn all of that off in “work mode” under Linux. The Omen doesn’t need it to stand out and look like an awesome laptop. But hey, when I flip it over to the “gaming OS”? Yeah, I’m cranking up the LEDs 🙂

Return on Investment?

Time will tell if I’m going to miss OS X. From the OS / apps side, I think I’ve found a combination that works well between a Linux laptop and an iOS phone, and on the hardware side, I feel like I’ve found a system with the same solid build as a MacBook.

The first time I spin up OpenShift directly on my laptop – that’s going to be a win.

iCloud “Family Sharing”: Great Feature Unless You Use iTunes Match

Family Sharing provides users with a way to share purchases from their iCloud/iTunes account with up to five other people. Additionally, this feature enables you to create iCloud accounts for children, and to manage the purchases and content available to those accounts.

iTunes has been around a lot longer than this feature, and so for years now, people have had to a different means to share app purchases across multiple users. The most common solution is pretty straightforward; create one iTunes account that is shared by multiple people. Apple supports this approach, too: on any Mac or iOS device, you can use one account for your iCloud stuff and a separate one for your iTunes stuff.

Pitfalls of a Shared iTunes Account

Some things associated with a shared iTunes account are problematic. For instance, podcast syncing is associated with your iTunes account, so if multiple people sharing an iTunes account have wildldy different podcast preferences, they either need to live without podcast syncing across devices, or accept a certain amount of data storage on their devices that will go to some podcast subscriptions that you have no interest in.

So, when I originally heard about Family Sharing, my impression was that this was Apple attempting to create a real feature around sharing purchases without needing to directly share an iTunes account, and maybe pull in some nice new functionality as well. Having looked into this some more, my verdict is “hit and miss”.

Family Sharing: Hits

Family Sharing includes a new layer of parental controls that was sorely missing in iTunes. My kids don’t have tablets or mobile phones of their own yet, but the time will come, and when it does, I will be sent an e-mail and will be asked to approve / disapprove any specific purchase that they try to make.

But the biggest feature of Family Sharing is, of course, the opportunity to share purchases across multiple accounts while still preserving the separation of those accounts. This solves the podcast syncing issue that I mentioned because under this model, each person uses their own distinct iTunes account and only purchased content is available to Family Sharing group participants.

Family Sharing: Misses

Unfortunately, the implementation is not perfect, and the largest gap would have to be the lack of support for iTunes Match.

For those who don’t know, the iTunes Match service enables an iTunes account to sync their music across all of their devices even if the music wasn’t originally purchased in iTunes. This is a huge, awesome feature that was introduced three years ago.

However, even if you use an iTunes Match-enabled account as the Organizer role in a Family Sharing configuration, the songs that you added to iTunes Match from other sources are not available to the Family Sharing members. For people who started building their music collections before the internet, or bought DRM-free music from an online store other than iTunes, this is a huge setback.

The whole point of sharing an iTunes account is to share content, but Apple is clearly drawing the line at content expressly purchased through iTunes. There are some other limitations as well, but for me, the lack of iTunes Match support practically guts Family Sharing as a feature.

My Take

I’m a few years out from buying any of my kids their own mobile device, so there isn’t any immediate benefit to me of the Parental Controls that Family Sharing provides. Nonetheless, I am happy that these controls exist now and that I have this option when I need it.

Meanwhile, Apple’s policy around nerfing iTunes Match for Family Sharing completely undermines the value of Family Sharing for adult users. If my wife and I used separate iTunes accounts that were linked through Family Sharing, we would actually be significantly limiting the amount of shared content available to one of those accounts. Thanks but no thanks.

Hopefully Apple will sort this out, because half of the functionality offered by Family Sharing is going to be pretty useful to me down the road. In the meantime my wife and I will continue to share an iTunes account. I think I can live without cross-device Podcast syncing 🙂

Where to Post? Finding Yourself Amongst Ello, Facebook, and the Glut of Social Media

Ello is a social platform that has been the subject of some buzz recently. Either by design or by accident, Ello is squarely positioned as the anti-Facebook, which immediately places it in a similar space in people’s minds. That’s a great deal for Ello, because feature-wise they have a long way to go before the can really throw down: no mobile app, no OAuth, no API. Ello claims to be built on a Freemium model that will sustain the company without them resorting to selling user info; but only time will tell.

Social Network Options Are Ever-Increasing

The bigger issue for folks like myself, folks who like things neat and tidy and simple, is that this is Yet Another Social Network, in a space where there are already tons of players. I doubt this situation will change; nobody really wants One Site to Rule Them All. But as a content creator, I find myself asking the same question with everything that I write: where do I post this?

For me, the answer seems to be divided along content / audience lines. I think that my tech audience is on G+ and my “human interest” audience is on Facebook. Twitter blurs the lines a bit; it is a popular platform for boosting people’s work agendas (including my own), but following anyone who only posts about work gets pretty dull. The jury’s out on Ello, but 24 hours into my Ello account and it is still pretty much a wasteland.

In Some Cases, Maybe It’s Function Over Forum

Blogging’s a little different for me. My blog is hosted on Tumblr, and by all accounts, I am way too old to be here. But in a medium where content and audiences are finding natural divisions across different services, as a content generator I am completely hooked on Tumblr’s blogging tools.

I can take a pass here, in one respect, because Tumblr supports CNAME aliasing. What does that mean? It means that I can map “blog.emichron.com” to my Tumblr account. So you aren’t completely jumping on board with me and the millennials in the Tumblr-verse just by reading this post 🙂 But let’s dig into this a bit, because to me, the fact that Tumblr offers this kind of rebranding is fascinating.

What if Social Networks were About People Instead of Services?

I know that there’s a few links at the top of my blog that advertise Tumblr loud and proud, so this isn’t exactly a white-label service. But imagine what an individual person’s web presence would be like if more social media platforms enabled this kind of sponsored content hosting?

You could follow me by subscribing to my blog, which happens to be on Tumblr. You could follow your Aunt Bea who is crazy addicted to Farmville and so her posts at blog.AuntBeaSuperFarmer.com happen to come from Facebook. The social networks get their cake (you know, data about you and everyone you interact with), but you get a bit of that cake as well.

I would like to see this idea take root: that you could pick a social medium on how it suits you, and reach out beyond the boundaries of that social network to engage with people as your own brand: yourself.

TL;DR: Stop Expecting Achievements to Make You Happy

A moment of clarity from the folks at HuffPo…

Here’s the best part: When you detach happiness from achievement, these five things that happen are the key ingredients to success. Disconnecting happiness from achievement is the best way to achieve anything…

OS X to Fedora 20: The User Experience, Part 2

Just tuning in? Have a look at Part 1 to find out how I installed Fedora 20 on a MacBook Air and why I am so interested in trying to duplicate or even surpass the user experience that I previously enjoyed with OS X.

The Cloud

Cloud-based mail, calendaring and file synching have really levelled the playing field between the desktop OSes. It doesn’t matter if you are using OS X or Linux if you read your e-mail in a web browser. Cloud-based services are also the foundation of another important aspect of my day-to-day life: my “gadgets ecosystem”. Even though I’m spending most of my time on Fedora 20 now, my phone and tablet still run iOS. As you will see, this strongly influenced the way that I’ve leveraged the cloud in my system setup.

Here are the services that I needed to put in the cloud:

  • Mail
  • Address Book
  • Calendar
  • To-Do List(s)
  • Notes
  • Files (read: a small number of files that would be handy to all of my devices)
  • Password Management

Some of these were no-brainers, others drove me to try and end up loving some interesting new services…

Mail

People don’t normally think of mail as a cloud service, but for most folks, it is. I could run my own mail server but I like the fact that my e-mail stuff is being handled by someone who’s full time job is e-mail, and that the service is configured for high availability. That said, part of the reason that I use a native mail client rather than just using my mail service’s web client is so that I can also have a local copy of all of the e-mail. This makes for faster searches and I always have those e-mails on hand if the mail service goes offline.

That all said, mail is pretty much the original cloud service and IMAP keeps everything in sync for me, so problem solved.

Address Book

It may seem odd to think of an address book as being separate from a mail service, but in the cloud, they are. If you use Gmail, Hotmail, Yahoo mail, or any of the other popular free e-mail services, you never have to worry about this distinction. This is because Fedora and OS X both understand the concept of bundled internet accounts. You tell your computer “I have a Google account” and then your computer asks you which services to use from the bundled list.

But I don’t use Gmail for mail, and furthermore I actually dislike Google’s approch to putting every last e-mail address and Google Plus profile in my address book without my consent. For a long time I used iCloud’s address book, but that’s a no-go from a Linux system. So, enter ownCloud.

ownCloud could actually be the answer to a few of the questions in this post, but in my setup I use it expressly for my address book. This lives on an ownCloud server hosted on OpenShift. Advantages:

  • Use of the industry-standard CardDAV protocol makes this solution work for my Linux laptop and my mobile iOS devices
  • Two-factor authentication for heightened security
  • Hosting on OpenShift means that:
    • My app is monitored and restarted if necessary
    • I can automate backups with the rhc utility

Calendar

I have to grudgingly give a nod to Google on this one. By solving calendaring and then building a social network with built-in event scheduling, they’ve created a siituation where it is hard to use anything else. ownCloud supports calendaring, but scheduling events across different calendaring systems seems very spotty.

I threw up my hands on this one; too many folks that I need to share my non-work plans with are all on Google, so I have to live with Google for this as well.

To-Do Lists

Apple’s “Reminders” app adds a lot of value beyond making lists. Probably the strongest feature there is the ability to geotag a task (e.g. Remind about picking up milk when I get to the grocery store). What “Reminders” doesn’t do is enable me to quickly create tasks from the Terminal, which is where I am working most of the time.

I’ve ended up splitting the difference on this one. If I need to geotag a task, I’ll create it in Reminders app on my iPhone. Otherwise, I have found an awesome task list solution in Todo.txt.

Todo.txt is great for a few reasons:

  • Available from the command line
  • Can be cloud-enabled via Dropbox integration1
  • Data is stored in a plain text file
  • Native apps exist for getting at your lists from iOS / Android devices

There’s a blog post idea in my future where I talk more about why plain text file formats are so great, but for now, the takeaway is that todo.txt uses a winning combination of simplicity and optional cloud availability.

Notes

Finding an alternative to Notes.app can be dirt simple depending on what you want out of the app. At a minimum, you could simply designate a folder in your DropBox for notes and voila, problem solved. This is particularly true in Fedora 20 and OS X, both of which come with automatic file indexing.

However, I wanted faster navigation between notes and more targeted searching, and that led me to try out nvpy. This oddly-named Python of Notational Velocity makes use of global hotkeys and a very complete set of app-wise key combinations to provide a note-keeping and note-searching powerhouse. It can sync with SimpleNote’s API but it also does perfectly well writing Notes to text files, which brings us back into DropBox territory.

nvpy also runs on OS X, but nvALT looks a little slicker on OS X and can handle the same DropBox-synced note files as nvpy. There is one difference: nvALT will allow you to create notes with whitespace in the titles while nvpy will not, so get into the habit of putting underscores in the first line of the note.

The main benefit to this approach is that I can still get at those same notes from iOS. Elements for DropBox is a Markdown-friendly notes app that has no trouble displaying the notes that I create in nvpy.

As an aside, ownCloud has a plugin for Notes, but the only way to see / use the notes is through the web UI or the native ownCloud apps. If I really wanted to solve this I’d go with the “just use text files” solution, but we get access from Fedora, OS X, and iOS with DropBox.

Files

By now I think you can guess which direction I took. With DropBox and ownCloud to choose from, I’ve gone with DropBox simply because so many more apps can get at those files. If I had very sensitive data to store, I could use ownCloud at the cost of less ease of access.

Password Management

On OS X I am huge fan of 1Password. However, that’s not going to help me on Fedora. The best solution that I could find was LastPass, which runs as a browser plugin under OS X, Linux, and anything else that can run modern builds of FireFox, Chrome or Safari.

LastPass is free for basic services, but if you want a native mobile app, you need to subscribe. My cheapskate workaround is simply to log into LastPass with my account and manually copy passwords when I need to use them on iOS.

The TL;DR on Cloud Services

Cloud services offer a great way to level the playing field between Fedora 20 and OS X. By shifting my cloud usage to apps that could leverage DropBox or presented well-know web services APIs, I was able to create a setup that makes Fedora 20 work as well as OS X and still be able to get at the same data from my iOS-based mobile devices.


  1. DropBox shows up a lot in this article. The main reason is that DropBox offers ubiquitous file storage with widely adopted support. Many iOS apps continue to offer DropBox-based syncing as an alternative to iCloud, and DropBox runs on Linux systems as well. This has inadvertantly placed DropBox as the best low-level cloud storage option for a wide variety of uses. ↩︎

OS X to Fedora 20: The User Experience, Part 1

A little background here: I have been a Mac enthusiast for a number of years now. I would not say that I am religious about OS X, but if the OS X user experience is a philosophical application of “opinionated software”, then I find myself in agreement with most of the opinions that the Apple UX team has expressed.

However, I am also an open source developer. I’d like to believe that it is possible to create a similar and possibly even superior experience with a Linux-based desktop environment. And lo, this is what lead me, a few weeks ago, to get Fedora 20 running on a MacBook Air. If you’re interested in trying the same thing, check out Matt Hicks’ invaluable blog post on setting things up.

Over a series of blog posts I am digging into my impressions of the Fedora 20 user experience as I work through this total switch-over.

The Important Desktop Apps

I spend 95% of my computer time in front of the same 5 apps:

  • A text editor
  • A web browser
  • A mail client
  • A calendar client
  • A chat client (specifically for IRC)

I typically also have several helper apps that I call upon and I usually have music going in the background, but I cover “Cloud stuff” in the next part of this series.

The Same-Same Stuff

For my text editor and web browser, I’m using the same tools on both platforms: vim for text and Firefox for web. The experience of these between OS X and Fedora 20 is 99% identical. Not much else to say there.

Now as you read on you may be thinking: “hey, you could have identical experiences all the way through if you just used <open_source_tool> in place of <os_x_native_tool>”. And you’d be right. But in the cases below, I really feel like the OS X native tool is a little better, and in each case I will attempt to explain why.

The Mail Client: Mail.app vs. Thunderbird

I don’t always think that the right answer is to make Linux match OS X, but when OS X does something really well, I wish the open-source equivalent could do the same. In the case of Thunderbird, the functionality that I desire is frustratingly close, but not quite there. Specifically, I am talking about the way that Mail.app handles threaded e-mail discussions, both in the e-mails list and the email display field.

To Thunderbird’s credit, you can edit the columns displayed in the e-mails list, turn on threaded views, and Thuderbird even kinda sorta shows an all-discussion view of the thread. But Mail.app’s multi-line mail list entries make for a narrower emails listing field, and the all-discussion view still shows complete, distinct e-mails from the thread – including your own e-mails which may have gone to the Sent folder but still count as part of the conversation1. Thunderbird doesn’t do this even though someone first raised this issue in 2003 and people have periodically asked for it ever since.

But while the threaded views leave something to be desired, I will be the first to say that Thunderbird’s e-mail search is awesome. It is very fast, includes a cool chart of word hits by year, and shows enough of each e-mail in the search result to give better context for the word being searched.

Thunderbird isn’t the only mail client for Fedora; in fact, it isn’t even the default client for Fedora. But while Evolution offers a very Outlook-like experience, the Outlook that it emulates is Outlook 2003. I don’t want to get into a colors and buttons argumnt, but Evolution looks pretty dated and has similar problems to Thunderbird with regard to offering an information-dense layout. Moreover:

  • Evolution lacks the sort of plugin ecosystem that Thunderbird has. These plugins add a ton of value and help Thunderbird to stay current as new kinds of web services arise.

  • Evolution doesn’t allow you to map mail boxes to known roles, like for instance having an Archive folder. So if you aren’t using Gmail and you want Archive-like behavior, Evolution isn’t for you.

The Calendar Client: Calendar.app vs. Lightning

I’d love to be proven wrong, but as far as I can tell, nothing in the open-source space can even come close to what Apple, Google and Microsoft have done with their calendaring apps. I understand that doing calendaring correctly is a really hard problem, but the net result is that on the client side, open source systems seem to be limited to only the most basic functionality.

If you only keep calendars for yourself, this is probably not an issue. But for anyone who wants to schedule a meeting or have access to delegate calendars, you are going to run into problems. For this reason, and because I’d already chosen Thunderbird over Evolution, it seemed logical to pick Lightning for e-mail. Lightning is “good enough” for showing me my schedule at a glance, but doesn’t distinguish itself as being a more functional calendar app than any of the other Linux options (like Evolution, or even the nascent California).

The IRC Chat Client: LimeChat vs. HexChat

I use ZNC as a proxy server for several IRC servers where I hang out on a daily basis. ZNC’s primary job is to keep a log of the discussion on the channels that I follow so that if I miss something, I can read about it and follow up later. In order for my ZNC server to know which real IRC server I want to connect to, I need use a log name of the form:

<znc_username>/<znc_config_name>

Well, you’d be surprised to find out how many IRC clients can’t tolerate a / in your username. On OS X, this drove me right into the arms of LimeChat. I’m really glad it did, too, because the information density jammed into LimeChat’s subdued interface is totally amazing.

Many IRC clients on Fedora 20 suffer the same username handling problem, but HexChat stands out for being able to connect to VNC. Additionally it can be configured to look almost identical to LimeChat, save for LimeChat’s awesome extra window pane that shows you a continuous stream of all of the convos from the IRC room you aren’t currently looking at.

The Upshot on Native Apps

From my perspective, Thunderbird, Lightning and HexChat provide a workable experience on Fedora 20. The more time I spend using them, the more I can work around or otherwise just accept those little bits of polish that are lacking compared to OS X. In a few cases, as with Thunderbird’s search, I can even see myself missing that functionality when I’m in front of the OS X native app equivalent. But there’s room for improvement on the Linux side and I’d love to see some open source projects that can close the gap.

Next up in this series, I’ll be talking aout the cloud services that I use and how I modifed things to use them from both OS X and this Fedora 20 system.