Today I started learning the ins and outs of a new application at The Job. I’m part of the team driving the implemenation of this thing, and this is my first time digging in to the configuration enough to start getting a really good mental picture of how all its pieces work together.
Today we disassembled all the components of our TV and media center, moved a new cabinet into place, and then put everything back together.
There are a lot of cables. Also, that reassembly will always take twice as long as I estimate it will take.
There’s a bagel shop in town, Biff’s, whose walls are covered with framed photos of dogs — pets who have passed on. We’ve gone there for years, and my routine on most Saturdays is to work out in the morning and go for breakfast afterwards.
In October, our dog Uinta tripped and broke her leg. She was sixteen and a half years old, and I’ve had her since she was a puppy. She was very frail, and we made a hard decision to let her go rather than put her through a surgery and painful and confusing recovery. Last week I brought a framed picture of her to the bagel shop and offered it to the woman at the counter, after I had my breakfast.
Today her picture is up on the wall, surrounded by hundreds of other beloved and fondly remembered pets. Holding tears, I asked one of the owners for a moment to talk, thanked her for making a special place for these animals whose short lives sometimes inexplicably and surprisingly become a part of hearts. Then I went and cried in the car for a few minutes.
So today I learned a small bit of just how hard it is to really say goodbye.
Today’s #TIL is that on snow days I can get a surprising amount of work done by getting up at 5am to power through some things before everybody else’s day really gets started. Of course it throws off my exercise schedule, but it’s not too bad. I’m also hugely fortunate that on weeks like this (third day in a row of school closures…) I can be flexible without fear of losing my job and pay. That’s another repeat lesson, really, and reminds me to taker some deep breaths when the district closes schools again, anticipating six more inches of snow, and we get just a dusting. Ack.
Gotta shovel the roof a little, too.
Today I learned just a bit of the tremendous imagination bubbling in my son’s head. It’s wonderful to watch him play, listen to the stories he tells himself, and watch him draw pictures of what he imagines.
On snow days I can get a surprising amount of work done by getting up at 5am to power through some things before everybody else’s day really gets started. Of course it throws off my exercise schedule, but it’s not too bad. I’m also hugely fortunate that on weeks like this (third day in a row of school closures due to snow…) I can be flexible without fear of losing my job and pay. That’s another repeat lesson, really, and reminds me to take some deep breaths when the district closes schools again, anticipating six more inches of snow, and we get just a dusting.
Today I learned just how much a wool hat will shrink when put through the dryer. Pro tip: it’s a lot.
Here’s something I learn periodically, then forget and occasionally re-learn: I have a lot of allies at work, but I need to remember to engage them. As a pretty introverted person who is also very much a processor who needs time to think through things before leaping into action, I don’t always look for the help that I sometimes need. But invariably, when I do reach out, I not only get the feedback that I’m looking for, but am invigorated by the interaction. That’s something to remember, perhaps so I don’t have to keep learning it.
Today I learned that a five year-old who got used to staying up a little later and sleeping in during his winter vacation is hard to rouse early on the first day back to school. But, when the time comes, he’s ready for bed that night!
The grin on my son’s face, watching Star Wars (IV) for his first time, that first time X-Wings take off, is pure magic.
According to Strava, my mountain biking climb total in 2015 was 32,408 ft, and the largest single ride climb I made was 2600 feet, on Fathers Day. That sets a pretty good goal to beat in 2016, I think.
This is among the information from my years’ worth of exercise numbers. I wrote a year ago about how taking on a regular workout routine was one of the best things I started in 2014. Well, I continued in 2015, and added a lot of biking to the mix as well. It was invigorating to feel stronger and stronger as I went through the year.
Among the other numbers from my year in exercise: 36 spin sessions for an estimated 27,000 cals burned while trying my best to beat up the spin bike. I did 127 gym workouts, many of which I could never have done when my shoulders were hurt (also learned throughout the year that I can still way overdo it; so I focus on challenge by choice, or being very conscientious about how hard I’m working and making sure that’s the right level that I want to push — not surprising, this applies to lots of things beyond just exercise). It feels really, really good.
So let’s do it, 2016.
This isn’t a particularly profound TIL day. I did have a rather moving experience from which I’m taking some lessons, but I’m not quite ready to say I’ve learned it yet.
So today’s TIL is: I am secretly teaching my five year old son to count using Forza on the XBox. He’s watching me race, calling out my position, and telling me what position I’ll be in after I pass the car ahead of me. That’s pretty cool.
(Also, this is a fun and gorgeous game.)
Yesterday, I made a big pot of pho to share with family and friends tonight. We have had a relaxing, easy almost-two weeks of winter holiday and going back to work and school will be something of a challenge.
We celebrate the winter solstice for the slow return of morning light that its passing promises, but secretly I love those long, dark mornings, where I can imagine, long after waking, that I am the only person moving in the world.
I work out several times a week, and log those workouts to Runkeeper (because data!). Lately I discovered a small bug in the iOS client, in which a previously set equipment type (treadmill) was persistently being sent with my workouts, even though it doesn’t make sense for the workout type (that is, not running). Thing is, the Runkeeper client does not any longer offer the option to set that equipment type for the workouts I’m doing — this is a nice simplification of the interface, but I can’t get rid of the existing flag for treadmill.
This started to nag at me. I’ve long thought about building a workflow to quickly log my sessions rather than tapping through the app, but never got around to seriously looking into it until now. From working with Slogger, I already have an application registered with the Runkeeper API and am reasonably familiar with working with it, but until this weekend had only done so using scripted curl commands. Works great, but does not hook into iOS very well. I could build an ssh command to execute a curl command from a remote server, and kick it off from workflow or maybe a drafts action; this would have taken me ten minutes, but would have felt kludgy.
So on Saturday morning I downloaded Xcode and looked up iOS development tutorials on iTunes U. And there went my weekend.
Approximately one million browser tabs full of google searches, errors and compiles later, I have this: a tiny app preprogrammed with my two regular workout types (strength training and spinning), an array of scheduled session times, both of which I can cycle through via a pair of buttons (starting with my default of 6:15am). I also have a few extra fields to log additional data about the workout. The auth field is for my app’s token, and allows me to change it if necessary. This is a really basic replacement for a more full featured OAuth workflow, and I’m in the process of figuring out how to move this over to a settings screen so it’s out of the way most of the time; for now it’s also a convenient place to output the result of my http request to the API: if after a submission I get a
201 there, then I know the request was completed successfully.
Oh my gosh, Internet, I made an app1! I have to say, that first time it ran approximately like something I intended it to be, I was thrilled, like over the moon that I made something with buttons I could push and interact with on my phone.
So what have I learned?
I learned how to make https requests to an API using Just; how to make buttons and UI elements and hook them to actions in my code; how to use cocoapods (minimally, anyway); how to break my project using source control in Xcode sufficiently to require bringing the whole thing back from Time Machine (thanks, Synology); and how to redraw my content as the keyboard is revealed and hidden.
What get better at, among other things: I have not successfully triggered an activity spinner while my API request goes though. Fortunately it doesn’t take too long, but I want to read up on the asynchronous dispatch or whatever thing. I also really don’t know much about the schemes, targets, and so on that make up a project structure. Should also probably brush up on that little source control issue, and make more sense of the MVC thing. But hey, not bad for a weekend project.
This was fun. I have something I will use almost every day, which does lots more than scratch my original small itch about submitting the wrong equipment type. And I have a much fuller view than I did, of this world of applications that are such a big part of my life. Cool. Maybe next weekend I’ll come up with another itch.
- Recent changes in the Apple Developer Program allow for deploying an app to a local device without going through the App Store and its processes and costs. [return]
Autumn is a good season for night skies, here. It’s starting to dry off, so there’s less monsoon weather to chase us back indoors, and our Dark Sky City designation means there’s an attempt to keep city light from flooding out the stars. I signed up for a night sky photography workshop with Stan Honda, who is opening an exhibit at a community art center.
After a couple of hours of slideshow and demo of night sky techniques, we trooped outside and joined the nearby Dark Skies Star Party, an annual stargazing event aided by the likes of Lowell Observatory (Pluto, yo), the Naval Observatory and the university. We found a quiet stretch of paths and set up our tripods.
I started shooting with my old Pentax for the wider field of view its lenses give, but its low-light sensitivity just can’t compare to the Fuji, so I traded out quickly and spent the rest of the night experimenting with composition, ISOs, and exposure times. When I finally retreated, cold — I had forgotten my jacket in the warmish evening — I hoped I had a few keepers. With some adjusting in Lightroom, this is what I came up with.
One of the things that resonated most from Stan’s slideshow were the descriptions of the event of some photos, particularly an expedition to the near-Arctic to shoot a solar eclipse. He showed some photos of the lineup of viewers to the eclipse and I liked the story that the photo told, so I experimented with a few of my own in the same theme. This is of one of the telescope stations at the star party, with viewers coming and going in the dark, with their red-lensed flashlights, beneath the stars.
Looking back toward the main path from my spot in the fields, moon shining over us.
Stars over the San Francisco Peaks are really something. One more reason I’m happy and lucky to get to live where I do.
Via this writeup in Fast Company, Dear Data is such a cool project. Giorgia Lupi and Stefanie Posavec are spending a year exchanging a postcard per week, in which they each draw a representation of a specific behavior or facet of their lives. The front side of the postcard is the drawing itself, and the back side describes how to read the visualization.
Both images by Giorgia Lupi from “Week 38: A Week of Negative Thoughts“
One of the things that really makes me love this is the intentionality and immediacy of it. I used Reporter for several months, but fell away from it; it started to feel like something that would add value someday, but in an undefined way that didn’t keep me with it. By contrast, Stefanie and Giorgia are deciding on something very particular, measuring it and then drawing it all within about a week. Unlike so much “big data” they aren’t looking for a long-term pattern or a huge number of observations. Their illustrations are colorful and capture sparks of their personality while describing whatever they chose to measure; and the differences between their drawings are a reminder of the many ways to tell a story with a common theme.
Over the past couple of weeks I’ve noticed that my iPhone photos weren’t syncing as expected to my MacBook, and therefore not being picked up by Photostream2Lightroom and pulled into my library.
Well, thanks to google and this writeup by Igor I’ve found the answer: A quick restart of the sync process appears to have taken care of the issue.
This analysis by Robert Yang hits so much of what makes Invisible, Inc. a great stealth game.
You can always lose more. Unlike every other stealth game, slow and patient observation usually means slowly suffocating death here.
Incapacitating many guards the first time is easy; but they wake up again! You have to carefully time using your stun guns because they recharge slowly over several turns. Likewise, taking enemies out for good is hard and expensive, because you may never again get more ammo for that gun (if you even have something that’s effective against their armor).
Because guards are rarely actually out of the game, every turn puts you in more danger of being overwhelmed, caught without the resources to get to your goal. It’s a constant struggle between pushing just a bit further and getting in way, way over your head.
Robert’s description of a perfectly-laid out plan foiled by one tiny unexpected detail is basically the game in a nutshell: Flashes of “I’m brilliant!” colliding with “OH NO!” and it’s a great, great time.
Looks like my pre-release Apple Music thoughts are mostly bust: No API so far, no good last.fm connection, no clear way to migrate existing playlists from other services such as Rdio.
And there’s more it doesn’t have, like any kind of coherent cross-device connectivity: No way to listen on the iPhone, then pick up the same playlist or album when I get home and open up my MacBook. The ‘Recently Played’ smart playlist occurred to me to be one way to get to this information, but it’s unreliable, usually omitting about seventy-five percent of the tracks I have listened to. This is honestly really puzzling, and frustrating, especially given Apple’s emphasis on hand-off between devices. Perhaps the recently played list only shows those tracks that are in my own, actual catalog? If so, I’m even more confused about how to think about “my” music versus the service’s catalog. It’s supposed to make that distinction irrelevant, but it seems to emphasize it in unpredictable places.
There are also some interface issues. This is a clicky, clicky application. (Rdio, which has become somewhat inscrutable sometimes, is so much cleaner.)
So why keep using it, when Rdio continues to behave the way I much prefer? Well, a couple of things: First, the curated playlists are good. They are well-titled, have useful descriptions, and the ones that show up in my 💓 “for you” section are a pretty good match for my tastes. This is in contrast to everything algorithmic that I’ve ever tried, which just never felt right to me. I have been enjoying listening to them a lot.
Capturing this discovery, on the other hand, is tricky: Whereas when I have a last.fm connection going, and can return to the day’s plays and easily flag something that I loved, with Apple Music, if I don’t capture that right in the moment, I’m much more likely to lose it.
Also, Siri integration is slick. I mean, really cool. Driving in the car, I can just tell my phone to play me an album or a song, or a playlist. This has made impulse listening so easy and fun. And when my son requests his current favorite song from the backseat, I can just tell Siri to play it, no fumbling through playlists and menus to get to it. (On the other hand, he will quickly understand that I can no longer use “Dad’s driving, son, I can’t find ‘Fireproof’ for you right now.”)
Finally, I really like the unification of my own library with the Apple Music catalog. While I continue to share the feeling that it’s often unclear what the status of my own music is 1, it’s great to be able to can mix something from my home catalog with a playlist from Apple Music when I’m out with my iPhone. Another benefit of this integration is that I’m listening to my own old playlists from iTunes once again. There are tracks there that I haven’t listened to in years, and my only excuse is that iTunes became such a bloated and byzantine mess that I tried as much as possible to avoid it. Now that they show up in Apple Music, I am really, truly enjoying them.
I think Apple has done something very smart with the long free trial of the service. If they iterate quickly on some of the interface details and expand on the cross-device support, during this time when they service is still free, I think they’ll have something competitive and compelling. I hope that they do, because there’s a lot here to like, but I’m not turning over my keys to Rdio just yet.
Oh, one more thing: I didn’t like the “play blah blah in Apple Music” cruft that the app adds to a URL that you share from it, so I made a quick and dirty Workflow share extension that copies a track, playlist, or album URL to the clipboard. Here it is.
- Is it in the cloud? Is it ‘matched’ or purchased, will I lose my canonical copy somehow? Is something happening with my metadata while I’m not looking? [return]
I love the big game lists that Rock Paper Shotgun puts together, and this massive list of RPGs is a fine example of the form. Baldur’s Gate II, FTL, Dungeon Master I mean Legend of Grimrock, Eye of the Beholder, Ultima VII, Pool of Radiance … the list goes on, with references to good contemporaries to the classics.
This is a post without a title.
Last year I made a few totally uninformed notes about Apple’s purchase of Beats, which we now know is resulting in the upcoming Apple Music – a curated, streaming radio and music streaming service that looks functionally (so far) a lot like Rdio and Spotify.
I use Rdio a lot, and I was thinking while I was driving around this morning about a couple of things that I hope Apple Music eventually will offer. The first is a hook to last.fm to scrobble the songs I listen to. Last.fm has continued to be one of those services that I just keep using. I like being able to gets its view of my musical history, and I’ve also connected it to slogger, so I have an ongoing log in my Day One journal. I would miss not having that ongoing record.
Here’s the important one, though: Apple needs to realize, especially with their intent to launch an Android app, that their target customers are already using a streaming service, and they have to help them cross the river. They need to carefully consider the maturity of services that they’re competing with: If a Spotify friend posts a playlist, I can use re/spin to build the same playlist in Rdio. And if I’m to migrate outright from Rdio, how will Apple help me move my playlists, favorites, and collections? I hope for an API, because that will also help me get my last.fm hook. I guess we’ll have some idea in a few days. Fingers crossed.