Categories
Playlist

Playlist of the Month: March 2020

These playlists have been getting longer over time. Eventually I’m going to wind up just posting a list of every song in my library.1
Cologne – Haux on Something to Remember – EP
Sober – Edwin Raphael on Sober – Single
Coincidental – Betcha on Coincidental – Single
Falling Down – Harrison Storm on Falling Down – Single
Angel – H. Kenneth on Angel – Single
F**k Collingwood – Hayden Calnin on F**k Collingwood – Single
Haunted – Saint Claire on Haunted – Single
On Our Last Day – Hayden Calnin on A Life You Would Choose – EP
Hard Lines, Hard Times – William Wild on Hard Lines, Hard Times – Single
Without Fear – Dermot Kennedy on Without Fear
everything i wanted – Billie Eilish on everything i wanted – Single
Dolly Zoom – Elliot Moss on Boomerang
Don’t Take the Money – Harry Strange on Don’t Take the Money – Single
This is Where it Ends – Richard Walters on This is Where it Ends – Single
Borders – Nathan Ball on Borders – Single
Eight – Haux & Rosie Carney on Eight – Single
Chanel – Frank Ocean on Chanel – Single
notice me (feat. BENEE) – ROLE MODEL on oh, how perfect – EP
Take Me Apart – SYML on Take Me Apart – Single
Apollo – Charles Fauna on Yonder
Lies (feat. H. Kenneth) – Syence on Lies (feat. H. Kenneth) – Single
Blinding Lights – The Weeknd on Blinding Lights – Single
Rapide – Mahmood on Rapide – Single
Circles – Post Malone on Hollywood’s Bleeding
Wherever You Are – Kodaline on Wherever You Are – Single
Middle of the Night – Elley Duhé on MIDDLE of the NIGHT – Single
Soil’s Daughter – Aisha Badru on Soil’s Daughter – Single
Higher – Byron Langley on Light On – EP
Magic in the Hamptons (feat. Lil Yachty) – Social House on Magic in the Hamptons (feat. Lil Yachty) – Single
Tremors – SOHN on Tremors
Let Me Down – Run River North on Monsters Calling Home, Vol. 2 – EP
I Gave It All – Aquilo on Painting Pictures of a War – EP
twenty four seven (feat. John McDonald) – Andy H on twenty four seven (feat. John McDonald) – Single
The Box – Roddy Ricch on Please Excuse Me For Being Antisocial
Falling (blackbear Remix) – Trevor Daniel & blackbear on Falling (blackbear Remix) – Single
Somewhere (feat. Octavian) – The Blaze on Somewhere (feat. Octavian) – Single
Slowly – ODIE on Slowly – Single
hertz – EDEN on no future
Lie – Jake Scott on Lie2
Love Me (feat. Haux) – Smeyeul. & Galvanic on Love Me (feat. Haux) – Single
Better Off Without You – Aquilo on Painting Pictures of a War – EP
Where There Is Love, There’s Hope – Aron Wright on Where There Is Love, There’s Hope – Single
The Night We Met – Alle Farben on The Night We Met – Single
ROXANNE – Arizona Zervas on ROXANNE – Single
All My Life – William Wild on Rental House / All My Life – Single
2020 – Great Good Fine Ok on 2020 – Single3
Hurts Like Hell – Wrabel on Hurts Like Hell – Single
Be Slow – Harrison Storm on Be Slow – Single
no one wants to dance anymore (feat. Yung Pinch) – johan lenox on cancel the party
Losing You – Aquilo on Painting Pictures of a War – EP
Sorry – Declan J Donovan on Sorry – Single
Pines – ferdinant. on Pines – Single4
Never Seen You Get So Low – Aquilo on Painting Pictures of a War – EP
New Shapes (feat. Octavian) – Diplo on Europa – EP
White Morning – Seoul on I Become A Shade
Out the Other Side – Future Thieves on Emotional Cost
Roll Dice – Roddy Ricch on Please Excuse Me For Being Antisocial
Hue – SOHN on Hue / Nil – Single
Prayers to the Trap God – Roddy Ricch on Please Excuse Me For Being Antisocial
Waiting – Aquilo on Painting Pictures of a War – EP
Someone to Watch Over Me – Col3trane on Someone to Watch Over Me – Single
Dogcatcher – Elliot Moss on A Change in Diet5
Father Daughter Dance – Kesha on High Road
Stubborn – Daniel Allan & Jake Neumar on Stubborn – Single
No Time To Die – Billie Eilish on No Time To Die – Single6
Human – Aquilo on Painting Pictures of a War – EP
Wash Away the Wild – KAWALA on KAWALA – EP
Love Me Wrong – Allie X & Troye Sivan on Cape God
Sober – Aquilo on Sober – Single7
me & ur ghost – blackbear on me & ur ghost – Single
Slow Ride (feat. H. Kenneth) – Nick Martin & H. Kenneth on Slow Ride (feat. H. Kenneth) – Single
Explain You – JP Saxe on Hold It Together – EP
Four in the Morning – Harry Strange on Four in the Morning – Single
Make It Easy on You – Aron Wright on Make It Easy on You – Single
Girls – Balcony on Girls – Single8
not ur friend – Jeremy Zucker on not ur friend – Single9
No Alibi – Benji Lewis on Here, Then and Now – EP
Light Again – bobbycrush on Light Again – Single
Baby Girl – Bryce Vine on Baby Girl – Single
Numb – Elderbrook on Numb – Single
Tongue In the Bag – XYLØ on The Ganglands of My Heart – EP
2020 – EDEN on no future
Faith – The Weeknd on After Hours
Hardest To Love – The Weeknd on After Hours10
Where Do We Go When We Die – Quinn Lewis on Where Do We Go When We Die – Single
After Hours – The Weeknd on After Hours
Morning Prayers – Steve Benjamins on Morning Prayers – Single11
bad guy – Billie Eilish on WHEN WE ALL FALL ASLEEP, WHERE DO WE GO?
when the party’s over – Billie Eilish on WHEN WE ALL FALL ASLEEP, WHERE DO WE GO?
bury a friend – Billie Eilish on WHEN WE ALL FALL ASLEEP, WHERE DO WE GO?
Oh My My – Blue October on Oh My My – Single
In Your Eyes – The Weeknd on After Hours (Deluxe)


  1. Which, thinking about it, would require only a very small modification to my playlist script… 
  2. Scene: someone asking me what my taste in music is. “Sad hipsters crooning into microphones,” I reply. 
  3. By the end of the year I’m expecting at least one song named 2020 that’s just four straight minutes of swearing. There’s no backing harmonies, but the rhythm section will be awesome
  4. Excellent for signing along to – the main riff is very catchy. 
  5. I believe I’ve finally listened to this entire album, so it’s time to start hoping he’s got a new one coming out sometime soon. 
  6. It took me rather embarrassingly long to realize “wow, this song sounds like a James Bond intro song” and “hey it’s got the same name as the new James Bond movie” were both really obvious clues that this is the new James Bond intro song. 
  7. I only have two songs named ‘Sober’ in this list, but it feels like more, for some reason. 
  8. This song has hilariously chaotic energy; the music video is weird, as well. 
  9. “Sit down/if you need someone to lean on” is such a powerful line, I love it. 
  10. This whole album is very good, and very ‘80s. 
  11. I’m still not quite sure what the lyrics here are, but I’ve been hearing them as “sycophant blessings.” 
Categories
Portfolio

Dark Patterns

Dark Patterns are tricks used in websites and apps that make you do things that you didn’t mean to, like buying or signing up for something.

Dark Patterns

For a recent class assignment, we had to choose three dark patterns, find a site or service using each one, and then propose an alternative version that didn’t use that dark pattern.

You may notice that I’ve actually done four here – the last one was an interesting variant on some of the example dark patterns, and I wanted to explore that a bit.

You can also download a PDF of the presentation – it will work better in screen readers:

Categories
Programming Tools

Playlister

In the past couple months, I’ve had an ongoing series on converting iTunes playlists to text files, with a brief digression into scripting with Swift. While I doubt that I’m entirely done with the topic, I have reached a point where I’m ready enough to do another write-up.
This morning, I made playlister available to the public. It is not a consumer-facing application like my others; it is very much a tool for people who are comfortable with the command line.
In between the previous iteration of this tool and the current, I actually had a version of playlister built and shareable (Chase has that version installed on his Mac, actually) but, before releasing it to the public, I looked at the code and thought “I can do better.”1
So I buckled down and spent some time indulging in my love for API design, and tried some tricks I’ve been wanting to try.
The rewritten version ships with a library, LibPlaylister, that provides the basic ideas — protocols that allow for interacting with the library, playlists, and tracks; conversion to Markdown — as well as some neat new tricks. There’s some hooks for customization, such as the RatingFormatter protocol, and included FiveStarRatingFormatter, and the new LinkStore protocol, which provides a layer of abstraction on the SQLite-based caching of links.2
It was also an excuse to add to my Swift toolbox. I worked with SwiftCLI for a while, and then converted to ArgumentParser when that was released. I’ve done file interactions, and a lightweight database. I’ve learned a lot about Swift Package Manager.3 I learned a bit about XCTest, and figured out how to get it working in GitHub Actions. (And, more interestingly, figured out how to conditionally include frameworks in an SPM package. I wanted the tests running on Linux, but Linux… doesn’t have the iTunesLibrary framework, shockingly.)
I had fun building this, and will probably continue to tweak it. (I mean, it could be fun to get it automatically pulling links from the iTunes Search API, and just asking ‘is this the right link?’ instead of requiring manual entry.4)
For now, though, it’s ready enough to share, and made for a fun write-up and a good way to de-stress by tinkering.


  1. Interesting aside from giving that to Chase: Did you know that macOS has a ‘quarantine’ flag it puts on executables sent via AirDrop? That was some fun googling to figure out. The solution: xattr -d com.apple.quarantine ./playlister 
  2. That caching is definitely the biggest productivity gain of this, as compared to the previous version — now, when I go to write up my monthly playlist, the whole first part of the playlist doesn’t require any interaction at all. 
  3. Coming from working with nom’s package.json format at work, SPM Package.swift files are nice. Like, you can have comments in them! And, more, you can have actual code, so you can do neat stuff like this
  4. Although, at that point, I’d probably wind up writing it up as a SwiftUI app so I can show images. Which… might have been part of the inspiration for making LibPlaylister a separate library. 
Categories
Education

User Testing

I am rather bad at the whole concept of relaxation. I say this as an introduction, because writing this post is my idea of taking a break from putting together the final presentation for my class on user testing.
The course has been interesting overall. I will readily admit that I don’t intend to make a career of user research, but I am glad I’ve had the experience. Research is, after all, critical to design and development both. We can try to stick to the whole “if we asked people what they wanted, they would’ve said ‘a faster horse’” thing, but, shockingly, we actually aren’t omniscient. We aren’t our users.
Throughout the course of the course (and now you can tell my brain is a bit fried, because I’m throwing in wordplay), we’ve used a few different techniques. My favorite so far has been card sorting: it’s easy to explain, quick to do, and works very well for figuring out a sensible way to organize a bunch of stuff.1
I also quite enjoyed the competitive analysis assignment—going through, as best as I could, the entire market for a specific category was a surprisingly fun challenge. It’s also immediately visible how useful it is, from a strategic perspective: at the end of that assignment, I closed out an open project I had where I’d been putting together sketches for a fitness application. While it would’ve been fun to build, it really wouldn’t have had anything truly unique to establish itself in the market, and I’m too much of a Broke Millennial to be able to devote that much time to ‘fun to build.’2
We also did some quantitative and qualitative user testing, which I found interesting, but also served as the main argument for my “I don’t have a career as a researcher ahead of me” stance. Interesting, yes; useful, when done right; surprisingly difficult to do right, absolutely.
The qualitative structure was a bit more forgiving than the quantitative. We used UserTesting.com, which has a well-polished interface for assembling a test, a slightly less well-polished interface for going through a test, and a checkout page that leaked memory at an astonishing rate.34 Those complaints aside, the actual data I got was very helpful—the biggest issue I had with it was because of my own mistake, and the more open nature of the test meant that even that failure helped me sort out the answer to a different question I had.5
Going into the class, I thought I was going to like the quantitative testing more—I majored in computer science, and threw in a minor in math at the end, I’m a Numbers Guy. In execution, though, I wasn’t a fan. Part of this is probably due to the software we used: I was utterly unimpressed with Loop11. Their test assembly and reporting interface felt very Web 2.0, which I always find a bit alarming for an online-only business, and while the test-taking interface was a bit better (hello, Material Design 1.0!) it was unusable in Safari and a privacy disaster waiting to happen everywhere else.67 And for all that trouble, the data I got wasn’t all that useful. Though, a caveat to that: quantitative testing is more appropriate for summative testing, verifying that your completed design/product works as it’s supposed to, and I won’t be in a position to actually do that sort of testing for, oh, months at the earliest. Certainly not in time to use the results for this class, so I misused the technique a little bit in order to have something to work with.
As I said at the start, though I don’t intend to make a career of this, I’m glad to have taken the class—at very least, it means I’ll have that much more respect for the work my colleagues who do make a career of it are doing. And I sincerely doubt that this will be the last time that I do some testing myself; it’s important to do, and I quite like having the data to validate my designs.


  1. You can do it with actual cards, if you have time and are actually in the same place as your participants. If not, you can use online tools. We used OptimalSort, which is available as part of the OptimalWorkshop suite of tools. If that’s the only thing you’re going to do with it, I honestly can’t recommend it, because while it’s a good tool, it is not, on its own, worth the price. (Having seen their pricing structure, am I considering breaking into that market? Only vaguely.) 
  2. But hey, while we’re on the topic, check out some of my apps
  3. I left the tab alone for ten minutes and came back to 30,000 error messages in Safari’s console and about 2 gigabytes of RAM consumed. On their checkout page. C’mon, folks, that’s just embarrassing. 
  4. To be fair, I’ve got a pile of content blockers enabled, and at a quick glance quite a few of the error messages where a result of that. On the other hand, you shouldn’t be throwing that many little privacy-violating scripts at people to start with, and you definitely shouldn’t be doing it so badly
  5. I’m being intentionally vague about what I was actually testing, because it’s something I may yet fully develop, and I don’t talk about things until they’re good and ready. 
  6. I suspect Safari’s refusal to work with it was related to the latter concern; I didn’t dig into what was going wrong, just threw my hands in the air in disgust and installed Firefox. 
  7. As far as I can tell from some cursory inspection of the functionality of their ‘no code’ feature, it works by having your testers install a browser extension that… executes a man-in-the-middle attack, of sorts, on every page they view. When asking people to do the test, I told them to install the extension, do the test, and then immediately uninstall the extension—and that because I didn’t want to try walking people through installing a completely separate browser to do it in, like I did. 
Categories
Collection

TEDxMcMinnville

I recently had the opportunity to attend a TEDx event. I’m not a big TED Talk person, but I’ve watched or listened to a few, so it was interesting to see a few in-person.

I also used the opportunity to practice my sketchnoting – the ones I’ve done in the past were at my leisure, so I figured it’d be a bit different at a live event.

Which it was – it’s harder to go back and edit when you’re trying to keep up in real time, and it’s a different approach to thinking about what you’re putting down.

I’m not sharing all of my notes here – for a couple of the talks, the notes I got weren’t really interesting in any way, or were too messy to be worth sharing.

Still, I enjoyed the experience, and I’m glad I went.

(As of this writing, the videos from the event are still being edited, so I don’t have direct links; check the TEDxMcMinnville site for updates.)

School: purpose in learning, emporment to learn - becomes - scale from Apathy to Stress. Grades do not equal progress! Grades = pressure, pressure = focus, focus does not equal critical thinking. Good grades lead to secondary education acceptance, scholarship, jobs, which makes them stressful. “Just stop using grades altogether.” An assignment isn’t just a collection of points. Grades decided by conversation. From a gatekeeper to a coach, mentor. Experimentation, going out on a limb, and yes, failing spectacularly. But celebrates the failures and the learning. Equitable! Not just the “smart kids”, the ones who know how to game the system. “It makes me responsible for my grade.” “It’s not me versus the system.” “The world . . . cannot be changed without changing our thinking.” - Albert Einstein
“Start A Learning Revolution. Throw Out the Gradebook” – Matt Brisbin
Mentoring isn’t broken, it’s backwards. “Your voice is the most powerful tool you have, so use it when someone isn’t meeting your needs.” “How can I support your professional development?” From “MENTOR + mentee” to “mentor + MENTEE” The mentee owns their growth. The Egg Sandwich Principles: 1. Flip the narrative! 2. Find your unlikeliest - the person most un-like you. Learn new skills and perspectives! 3. Own your growth - figure out what type of support you need. A mentor’s job is not to reshape you or remake you, but to help your growth.
Mentoring: The Most Underutilized Secret to Success – Cinthia Manuel

I’ll add here that I misspelled Cinthia’s name in the written version, for which I apologize.

Predicting Heart Attacks 1/2 of the people who die of a heart attack have normal cholesterol levels. Age + gender + cholesterol + smoking = heart attack risk? No. Heart attacks are mostly caused by lifestyle. So DNA tests? Not helpful. But markers of inflammation are helpful. except: too variable day-to-day. Big idea: Use a more stable marker! From CRP to GPF. Exercise 30 minutes a day, and your GPF levels fall. Prevent premature death.
New Risk Factor for Heart Attacks and Strokes – David Farrell, Ph.D
Children oscillate between grief and joy. But adults try to be neat and tidy. Ambiguous Loss: Not death, but still a loss. Dementia, divorce, deportation, etc… No end, no conclusion, no resolve. So why grieve? Because we need to process. Suppressing your grief makes it bigger and less manageable. Don’t pull the emergency handle on tough emotion. Have a pity party! Acknowledge your difficult, complex emotions. Acknowledge the circumstances you’re living with. We don’t need to squash or ignore painful emotions. 1. Name your losses as they happen. Stop minimizing them! No “somebody has it worse than me.” 2. Ask for help! Decide how long you need to vent. Ask someone to… just listen. no fixing, no silver lining. Just listen. 3. Ask for more time. Embrace the ambiguity.
Embracing Ambiguity – Natalie Bowker
Service: * Tranquility * Zest for life * Longevity * Wellness * Happiness * Purpose * Health * Friendship Appeal not to altruism, but to self-interest.
Should Self-Interest Motivate Service? – Patrick Galvin
10 childhood traumas are linked to every major chronic illness. How to survive? “Resilience. Sheer perseverance.” Children who believe they can grow do better in life. Restorative approach: * Face the situation directly * Come up with a collaborative approach * Fix the damage to the relationship If a child doesn’t know how to behave, don’t punish. Teach. “People do well if they can.” Behavior is like any other life skill. We should teach it. Detention/suspension teaches kids they don’t belong. Resolving Conflicts: 1. What happened from your perspective? 2. Who was affected by it? Both parties have a share, and co-create in the solution.
Restorative Practices In Schools Have The Power To Transform Communities – Liz Knapp
“We are probably (statistically) extinct.” What is extinction? “What happens when a species dies.” - but - Can cloning bring a species back? A species fits a very specific space in an ecological puzzle. Take one out, and the puzzle rearranges to fill the space. Bringing in a clone? It has to make a new space for itself - making it a new species. The mind is an ecosystem of information. Information you forget isn’t gone, just… misplaced. But your brain can make a new space for it. Extinction isn’t a kind of death, but a kind of memory loss. Extinction is what happens when an ecosystem forgets a species. -but- no memory is a faithful reconstruction.
Extinction: Death And Memory – Leonard Finkelman, PhD
Is your work enabling the life you want, or interfering with it? Work is broken. Burnout, stress, wage stagnation… “The Life I Want” project - documenting an alternative way, making work work for you. Even if you love your work, other forces can break it. We need: employers empowering people; communities working together; governments… governing. 1. Employers: ask your employees what they need & want. Employees: ask for what you need! 2. We need community - not just at work, but outside of work, too. 3. Governments: proactively think through what we need to thrive. Healthcare, labor laws, infrastructure, “right to disconnect.” What is the community that you want? The world that you want?
The Life I Want – Christine Bader
Categories
Playlist

Playlist of the Month: February 2020

Since last time I have rebuilt my system for doing these playlists… four times? Some people hike to unwind…
Cologne – Haux on Something to Remember – EP
Sober – Edwin Raphael on Sober – Single
Coincidental – Betcha on Coincidental – Single
Falling Down – Harrison Storm on Falling Down – Single
Angel – H. Kenneth on Angel – Single
Fuck Collingwood – Hayden Calnin on Fuck Collingwood – Single1
Haunted – Saint Claire on Haunted – Single
Crying at the Party – Harry Strange on Crying at the Party – EP
On Our Last Day – Hayden Calnin on A Life You Would Choose – EP
Hard Lines, Hard Times – William Wild on Hard Lines, Hard Times – Single
Without Fear – Dermot Kennedy on Without Fear
Hollow Coves – Firewoodisland on Hollow Coves – Single
Drive – OTR & Panama on Drive – Single
everything i wanted – Billie Eilish on everything i wanted – Single
Dolly Zoom – Elliot Moss on Boomerang
Don’t Take the Money – Harry Strange on Don’t Take the Money – Single
When I Need a Friend – Coldplay on Everyday Life2
This is Where it Ends – Richard Walters on This is Where it Ends – Single
Back Around – Harry Strange on Back Around – Single
Borders – Nathan Ball on Borders – Single
Silver + Gold – Elliot Moss on A Change in Diet
Eight – Haux & Rosie Carney on Eight – Single
Chanel – Frank Ocean on Chanel – Single
Swing – Sofi Tukker on Swing – Single
Hard Times (Acoustic) – RITUAL & Robinson on Hard Times (Acoustic) – Single
Million Pieces (feat. The Chamber Orchestra of London) – Bastille on Doom Days (This Got Out of Hand Edition)
notice me (feat. BENEE) – ROLE MODEL on oh, how perfect – EP
Lucky Me (feat. Great Good Fine Ok) – The Knocks on Summer Series: 2019 – EP
Take Me Apart – SYML on Take Me Apart – Single
Apollo – Charles Fauna on Yonder
Barricade – Elliot Moss on A Change in Diet
Rossetto – Random on Rossetto – Single
Sober – Harry Strange on Sober – Single
Stay – Alt Bloom on Stay – Single
Hvn – TEME on HVN – Single
Lies (feat. H. Kenneth) – Syence on Lies (feat. H. Kenneth) – Single
Bodyintoshapes – Elliot Moss on A Change in Diet
Blinding Lights – The Weeknd on Blinding Lights – Single3
hungover & i miss u – gnash on hungover & i miss u – Single
Chain – Lolo Zouaï on High Highs to Low Lows (Deluxe)
Top Dom – Avery Anthony on Top Dom – Single
Rapide – Mahmood on Rapide – Single
Rabbit Roads – Elliot Moss on A Change in Diet
Circles – Post Malone on Hollywood’s Bleeding
Wherever You Are – Kodaline on Wherever You Are – Single
Middle of the Night – Elley Duhé on MIDDLE of the NIGHT – Single
Soil’s Daughter – Aisha Badru on Soil’s Daughter – Single
Higher – Byron Langley on Light On – EP
In the Same Place – Elliot Moss on A Change in Diet
Eleven – Khalid on Eleven – Single
Father’s Son – Declan J Donovan on Homesick – EP
Phases (feat. Trove) – Go-Jo on Phases (feat. Trove) – Single
A Sky Full of Stars – Coldplay on Ghost Stories
Beautiful & Brutal – Plested on Beautiful & Brutal – Single
Shadow – Kesha on High Road
High Road – Kesha on High Road
Hearts Ain’t Gonna Lie – JacobNeverhill on Hearts Ain’t Gonna Lie – Single
Magic in the Hamptons (feat. Lil Yachty) – Social House on Magic in the Hamptons (feat. Lil Yachty) – Single4
Alive – Lontalius & singular balance on Alive – Single
Tremors – SOHN on Tremors
Chasing Thunder – Kesha on High Road
Light Up – Isak Danielson on Light Up – Single
Let Me Down – Run River North on Monsters Calling Home, Vol. 2 – EP5
Desire – Zola Courtney on Nothing To Lose – EP
I Gave It All – Aquilo on Painting Pictures of a War – EP6
Out of the Cold – Kevin Quinn on Out of the Cold – Single
Most of Us Are Strangers – Seafret on Most of Us Are Strangers – Single
Kinky (feat. Ke$ha) – Kesha on High Road
The Wheel – SOHN on Tremors
Off by One – Elliot Moss on A Change in Diet
Stay Forever (feat. STRFKR) – Whethan on Stay Forever (feat. STRFKR) – Single
A Part – INTET on A Part – Single
Nil – SOHN on Hue / Nil – Single
Ghost – The Franklin Electric on Ghost – Single
Mutually – Firewoodisland on Mutually – Single
A Change in Diner – Elliot Moss on A Change in Diet
Dust – Oh Wonder on No One Else Can Wear Your Crown (Deluxe)
twenty four seven (feat. John McDonald) – Andy H on twenty four seven (feat. John McDonald) – Single
Better Now (Acoustic) – Oh Wonder on No One Else Can Wear Your Crown (Deluxe)
Is It Love? – JORDY on High Score – Single
The Box – Roddy Ricch on Please Excuse Me For Being Antisocial7
Falling (blackbear Remix) – Trevor Daniel & blackbear on Falling (blackbear Remix) – Single
Somewhere (feat. Octavian) – The Blaze on Somewhere (feat. Octavian) – Single8
Slowly – ODIE on Slowly – Single
Heartless – The Weeknd on Heartless – Single
Scusa a a a – Random on Scusa a a a – Single
Ibiza (feat. Romeo Santos) – Ozuna on Aura
Be Somebody – Kings Of Leon on Only By The Night
hertz – EDEN on no future
Lie – Jake Scott on Lie
Decide – Jelani Aryeh on Decide – Single
tides – EDEN on no future
Me – Nick De La Hoyde on A Beautiful Mess
Chameleon – Mako & Elephante on Chameleon – Single
Love Me (feat. Haux) – Smeyeul. & Galvanic on Love Me (feat. Haux) – Single9
Maybe – Jake Scott on Maybe – Single
Better Off Without You – Aquilo on Painting Pictures of a War – EP
Where There Is Love, There’s Hope – Aron Wright on Where There Is Love, There’s Hope – Single
Pyres of Varanasi – Thirty Seconds to Mars on LOVE LUST FAITH + DREAMS10
Aliens – The Griswolds & Transviolet on All My Friends – EP
The Night We Met – Alle Farben on The Night We Met – Single
ROXANNE – Arizona Zervas on ROXANNE – Single
All My Life – William Wild on Rental House / All My Life – Single
2020 – Great Good Fine Ok on 2020 – Single


  1. So a fun side-effect of my playlists-in-git setup is that I can see when artists take advantage of the “it’s a streaming platform” aspect and change the names of things. Usually it’s little spelling tweaks, like this – from “F**k” to “Fuck”. 
  2. I keep getting just the “holy, holy” chorus line in this stuck in my head, and consistently try to figure out what choir piece it’s from before I realize. 
  3. A lot of my music discovery is piecemeal, so I didn’t know The Weeknd actually had a new album out until, like… three days ago. 
  4. It’s about here in the list where I realize that I can’t remember where the January/February line hit. How can February have been such a long month? It’s the shortest month. 
  5. I can’t tell if this is a cover or a very effective earworm, and I don’t want to google it to find out because it’s more fun this way. 
  6. This is an old album by Aquilo, but I found it while stumbling around in Apple Music, and I’ve been really digging it! 
  7. Credit to Braden for getting me to listen to this, it’s great. 
  8. This and Slowly are my two favorite additions this month. 
  9. God, I love Haux, and this captured the exact same feeling they did when I first listened. Impressive, considering that I’m a continent and a few years away from that. 
  10. This is back because I got a different song from this album stuck in my head, but… I like this one better. 
Categories
Programming

Relational Databases

Inspired by a mix of Julia Evans and how much fun I had last time, I threw together another sketchnote on the basics of relational databases.

Relational Databases: How we store data! They model relations between things. Databases have tables, which have rows and columns.  A column has one type of data, like CHAR, VARCHAR, and NVARCHAR for text, INT, BIGINT, FLOAT, and DOUBLE for numbers, BOOL for booleans, and DATETIME for dates and times. Columns can also be nullable, which basically means ‘optional.’ Having a single type of data per column allows databases to be very fast and efficient. Rows are the actual data in the database, and are also referred to as ‘records’ or ‘entries.’ Keys: a table has a column as its primary key. That means that each row has a unique value there, which you can use to identify the row. Kinda like a social security number, or your phone number - it’s uniquely yours! A foreign key is a value that is the primary key of another table. You can use it to reference a row in a different table.
(Obviously I’m skipping over a lot of detail, but as a very quick intro to what a relational database is, I think it works!)
Categories
Education Portfolio

Value-Sensitive Design

The first unit in our course on Advanced Design and Prototyping focused on Value-Sensitive Design, and a couple of the assignments we did as part of it were pretty fun.

The first was to do a sketchnote on the concept itself. I’ll admit, I was a bit skeptical of the concept of sketchnoting – I thought it would be fun, but I didn’t think it would actually be all that useful. In doing it, however, I found that it helped me to coalesce my thoughts a bit – though, admittedly, that may have more to do with the fact that it forced me to go through my typed notes again than the sketchnoting itself. Still, it was a fun way to do that bit of studying, so I think I’ll try to add it to my workflow in the future.

Presented with apologies for my terrible handwriting.

Another activity was to put together a presentation, going through some value-sensitive design processes and presenting our ‘findings.’ Of the available prompts, I chose the one that boiled down to “your team has just been hired to design a photo-sharing application; you’re in charge of the VSD portion. Go.”

Categories
Portfolio Review

Competitive Analysis: Fitness Apps

The second unit in my course on User Experience and Evaluation was on competitive analysis — looking over the competitive landscape in a given marketplace, and using that data to figure out both the low-level design and high-level strategy you should use to effectively compete.

While I considered doing an analysis of the productivity management/to-do-list marketplace (an area on which I have many opinions), I realized that the end result of that analysis would be “the marketplace is saturated, and the ‘table stakes’ level of functionality is prohibitively expensive to achieve.” Not the most exciting result.

Instead, I looked at another area where I’ve gone through a surprising number of apps: fitness tracking. Specifically, workout planning and tracking – I did a previous assignment on how people use the gym, and one of my findings was “hoo boy are there a lot of different systems for planning and tracking a workout.”

After downloading quite a few apps and compiling a rather monstrous spreadsheet, I put together the results into a report, which I’m now posting here.

(Will I be using these findings to develop an app? … No comment.)

For those using screen readers, or who prefer their own reading environment, you can download the full presentation PDF here:

Categories
Review

“Children of the Eighth Day,” or, “but at least nobody cares that the prince is gay”

Don Sakers
I mentioned in my last review that I was reading this omnibus; I didn’t review the short story in the middle, as it seemed a bit too short to be worth the effort, but did enjoy it. And it provided a good introduction to the characters here, eased the transition of skipping forward half a millennium or so.
I’ll start off by saying that I enjoyed “Children of the Eighth Day,” but temper that by saying it wasn’t as good as “Dance for the Ivory Madonna.” It’s more removed — it’s a space opera, and I’m much less familiar with the goings-on of an interstellar empire than I am of the modern world.
The overall flow was interesting — the first half of the book wraps up far more than I thought it would, and the second half has an entirely different set of issues for the characters to confront.
In retrospect, I think the short story leading in to this is not just helpful, but perhaps necessary, to be able to at all follow the events of the first few chapters. Things kick off very quickly, and trying to figure out the context of the Empire and the Family would be a bit much in addition to the actual events of the plot.
Final verdict: I do recommend the omnibus as a whole, but it might be worth reading it out of order — there’s a bit of spoiler effect for “Ivory Madonna,” as historical context, but I don’t think it gives away enough to really ruin the book for you, if you do read it in that order.

Categories
Playlist

Playlist of the Month: January 2020

Based on how this blog is going so far this year, I should retroactively declare my resolution to be “blog more.”
Silhouette by Aquilo on Silhouettes
Cologne by Haux on Something to Remember – EP
Sober by Edwin Raphael on Sober – Single
Coincidental by Betcha on Coincidental – Single
Connor by SYML on SYML
Falling Down by Harrison Storm on Falling Down – Single
Angel by H. Kenneth on Angel – Single
Fk Collingwood by Hayden Calnin on Fk Collingwood – Single
Hey, Ma by Bon Iver on Hey, Ma – Single
Haunted by Saint Claire on Haunted – Single
Crying at the Party by Harry Strange on Crying at the Party – EP
Cars at Night by By The Coast on Cars at Night – Single
Barrio by Mahmood on Barrio – Single
On Our Last Day by Hayden Calnin on A Life You Would Choose – EP
Tonight – Thorin Loeks on Tonight – Single
Cover Your Eyes by Black Match on Cover Your Eyes – Single
Hard Lines, Hard Times by William Wild on Hard Lines, Hard Times – Single
Tourner dans le vide (Slowed) by Unge Moped & Tuber on Tourner dans le vide : Man slowed down – Single
Without Fear – Dermot Kennedy on Without Fear
Hollow Coves – Firewoodisland on Hollow Coves – Single
Edge of the Ocean – By The Coast on You
Drive – OTR & Panama on Drive – Single
everything i wanted – Billie Eilish on everything i wanted – Single1
Symmetry – SYML on Symmetry – Single
Dolly Zoom – Elliot Moss on Boomerang
Closedloop – Elliot Moss on Boomerang
Don’t Take the Money – Harry Strange on Don’t Take the Money – Single
20 Something – Alexander 23 on I’m Sorry I Love You
Blue Tide Eyes – FLØRE on Blue Tide Eyes – Single
Bravado – Yoke Lore on Bravado / Body Parts – Single
Tightrope – Danny Bowens on Tightrope – Single
When I Need a Friend – Coldplay on Everyday Life
Hope – Balcony on Hope – Single
This is Where it Ends – Richard Walters on This is Where it Ends – Single
Back Around – Harry Strange on Back Around – Single
Dead Ringer – Yoke Lore on Dead Ringer – Single
Monsters – Lucy Daydream on Monsters – Single
Borders – Nathan Ball on Borders – Single
Silver + Gold – Elliot Moss on A Change in Diet
Eight – Haux & Rosie Carney on Eight – Single2
Need You – Kidswaste on Need You – Single
Raising Hell (feat. Big Freedia) – Kesha on High Road
Orphans – Coldplay on Everyday Life
Daddy – Coldplay on Everyday Life
Chanel – Frank Ocean on Chanel – Single
The Village – Wrabel on The Village – Single
Movements – Mild Minds on Movements – Single
I Don’t Wanna Die – Betcha on Falling – EP
Swing – Sofi Tukker on Swing – Single
Ghost – JacobNeverhill on Ghost – Single
Blind – INTET on Blind – Single
Hard Times (Acoustic) – RITUAL & Robinson on Hard Times (Acoustic) – Single
Èkó – Coldplay on Everyday Life
Million Pieces (feat. The Chamber Orchestra of London) – Bastille on Doom Days (This Got Out of Hand Edition)
Young Minds – Saavan on Observatory – EP3
Down – Griffin Stoller on Down – Single
notice me (feat. BENEE) – ROLE MODEL on oh, how perfect – EP4
Lucky Me (feat. Great Good Fine Ok) – The Knocks on Summer Series: 2019 – EP
Take Me Apart – SYML on Take Me Apart – Single
New Day – Benji Lewis on New Day – Single
Apollo – Charles Fauna on Apollo – Single
Happens to the Heart – Leonard Cohen on Thanks for the Dance5
Chewing Cotton Wool – The Japanese House on Chewing Cotton Wool – Single
Trouble in Town – Coldplay on Everyday Life
Hallelujah – Oh Wonder on No One Else Can Wear Your Crown (Deluxe)
Barricade – Elliot Moss on A Change in Diet
Rossetto – Random on Rossetto – Single
Time (feat. Muna) – Blewbird on Time (feat. Muna) – Single
Sober – Harry Strange on Sober – Single6
Saturn – Sleeping At Last on Atlas: Space 2 – EP
Stay – Alt Bloom on Stay – Single
Hvn – TEME on HVN – Single
Deja – Leo Islo on Deja – Single7
Lies (feat. H. Kenneth) – Syence on Lies (feat. H. Kenneth) – Single
Jericho – Westerman on Jericho – Single8
Bodyintoshapes – Elliot Moss on A Change in Diet
Picaflor – Lao Ra & C. Tangana on Picaflor – Single
Blinding Lights – The Weeknd on Blinding Lights – Single
Family (with Kygo) – The Chainsmokers & Kygo on World War Joy
hungover & i miss u – gnash on hungover & i miss u – Single
Chain – Lolo Zouaï on High Highs to Low Lows (Deluxe)
Top Dom – Avery Anthony on Top Dom – Single
Dancin (feat. Luvli) [Krono Remix] – Aaron Smith on Dancin (feat. Luvli) [Krono Remix] – Single
Demons – Alec Benjamin on Demons – Single
Rapide – Mahmood on Rapide – Single9
Rabbit Roads – Elliot Moss on A Change in Diet
Circles – Post Malone on Hollywood’s Bleeding
Wherever You Are – Kodaline on Wherever You Are – Single10
MIDDLE OF THE NIGHT – Elley Duhé on MIDDLE OF THE NIGHT – Single
Soil’s Daughter – Aisha Badru on Soil’s Daughter – Single11
Higher – Byron Langley on Light On – EP
In the Same Place – Elliot Moss on A Change in Diet
Eleven – Khalid on Eleven – Single
Father’s Son – Declan J Donovan on Homesick – EP
Phases (feat. Trove) – Go-Jo on Phases (feat. Trove) – Single


  1. From what I’ve heard about the awards, I think Billie Eilish is the President of Music now? No pressure. 
  2. Haux always has this wonderful ethereal quality 
  3. This one makes me wonder how Apple Music gets their lyric data – it has lyrics, but not the live-scrolling kind, so what’s the difference in data source? 
  4. Shoutout to my sister, who made me listen to this: you were right, I did like it! 
  5. All of Leonard Cohen’s music is just him growling into a microphone and I kinda love it. (That said, lyrically, I’m… not a fan of this one.) 
  6. I wonder how many songs named ‘Sober’ I’ve got in my library? It feels like it’s a weirdly high number. 
  7. This one always just makes me think of Daja from Tamara Pierce’s Circle of Magic series. 
  8. Found this one while putting together a data visualization of my music library over the past few years. I should post that! Or maybe I already have? Hmm. 
  9. I quite like Barrio, but Rapide knocks it out of the park. 
  10. Something about Kodaline is just… great to harmonize to. 
  11. This one also made it onto my “I just want the quiet songs” playlist, which usually takes longer. It’s nice. 
Categories
Review

“Dance for the Ivory Madonna,” or, “actually, some of this might work”

Don Sakers
This is… the most fun piece of cyberpunk I’ve read. I was going to add a qualifier to that, but in trying to come up with one, I realized it doesn’t need one; it’s just the best one.
Unlike most cyberpunk, it doesn’t feel dated by the technology. Sure, it’s set in the future, which helps, but it’s set in a future that feels like a reasonable future based on our current technology, not based on the 1980s.
The setting is fascinating: the world map has been severely redrawn, most noticeably by the USA splitting into several pieces, and by the fledgling African Union actually taking off and becoming a (if not the) world power. At the same time, however, those national divides have become less important, with the UN finally taking over global police actions, aided by a technocratic NGO, the Nexus.
The protagonist is a Nexus operative, and as the story goes on you find out he’s veritable royalty — his father a founding member of Umoji, the African economic union, his grandmother the person whose ideas gave birth to the Nexus, and a few other fun surprised along the way. (I won’t spoil any more than that, it truly was fun finding things out as I went.)
Throw in the global economy being run by AIs, a well-explained split between AR and VR, and a space program based on a mix of ion thrusters and orbital velocity cannons paired with gigawatt-laser-pumped-solar-sails, and I am sold on this setting.
I’m interested to read more of this — I’m reading the Worlds Afire omnibus, which includes three books in the series, if I’m remembering correctly. However, the series isn’t just in this one era, it’s apparently operating on a truly enormous scale, so it’s very possible that the events of the next book will be more than a billion years removed from what I just read.
As long as the next is further into the future, though, I can reasonably expect to see at least historical references to the characters here — the results of the plot certainly feel big enough that they’d carry a long ways throughout human history.
If I’ve sold you on this book now, which I rather hope I have, because it’s a delight, you can go grab the omnibus.

Categories
Review

“Please Don’t Tell My Parents You Believe Her,” or, “a much better end than I was expecting”

Richard Roberts
This is another book that I put off reading for a while. I knew going in that it was the last in the series — Roberts’ blog made that pretty clear — and then, shortly after I bought it, his publisher went under (or something? I’m unclear) and seemed to pretty effectively tank any hope for future works in the amazing world he’s built here.1
And that’s what always shines to me about his books: the world-building. Roberts has a gift for showing without telling, and manages to perfect balance explaining a little bit and leaving a bit to the imagination. One of my favorite scenes in “… You Believe Her” was Penny, sitting on a train, watching a couple boys study. It’s just that one of them was using his telekinesis to levitate the book instead of holding it with his hands. And she goes off on a little tangent, thinking about the statistics of superpowers, and we find out that the superheroes and supervillains are the statistical outliers, while there are also sorts of normal people who use their powers to… not wear spandex and beat each other up. To study. To do their jobs. To make music, or build cool computers.
That’s what I love about the series. It’s a great big world, and Roberts wants to follow the same “but what about-“ trail of implications that I always do.
It’s also hilarious, if my gushing over the world building hasn’t sold you. This book introduces Gerty the Animatronic Goat, who I described to my friend as “the single best comic-relief character I’ve ever read.” It’s silly, and wholesome, and my jaw is a little sore from how much I smiled while I was reading the book.
And the thing is, Gerty is present throughout the book, and it’s necessary. She’s comic relief, because what’s actually happening in the plot is heavy. It’s probably a requirement to read the previous book first, to be able to follow what’s going on, as it starts off pretty in the middle of things.
It’s dark and sad, and happy and silly. It’s an excellent read. Check it out.2


  1. Happy follow-up, though: I believe he’s since got the rights sorted out enough that he can resume his plans to write more in this world. 
  2. And join me in reading Roberts’ new book, in a totally different setting. I had the chance to read an early-release version of the first couple chapters a while back, and I’ve been looking forward to the full novel ever since. Hopefully I don’t take quite as long to get around to reading it as I did this one. 
Categories
Review

“Red, White, and Royal Blue,” or, “I was wrong about which genre this book was”

Casey McQuiston
I put off reading this one for a while, because it seemed like it was going to be dumb and fluffy, the sort of thing I like to save for when I’m stressed and need something easy and happy. And I’m quite happy to have been wrong about it, in part: while it’s certainly fluffy, it’s less dumb than I was expecting. Sure, the protagonist spends a bit too long not quite grasping what’s going on, but that actually gets turned around pretty well later on. And it’s a surprisingly good political novel, too — the backdrop of “being the son of the President” isn’t left as window-dressing, instead becoming a significant driver of the plot.
The cast is delightful — there’s a good deal of family drama going on, and it feels real, and rough at times.
All in all, I loved this book — stayed up too late reading it, laughed the way through, and would happily read it again. I can heartily recommend it.

Categories
Review

“The Plutonium Files,” or, “‘it’s a good thing we’re the good guys and the laws don’t apply to us,’ they said”

Eileen Welsome
I’m not sure what it says about me that all of my nonfiction reading is about the Cold War, but here we are again.
The funny thing about this book — and there isn’t much of that, because it’s a detailed account of some truly horrible things — is what did and didn’t stick in my mind. A lot of the book was about trying to humanize the victims of the experiments, and that aspect didn’t really land for me. The actual experiments, what was done, did stick, to a degree; having just finished my read, the ones I most remember are the prison experiments in Oregon and Washington, the radioactive iron supplements at Vanderbilt, a bit about the total-body irradiation experiments, and, of course, the titular plutonium trials. Some of the accidents also stood out to me — there’s a discussion of a man who took a plutonium criticality to the face, and the summary of how thoroughly screwed you are by that is that, when he threw up on the floor of the hospital an hour or two later, after they’d cleaned the floor, they had to get out a geiger counter to check if it was safe for anyone to walk there. (He didn’t survive; to add insult to horrible injury, his body was then parceled out to labs around the country, without the permission or knowledge of his next of kin.)
There were also a couple figures, dropped in as part of an anecdote in the portion of the book about the pilots who flew planes through mushroom clouds to measure their effects, that lodged in my head pretty effectively.
The first set of tests after WWII ended were called Operation Crossroads. The second of these was an underwater detonation; I’ve heard the story before that, during the explosion, a Japanese battleship was thrown — 30,000 tons of metal, launched out of the water. (I’ve been trying to confirm this story in writing this, but haven’t found any clear evidence either way, so I’m going to call it apocryphal and move on.)
This story, though, was from the Castle series, Castle Bravo, the first thermonuclear weapon test. 15 megatons of TNT; while it wasn’t a useable weapon — the device was the size of a small building, and had to be constructed in-place on the ‘target’ island — it was mind-boggling in scale. Because, 15 megatons of TNT, that’s… a number. But what the book described was a 20-mile-wide column of water and mud, 45,000 feet tall. Again, mind-boggling in scale, but slightly easier to conceptualize; just imagine a mountain, and then… make it taller.
The figure that truly got to me, though, was the statement that it took hours for the water and mud to finish falling back into the ocean. Hours.
These nuclear tests were also so bright that test animals, 350 miles away, got retinal burns from looking directly at it.
It’s a scale of destruction that I can’t fit in my mind. Humans aren’t equipped to think about this sort of thing.
And it’s not the scariest part, is the thing. Sure, you can erase a city in the blink of an eye.
This is where the book shines: it’s about the radiation, and just how scary and insidious it is. I’ve mentioned before that people aren’t afraid enough of nuclear war; at risk of sounding like a broken record, I’ll say it again. Write your Congresspeople, and advocate for disarmament, everyone.