Firewatch

When Firewatch came out in early 2016 I wanted to play it. However I never got around to actually do so. Currently the game is on sale on all platforms. I opted for the PS4 version.

Firewatch Screenshot

So I spent the last two evenings immersed in a forest with walking on trails, talking to a person you don’t see throughout the whole game (but still feel like you know her) and becoming nervous about what’s actually going on.

The atmosphere of the game is astonishing. Just the end comes a bit too abrupt, but I really like the ambiguity of it. And there are a lot of questions left unanswered.

Looking forward to their next game: In the Valley of Gods.

Headphones — Round 3

As a reader of this blog, you might have noticed that I have a distinct interest in headphones. If you happen to be a colleague, you might even be a little bit amused about this foible of mine and how much time I spend on it. In the last post I mentioned that I didn’t had the chance yet to test the Bose QC 35 or the Sony MDR 1000X. This summer their successors to both were announced and long story short: This is a review of the Bose QC 35 II and the Sony WH 1000XM2.

Quick background: I am looking for headphones to use primarily while commuting and at work. They will be used paired to an iPhone and a MacBook Pro. Noise Cancelling is nice when on the train, and phone quality should be okay enough to participate in Skype calls at the office. Before this review I have been using the Plantronics BackBeat Pro 2 SE for almost a year. So this review will compare these three headphones.

Look & Feel

Both headphones come with similar cases. On first try the Bose one feels a bit lighter and fragile, whereas the Sony a bit more rigid. Nonetheless the build quality of both headphones is great.

The first time I wore them, I was surprised. I didn’t expect much difference to the Plantronics, but exactly that’s the case: They feel much nicer to wear. In particular there is more space between the ear and the earcups. When using them for an extended period of the time, the BackBeat Pro became uncomfortable as my ear ever so slightly touched the inner of the earcups. This is not the case for these two.

The 1000XM2 feels to sit a bit more tighter on the head already blocking a good amount of sound this way. The QC 35 II is a bit lighter. But without the direct comparison I could hardly notice these difference. Both were very comfortable to wear for 3-4 hours at a time, something I couldn’t do with the BackBeats.

Sound

Probably the most important part about headphones: Sound. To me they are in the same league as the BackBeat, probably also because the Apple devices support none of the proclaimed superior audio codecs the Sony supports. And after all neither the bitrate is at a level to satisfy real audiophiles nor is my listening as sensitive to notice.

From a general perspective the Sony set is a bit more on the bass-y side of the spectrum, whereas the Bose feels very neutral. In direct comparison the Sony offers a somewhat fuller sound when listening to music (mostly rock in my case), but at no point it felt like too much bass like Beats headphones. But again I could only notice the differences in sound when directly listening to same track on both headphones back to back. Only when I really intend to listen actively to loud rock music I occasionally missed a bit more bass on the Bose headphones.

I also tested both headphones to use as a headset for calls. I’ve gotten the feedback that the sound of my voice is much better in general than from the BackBeat Pro. Turns out those only recorded with 8 kHz whereas both the 1000XM2 and the QC35 II recorded with 16 kHz. Besides that they were slightly better on not transmitting all the background noise. That said, I’m curious how the Plantronics Voyager 8200 UC perform in this regard.

Noise Cancelling

In general I like Noise Cancelling on headphones but I couldn’t spot any distinct differences when using them in the office and on the subway. But the effect is noticeable and I had NC active most of the time.

I disabled the additional NC features of the Sony (reacting to air pressure and my current activity), because it irritated me most of the time. Also when I’m outside – even with NC enabled – I have them mostly at a volume level where I would nonetheless notice cars honk.

Handling

Here comes a general complaint: Even the old Plantronics BackBeat were already able to do multipoint Bluetooth. How can it be that Sony ships headphones without this feature? Especially in my case I would have two audio source close to each other most of the day: I want to enter the office listening to music from my iPhone, sit down at the desk, pause the music from the iPhone and start the music on my Mac.

To make this work with the Sony I would have to switch Bluetooth on and off all the time on either device, or enter the pairing mode on the headphones and the device. The Bose does support multipoint – although that’s also a bit buggy sometimes – and is therefore way better when I know that I want to switch sources multiple times a day.

Another point of interest are the controls: The Sony has touch controls and the Bose relies on buttons. While it needed some time until I figured out all touch gestures and how exactly I had to do them, it was just as easy to use as the physical nobs on the Bose.

Conclusion

I picked the Bose. The missing multipoint support of the Sony and the therefore tedious change between devices was a dealbreaker for me. Initially I was afraid to be annoyed by the very neutral sound of the Bose, but after more than a week of constant use, there is no such thing.

The improved comfort of the QC 35 II over the BackBeat Pro has me wearing headphones for way longer periods of time than before. Also I use them for calls more often. Previously I would often use some cheap In Ears with a cable for calls, just for a better microphone quality to not-annoy the others on the call.

All in all I couldn’t be happier with my new headphones, but of course I’m curious what the next generation of headphones has to offer.

Jekyll Performance Improvements

permalink

I’m a big fan of Jekyll and took a deep dive into our Jekyll setup at work. We had some performance issues with generating the site, so a single generation took over a minute to build. In a blogpost over at our company blog I documented our findings and what we did to bring our site back up to speed.

MacBook Pro, 2017

After a lot back and forth in the last months, I finally ordered a new MacBook Pro after this years WWDC. It arrived here a week ago, so time to gather some first thoughts about it.

Initial impression: So light! Coming from a 2011 13-inch MacBook Pro and a 2014 13-inch MacBook Air, I expected it to be somewhere in the middle in regards of portability. But it feels very similar to the Air despite the larger footprint and the small increase in weight. Carrying it in my backpack I couldn’t care less about these differences, but the benefits when using this machine are just so much better.

It is my first retina computer, but I came around to use the display in a scaled mode at 1900 x 1200 pixels. This leaves me with enough space to run the same window configuration on both the builtin and my external monitor. Previously I would have different presets on what’s shown in the IDE and which windows are run in fullscreen or window mode.

One thing I am not completely sold on yet, is the Touchbar. I don’t have any direct issues with it and still manage to hit esc whenever I intend to do so. But I don’t see the advantage over the old function keys either. Of course the addition of Touch ID is a huge thing that finally made me upgrade my computer password to a stronger one. The keyboard works very well for me, so far not an issue for me, but I ditched my old Magic Keyboard as going back and forth between them felt weird.

Funny story related to the Touchbar: In the first few days I often ended up touching the screen and trying to use it as a touch screen. Probably related to the small distance between Touchbar and display. But failing to do this often enough, it’s not an issue any longer. (But maybe a touchscreen isn’t as bad as Apple thinks.)

Obligatory mention of the #donglelife: I try to bypass having a docking station or therelike by directly upgrading most cables to USB-C cables, so I just have one HDMI-dongle for whenever I need to connect to a projector and two tiny USB dongles just in case.

So let’s see how it holds up in the long run, but for now I am very happy with this machine.

Maintaining Different Git Identities

I like to have separate “identities” for my private and work stuff when using Git: Commits at work should be authored with my work email and commits in private projects with my private account. Until now I would always configure this per repository as soon as I noticed a commit done by the wrong email.

As I was setting up my new computer and edited the global .gitconfig, I wondered if there is a better way to keep this separate. Turns out there is one: With the release of version 2.13, Git introduced “Conditional Includes”.

With these includes I can set a specific gitconfig-file to be include for all repositories within a specific location. As I store all my work projects within the folder ~/Work, I set the default user-config to be my private one and include the work-specific configfile for all Git repositories within that location.

# ~/.gitconfig
[user]
    name = Firstname Lastname
    email = <private email address>

[includeIf "gitdir:~/Work/"]
    path = .gitconfig-work
# ~/.gitconfig-work
[user]
    name = Lastname, Firstname
    email = <work email address>

The risk of being annoyed by wrongly associated commits is vastly smaller now — until I start checking out work projects to ~/Desktop/tmp for minor fixes.

To check your configuration, make sure to be in a directory which is tracked by Git. Non-Git directories will always show the default configuration:

$ cd ~/dev/justcurious 
$ git config user.email
<private email address>

$ cd ~/Work/projectA
$ git config user.email
<work email address>

$ cd ~/Work/not-a-repo
$ git config user.email
<private email address>

Moving to a System Font Stack

The trends in webdesign are fairly short-lived. It’s a steady move between using different color palettes from pastel to neon colors and back. Currently there seems to be a trend to go back to that classic blue color (almost #00F) for links like Github changed to earlier to this year.

While I am not really fond of discussing colour schemes, something else appears to be happening that I welcome: the trend back to a system font stack. Native font stack means to use a font on websites which the user has already installed, skipping custom Webfonts. In the early years of the web this meant to choose a Font which was most likely to be available on all devices (like Verdana). The 201 7 6 edition of this tackles it in a more sophisticated manner: Trying to find the best font available for each particular platform.

If you look at the (current) CSS rules of my website you will see this:

body{
    font-family: -apple-system, 
        BlinkMacSystemFont, 
        "Segoe UI", 
        Roboto, 
        Oxygen-Sans,    
        Ubuntu, 
        Cantarell, 
        "Helvetica Neue", 
        sans-serif;
}

Quite lengthy – and there are plenty blogpost going into detail on which order is the right one: bitsofcode, CSS Tricks, Smashing Magazine. So if you’re on a Windows machine, you will read this text in Segoe UI; on a Mac in San Francisco and on an Android device in Roboto.

From a design perspective this might resemble a nightmare – not knowing how stuff will look at the user end – yet it comes with a clear technical benefit: there is no more need to deliver the font families along side the content. No more FOUT, FOIT or FOFT (seeing text in the wrong font or not at all until it has been loaded). Whenever I am somewhere with non-perfect Internet connectivity this drives me crazy.

For me it replaces a set of Google Web Fonts which where hasty picked based on what I saw on other websites. And surely there are websites where the font plays a huge part in the experience (for me that’s Medium for example). But personally I would prefer to have more websites use the system font than ill-suited Webfonts.

And just to be sure: Once everybody has seen enough of the new system fonts, the design trend will go back to Webfonts again. Hopefully the current issues around them are resolved in a standardized way by then.

Plantronics BackBeat Pro 2 SE Review

The Plantronics BackBeat Pro 2 SE

Two years ago I tested a couple of Bluetooth headphones and settled on the BackBeat Pro headphones by Plantronics. I have been very happy with them for the time being and it’s successor model, the BackBeat Pro 2, got good initial reviews I wanted to give them a try as well. This is my personal review after almost two weeks using them at work and at home. For the lack of any other comparisons I will mostly go into what’s different to the old pair.

Once unpacked the first impression that they are lighter and look way less bulky. And this impression also solidifies when putting them on: They feel lighter on the head and sit a bit more comfortable on the head. Thanks to the overhauled design I’m not looking like an alien as I did with the version one.

Comfort and Controls

The most distinct improvement first: For me the increased comfort while wearing the headphones justified the expense right away. As I would also call the old version comfortable, the new version fits my head better. Previously I had to take them off after an hour or so of usage because they would put a bit too much pressure on my ears. This has gotten definitely better and now I find myself wearing the headphones all through the morning for example. Yet the earcups could be just a tad thicker for even more comfort.

They sticked with the physical controls for all control elements on the headphones themselves. So without having to grab my device I can control the music player, adjust the volume, and take calls. In comparison to the old model the volume is now also adjusted on the left earcup and behaves more like buttons than the dial. And the OpenMic feature is now an additional option on the ANC switch. I like both changes as this behavior seems more intuitive than the context-depending actions on the previous model.

They also have the “smart” sensors for stopping the music when you take the headphones off, but I disabled this also for the new headphones after a few days as I find it rather confusing and sometimes even annoying.

Sound Quality

Albeit the sound is similar to the first version, the bass sounds a bit “fuller” for the lack of a better term. Yet they are still far from the bass heavy headphones from Beats and alike. As I listen mostly to Rock music I prefer the new sound signature.

The quality for calls is a bit of a mixed bag: In a mostly silent environment it’s okay and the person on the other end can understand me fairly good. But in a situation with more background noise, e.g. while walking down a crowded road, the quality deteriorates quite a bit and it’s harder to be understood. But the quality on my end has improved over the first version: It’s easy to understand the person you’re talking to without the small distortions the old headphones showed every couple of seconds.

A nice surprise was the improved quality when listening over the (old) SBC codec which is the only one supported by my old MacBook Pro. For all other input devices it supports the better aptX and AAC codecs.

Noise Canceling

The active noise canceling (ANC) hasn’t changed much as far as I can tell, regardless of what the Plantronics PR material says. I never listened to the Bose QX35 or the Sony MDR-1000X, so I can’t compare them with what’s proclaimed as the references for noise canceling on Bluetooth headphones (but also costs twice as much).

In everyday situations it blocks out some of the background noise like the cars and the generic sound baseline while commuting to work. Yet you can hear and understand announcements without much hassle. I like this actually quite a lot.

While working the headphones and the enabled ANC actually help me to concentrate by blocking large parts of the background noise, especially since there is a large construction site next to my office.

Other Observations

  • They removed the microphone from jack cable. Yet the cable (with mic) from the old headphones can be used without a problem.
  • The printed wood-imitation seems rather out of place. Not sure how well this ages when you use the controls often.
  • The multipoint Bluetooth connection (you can connect these headphones to two sources at the same time) is still a feature I love about these headphones.
  • Thanks to the new design I now also use the headphones also when leaving the house where I only used them stationary at my desk beforehand.
  • The “Special Edition” is probably not worth the higher price, if you don’t need NFC and don’t mind the different colors

Add to 2Do v1.0 – Now also available for Chrome

Yesterday I released version 1.0 of my “Add to 2Do” extension, for both Chrome and Firefox:

This is the first version for Chrome, but has essentially the same the first version of my “Add to 2Do” extension on the Chrome Web Store. Like it’s Firefox pendant it will create a new task in your 2Do inbox with the title of the current tab and the URL as note. While the functionality and behavior is mostly the same, there were quite a few changes under the hood to get it there.

Migrating to WebExtensions

Essentially this version is a complete re-write, granted it’s less than a hundred lines of code. While the first version for Firefox used Mozilla’s own Add-On SDK, I migrated it over to the WebExtension format as a reviewer suggested. This format has been introduced by Chrome, and even Microsoft’s Edge uses it, making it a somewhat universal standard for browser extensions. Are We WebExntesions Yet has a nice overview on the current state of Firefox catching up with Chrome.

My first go at it was to mimic Mozilla’s starter tutorial on WebExtensions. Plenty of example code on the MDN was an easy start to cover the tab tutorials on how to use the Tab-related APIs, what I struggled the most with was the part of calling a different URL scheme to make use of the x-callback-url endpoint of 2Do. The Firefox add-on used the proprietary Request object, which isn’t available from the WebExtension framework, yet native XMLHttpRequests will require a try-catch block to avoid errors. So after some fiddling and research I went with using a temporary iFrame.

Next Steps

For myself the current state is “good-enough” and I don’t have any immediate plans to extend the extension in any major way. The direct to-dos left in 2Do are to polish the entries in the Chrome WebStore and on the Mozilla Add-On directory. And to better document and organize the Github repository.

'Add to 2Do' Firefox Add-on

screenshot of the 'Add to 2Do' Firefox extension

TL;DR I created a Firefox add-on which will throw the current page into your 2Do inbox. It’s available from addons.mozilla.org and the sources are up on Github.


How it came to be

I find myself often having tasks for the websites I’m currently on. Be it for wiki pages I’m supposed to edit at a later point or other people’s JIRA tickets I want to comment on. As my colleagues might confirm, I suck at keeping something like that in my mind for more than 5 minutes. So as an avid 2Do user I started creating tasks for myself in 2Do. Usually by copy and pasting URLs from my browser (Firefox) to 2Do.

Doing this manually, over and over again on my Mac feels especially annoying since you can do this with the Share-Sheet directly on iOS. Turns out you can do the same from the macOS Safari, but I won’t switch browser because of this. So I gave myself a go at Firefox extensions.

Quite quickly — thanks to x-callback-url (2Do documentation) — I was able to quickly hack together my first public Firefox Add-on “Add to 2Do” (Sources are at mkleucker/firefox-2do-extension) and submitted it to addons.mozilla.org. After a first rejection due to unnecessary files being part of the packaged extension, I was quickly able to get it live.

icon of the 'Add to 2Do' Firefox extension

A special thanks goes out to the creator of 2Do who allowed me to use the official 2Do icon in a grayscale version as icon for the add-on.

So what does the add-on do for now? It will create a new task in 2Do (in the Inbox) where the title is the title of the current tab. The URL will be added to the note-field, as will be any selected text.

Pretty straight forward for now. But I’m looking to improve it further. Feel free to add feature requests as issues on Github.

Developing an add-on for Firefox

Actually I have created a Firefox add-on before, but just for the private usage in a study for my Master Thesis. And that was a few years ago. So coming back to this, a lot has changed: Currently Firefox is trying to also support Chrome’s extension format. This will make it very easy to have your extension in both browsers with only a bit additional work. Yet the current version of my extension is built on the current Add-on SDK, which has matured since I used it last.

Will there be a Chrome extension?

I already made a small announcement that I’m working on Chrome version as well. I also do have a first proof-of-concept running locally. But I want to move the Firefox extension over to the WebExtension first, so both add-ons / extension can share the better part of the code. I hope to keep the maintenance low that way.

Also I came across a similar Chrome extension, pepelsbey/add-to-things, which offers the same functionality for Things. It seems that I can learn a bit from it for when converting to the WebExtension format.