I realized, somewhere around a third of the way into this book, that I don’t actually like anyone in it. The protagonist is an astonishingly boring man, for someone living through this upsetting a series of events, and the other main character is a rather good example of what’s wrong with acting like a proper Victorian.
All that said, I did enjoy the book. It was the kind of mystery that I enjoy, less about figuring out who did the thing than it as about what, precisely, they did. That mystery is what carried me through – I had theories, thoughts about what might have been going on with that second main character, and I had a great deal of fun trying to figure out which of them were right, which were wrong, and why. (And, it turns out, I was wrong on all counts – the end was stranger than I expected, and all the more creepy as a result.)
All told, I quite enjoyed this book, and I can recommend it to anyone who likes a creepy mystery. (Bonus points if you like Victorian literature — you’ll probably catch more of the references than I did.) If that’s you, give it a read.
Every time I go to file a bug report Feedback with Apple, I have to remember how to gather a sysdiagnose; on macOS, the whole diagnostic process is automatic in the Feedback app, and if you have Feedback installed on iOS, it is there too. I, however, make things difficult on myself, and use Feedback on macOS to submit my iOS bugs.
A sysdiagnose, for those wondering, is a big bundle of diagnostic information that Apple (or the developer of an iOS app) can use to figure out what exactly went wrong when something didn’t work right on your device.
Since Apple’s documentation on how to gather a sysdiagnose leaves out a few key steps (FB8739343, if anyone at Apple is paying attention to this), I figured I’d write up the process for myself for future reference.
Without further ado, here’s how to gather a sysdiagnose on an iPhone X-class device. (Read: ‘no home button’)
Press the volume up, volume down, and lock buttons all at once, and hold them for ~1 second. You’ll feel a little haptic buzz; your phone might also take a screenshot.
Wait. Apple recommends about 10 minutes for iOS to gather everything.
Open Settings and go to Privacy > Analytics & Improvements > Analytics Data
Scroll through the list until you see a file whose name starts with “sysdiagnose_” and then the current date. (Protip: this list is super long, so once you’ve started scrolling, you can tap and drag on the little scroll blob on the right side of the screen to zoom through hit much faster.)
Tap on the file, hit share, and AirDrop it to your Mac. (Or save it to iCloud, but I heartily do not recommend trying to email or send it via iMessage – it’s probably like a quarter of a gigabyte.)
Hopefully this helps you, and as someone who has to try to figure out why software isn’t working right, thank you for taking the time to get all the diagnostic information – it’s very helpful.
If you’re a fan of Warehouse 13, you’ll enjoy this book, I suspect. While it’s not as visibly rooted in actual historical fact as Warehouse 13 always was,1 it’s got that same “Indiana Jones, but about saving the world instead of just finding cool stuff for the museum” vibe.
That’s, really, most of the tl;dr of the book, although I’ve left out the magic. It’s a somewhat loosely-defined magic system, which normally I’d be annoyed by, being the “I want to understand the laws of magic” person that I am, but in this case it fits the cinematic feel of the series. The only really solid rule is that magic doesn’t come from people, but is a natural thing — ley lines! — that they channel through a focus of some sort. There’s also a lot of dangerous ancient artifacts around, which is where we get the Warehouse 13 aspect.
Zoe makes for a reasonable protagonist in Ancient Magic and Cursed Magic, but I think Hayley, the protagonist of Hidden Magic, is the one who really makes this collection. Zoe is the seasoned veteran, someone who was raised with magic and made a career out… well, being a badass. Hayley, meanwhile, is a junior museum curator, and spends the first quarter of her story in the perfectly reasonable belief that magic isn’t real. Discovering it with her is a lot more fun, and that “what is happening” mindset makes her a lot more relatable to the reader. Frankly, I’d argue that Hidden Magic should’ve been the first book in the collection, but Ancient Magic dovetails into it so well with the little crossover that it’s hard to be mad.
End result, I quite liked this little collection. It was a pretty quick read, and a fun one; give it a go.2
Well, right up until it wasn’t, but you’ve gotta let the show have its core concept, after all. ↩
Normally, this would be a Bookshop link, but I’m unable to find the collection — or any of the component novellas — on Bookshop, so here’s an Amazon link instead. Strangely, despite being published under the same title, the thing I’m linking to is a 6-novella set, while the one I read only contains the first 3. I, frankly, have no idea where I got this ebook. ↩
I like this song because it’s kinda about the importance of communication in relationships! Positive influence! Of course, Escape is also on this album, and that’s a song about a woman who needs to get a restraining order and a gun, so… ↩
Now that the Bon Iver song off this album is thoroughly overplayed in my head, I’m listening to other parts of it. ↩
Can you tell that I’ve become a big fan of Yoste? ↩
I sent this song to a friend with this note: “and I love Woodkid because that isn’t even his horniest song, but Woodkid Horny Music is EXTREMELY different from regular horny music” ↩
This song had no right to hit as hard as it did, I, as a former Choir Kid, feel called out. As a side note, this was real fun to search for in Apple’s link building tool, which intermittently doesn’t know about unicode. ↩
One day I’m gonna have a sufficient dataset, thanks to all these playlists, that I can do some fun analysis. I’m betting The Fray is gonna be on an annual cycle. ↩
So far, my favorite off the new album, but I’ve also only listened to about half of the album so far. ↩
This album is kinda all over the place, but I love it ↩
People say not to judge a book by its cover, but looking at the cover of this book having just read it, I think it does a remarkably good job of explaining the book. The title really covers a lot of it, and the porthole hints at the little bit of steampunk that drifted in around the edges of the ‘werewolf’ bit.
In short, the book is utterly ridiculous. It’s not quite as “empty fluff”-y as you might think, and has some interesting things going on with some of the backstory, but it’s still entirely ridiculous.
But you know what? It’s 2020. The world sucks. Let people enjoy things! Read a ridiculous werewolf-regency-romance novel!
You can judge this book by its cover, but think about what context you’re using to judge it. Does “ridiculous and fluffy” mean bad? Or is it that it’s feminine-coded, and our sociocultural background has spent our entire lives teaching us that we should frown upon that sort of thing?
I was going to start with “it’s been a while since the last anthology I read and reviewed,” but, as it turns out, it hasn’t. I wonder if it’s the variety of stories that makes an anthology feel further away in my memory? No single story has as long to get lodged in my memory, or something. Hmm.
Still, I do like the anthologies – they’re fun in the same way that a 22-minute-long TV show is, a great way to fill a bit of time without getting yourself too invested in something.
Knaves is, admittedly, less fun than some of the other ones, because the focus is on villains. So, by the nature of their stories, it’s a bit of a gloomy topic.
Which isn’t to say the stories aren’t interesting, because they absolutely are. “All Mine” is heartbreaking, as is “Hunger in the Bones”; “The Bloodletter’s Prayer” is a fascinating piece of dark fantasy; “Cat Secret Weapon #1” is a delightful spin on the Bond archetype; “The Hand of Virtue” is sweet and a touch melancholy; and “Old Sol Rises Up” is… well, honestly, mostly confusing. But I suspect that was the intent, so I won’t fault it.
And, of course, there’s an introduction – every anthology has to have one. What caught my eye and, frankly, got me to actually read the introduction was who wrote it – Howard Tayler, the man behind Schlock Mercenary, another delightful piece of media that I’m happy to recommend. Read the intro – it’s weird, and silly, and fun.
Craig Laurance Gidney This book is… melancholy. I read it in bits and pieces over the course of a couple of months, which it’s well suited for, as a collection of short stories. Some of them were creepy, and some were sad. One or two were happy, and hopeful. But overall, the feeling I have is melancholy. Part of that is the way the last story ends, which is certainly coloring my opinion, as I set the book down and immediately started writing this, but I think the whole thing feels that way, as well. Melancholy certainly isn’t the best of moods to be in, but sometimes it’s what you need. And, considering that I’m posting this as we’re making our way into autumn, it’s entirely appropriate. Get yourself a seat looking over trees preparing to shed their leaves, a mug of tea, and read this book.
Part of the MHCID’s program requirements is that we give a presentation, detailing what we did during the internship. This year, gathering everyone together for a TEDx-style event… wasn’t in the cards. Instead, each group made a video presentation, filling approximately the same niche.
It’s been a while since I had a chance to do any video editing, and I had fun putting this together. As mentioned in my previous posts about this project, it was a group effort – we each recorded part of the audio, and split up the work of finding video clips, icons, and images to go with what we were saying.
It was fun to put together, and I’m pretty happy with the end result. Check it out:
I’ve just released Fluidics 2.1 on the App Store, only five months after the last update, so I’m speeding up a bit on my release cycle, apparently. If you’d like to see the whole “what’s new” list, check out the release post over on the Fluidics site; this post is more of a “making of” kind of thing.
Unlike the last update, this wasn’t a ground-up rewrite. I briefly considered tearing out the App/SceneDelegate stuff and rewriting it to use the new SwiftUI-style App setup, but because there were some visual bugs with the release of iOS 14, I wanted to get the update out sooner rather than later.
This version requires iOS 14 – the previous version has no issues on iOS 13, and just about everything new in 2.1 requires iOS 14, so I went ahead and bumped the minimum version.
The main addition in Fluidics 2.1 is the new widgets, available with three variants.
From the top:
The ‘add’ widget, which displays the four Quick Adds, and allows one-tap logging from the home screen.
The ‘status’ widget, in wide form – my personal favorite – which displays the goal, not only in the fill state of the widget background, but also in text form, as well as the four quick adds.
The ‘status’ widget, in small form, displaying just the goal in text form.
All of the widgets allow launching the app, and use deep links to interact with it in specific ways.
The linking format is technically open, so I can drop a link into this post that would open the app and log water. It accepts a handful of URLs:
fluidics://fluidics.app/quickAdd
fluidics://fluidics.app/customAdd
fluidics://fluidics.app/add/:unit/:amount, where :unit is one of “flOz“, “l“, or “ml“, and :amount is a parsable number.
(Creating that linking framework was the spot where I was most tempted to drop SceneDelegate entirely – the Scene class’ onOpenURL(perform:) modifier was looking real nice compared to the tangle I wound up with in the SceneDelegate. Oh well, maybe for next update.)
One of the fun things to set up was the customizability of the widgets. I’ve bounced off the IntentKit framework in the past, but never got very far due to time constraints. With widgets being driven off Intents as well, though, it was time to sit down and actually write it up.
Honestly, the Intent definition editor is cool. I could go off on a whole mini-essay about the usefulness of constraints in design, and how perfectly it expresses the constraints of valid inputs and configurations, but I digress.
Having done that bit of setup, I’m definitely going to look more at this in the future. I’m still trying to figure out what, exactly, a SiriKit integration for Fluidics should look like; once I’ve done that design work, though, the coding aspect is seeming much more manageable now.
The last little feature I added was the ability for Pro users to switch the icon. It felt like the right kind of thing to lock behind the Pro subscription – a purely cosmetic tweak, and an additive change. Actually implementing it in SwiftUI was fun – it’s a Picker, attached to a custom Binding. I should probably refactor it a bit for readability, but the actual implementation is pretty solid, and I’m happy about it. It also allows for further expansion in the future – I can add new icon choices pretty easily, going forward, and may do so if I have any fun ideas for what to offer there. And yes, I’m open to suggestions.
It’s fall! The obligatory joke would be something about pumpkin spice, but actually I’m just planning to explode into a cloud of apple cider flavored things.
This feels like one of those songs where my mom will ask me what the lyrics mean and I’ll just shrug. ↩
This was one of those “I haven’t listened to this song in ages!” additions. Which I then swapped out immediately, because when I added it to the playlist, I added the version that was already in my library – which turned out to be an iTunes Match track, of a 48k YouTube rip from years and years ago. Whoops! ↩
SYML recently released what are, essentially, mixtapes of his work. Not sure what that was about, but it did lead me to discover a couple tracks I hadn’t heard before, so… I guess it worked? ↩
Is the resurgence of roughly ‘80s sounds in music a general trend, or is it just what I’m interested in right now? (I’m going to cite the new Wonder Woman as evidence for ‘general trend.’) ↩
Having done all that research during the spring, summer was about prototyping and iteration.
Low-Fidelity Prototype
The term “low-fidelity prototype” might sound a bit negative, but they’re a wonderful, wonderful thing. Low-fidelity prototypes are easy to make, which makes them easy to toss aside. In the same way that you use sketches and wireframes to go through a lot of ideas very quickly, a low-fidelity prototype lets you try things out without pouring a ton of resources into making something pixel-perfect.
We went through several iterations, developing clickable flows that highlighted the key points of the features we were designing. Those flows in hand, we went back to the users, and gathered more test data – did they understand what the new features were for? Did the terminology and usage make sense? Was it useful?
High-Fidelity Prototype
That user feedback in hand, we went back and created a high-fidelity prototype. One of the main goals we had in mind with this was to have it, if not ‘pixel-perfect,’ viable for handoff to the developers who would be creating it. Instead of mapping out every possible screen, we identified the key user flows, and created a guided tour of sorts, a limited clickstream that showed as many of the possible UI states, without requiring us to create hundreds or thousands of screens.
As part of this, I started to wonder what stateful prototyping tools would look like. Think about it – using current prototyping tools, if we want to have a collapsable sidebar, we need to make two of every screen, one with the sidebar open, one with it collapsed. Once you start getting more states – say, to use a non-random example, if you’ve got multiple collapsible elements in a sidebar, and some user-configurable data in the main area – the combinatorics make it entirely unfeasible to create a realistic prototype. This… is a thread I’d like to follow up on in the future.
Delivery
And with that, our portion of the project was over. We’d been working up to it for quite a while, yet it still felt very sudden. The last bit to do was handoff, which happened as a Zoom meeting with a couple of the design leaders at Project Jupyter, and a pull request to jupyterlab/design.
Not to be cliche, but this project has been an amazing experience. I’ve learned a lot in doing it, and I absolutely loved working with this team.
I mentioned in my post about the research we did that we were working on finalizing a couple deliverables, and that I would eventually post them here. Months later, I’ve finally got the time to do it.
And, before I go any further, credit where it’s due: this was a collaborative work by the whole team:
One of the key tenets of design is you are not your user. Something of a parenthetical on that is that… nobody is The User. Someone is ‘a user,’ but there’s no definitive User out there.
But we’re human, and we need a way to think about the people we’re creating things for, so we develop personas. Create a character who embodies part of your user base – and note, you’re not just making someone up, you’re personifying data you’ve already gathered. (And be sure not to stereotype, while you’re at it!)
Journey Maps
Journey maps fall more into the “UX” than “UI” field. The idea is to follow your user (or rather, one of your personas) through their process of interacting with your design. And, in fact, not just interacting with it, but potentially… not interacting with it. Discovering it for the first time, say, or using a competing product instead.
Once you’ve got the what figured out, get into how they feel as they’re doing it. Is the design meeting their every need and desire, leaving them shouting with joy? Is it completely failing to do something critical, leaving them wondering who in the world could’ve come up with something this terrible?
In short, it’s an expansion of the persona – another tool for getting in the collective head of your user base.
Seeing that linkage, we opted to combine these two deliverables. Take a look:
This… isn’t so rigorously researched a design artifact as personas and journey maps should be. In our case, we actually did back it up with some interesting research into the ways that people use and think about organization – I think the key reference would be the Five Hat Racks, although Justin pulled together a lot of research from the early years of computer science as a field, as well. To summarize, there are ~5.5 ways to organize digital files:
Amount of use
By provenance (source)
Chronologically
User self-selection/favorites
By concept, or by Venn Diagram (thus, .5)
Regardless, the end result makes for a fun visual, so I thought I’d share it here:
Alex Acks
I was genuinely surprised that I don’t have another review to reference here — I would swear that I wrote one about the book where these characters were first introduced, Murder on the Titania, but apparently not.1
So, the introduction: in the Sherlock Holmes style, very vaguely. Zombies, and steampunk, and all the other internet buzzwords abound, but it works surprisingly well together. The primary arc of the first story can be summed up with the image of a Native American man and a Latina woman rolling their eyes as an elderly white man tries to convince himself he’s the hero because he’s slightly less of an imperialist than the bad guy.
And if that hasn’t sold you on the concept, I’m not sure what will. It’s a fun little read, check it out.
I do love a good anthology. It’s all the fun of starting a new book, several times over, and with much less of a time commitment each time.
This did have some of the downside, though – about halfway through, I found myself getting rather bored of the concept of pirates. It’s a bit too coherent a theme, I feel; the book had a lot of the variance that makes anthologies fun, but keeping everything tied to ‘pirates’ limited it a bit more than is really healthy for an anthology.
After that midway nadir, though, it recovered nicely, going off into some interesting science fiction bits, and ending on a delightfully weird fantasy (or, possibly, extremely-distant-future?) piece.
So hey, have some fun with a variety of pirate stories.
Every once in a while I think about the story of how this collaboration happened, and I consistently have the mental image that Daft Punk didn’t want to collaborate with The Weeknd, they were just too overwhelmed by him suddenly bursting in to argue. Almost certainly not what happened, but a fun image nonetheless. ↩︎
I can’t listen to this without picturing the scene from The Old Guard. ↩︎
Somehow I still think of Bon Iver as being a little-known indie artist, despite the fact that he’s on this playlist in collaborations with Taylor Swift and Kanye West. ↩︎
A nice song to sing along to, though I can’t read the title without getting the Thirty Seconds to Mars song stuck in my head instead. ↩︎
I wonder if Tiktok pays royalties on the songs that go viral on Tiktok? ↩︎
This song feels like an entire album all in one, it’s wild. ↩︎
While trying to play this the other day, I determined that the search engine in the iOS Music app is still hot garbage, because searching for “dark syml” found exactly zero results. ↩︎
My friend Soph sent this to me, like… a month ago, and I finally listened to it and immediately texted her back like “that song is amazing thank you!!!” ↩︎