My System76 Superfan Trip in Pictures (Part One)

I am halfway though a remarkable trip to Denver, Colorado, thanks to the incredibly generous folks at System76. I’ll write a more in-depth post about what all went down, but for now I just want to share some videos and pictures to give you an idea of some of the amazing things I’ve experienced and some of the outstanding people I’ve had the pleasure of meeting over the past couple days.

Where the magic happens.
Where the magic happens.

This is a clip I captured of us walking into System76 for the first time (sorry for the vertical vid!). Kate and Carl greeted us at the door and threw sparkles (glitter? confetti? eh, sparkles is a good enough word). Also in the video: my first IRL interaction with Cassidy, a long-time friend (I’m currently writing this from his guest bedroom. Big thanks to him and his wife, Katie, for letting me do Airbnb and crash at their place for a few extra days!)

This is a mind blowing sandbox that dynamically generates a topographical map as you modify the terrain. You can make mountains, volcanoes, and even summon a rain storm just by holding out your hands.
We got to try out the new Steam Controller with on a couple of their really impressive desktops. I'm not sure how much I liked the controller, but Portal ran so well on those machines.
We got to try out the new Steam Controller on a couple of their really impressive desktops. I’m not sure how much I liked the controller, but Portal ran perfectly.
We got to play with System76's entire product line, including a few systems that haven't been announced yet. The new Sable was probably my favorite. It was incredibly thin and beautiful. Carl told me he thought of it like an elegant picture frame. It's great.
I had the chance to try out System76’s entire product line, including a few systems that haven’t been announced yet. The new Sable Complete was probably my favorite. It is incredibly thin and beautiful. Carl told me he thought of it like an elegant picture frame. It’s great.
Dr. Emma Marshall used a very rigorous set of tests to conclude that I am secretly a cyborg.
Dr. Emma Marshall used a very rigorous set of tests to conclude that I am secretly a cyborg.
When I met Jason DeRose I told him I was a big fan of his work on Novacut, an amazing software project he has worked on for years that basically allows photo and video editors to distribute their projects across multiple machines. He immediately set up three laptops and gave me a live demo of the software. It is beyond brilliant.
When I met Jason DeRose I told him I was a big fan of his work on Novacut, a software project that he has worked on for years that basically allows photo and video editors to distribute their projects across multiple machines. He immediately set up three laptops and gave me a live demo of the software. It is beyond brilliant.
I met Chris and Noah from Jupiter Broadcasting. They were recording an episode of the Linux Action Show from the System76 office. They grabbed dinner with us afterwards and chatted for hours.
I called the office Disneyland. It pretty much is.


That night we grabbed a bite to eat at Acme Burger and Brat Corporation and then sat around talking for hours.
That night we went to Union Station and grabbed a bite to eat at Acme Burger and Brat Corporation (not pictured, because I was more amazed by the giant Christmas tree and the swankiness of Terminal Bar). After that we sat around and talked for hours.
Everyone was so remarkably friendly and kind. Great conversations all around.
Everyone was so remarkably friendly and kind. Great conversations all around.
When System76 decides to go big, boy do they really go big. We stayed at the Brown Palace Hotel and Spa, which I think looks a lot like the Titanic (pre-sinking, of course). Every U.S. President has stayed here except for Obama. Words can hardly describe how grandiose it was.
Oh, and it's like a billion stories high.
Oh, and it’s like a billion stories high.
Embroidered toilet paper sacks.
Embroidered toilet paper sacks.
Rumor had it that every shower had multiple shower heads. Confirmed.
Rumor had it that every shower had multiple shower heads. Confirmed.
My hotel room.
My hotel room.
A lovely view of downtown Denver from my hotel room.
A lovely view of downtown Denver from my hotel room.
After a great roundtable meeting I recorded several interviews for simply elementary. Then we watched Star Wars clips with the System76 crew because... well, Star Wars.
After a great roundtable meeting I recorded several interviews for simply elementary. Then we watched Star Wars clips with the System76 crew because… well, Star Wars.
I was fortunate enough to be able to stay late and watch Star Wars Episode III: Revenge of the Sith with several of the crew and their families. What a special experience that was! Also, the prequels still suck.
I was fortunate enough to be able to stay late and watch Star Wars Episode III: Revenge of the Sith with several of the crew and their families. What a special experience that was! Also, on a related note, the prequels still suck.
That's an overview of the first two days of the trip. It was amazing. Huge thanks to System76 for flying me to Denver and letting me be a part of this celebration! They also gave all of us an amazing System76 poster, which YOU can get for free as well if you order a System76 machine before January 4th (and you should!) and enter the code 'system76fan' in the comments section on the order form.
That’s a quick overview of the first two days of the trip. It was amazing. Huge thanks to System76 for flying me to Denver and letting me be a part of this celebration! They also gave all of us an amazing poster to take home, which YOU can get for free as well if you order a System76 machine before January 4th (and you should!) and enter the code ‘system76fan’ in the comments section on the order form.

Why a Desktop Twitter Client is Better than a Web App

I have always been, and shall always continue to be, a huge fan of native desktop apps. While it doesn’t make sense to have a native app for everything, some platforms, like Twitter, can be vastly improved by having a native desktop experience. Inspired by a Tweet from Sam Hewitt, I wanted to jot down a quick list of why they still matter. Please note: I’m partially writing about how it could be, not necessarily how it is. I’m also writing from the point of view of an elementary OS user, although most of these arguments are valid on any system of your choosing. These points should give you a hint at some of the things I’m hoping to achieve with future versions of Birdie.

  • Multiple account support. If you manage several Twitter accounts (in my case, I manage four of them), having an application that supports more than one account is critical. If I wanted to do that on the web, I’d have to have a different tab open for each account, and that experience is clearly sub par.
  • OS sharing services. Want to share a pic from your Pantheon Photos library straight to Twitter? Want to Tweet about the article or webpage you are viewing in Midori? Want to tell the world about a great podcast episode in Vocal? A native desktop app provides a huge potential for native sharing between apps.
  • Native gesture support.
  • Multiple columns. Twitter’s support for wide windows is atrociously bad. Instead of expanding each Tweet to a ludicrous level, why not display multiple columns of information if the window gets stretched wide enough?
  • Better notifications and DND. Notifications from all your Twitter accounts will be available in the new notification center. Click on a notification to respond to a Tweet immediately, or open the notification center again later to see what you missed. Are you in the middle of a project and don’t want to be bothered? Just flip on the system-wide do not disturb switch.
  • Background updates and offline view. Want to check for new messages and updates without getting distracted by all the other stuff? Let the app run in the background and only alert you to tweets you need to see. Also, going on a long car ride with your laptop? Catch up on all the stuff you have missed with offline support.
  • Follow saved searches and hashtags. In addition to your normal timeline, stay up to date with your interests by keeping track of saved searches and followed hashtags.
  • Keyboard shortcuts. 
  • Better in-line media support. Yes, Twitter has added playback for some video sites and added support for inline image viewing from certain sources, but a native app can display media from sites that aren’t Twitter-approved for an even more seamless experience. Plus, you can see them all in a way that just feels more native to your platform.
  • Tweet scheduling. Are you going to be out of town on Saturday night, but want to remind your follows to watch your YouTube video that comes out at 9:00? Set up a scheduled Tweet.

What did I miss? Leave a comment below.

Why System76 Matters to Me

I have had the pleasure of reading nearly all of Carl Sagan’s books, and while I have walked away from each with new insights and a more refined perspective of own my place in the universe, the one in particular that made the most profound difference in my life was Billions and Billions. In the penultimate chapter of the book, and indeed the last one that he himself would pen before tragically succumbing to pneumonia after a relentless fight against a bone marrow disease, Sagan does something completely uncharacteristic: he discusses his personal life.

“For years, near my shaving mirror- so I see it every morning,” he writes, “I have kept a framed postcard. On the back is a penciled message to a Mr. James Day in Swansea Valley, Wales.” The message reads:

Dear Friend,

Just a line to show that I am alive & kicking and going grand. It’s a treat.



On the front of the postcard is a color photograph of the RMS Titanic. It was postmarked a single day before the ship collided with that fateful iceberg, ending over 1,500 lives, including that of the aforementioned WJR. For Sagan and his wife, Ann Druyan, the postcard was a reminder that “going grand” can be “the most temporary and illusory state.” This passage left a great mark on me in a number of ways, but in particular it implanted the idea of placing a visual reminder for myself somewhere I would see it daily.

The first time I tried Ubuntu, back when I was just a 14 year old kid, I felt that my life had magically changed forever. It was the start of the next big chapter. It introduced me to the concept of free software, lead to me sharpening my technical skills, helped me decide on a future career path, and allowed me to meet so many incredible people in the various open source and free culture communities. Without hyperbole, discovering Linux in no small way shaped my life and sent me down the path that brings me to today.

Shortly after discovering Ubuntu, I became aware of a small company somewhere on the other side of the U.S. that actually sold computers with Ubuntu already installed. What a novel idea! Being a young teenager, I of course didn’t have any money to buy a new computer, but I learned that they also offered another service: apparently, if you sent them a self-addressed envelope, they would send you a set of stickers that you could use to replace the Windows logos on your keyboard and computer case. How cool! I couldn’t wait to test it out. I scribbled my name and address on an envelope (my handwriting sadly never improved over the years), licked the adhesive strip, and sent it on its merry way. A month later, after I had completely forgotten about the whole ordeal, my parents delivered an envelope to me with my name on it. Sure enough, the kind folks at System76 had delivered on their promise. It wasn’t long before I took Sagan’s wisdom to heart and placed a sticker somewhere I would see it each day: my bathroom mirror.

2015-10-17 19.35.39

Since my early high school years, the System76 sticker, as well as an old-school generic Ubuntu sticker that I ordered from Canonical, has served as a daily reminder for me. They remind me why I want to be a software developer. They inspire me to do what I can to chip in, make something cool, and share it with others. They help me remember why it is so important to use software that values your rights and freedoms. They help remind me of why the free software community is so unique, and filled with such talented, friendly, and all-around incredible people.

System76, in my mind, is the embodiment of that philosophy. They make truly outstanding hardware, do all that they can to share free software with the world, and go above and beyond to make their users remarkably happy. Last summer I was finally able to purchase one of their machines, and it is absolutely lovely. Not only that, but the entire buying experience was incredible. They called me the day I placed the order just to thank me and welcome me as a customer. When a stick of RAM suddenly died, the tech support was unlike any other I have experienced. They listened to my problem and shipped replacement memory to me immediately. Instead of talking down to me, or insisting that a service rep perform the memory swap, they trusted me to do it myself. Their respect for their users is evident in every interaction, and I will forever be a fan.


I don’t want to suck up too much, so I’ll end this essay here. In the past seven years or so, System76 has meant a great deal to me. There aren’t many companies I can say that about. Every day, whether I’m brushing my teeth or writing code on my Sable complete, System76 helps remind me of what is important. And although I’m not an Ubuntu user any more, their dedication to helping everyday users enjoy free software is admirable. Now, if only I could help convince them to start shipping computers with elementary OS.

The Future of Vocal, Birdie, and More

The Vocal IndieGoGo crowdfunding campaign has reached its deadline and, unfortunately, failed to meet its goal. If you contributed to the campaign I want to personally thank you for your support. Since we set it up as a fixed funding campaign all contributors will be issued a full refund. If you have not already received a refund you should be seeing your money again very soon (IndieGoGo documentation says within five days).

I don’t want to reflect on the campaign itself quite yet. I’m still too close to it and am in the process of figuring out what it all means. I do think it’s important to start thinking about what the future plans are for the project, as well as for Birdie, given the failure.

As I mentioned in the developer Q&A from a few weeks ago, not meeting our goal means that we’re going to have to make some significant changes. Many of our planned features are going to have to either be dialed back or cut entirely. It’s important to be realistic about what is possible and to set expectations accordingly.


I’ve thought long and hard about the changes that will need to take place in terms of our goals for 2.0 and how our project functions as a whole. Before I discuss the features, I want to talk about some changes to the project itself:

  • Over the summer I will be moving Vocal from Launchpad over to GitHub. This isn’t directly related to the campaign failure, it’s just something I have carefully considered and made a decision on. It’s in the best interests of the project to make this move for several reasons, one of which being that it makes it much easier for me to have both Birdie and Vocal hosted at the same place. Hosting the code at GitHub brings lots of helpful benefits at present that will improve development and also opens the door to exciting new possibilities in the future. When the code for 2.0 becomes available in the next month or two it will be pushed to GitHub.
  • The Vocal website is going to be moving from Squarespace to WordPress. As much as I like the current site, using Squarespace is too costly for the project as it stands right now. Eventually it would be nice to use GitHub Pages, but I am not a web developer and my time is stretched far too thin as it is. If you are a web developer who would like to volunteer I would love to hear from you, but in the meantime, we’ll be switching to a cheaper WordPress instance.
  • I’m focusing all my energy on making Vocal as incredible as possible on elementary OS. Since the campaign failed I will continue to only have at most 10 hours or so per week to devote to development, split between multiple projects, and that isn’t enough to customize the code and perform the necessary modifications to provide a great experience across multiple distributions. That time is better spent adding new features and fixing existing issues. If other developers want to volunteer their time to make cross-distro support better we’ll welcome those contributions, but for the time being I’m 100% focused on making Vocal as amazing as I can for elementary OS.
  • Instead of a massive Vocal 2.0 release with all the features listed in the IndieGoGo campaign we’ll split the features into multiple major versions. In the future I plan to do smaller, more frequent major releases.

Okay, now for a specific list of features that will be developed as planned:

  • iTunes podcast store browsing and full iTunes store search. This has been the focus of the work up until now. We already have support for browsing top podcasts in iTunes, as well as searching across the local library and across the iTunes podcast store. These features aren’t rock-solid yet, but there has been good progress so far. (Vocal 2.0. Expected by end of Summer 2015)
  • A stunning new redesign that is both more beautiful and even simpler to use (Vocal 2.0. Expected by end of Summer 2015)
  • A new playback queue (Vocal 2.0. Expected by end of Summer 2015)
  • Background feed updates and downloads (either 2.0 or 3.0, depending on time)
  • Full HTML show notes (Vocal 2.0. Expected by end of Summer 2015)
  • Variable playback speeds (Vocal 2.0. Expected by end of Summer 2015)
  • Multiple/mobile device sync (Vocal 3.0. Expected by the end of 2015 at the earliest, most likely 2016)

And features that will NOT be developed as planned (although they might be added in the distant future):

  • A sleep timer
  • Chromecast support
  • Better native experiences across multiple Linux distros
  • Password protected feeds (unless it’s trivially simple to implement)


Birdie 2.0 is still on track and is expected to be released by the end of Summer 2015. Specific features have not yet been nailed down completely, but it will feature a refreshed design, better multimedia support, the new Twitter Streaming API, smooth scrolling, and more.

Other Projects

simply elementary

I’m excited to announce that I am launching a new project! One of the stretch goals was to create a new unofficial elementary podcast. Although we fell far short of the goal, I’m going to do it anyway! It’s something that I’ve always wanted to do.

Dane Henson, a staple in the elementary community, a great developer, and an all-around cool guy, has kindly agreed to co-host with me! The show is targeted for typical, everyday users. As a general rule it will not feature technobabble or long technical discussions. It will primarily consist of long-form interviews with elementary developers and community members, news, tips, reviews, and lots of other great stuff.

The show is titled simply elementary: the unofficial elementary OS podcast. We have done a practice recording and will be releasing a beta episode once our album art and music is finalized (soon). We plan to release new episodes every other week.

elementary Dropbox Mods

My script for making Dropbox work well in elementary is not dead, I just haven’t had time to work on it lately. I will devote a weekend to it soon.

What You Can Do to Help

As I said before, I am extremely appreciative of all the people who have contributed to the IndieGoGo Campaign. Although the campaign has ended and the money has been refunded, our expenses remain the same. As of right now we are around $300 in the red, and several expenses for the upcoming year are arriving soon. If you would still like to financially support the project we would gladly welcome it. I’ll post links below, and you can always find them here. I know we’ve mentioned money a lot over the past month so this is the last time I’ll ask for your help financially for a good long while.

Bitcoin Address: 15Vd7h2kbP3UxYyGyAzqCnURuLzVtUPcW4


Contribute via PayPal

Contribute Bitcoin via Coinbase

If you can’t help financially I hope you’ll consider spreading the word about the new unofficial elementary OS podcast when it arrives. I hope you’ll also give Vocal 2.0 a try and share your experience with it when it reaches beta later this summer.

Thank you all again for your support! If you have questions please leave a comment, send an email to mail [at] nathandyer [dot] me, or find me on Twitter or Google+.

Why Native, Why elementary OS?

Last week I shared a screenshot of the progress that has been made on Birdie 2.0 (see below) and one person left comments on that post asking questions that I promised to answer in more detail in a blog post. He asked why I write desktop apps instead of web apps, and why I develop apps that are targeted for elementary OS specifically.

Screenshot from 2015-05-06 16:06:58

Why Write Native Desktop Apps, Instead of Creating Web Apps Which Can Run Everywhere?

The reason why I write desktop apps is actually fairly simple: I want to create the best user experiences possible. Writing a web app is not, and will never be, the way to do that. Don’t get me wrong, you can make some pretty incredible web apps, but at the end of the day the only way to provide a truly remarkable experience is to target a specific platform.

Users choose to use systems for many reasons, but perhaps the most significant reason is that they like how the system works. They like the workflow, they like how the visual elements are presented, and they like how different components work together to provide a cohesive experience.

The best apps feel like they are native to the system you are using. The best Android apps are the ones that most closely follow the Material Design guidelines and use Android-specific features like global media controls, advanced notifications, widgets, etc. The best iOS apps are the ones that follow Apple’s design guidelines and feature platform-specific features like TouchID support, App Extensions, AirPlay, Apple Pay, Notification Center support, etc.

The same applies to free desktops as well. The best apps are the ones that tightly integrate with the system and feel as close to first-party as possible. Unfortunately, creating apps that feel native to a platform means making difficult decisions and sticking with them. Picking a platform can be a tough decision. In the Linux world there’s kind of an expectation that an app will run on Ubuntu and Fedora and Arch and CentOS and OpenSuse and… well, you get the point. The fact of the matter is that each of those systems are different. The same code might run on all of them, but the experience will be muddled. Trying to make one app work in all distros is exhaustive and nearly impossible to pull off effectively. You end up having a mediocre product running on 10 systems instead of one incredible product running as well as possible on one.

I struggle with that decision from time to time. Sometimes I feel bad when I get reports that there is an obscure issue causing a bad experience for people on distro A, or icons looking out of place in distro B, or so on. If it’s something easy to fix I always try to do so, but at the end of the day I don’t have enough time to test the product under each desktop environment and modify the code individually on a one-by-one basis. I hate leaving some users behind, but if I had to do it all over again I would always make the same choices every time.

This is the bottom line: I want to make the best apps for users that I possibly can. In order to do that, it means taking advantage of native technologies and making difficult choices by targeting specific platforms. That probably means having fewer users overall, but I would rather have a smaller number of users that are happier using a more polished app.

Why elementary OS?

I love elementary OS. I love the spirit of the project and I have great respect for the technical and design decisions that have been and are continuing to be made. I truly believe that elementary is the future of desktop Linux, and speaking as a third-party developer I want to help as much as I can to make it a attractive option.

So, once again, the explanation is fairly simple: I love elementary OS, I believe in the future of the project, and I’m making apps that I personally want to use— and that means making them for elementary OS.


Out of the Nest – Birdie 2.0

A short while ago I came across news on Twitter and Google+ that Birdie, my longtime favorite Twitter client for Linux, would be shutting down development. I was extremely sad to hear this so I contacted Ivo Nunes, the main developer for the project, to see if he would be open to the idea of me taking over development. He was very agreeable, so I am excited to announce that I will be developing Birdie 2.0. Ivo will continue to be a part of the project working on other areas as he sees fit.

I’m also excited to announce that with this hand-off Birdie will once again be written in Vala, and that the existing 2.0 code will be ported back from Python.

I’m writing this just after my conversation with Ivo so I don’t have any other specific information to share. This will not interfere with the release of Vocal 1.0. Vocal is currently extremely close to the release candidate stage, and should be available within the next month or so. Right now I’m planning on working on Birdie throughout the summer and having a final release somewhere within that time-frame, but I’ve not yet looked at the code enough to make any accurate estimates.

I’m excited to help make Birdie as great as I possibly can and get the next major version in the hands of free software users as soon as possible.

Welcome elementary OS Freya Beta Users

First off, I want to extend my congratulations to all the elementary developers and contributors on a fantastic beta release! As most of you know, Vocal has been designed and developed from day one to work seamlessly with Freya. Unfortunately, that meant that it was unavailable for the majority of people to test until now (unless you were impatient determined enough to ahead and build your own unofficial, franken-Freya).

With so many new users trying Vocal for the first time I just want to say, welcome! I hope you enjoy using it! Please keep in mind that it is still in beta, so you will almost certainly run into problems every now and again (and when you do please report them here). That said, it should be fairly usable at this point.

Install Vocal

Add the Vocal daily PPA and install it by typing or copying/pasting these commands in a terminal (in this case it’s safe, but fair warning- always be careful when a site tells you to type something into your terminal):

sudo apt-add-repository ppa:nathandyer/vocal-daily
sudo apt-get update
sudo apt-get install vocal

What’s New?

Video playback:

Vocal Video Playback

A vastly improved episode browsing experience:

Episode Details Side Pane

Tons of improvements under the hood, including a simpler and more robust media playback backend, better offline support, faster imports, and much more.

What’s Next?

Soon Vocal will pick up exactly where you leave off, by remembering which episode you’re listening to after you quit and how far you make it in each episode. A new cleanup system that automatically removes old downloaded episodes is also planned.

After that development will primarily be focused on more polish and bug fixes. Once I feel that it’s close to being ready I will announce a release candidate. I’ll fix any remaining issues after that, at which point it will go stable with version 1.0.

As for version 2.0 and on, I have lots of exciting new features in the works. I don’t want to officially announce anything yet, but I am confident that you will all absolutely love it. But for now,


How Do I Get Involved?


If you enjoy using Vocal I would encourage you to consider a donation. Vocal is entirely open source and 100% free to download, and always will be, but it takes a surprising amount of money to create free software. Any donation, even $1, makes a big difference.

Visit this link to donate (and yes, we take bitcoin).


If you are bilingual, translations are fantastic way to get involved. Just visit the Launchpad Translations page for Vocal to get started.

Bug Reports

If you run into any bugs, have would like to suggest an improvement or new feature, please report that here at Vocal’s bug tracker on Launchpad.

Let Me Know What You Think!

If you use Vocal I would love to hear your thoughts about it (both good and bad)! You can contact me: