Categories
United States

Wickham Park

I recently had the opportunity to visit a friend of mine over in Connecticut. I’ve never been to New England before (the closest I’d been previously was an hour spent in a New York airport, and given that I can’t even remember which airport it was, it clearly wasn’t the most fun visit), and I was pretty excited to see the sights.

Seriously, I’m never going to stop enjoying panorama photos.

The first place we went that made me glad I’d brought my camera was Wickham Park; it’s up on more of a hill than I initially realized, which made for a good panorama at the top.

I have an impressive number of photos of paths in my collection.

A bit lower down, there are a few different ‘gardens’ around the park; the first one we wandered around was the ‘marshland’ theme, if I’m remember correctly.

Every once in a while, I wish my DSLR could take a Live Photo, because the sound of all the birds when I was taking this one was pretty great.

Honestly, I think the top and bottom of the hill were the best parts; the gardens in between were… not all that impressive.

The “Oriental Garden”, for example, featured a rather sad pagoda and a very slimy pond.

I also didn’t bother taking any pictures of the “Irish Garden,” which looked like what happens when someone in the 1930s makes a garden, and it becomes too ‘historic’ to tear down for being a racist caricature. An aesthetic that was rather undercut by the sign at the end, which says it opened in 2016.

The “Scottish Garden” was a bit more interesting in the statuary, but rather lacking in actual plant life.

When we visited, I read through the pamphlet a bit, but it mostly boiled down to a list of all the different gardens, a brief mention that it was named after the rich fellow who’d established the place, and the fact that it’s a private park, owned and maintained by Bank of America on behalf of the family’s estate. (“Everything around here is owned by some bank of another,” I was told.)

Oh, you thought I was done with the panoramas for this post, didn’t you?

But hey, it’s sitting on some pretty land, and I do like seeing parks that’re at least somewhat open to the public, so who am I to complain?

(Technically speaking, this is also a panorama, just not as intensely so as they usually are.)
(It also wasn’t taken at Wickham Park, but still.)

Categories
Playlist

Playlist of the Month: March 2019

An update since last time: the iTunes Store Search API is nicer if you don’t try to do a lot at once. The moral of the story is… teach your algorithms to slow down and smell the roses?
Silhouette – Aquilo
Coldplay (feat. Vic Mensa) – Mr Hudson
Ibiza (feat. Romeo Santos) – Ozuna
You Found Me – The Fray
Hide & Seek (Imogen Heap Cover) – Amber Run
Congratulations – Blue October
Body – SYML
Better – Khalid
Cologne – Haux
Teardrop – José González
How to Save a Life – The Fray
Shadow and a Dancer – The Fray
Pyres of Varanasi – Thirty Seconds to Mars
Hands Held High – LINKIN PARK
Sober – Edwin Raphael
Flashback – Majik
Strangers – Majik
Friends (Under the Influence) – Majik
If You’re Gone – Matchbox Twenty
O Superman (For Massenet) – Laurie Anderson
Movement – Hozier
Love Me Back – RITUAL & Tove Styrke
Sola – Luis Fonsi
RLNDT – Bad Bunny
Coincidental – Betcha
Lust – Xela
Temporary – Ella Vos
Heavy Lungs – FLØRE
Let You Down – NF
St. George – Mt. Joy
bury a friend – Billie Eilish
How You’ll Be Remembered – Aron Wright1
Green Eyes – Edwin Raphael
Back In My Body – Maggie Rogers
Visions (feat. RBBTS) – Lane 8
Harbours – Edwin Raphael
Faded – Alan Walker
Places We Don’t Know – Kasbo
Bigfoot – Mt. Joy
Out of Love – Peter Manos
Queen of Coasts – Edwin Raphael
Sheep – Mt. Joy2
wish you were gay – Billie Eilish
Run – Harrison Storm
13th Floor (feat. Lil Halima) – Elias Boussnina
when the party’s over – Billie Eilish3
Dinner & Diatribes – Hozier
Starboy (feat. Daft Punk) – The Weeknd
Power Over Me – Dermot Kennedy4
Where’s My Love – SYML
Mirage – Elina
Not Easy – Evan Roman
Jumper – Natalie Taylor5
Lucky for You – Novo Amor & Gia Margaret
Human (feat. Tom Walker) – dodie
A Big World – Joel Adams6
WDWGILY – SYML
honest – GOLDN7
Freedom Falls – Khushi
The Bird – SYML
Here With Me (feat. CHVRCHES) – Marshmello
When It Ends – Imaginary Future
My Boy (feat. Amor Romeira) – Allen King8
Cama Vacía – Ozuna
Tell Me Its a Dream – Phillip LaRue
all the good girls go to hell – Billie Eilish
SKINNYDIP – Jake Miller
WHAT IF YOU FELL IN LOVE? – Jake Miller9
my strange addiction – Billie Eilish10
Thinking of You – Christian Kane11

  1. I still want this to be used in a movie. No idea what movie, but it feels very cinematic. ↩︎
  2. Fun to sing along to, 10/10 would recommend ↩︎
  3. This whole album is great ↩︎
  4. Instagram’s little ‘share a song in your story’ thing is a good way to discover music. Not as good as it could be — if they’d give Apple Music links instead of only Spotify, I’d be happier. ↩︎
  5. This is a really good cover. ↩︎
  6. This will very much get stuck in your head ↩︎
  7. Also very catchy ↩︎
  8. Protip: don’t google this guy; if you’re lucky, you’ll just find his YouTube channel. ↩︎
  9. This song really reminds me of “I Like Me Better” ↩︎
  10. As of this writing, this is tied with “bury a friend” for being my favorite song on this album. ↩︎
  11. If you haven’t watched Leverage, you absolutely should, it’s a wonderful, wonderful show. ↩︎
Categories
Playlist

Playlist of the Month: February 2019

Ideally I would’ve spent more time commenting on this list than I did fighting the iTunes Store Search API, but we can’t always get what we want.
Silhouette – Aquilo
start//end – EDEN
Coldplay (feat. Vic Mensa) – Mr Hudson
Ibiza (feat. Romeo Santos) – Ozuna
Ficción (feat. Bebe) – Costa, Mygal X & Bebe
You Found Me – The Fray
Unsteady – X Ambassadors
Save Me – Majik
Hide & Seek (Imogen Heap Cover) – Amber Run
Amen (LCV Choir) – Amber Run
Conversations with my Wife – Jon Bellion
Be Somebody – Kings of Leon
Congratulations – Blue October
Body – SYML
Better – Khalid
Cologne – Haux
Tongue – MNEK
Bleach Report – Ian Isiah
Sunflower (Spider-Man: Into the Spider-Verse) – Post Malone & Swae Lee
Scared of the Dark (feat. XXXTENTACION) – Lil Wayne & Ty Dolla $ign
Ocean (feat. Khalid) – Martin Garrix
Dark Things – Vic Mensa
Teardrop – José González
Clean Eyes – SYML
Klonopin – Vic Mensa
Over My Head (Cable Car) – The Fray
How to Save a Life – The Fray
Vienna – The Fray
Shadow and a Dancer – The Fray
Hold My Hand – The Fray
Pyres of Varanasi – Thirty Seconds to Mars1
Hurricane – Thirty Seconds to Mars
Night of the Hunter – Thirty Seconds to Mars
Lost In the World (feat. Bon Iver) – Kanye West
Hands Held High – LINKIN PARK
Phony – KROWNS
Sober – Edwin Raphael2
Flashback – Majik
Strangers – Majik3
Friends (Under the Influence) – Majik
SOBER – daste.
If You’re Gone – Matchbox Twenty
O Superman (For Massenet) – Laurie Anderson4
Silver Lining – Mt. Joy
Movement – Hozier
Astrovan – Mt. Joy5
Jenny Jenkins – Mt. Joy
Love Me Back – RITUAL & Tove Styrke
Sola – Luis Fonsi
RLNDT – Bad Bunny6
Dirty Love – Mt. Joy
Clean Eyes (Acoustic) – SYML
Coincidental – Betcha
Thunder – Imagine Dragons
Good Old Days (feat. Kesha) – Macklemore
Lust – Xela
Temporary – Ella Vos
Heavy Lungs – FLØRE7
Let You Down – NF
St. George – Mt. Joy8
bury a friend – Billie Eilish9
Call It Love – Nathan Ball
Colder – Edwin Raphael
The Descent (feat. Lily Moore, Moss Kena & Jacob Banks) – Other People’s Heartache & Bastille
How You’ll Be Remembered – Aron Wright10

  1. I wrote a paper about this song, and haven’t the faintest idea of what grade I got. The moral of the story: stressing about grades has always been pointless. ↩︎
  2. I found an interview this guy didwhere he described his music as “feeling nostalgic about something or feeling some weird sadness about something,” which is exactly my aesthetic, given that I describe my taste in music as “sad hipsters crooning into microphones.” ↩︎
  3. Considering that Majik recently broke up, sorta, I was really happy when this came out and was a great addition to their repertoire; it feels a bit like a return to what they sounded like when I first started listening to them, which is, not coincidentally, why “Friends” is also in this list. ↩︎
  4. I love this, because it makes me nostalgic for the ‘80s. And not in a Thor: Ragnarok “look at how Aesthetic(TM) this time period was!” way, but I genuinely miss my experience of everyday life as a 20-something in the ‘80s. Which is impressive, given that I wasn’t born until the ‘90s. ↩︎
  5. This goes as a shoutout to my sister, who made me listen to this whole album. Told ya it’d wind up in my playlist. ↩︎
  6. Fun fact: I consistently read this title as “‘reliant,’ but pronounced wrong” ↩︎
  7. The first line is great, just “I’m not magnificent” ↩︎
  8. Probably my favorite off this album – “Jenny Jenkins” is really catchy, “Astrovan” has some great lyrics, but “St. George” just has the most visceral emotion in his voice. ↩︎
  9. This feels like the auditory version of a really good horror movie, and I love it. Which is weird, considering that I really don’t like horror movies. ↩︎
  10. Ooh, this is a weird note to end on, just ‘hey, time to be Sad’. Like, I love it, but I would’ve preferred to end on a slightly higher note than “let’s discuss your mortality” ↩︎
Categories
Photography United States

Joshua Tree

Joshua Tree National Park has been on my ‘places to visit’ list for quite a while. Honestly, I’m not sure how it wound up there, but I’m happy it did – from what I saw, it’s a pretty cool place.

These are some Hanna-Barbera looking rocks.

(I was told by a friend that you should really try to stay for the whole day, especially sunset, and just see what it all looks like with different lighting conditions, but unfortunately wasn’t able to do that this time; next time, though…)

I also climbed some rocks, but the ones I climbed were… less vertical.

The park was established in the 1930s by FDR. At the time, the Works Progress Administration – among other things – was running a poster campaign intended to inspire the American people, I believe along the lines of ‘look at all this neat stuff our country has!’

Panoramas are fun.

As far as I can tell, Joshua Tree didn’t get any of those posters, unfortunately; something about the federal government very busy all of a sudden.

Seriously, these rocks are fun to climb. I wish I’d brought some proper climbing clothes, I would’ve… probably injured myself much worse than the scraped elbow I got.

A lot of the posters that were produced are lost now, more’s the pity. It was an interesting aesthetic, and I’m a big fan of the whole “advertising for the national parks” thing.

The nice thing about making these with a DSLR and Lightroom as opposed to my phone is that I can pause and wait for people to walk by.

Apparently somebody else was as irritated by all this as I was, because there’s a modern imagining of what a WPA poster for Joshua Tree would’ve looked like; they’re for sale in the park’s information center.

Fun fact about the Joshua Tree: they don’t form rings in the way that other trees do; when scientists want to figure out how old one is, the preferred method is to measure the height, then divide by the species’ average growth rate.

The moral of the story here is that our national parks are a treasure, and we should continue to support them. (And expand them! Write to your congresspeople about it.)

I titled this photo ‘support’ before I started writing this post, so it’s really just an amazing coincidence that I worked it in right after I talked about supporting the parks.

After all, who doesn’t love a whole bunch of beautiful nature?

Categories
Playlist

Playlist of the Month: January 2019

This year, my new year’s resolution was to immediately fail at blogging more often.
Silhouette – Aquilo 1
Antes de Morirme (feat. Rosalía) – C. Tangana
start//end – EDEN
lovely – Billie Eilish & Khalid
Coldplay (feat. Vic Mensa) – Mr Hudson
Ibiza (feat. Romeo Santos) – Ozuna
you should see me in a crown – Billie Eilish
La Modelo (feat. Cardi B) – Ozuna
Ficción (feat. Bebe) – Costa, Mygal X & Bebe
Única – Ozuna
Pteryla – Novo Amor & Ed Tullett
You Found Me – The Fray
Unsteady – X Ambassadors
Save Me – Majik
Please – Saro
Bellyache (Marian Hill Remix) – Billie Eilish
Nevermind – Dennis Lloyd
Be There – Fyfe
Hide & Seek (Imogen Heap Cover) – Amber Run
Amen (LCV Choir) – Amber Run 2
forever free – San Holo & Duskus
Starlight (feat. Mr Gabriel) – Jai Wolf
Conversations with my Wife – Jon Bellion
lift me from the ground (feat. Sofie Winterson) – San Holo
Be Somebody – Kings of Leon
A Sky Full of Stars (Live in Buenos Aires) – Coldplay
Give Yourself a Try – The 1975
BAGDAD (Cap.7: Liturgia) – ROSALÍA
TOOTIMETOOTIMETOOTIME – The 1975
DI MI NOMBRE (Cap.8: Éxtasis) – ROSALÍA
Congratulations – Blue October 3
Body – SYML
Better – Khalid
Cologne – Haux
Such Great Heights – The Postal Service
Such Great Heights – Iron & Wine
There Is A Light That Never Goes Out – The Smiths
First Time (feat. Dylan Matthew) – Seven Lions, SLANDER & Dabin
Tongue – MNEK 4
Lookalike – Conan Gray 5
Bleach Report – Ian Isiah 6
Way Up – Jaden
Sunflower (Spider-Man: Into the Spider-Verse) – Post Malone & Swae Lee
Scared of the Dark (feat. XXXTENTACION) – Lil Wayne & Ty Dolla $ign
The District Sleeps Alone Tonight – The Postal Service
Ocean (feat. Khalid) – Martin Garrix
Beach House – The Chainsmokers
Let Go – Beau Young Prince
Sleeping In – The Postal Service
Hide (feat. Seezyn) – Juice WRLD
Home – Vince Staples
Freak – XYLØ
Dark Things – Vic Mensa
Crash – Chris Malinchak
It’s Only (feat. Zyra) [ODESZA VIP Remix] – ODESZA
Teardrop – José González 7
Correct – MNEK
Clean Eyes – SYML
Klonopin – Vic Mensa 8
Waste of Time – Lostboycrow
Eyes – RÜFÜS DU SOL
Over My Head (Cable Car) – The Fray
How to Save a Life – The Fray
Vienna – The Fray 9
Shadow and a Dancer – The Fray
Hold My Hand – The Fray
Pyres of Varanasi – Thirty Seconds to Mars
Hurricane – Thirty Seconds to Mars
Night of the Hunter – Thirty Seconds to Mars
Lost In the World (feat. Bon Iver) – Kanye West
Hands Held High – LINKIN PARK

  1. I used one of those “year in review” things to analyze my Apple Music data, and after I filtered out the playlist that I leave going when I’m asleep, this was, unsurprisingly, one of my top songs. ↩︎
  2. This and Hide & Seek sorta started me on a nostalgia trip later in the month; you’ll see it in a bit. ↩︎
  3. I really like this song, it’s a cool collaboration, but having half paid attention to the lyrics, I’ve gotta say, I think the guy’s being a dick. “Hey, congrats on the engagement/wedding, also I’ve been in love with you forever” ↩︎
  4. This song is great and I love it ↩︎
  5. I described this to somebody as “a gay guy who got tired of freaking out about Lana Del Rey and decided to just be her.” ↩︎
  6. The intro is great, listen to it ↩︎
  7. May or may not have binge-watched an entire season of House while I was sick. That’s definitely a good show to watch while you’re sick, you just sit there diagnosing yourself with everything. ↩︎
  8. I’m gonna be honest, I mostly just think this song is really funny, because you can hear him thinking “oh, this is gonna upset some suburbanites” with some of the stuff he says. ↩︎
  9. This song is also hilarious, I love that there’s just a whole song about “ooh, sorry, there’s really no way to reach me, I got a new phone or whatever” ↩︎
Categories
Playlist

Playlist of the Month: December 2018

Happy new year, everybody, and I hope it treats you well. My new year’s resolution is to actually do all the stuff I signed myself up to do in the past few weeks, which is… rather a lot of stuff.
Silhouette – Aquilo
Antes de Morirme (feat. Rosalía) – C. Tangana
start//end – EDEN
lovely – Billie Eilish & Khalid
Coldplay (feat. Vic Mensa) – Mr Hudson 1
Ibiza (feat. Romeo Santos) – Ozuna
you should see me in a crown – Billie Eilish
La Modelo (feat. Cardi B) – Ozuna
Ficción (feat. Bebe) – Costa, Mygal X & Bebe
Rooftop (feat. Jake Miller) – The Stolen
Única – Ozuna
Pteryla – Novo Amor & Ed Tullett
You Found Me – The Fray
Arashiyama – Fyfe & Iskra Strings
Emigrate – Novo Amor
Unsteady – X Ambassadors
Save Me – Majik
Who Are You (Anatole Rework) – Aquilo & Anatole
Serotonin Rushes – Fujiya & Miyagi
Please – Saro
Stuck – Imagine Dragons
Generation Why – Conan Gray 2
El Síntoma de (ún) Músico [feat. La Tortuga China] – Trending Tropics
Bellyache (Marian Hill Remix) – Billie Eilish
Nevermind – Dennis Lloyd
Natural – Imagine Dragons
Real Life – Imagine Dragons
Be There – Fyfe
Hide & Seek (Imogen Heap Cover) – Amber Run 3
Amen (LCV Choir) – Amber Run
forever free – San Holo & Duskus
Carousel – Amber Run
Wait for You – Jake Miller
Otro Día en la Tierra (feat. Frank Báez) – Trending Tropics 4
Bad Liar – Imagine Dragons
Starlight (feat. Mr Gabriel) – Jai Wolf
Conversations with my Wife – Jon Bellion
lift me from the ground (feat. Sofie Winterson) – San Holo
Candy Cane Lane – Sia
Be Somebody – Kings of Leon
A Sky Full of Stars (Live in Buenos Aires) – Coldplay
Not for Me – Perfume Genius 5
The Scientist (Live in Buenos Aires) – Coldplay
Give Yourself a Try – The 1975
Only – Imagine Dragons
DE AQUÍ NO SALES (Cap.4: Disputa) – ROSALÍA 6
Every Teardrop Is a Waterfall (Live in Buenos Aires) – Coldplay
BAGDAD (Cap.7: Liturgia) – ROSALÍA
TOOTIMETOOTIMETOOTIME – The 1975
DI MI NOMBRE (Cap.8: Éxtasis) – ROSALÍA
Congratulations – Blue October 7
Body – SYML 8
Daylight (Phil Tan Mix) – Blue October
Better – Khalid 9
Cologne – Haux
Let It Snow – Filous 10
O Come, O Come Emmanuel – Sleeping At Last

  1. Now taking bets on which will fall out of these playlists first: this song, or the latest bit of Coldplay. ↩︎
  2. Originally I had a version of this that was released as a single, but it got pulled from Apple Music, so I replaced it with the version off the EP. Not sure what happened there. ↩︎
  3. I didn’t actually realize this was on Apple Music until I was putting this playlist together, the version I have is a rip of the YouTube video. ↩︎
  4. The downside to the Shortcut I have for putting these posts together is that, for whatever reason, it just can’t handle diacritics, so anything that involves áéíóú or ü or whatever just… doesn’t show up, and I have to look up the links by hand. Ugh, my life is so difficult. ↩︎
  5. This is the single most emo thing I’ve listened to all year, and it’s kind of amazing ↩︎
  6. This whole album is really interesting, I definitely recommend listening to it all. ↩︎
  7. Second occurrence of indirect Imogen Heap in this playlist ↩︎
  8. I’m like 95% sure this song is about being trans ↩︎
  9. This song really reminds me of a friend of mine, which is weird because when I sent it to him and said as much he replied “I have never heard this before” ↩︎
  10. Just a hint of Christmas music, here at the end of the month. ↩︎
Categories
Playlist

Playlist of the Month: November 2018

Thanksgiving is over, time for me to start listening to weirdly depressing covers of Christmas music!
Silhouette – Aquilo
Antes de Morirme (feat. Rosalía) – C. Tangana
start//end – EDEN
What a Heavenly Way to Die – Troye Sivan
Loyal – ODESZA
lovely – Billie Eilish & Khalid
Coldplay (feat. Vic Mensa) – Mr Hudson 1
Since the Day I Was Born – Lostboycrow
Ibiza (feat. Romeo Santos) – Ozuna
Not Alone – LINKIN PARK
Sad Season – Gavin Haley
you should see me in a crown – Billie Eilish 2
Optimistic – Lontalius
Push for Yellow (Shelter) – Valley
La Modelo (feat. Cardi B) – Ozuna
Something Just Like This – The Chainsmokers & Coldplay
America – XYLØ
Ficción (feat. Bebe) – Costa, Mygal X & Bebe 3
Viva La Vida (Live in Buenos Aires) – Coldplay
Aura (feat. Arthur Hanlon) – Ozuna
Setting Fires – The Chainsmokers & XYLØ
Una Flor – Ozuna
Bebé (feat. Anuel AA) – Ozuna
Rooftop (feat. Jake Miller) – The Stolen 4
Wash over Me – Jazz Morley
Fix You (Live in Buenos Aires) – Coldplay
Única – Ozuna 5
Stay Closer – ZHU
Pteryla – Novo Amor & Ed Tullett
Alps – Novo Amor & Ed Tullett
You Found Me – The Fray
Arashiyama – Fyfe & Iskra Strings
Seneca – Novo Amor
The Road Less Wandered (SYML Rework) – Aquilo & SYML
Emigrate – Novo Amor 6
Unsteady – X Ambassadors
Save Me – Majik
Who Are You (Anatole Rework) – Aquilo & Anatole
Indian Summer – Jai Wolf
Alabao (feat. Canalón de Timbiquí) – Trending Tropics
Serotonin Rushes – Fujiya & Miyagi
Repeat Until Death – Novo Amor
Please – Saro
Stuck – Imagine Dragons
Reasons to Fight (feat. Ziggy Marley) – Trending Tropics
Generation Why – Conan Gray 7
El Síntoma de (ún) Músico [feat. La Tortuga China] – Trending Tropics
Bellyache (Marian Hill Remix) – Billie Eilish
Nevermind – Dennis Lloyd

  1. Had to get out my phone during a game of Scattergories to prove that there’s actually a song called “Coldplay” ↩︎
  2. Favorite review of this song I’ve heard, (paraphrased) from a tech podcaster: “during the day, put the volume on your HomePod really high, and then play this song. During the day, though, don’t do it at night, your neighbors will get mad.” ↩︎
  3. I’ve actually got a joke I came up with about the way this song sounds, but thinking about it I don’t think I want to post it online, because I don’t want the internet knowing what my sense of humor is like. ↩︎
  4. I haven’t actually listened to Jake Miller’s new single yet, it’s in my queue, but I’m still wondering if anyone’s told him that entire color theme screams “bisexual” ↩︎
  5. does this one get stuck in your head as much if you don’t know Spanish? someone who didn’t take Spanish in high school, report in ↩︎
  6. Probably my favorite song off the new album. That said, the whole thing is great; if you want to feel nostalgic, I recommend it. ↩︎
  7. So far my impression of this guy is “a gay who decided ‘instead of being a Lana del Rey fangirl, I’m just gonna be her’” ↩︎
Categories
App

Meditime 1.1: The Siri Update

I am happy today to announce the release of the first major update to Meditime!

There are two major changes in this, and I’m going to start with the one that isn’t mentioned in the title: animations! After some tinkering, the opening/closing circle with the start/stop of the timer is now much smoother, and I went ahead and reused it in the transition to and from the new Settings page, as well.

The second new animation plays behind the timer as it runs, a slow up-and-down motion to help you focus on your breathing.

(A video would’ve been more clear here, but frankly, I don’t feel like embedding videos on this site is worth the effort.)

It’s a five-second inhale, five-second exhale cycle, giving you a total of 6 breaths per minute, which is a nice, calming rate. Not a huge addition, but one I am very proud of.

The other big change is the new Settings page; rather than just the privacy policy, I wanted a place to hide a bit more of the complexity that adding new features requires.

Starting from the bottom, I’ve added the ability to change the granularity of timer adjustments, and switched the default from 1 second to 5 seconds. If you really do need that timer running for 33 seconds precisely, you still have the ability to set that, but if you prefer round numbers and didn’t enjoy trying to swipe just right to make that happen, the new 5 second or 30 second increment options make that a lot easier.

Finally, the big change: Siri support!

The obvious parts are the new ‘Add to Siri’ buttons there, to start the stopwatch and end the current session. It’s pretty handy — thanks to Siri’s integration with the HomePod or AirPods, you can now make your interactions with the app an entirely hands-free experience.

Less obvious is the fact that the app is also linked into the Siri Shortcuts system. Every time you start a timer or stopwatch, and every time you end the session, that’s fed to the system as a potential suggestion for Siri to show you. And it links in with the Shortcuts app, as well, so you can add meditation to your “good night” Shortcut routine. (Or “good morning,” or anything else you’d like!)

Every time you set and run a timer, that gets handed to the Shortcuts system, and you can pick those up via the Shortcuts App or through the Settings > Siri & Search, where you can set custom Siri Shortcuts. They work just as well as the two provided in the app’s settings page, but provide a larger range of customization, for the power users out there.

Thank you for reading, and I hope you enjoy the new update! If you don’t have the app, not to pressure you or anything, but you’ve already read this far, it’s only $0.99, and I’d quite appreciate your patronage.

Categories
Programming Technology

Wrapping UserDefaults

UserDefaults, formerly NSUserDefaults, is a pretty handy thing. Simply put, it’s a lightweight way of storing a little bit of data — things on the order of user preferences, though it’s not recommended to throw anything big in there. Think “settings screen,” not “the image cache” or “the database.” It’s all based up on the Defaults system built into macOS and iOS,1 and it’s a delightfully efficient thing, from the docs:

UserDefaults caches the information to avoid having to open the user’s defaults database each time you need a default value. When you set a default value, it’s changed synchronously within your process, and asynchronously to persistent storage and other processes.

How handy is that! All the work of writing to disk, abstracted away just like that. Neat!
Now for the downside: it’s got a very limited range of types it accepts.2 Admittedly, one of these is NSData, but it can be a bit annoying to do all that archiving and unarchiving all the time.
One solution I use is writing a wrapper on UserDefaults. Swift’s computed properties are a very neat way to do it, and any code you write elsewhere in your project will feel neater for it.
The basic idea is this:
[gist https://gist.github.com/grey280/82b91e70ef49e087a0aefe3e9374d2b7 /]
There you go: you’ve got an easy accessor for your stored setting.
Of course, we can make this a lot neater; we’ll start by wrapping it up in a class, and make a couple tweaks while we do that:
[gist https://gist.github.com/grey280/ff61d2f31a0c9f3fc2e3595a55ae9de5 /]
First, we made a variable to point at UserDefaults.standard instead of doing it directly. This isn’t strictly necessary, but it makes things a lot easier to change if you want to switch to a custom UserDefaults suite later.3
Secondly, we pulled the string literal out and put in a variable instead. Again, this is more about code maintainability than anything else, but that’s certainly a good thing to be working for. Personally, I tend to wrap all my keys up in a single struct, so my code looks more like this:
[gist https://gist.github.com/grey280/77bccd85bb1843dbd7360f7e9eecc38a /]
That’s a matter of personal taste, though.
You might also have noticed that I made both the keys and the UserDefaults.standard private — I’ve set myself a policy that any access of UserDefaults that I do should be via this Settings class, and I make it a rule that I’m not allowed to type UserDefaults anywhere else in the app. As an extension of that policy, anything I want to do through UserDefaults should have a wrapper in my Settings class, and so private it is: any time I need a new setting, I write the wrapper.
There are a few more implementation details you can choose, though; in the example above, I made the accessors static, so you can grab them with Settings.storedSetting. That’s a pretty nice and easy way to do it, but there’s a case to be made for requiring Settings to be initialized: that’s a great place to put in proper default values.4
[gist https://gist.github.com/grey280/c067ec6f165e498f4a8e0a01164a74eb /]
In that case, accessing settings could be Settings().storedSetting, or
[gist https://gist.github.com/grey280/0080b5a0cfeb3d56e1140c81eec1edb4 /]
You could also give yourself a Settings singleton, if you like:
[gist https://gist.github.com/grey280/e393bc00557a0c24e407d25dc2b4cecb /]
I don’t have a strong feeling either way; singletons can be quite useful, depending on context. Go with whichever works best for your project.
And finally, the nicest thing about writing this wrapper: you can save yourself a great deal of repeated code.
[gist https://gist.github.com/grey280/2395469f039d96ba1e4d3558a74a839f /]
Or, if you don’t want to have a default return, make it optional, it’s not much of a change:
[gist https://gist.github.com/grey280/c03eb527f9ec5d7fb15d519563085875 /]
You can also do similar things with constructing custom classes from multiple stored values, or whatever else you need; mix and match to fit your project.
(Thoughts? Leave a comment!)


  1. If you’ve ever run defaults write from the Terminal, that’s what we’re talking about. 
  2. If it matters, it’s also not synced; the defaults database gets backed up via iCloud, but if you want syncing, Apple recommends you take a look at NSUbiquitousKeyValueStore
  3. If you want your preferences shared between your app and its widget(s), or between multiple apps, you need to create a custom suite; each app has its own sandboxed set of defaults, which is what UserDefaults.standard connects to. 
  4. UserDefaults provides default values, depending on types, but they may not be the same defaults that you want. If you want a stored NSNumber to default to something other than 0, you’ll need to do that initial setup somewhere. 
Categories
Tools

Recipes

Cooking! Once you’ve figured out the basics (don’t put stuff in the oven and forget about it, the result is, at best, your house smelling like burnt sadness for a while), it can be pretty fun.1
A lot of the cooking you do can be “let’s see what’s in the fridge and pantry and make something out of that,” but there’s also a lot to be said for working from a recipe.2
You can, of course, go old-school, have a huge stack of cookbooks and magazine clippings and handwritten notecards. Personally, I’d call that giving in to my pack-rat tendencies a bit too much, so I prefer to go digital.3
My recipe management software of choice is Paprika; they’ve got a Mac app, too, and I believe a Windows app?4 Regardless, it’s pretty easy to put stuff into, and they’ve got some nice stuff for actually cooking with (check ingredients off as you go, automatic conversions, multiple timers, it’s almost like the app was made for this).
When you first open it up, it can be a bit empty, and their suggestion of “putter around the internet and find some stuff to get started” didn’t quite work for me. You remember that mention of cookbooks and clippings and notecards? That’s what we used to have; now it’s a much more compact setup, and I’m quite willing to share. About 900 recipes, neatly organized to help you start off your collection. Enjoy!


  1. And, as a fun bonus, it’s generally cheaper than buying ready-made food! 
  2. Especially if you’re baking; cooking is an art, baking is a science. 
  3. Same amount of stuff, but much easier to search through! And the storage is a lot cheaper, too. 
  4. You can tell how long it’s been since I used Windows, not by the fact that I don’t know, but by the way that I don’t know if they’re called apps on Windows or not. Program? Software? Who knows. 
Categories
App

Fluidics 1.3: the Subscription Update

I was originally going to call this one “the widget update,” but that felt a bit dishonest, because that’s not the biggest user-facing change of the update.
As somebody who wants to have a nice, long career making software for people to use, I’m rather invested in the idea that it should be possible to make a living by… making software for people to use. The original business model for the App Store, then, was a bit iffy: the user buys your app and then they have it indefinitely. Good for them, except with the developer no longer making money, they no longer have any incentive to maintain the app.1 Bad news for the user, as the app is no longer getting new features, or even maintained to stay functional on the latest versions of the operating system.
Which is why I’m rather a fan of the subscription mechanic that Apple started giving developers recently. Ongoing revenue means ongoing support; that’s why, for example, I jumped at the chance to support my favorite writing app when they shifted to a subscription model.
With this update, I’m adding a subscription to Fluidics. Thus, the title of the update; it’s definitely not a hidden thing I’m doing here.
I’m also not taking any features away; everything that was available for free in 1.2 remains free.2 The subscription is titled ‘Pro,’ and the goal is for it to provide access to a variety of new features. Initially, there are two: with a Pro subscription, you can apply your own multiplier to your daily goal, from 0.5 to 1.5; and there’s now a second widget option, displaying your progress towards your goal and a single Quick Add button that can cycle through all of your Quick Adds with a tap.
I also want it to be pretty cheap, so it’s about as low as it can go: a dollar a year.
These aren’t the only Pro features I have planned — I’d like to add a few more things that I think will be quite handy. There will be new features for the free version of the app, too; in this update I’ve added a new ‘Goal’ card (in the Settings screen) that shows how the app is calculating your goal. It’s color-coded, I’m quite proud of it.
So that’s the long and short of it: in order to fund ongoing development of the app, there’s a new $1/year subscription that’ll get you some ‘Pro’ features; the core functionality is still free, but if you want a bit more power, it’s there at a very reasonable price.
As always, thank you for reading, and I hope you’ll download Fluidics; it’s free on the App Store.


  1. For a while, this worked out okay, thanks to the explosive growth of the iPhone; the growing customer base of the App Store meant there was functionally infinite growth of your target market. Now that some absurd proportion of the world population owns a smartphone, though, that growth has slowed down. 
  2. I am, admittedly, kicking myself a little about not keeping the “different units per Quick Add” as a ‘pro’ feature, but oh well, I decided I wasn’t going to take anything away from anyone. 
Categories
Technology

iOS Notification Routing

The other day I was thinking about the way iOS handles notifications; the new Do Not Disturb stuff in iOS 12 is a good start, but it’s still rather lacking. It’s a fun thought exercise: say you’re Jony Ive or whoever, and you’re setting out to redesign the way that notifications work, from a user standpoint.1 How do you make something that offers advanced users more power… but doesn’t confuse the heck out of the majority of your user base?
After a while dancing around the problem, I came to the conclusion that you don’t.23
Instead, imagine something more along the lines of Safari Content Blockers. By default, the existing system stays in place, but create an API that developers can use to implement notification routing, and allow users to download and install those applications as they so desire.4
Obviously, this would have some serious privacy implications — an app that can see all your notifications? But hey, we’re Jony Ive, and Apple has absolute control over the App Store. New policy: Notification routing apps can’t touch the network.5 And, to prevent any conflict of interest stuff, let’s just say that the routing apps aren’t allowed to post notifications at all.
Alright, we’ve hand-waved our way past deciding to do this, so let’s take a look at how to do it, shall we?
Let’s start with the way notifications currently work. From UNNotificationContent we can grab the properties of a notification:
[gist https://gist.github.com/grey280/f12f2abe57826f2b3efdc30cebc3d834 /]
For proper routing, we’ll probably want to know the app sending the notification, so let’s add the Bundle ID in there, and we’ll also give ourself a way to see if it’s a remote notification or local.
[gist https://gist.github.com/grey280/d60ea7481dd312bd6f4e7d6ad3e4ae4a /]
Alright, seems nice enough.6
Next up, what options do we want to have available?
1. Should the notification make a sound?7
2. Should the notification vibrate the phone?
3. Should the notification pop up an alert, banner, or not at all?
4. If the user has an Apple Watch, should the notification go to the Watch, or just the phone?
5. Should the notifications show up on the lock screen, or just notification center?
6. Finally, a new addition, borrowing a bit from Android: which group of notifications should the notification go into?8

Alright, that should be enough to work with, let’s write some code.
[gist https://gist.github.com/grey280/8dac8866a736c886a66079ff58b9d34b /]
Not a complex object, really, and still communicating a lot of information. I decided to make the ‘group’ aspect an optional string — define your own groupings as you’d like, and the system would put notifications together when the string matches; the string itself could be the notification heading.9
And with that designed, the actual routing could just be handled by a single function that an application provides:
[gist https://gist.github.com/grey280/309a5f459dc207542c4f98c27bcd0c2c /]
And with that, I’d be free to make my horrifying spaghetti-graph system for routing notifications, and the rest of the world could make actually sensible systems for it.
Thoughts? There’s a comment box below, I’d love feedback.


  1. I haven’t done much work with the UserNotification framework, so I’m not going to be commenting on that at all. 
  2. I spent a while mentally sketching out a graph-based system, somewhere between Shortcuts and the pseudo-cable-routing stuff out of Max/MSP, but realized pretty quickly that that’d be incredibly confusing to anyone other than me, and would also look very out of place in the Settings app. 
  3. As a side concept, imagine that but implemented in ARKit. “Now where did I put the input from Messages? Oh, shoot, it’s in the other room.” 
  4. Unlike Safari Content Blockers, though, I think this system would work best as a “select one” system, instead of “as many as you like, they work together!” thing. Mostly because the logistics of multiple routing engines put you back in the original mess of trying to design data-flow diagrams, and users don’t want to do that. Usually. 
  5. I’d call this less of an ‘App Store’ policy and more of a specific entitlement type; if you use the ‘NotificationRouting’ entitlement in your app, any attempt to access the network immediately kills the application. 
  6. Of course, those last two additions wouldn’t be things that you’d be able to set while building a UNNotificationContent object yourself, so perhaps we should be writing this as our own class; UNUserNotification perhaps? 
  7. We’ll assume that setting notification sounds is handled somewhere else in the system, not by our new routing setup. 
  8. This would be at a higher level than iOS 12’s new grouped notifications (the stacks), more like the notification channels in Android: categories like ‘Work’, ‘Family’, ‘Health’, and so on. 
  9. Since we’re Jony Ive, and everything has to be beautiful, we’re presumably running it through some sort of text normalization filter so people don’t have stuff going under the heading “WOrk” 
Categories
Playlist

Playlist of the Month: October 2018

Happily, the new Shortcuts update came out yesterday that makes my “get all these links” Shortcut work again. Have you downloaded iOS 12.1 yet?
Desert Rose – Jay Brannan 1
Silhouette – Aquilo
Oceans Away – A R I Z O N A
Antes de Morirme (feat. Rosalía) – C. Tangana
start//end – EDEN
Real – Majik
Stronger – Kanye West 2
Lucky Strike – Troye Sivan
No Eres Tú – Jesse Baez & C. Tangana
What a Heavenly Way to Die – Troye Sivan
NFWMB – Hozier
Loyal – ODESZA
lovely – Billie Eilish & Khalid
Coldplay (feat. Vic Mensa) – Mr Hudson
Opps – Vince Staples, Yugen Blakrok
Since the Day I Was Born – Lostboycrow
COPYCAT – Billie Eilish
Boy – ODESZA
Line of Sight (feat. WYNNE & Mansionair) – ODESZA
Can’t Forget You – Mr Hudson
Lyla – Big Red Machine
Higher Ground (feat. Naomi Wild) – ODESZA
The Catalyst – LINKIN PARK
Clarify (feat. Fractures) [Tinlicker Remix] – Lane 8
Bluebird – Lane 8 & Anderholm
Ibiza (feat. Romeo Santos) – Ozuna 3
Hide and Seek – Kodaline
See – Tycho
Not Alone – LINKIN PARK 4
Don’t Come Around – Kodaline
Born Again – Kodaline
Happier – Marshmello & Bastille 5
Angel – Kodaline
Across the Room (feat. Leon Bridges) [Tycho Remix] – ODESZA
Cheap Thrills (feat. Sean Paul) – Sia 6
Hell Froze Over – Kodaline
Sad Season – Gavin Haley
you should see me in a crown – Billie Eilish 7
Optimistic – Lontalius 8
Gold – Fyfe & Iskra Strings
Besos Mojados (feat. R.K.M. & Ken Y) – Ozuna
Push for Yellow (Shelter) – Valley
La Modelo (feat. Cardi B) – Ozuna

  1. I think this one isn’t gonna make it into next month’s list, it’s had a good run though. ↩︎
  2. Probably I should get rid oof the last fo the Kanye in my playlists, he’s gone a bit off ↩︎
  3. Because of this song I wound up adding Ozuna’s two most recent albums. Sadly, nothing’s gotten to this level yet, but still, I’m hopeful. ↩︎
  4. I believe all the proceeds from this one are still going to charity, so like… listen for a good cause! ↩︎
  5. This is, like, the opposite of “Optimistic”, further down the list, and it’s kinda nice. ↩︎
  6. I genuinely have no idea if this is the original or not, I’d heard like four different covers of this song before I ever heard Sia sing it. ↩︎
  7. I love both the music and the lyrics, this song is great. ↩︎
  8. Musically I like this, but I’ve been trying to avoid listening to the lyrics because, from what I’ve actually paid attention to, I think the song is basically “white boy Isn’t Sad about being in the friendzone” ↩︎
Categories
Technology Tools

Automatic OCR with Hazel

I recently got a copy of Hazel and have been doing a bit of tinkering around with various ways to automate my file management. Because, y’know, I can do it by hand, but why would I when I can make a computer do it for me? That’s the whole point of computers, after all.
I have a great deal of PDFs — something about scanning every paper, handout, receipt, or bit of mail I’ve received in the past six years or so does that. And if you have a commercial-grade scanner, it can be pretty easy to automate that stuff with Hazel, as the scanner will run everything it scans through Optical Character Recognition, and the PDF you’ll get will be nicely searchable.1
Unfortunately, the scanner I’ve got, while a pretty good one, is in a different price tier than the ones that’ll do the automatic OCR, so I needed a way of doing that after the fact.
There are some guides to doing that, such as this one,2 but they tend to require either Acrobat Pro or PDFPen Pro, which both have price tags above the “a couple hours of tinkering and no money” that I was hoping to spend on this project.
Throw a few computer science keywords on what you’re Googling, though, and you’ll find stuff that’s more in that vein.3 So, compiled here after I used Chase as a guinea pig, a guide to putting together automated OCR for free.4

Prerequisites

Before we can automate OCR, we need a few things installed. Open up Terminal, and let’s go.
sudo easy_install pip
(For those of you who didn’t put a few years into classes on computer science, I’ll try to explain as I go along. That first word, sudo, means “super user do”, basically; it’s the Admin Override for terminal commands. Be careful with it, you can make quite a mess tinkering with it. The next bit, easy_install, is part of the version of Python that comes default with macOS. pip is what we’re telling easy_install to install; ironically, pip is the modern version of easy_install.5)
The first time you use sudo in a Terminal session, you’ll be prompted for your password; if you’re not an administrator on the mac you’re using, you’ll need an administrator password. That’s a good opportunity to check with the administrator if this is something you should be doing at all.
Once pip is done installing, we’re going to get another installation helper, Homebrew:
sudo /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Again, this is just installing a piece of software, Homebrew.

Components

Now that we’ve got the infrastructure built, we’re going to install the components that the OCR system uses.
brew install tesseract
brew install ghostscript
brew install poppler
brew install imagemagick
(If any of those fail, you can try to rerun them with sudo added to the front, i.e. sudo brew install tesseract.)
For reference: Tesseract is the actual OCR engine, Ghostscript makes it easier to interact with the PDF format,6 Poppler is similarly PDF-related, and ImageMagick handles conversion between basically any types of images.
Finally, we’ll use pip to install a specific version of another:
sudo pip install reportlab==3.4.0
ReportLab is yet another PDF-related library, but version 3.5.0 has some compatibility issues with the OCR system.

Installation

Finally, we’ll get the actual thing that ties these all together:
sudo pip install pypdfocr
PyPDFOCR is a lovely open-source project that ties all these components together into a single thing. Once it’s installed, you can use it from the terminal:
pypdfocr {filename}, where you replace {filename} with the non-OCR’d version of the file you want in OCR’d form.7 It’ll take a bit to run, but once it’s done, you’ll have a file (named {filename}_ocr.pdf) that contains, hopefully, the text of the document you scanned.89
Go ahead and test it; if you get an error about the file not being found, see if the file name or directory structure included a space. If it did, tweak the command a bit: instead of pypdfocr {filename} you’ll need to do pypdfocr "{filename}".
You may also get an error that mentions File "/Library/Python/2.7/site-packages/pypdfocr/pypdfocr_pdf.py", line 190… and a bit more after that. If it’s AttributeError: IndirectObject…, then you’ll need to tweak part of the code.10
cd /Library/Python/2.7/site-packages/pypdfocr
sudo nano pypdfocr_pdf.py
That’ll open up nano, a very lightweight text editor. Press control+W, type in orig_rotation_angle = int(original_page.get and hit return; this will take you to the line we want to edit. It’ll read orig_rotation_angle = int(original_page.get('/Rotate', 0)) — we want to change it to orig_rotation_angle = int(original_page.get('/Rotate', 0).getObject()) by adding .getObject() before the last close-paren.
Once you’ve done that, press control+X, then hit return again. Try OCRing something again; it should work this time.

Using Hazel

Now all you need to do to have Hazel automatically OCR a PDF is, in the actions, add a “Run shell script” action, use “embedded script”, and in the ‘edit script’ bit, put in pypdfocr "$1".
Keep in mind, this doesn’t replace the PDF in place, it’ll create a copy with _ocr added to the end of the name. If you’d like the original to be deleted once it’s done, rather than having Hazel do it, just add a second line to the embedded script: rm "$1"
You’ll probably want another rule to move the OCR’d versions somewhere else; while you’re building that, you can also use the ‘rename’ action to remove the _ocr bit, just tell it to replace “_ocr” with “”.
Have fun automating!


  1. And, as a result, useable for Hazel sorting by way of the ‘contents’ filter. 
  2. I was hoping to link to Katie Floyd’s original post about it, but her website is down at the moment, so I guess I won’t be doing that. 
  3. Technically speaking, I think all I added was “site:github.com”, but that did the trick. 
  4. This assumes you have a Mac, since you’re working with Hazel, and that you’re willing to do a bit of tinkering in the terminal, which I also kinda assumed, since you’re working with Hazel. 
  5. I think that’s irony; I was a computer science major, not an English major. 
  6. “the Printable Document Format format” 
  7. Tip: you can type pypdfocr  (including the trailing space) and then drag-and-drop the PDF from Finder into the Terminal, and it’ll automatically fill in the filename. If any part of the path includes a space, though, it’ll fail, so for filenames or folders that contain spaces, do pydpfocr "{filename}" – type pypdfocr ", drop in the file, and then ", and then hit enter. 
  8. Caveat: Tesseract isn’t perfect, especially with regard to the formatting, so don’t expect this to give you a perfectly-formatted version of whatever you scanned. That said, the process is lossless: {filename}_ocr.pdf is built by taking the original PDF file and then adding an invisible text layer over the analyzed text, so you won’t lose any information by doing this, you just might not gain anything useful. 
  9. Note that it’ll spit {filename}_ocr.pdf out not necessarily where the original file was, but wherever the Terminal session currently is; if you’re unsure about where that is, you can use pwd to have it displayed, or just open . to open it in Finder. 
  10. Don’t ask me why this is all “you might have to do this”, because I genuinely don’t know why this problem only pops up some of the time. 
Categories
Playlist

Playlist of the Month: September 2018

Man, I didn’t appreciate “back to school” time enough when I had it.
Desert Rose – Jay Brannan
Thin – Aquilo
Silhouette – Aquilo
All I Want – Kodaline
Follow Your Fire – Kodaline
Six Feet Over Ground – Aquilo
Babylon – Oneohtrix Point Never
You Want It Darker – Leonard Cohen
Oceans Away – A R I Z O N A
Antes de Morirme (feat. Rosalía) – C. Tangana
icarus – EDEN
lost//found – EDEN
start//end – EDEN1
Real – Majik
Stronger – Kanye West
Lucky Strike – Troye Sivan2
Crystal Souls – Headphone Activist
No Eres Tú – Jesse Baez & C. Tangana
Away from You – Sound Remedy3
You Moved Away – Death Cab for Cutie
Clouds, Not Clocks – Slow Meadow
What a Heavenly Way to Die – Troye Sivan
Stupid Mistakes – lovelytheband
Postcard (feat. Gordi) – Troye Sivan
wrong – EDEN
Nina Cried Power (feat. Mavis Staples) – Hozier
NFWMB – Hozier4
When We Drive – Death Cab for Cutie
wings – EDEN
Technologic – Daft Punk5
Loyal – ODESZA
Thought Contagion – Muse
lovely – Billie Eilish & Khalid6
Coldplay (feat. Vic Mensa) – Mr Hudson7
Opps – Vince Staples, Yugen Blakrok
Since The Day I Was Born – Lostboycrow
Zero (From the Original Motion Picture “Ralph Breaks The Internet”) – Imagine Dragons
La Ciudad – ODESZA
COPYCAT – Billie Eilish
Forest Green – Big Red Machine
Boy – ODESZA
Line of Sight (feat. WYNNE & Mansionair) – ODESZA
Can’t Forget You – Mr Hudson
Lyla – Big Red Machine
Fix You – Canyon City8


  1. Seriously, I love this one 
  2. He’s really going for that Lana Del Rey, “I plan to be young and beautiful and then die the moment either of those runs out” aesthetic 
  3. I really like this one, but it really doesn’t agree with the speakers on my phone, which is a bummer when I’m driving; we’re all spoiled by having an aux cord, these days, but I don’t have one. 
  4. “Give your heart and soul to charity/’Cause the rest of you, the best of you/belongs to me” is such a creepy, weird line, and I love it 
  5. Someone asked me “are all Daft Punk songs like this?” while I was listening to this one. 
  6. I’d kinda forgotten about Billie Eilish, to be honest, and then someone reminded me of her and I spent the next two hours just listening to whatever Apple Music had. 
  7. Sent this one to a friend. “I like the song, but I don’t like that it’s not by Coldplay.” 
  8. This wasn’t the only cover of a Coldplay song I almost included; the version of Yellow in Crazy Rich Asians almost made it in.