My small family vacation ended up being a series of things not quite going right, but working out in the end. A bit of a challenge with a small casual vacation with young children is that there's a desire to not over-plan (i.e. relax a bit more) but that can lead to things not panning out.
The first flub was in booking tickets to the WNDR Museum in Boston - my son thought I was joking that I hadn't yet got tickets in that morning but we hadn't workout out the timing yet and it didn't seem necessary…but when I tried to order the morning was booked up. Overall not a bit deal - we just shifted our day a bit (had lunch before rather than after) and everyone had a lot of fun when we got there (definitely recommended).
After that we checked in where the only eventful aspect was that it was cold and my daughter in particular was not a fan (to put it mildly) of walking around in the cold (we parked our car under Boston Common and left it there).
After a brief rest in the hotel, the decision was to try out ice bumper boats at the Harvard Science Center (the other considered option was ice skating on the frog pond but the combination of cold and my kids needing to learn to skate seemed like it could get dicey and we'd rather save that for skiing). We jumped on the red line to Harvard Square and I managed to walk fairly directly to the right place (I know Harvard Square fairly well but not Harvard itself). The timing seemed fairly perfect given that it opened for the evenings at 4…but unfortunately the day of the week was wrong since we got there on a Monday and it only runs later in the week (definitely a mistake on my part due to some combination of checking date ranges (but not days of the week), being in a vacation mindset (of course recreational activities would be open), and the information about this event being mildly scattered. After waiting until 4 and noticing nothing was stirring I realized that mistake and we headed back to Harvard Square for dinner.
After the short walk back we headed to Church Street - I'd had the Border Cafe in mind since being in the area seemed likely. I hadn't been there since we took my son back when he was too young to remember and I was also fairly sure it had closed since then (vaguely remembering both hearing about it and one of my former colleagues lamenting the loss) but I wasn't sure if I was just getting it confused with when they had a fire. It has closed and been replaced by the Painted Burro. Dinner went smoothly, though the new place does not hold a candle to the Border Cafe either in food or atmosphere (on either level) at least in my opinion and my wife's.
After dinner we headed over to the Harvard Square location of Mike's Pastry (introducing our kids to that Boston institution) to get some treats to bring back to the hotel (and they had Florentine cannoli which I was happy about since last time I went to this location they didn't). On the way back the kids got to experience the full color of riding the T with some distressed passengers and panhandlers. My son also wanted to get to the nearest train stop to our hotel so we changed to the orange line which I've not ridden much but based on my experience and what I've heard seems to hold its title as the least maintained line (which was part of the reason we didn't do that on the way in); our car smelled like a toilet. Our first outbound train was a new one which left me thinking that the T had changed a bit since it used to be part of my commute…but both the inbound red line train and the orange line train seemed to be stuck back in the 90's when I first rode the T (I don't particularly care but it unwound the impression from the first car).
Back to the hotel for pastries/cannoli, a couple episodes of Big City Greens and sleep.
The morning starts with the alarm in our room going off since the kids were playing with it the night before. The sleeping arrangement is usually one child and one adult per bed and I typically also claim the middle spot next to the table, but this time I figured I'd leave my son to have that spot. I lean over to make sure that the alarm has actually been shut of (and not just snoozed) and notice a flashing blue light on the table. While I'd set my phone up to charge the night before some combination of my daughter filling the table with squishies and kids being kids had knocked things loose so my phone is fully dead. Given the recent issues I've had with the port I also can't get it to take a charge. I'd been banking on it being able to slowly charge over the night and that didn't happen so the likelihood of it getting any usable amount of charge with the wireless charger I have and the seemingly low amperage USB ports available was basically non-existent. At this point I'm also not sure if my phone is somewhat bricked, but I'll be revisiting that as part of a different effort (from many angles).
The kids are looking to have a lazy morning, I'm wrestling with my phone, but we know we need to leave to get the mountain. At this point part of my typical morning activity would be to get all the details together from the information on my phone, but that's not an option and I'm preoccupied seeing if I can the port working with the cables I have rather than potentially using my tablet - when asked I answer that we need to be at the mountain in time for lessons at 10:30.
Breakfast at the hotel takes a little bit longer than anticipated since they gave my daughter blueberry pancakes rather than chocolate chip (and she's not one to adapt and we don' want her to be hangry) and she tends to drag out meals anyway. The ~1 hour car ride starts calmly but my daughter starts getting cranky about a halfway through.
We arrive a bit before 10 and realize that actually claiming our tickets would typically be done using my email…which is on my dead phone (and not loaded elsewhere). We go the manual route which works but takes quite a bit longer. We bounce around a bit between getting to the right places given that the flow is different for the Polar Kids that my daughter signed up for and the group lessons my son was going to do. At the group lessons and Polar Kids it is also pointed out that the lessons do not start at 10:30, but at 10:00 which it nearly is and we still don't have our gear. We get geared up - need to change the size for my son. The common struggle to get everything on along with a typical amount of convincing my daughter to do things in ways that make sense. We head outside and as I'm helping my son clip in he leans his head over mine so as I stand up I bash him in the nose with my helmet. After a fairly brief recovery he's dealing with snow blindness (very understandably) so we go back in and rent him some goggles (can probably buy those for the kids for next time). At this point we're finally about ready to go but it's well past 10 and there's no way my son can join his lesson…not sure about my daughter but splitting up that way wouldn't be a good idea regardless. While getting the starting time messed up certainly didn't help, we likely wouldn't have even made it for 10:30 at this point so definitely overly optimistic timing for a second ski trip.
We opt to just stick together and ride the easy slopes (which matches my wife's preference - left to my own devices I'd probably do more of a mix but mostly driven by run length rather than ability), and specifically start with the magic carpet. After skiing over there the kids are starting to get comfortable on skis (my son falls down several times on the way). I catch myself from falling getting on the carpet…my wife does not. At the top we end up splitting up where I'm with my son and my wife is with my daughter. After a few falls and pep talks about how falling is an important part of the exercise my son hits his groove. He needs to work on steering so I give him a quick pointer and suggest he just mix it in here and there along with advice on how to come to a more complete stop at the end and then he's pretty much off doing his thing - up and down without issue.
My daughter gets very frustrated when she wants to be better at something than she is. I tried to tag my wife out but she's fallen and wailing. She started wanting to be the one to teach my wife, and then she switched to wanting to do a run without issue where anytime she fell she'd want to walk back to the top and start over. After a bit she also got settled in. Lunch break at the restaurant upstairs in the lodge. Not a great food vacation - all of the meals were fine but nothing stood out (there are plenty of good restaurants in Boston but it's not a food city). Everyone wants to go out and keep skiing after lunch.
For the first run or two everyone is doing great, and I start thinking we can upgrade from the carpet to the (green) lift, but then my daughter starts losing it again. She's doing great but she still wants each run to be perfect and she keeps picking lines that are near other people and are relatively steep (steep for the carpet area) and so she has a pattern of shooting down, falling at the end, and then getting upset. I am quickly disabused of the idea that the ski lift would be enjoyable. The rest of the afternoon largely continues along like this - everyone doing great but my daughter being too hard on herself (I'm now with her and my wife and son are just doing their thing around the carpet area). Its then about time to leave and my daughter is determined to get one good run in. I do one more with my son while my wife takes my daughter up and then I end up needing to look for them when we reach the bottom and at the same time try to stop my son from wandering off. After a mild panic (mostly since I imagine my wife cursing me) I spot them at the top again. I brace myself to be the bad guy that has to deliver the message that we need to stop since being tired and frustrated is a recipe for injury…but then my daughter has the perfect run she's been looking for. We slog back to the rental return, gratefully put on normal shoes again, drive home with the kids watching my tablet, take-out for dinner, a couple episodes of Once Upon a Time, and done.
My wife is a fan of Wachusett so we'll probably try to do that again - it could certainly be a day trip in another year or so once it feels like that won't lead to a tired child making us question our life decisions. Great Wolf Lodge is also in the next town over and my kids are very interested in going back there after a night there last year at this time so that could be an option for a long weekend (that desire doesn't quite reach myself or my wife but to me it seems like a place worth getting another trip to while the kids are good ages for it).
I just finished flipping through Head First Java, 3rd Edition(1). I picked it up since I'm doing some Java work and it was the most popular Java book on the O'Reilly learning site. I've read at least part of past editions and other Head First books and was hoping it would cover some of the newer Java features that I may not make enough use of. I'm certainly not the right audience for the book - I don't think I picked up anything new and was primarily thinking about the fact that it could be a good book for one of my children to read at some point (my son's attention was definitely drawn by some of the graphics he noticed when my tablet was propped up).
I'd have some mild concerns around some of the ways that object-oriented programming is discussed along with a fairly common pattern of talking up certain facilities in depth and then adding small text caveats after the fact. In this case there was a warning about class hierarchy depth; something that probably wasn't discussed were expression problem type issues where examples such as an Animal class having a method supporting its use by a veterinarian was not accompanied by the warning that classes accreting methods for all of their prospective uses may not be a great idea…but going back to the not the right audience these types of concerns may just be distracting or confusing to readers that are working through the basics (where I'm my perspective is biased from having to unravel messy hierarchies that stemmed from overuse of those approaches).
I'm starting to dive fairly deeply into AsyncAPI(2). I'm using this professionally, but I also plan on exploring how to use it personally also. AsyncAPI 3.0 feels like it somewhat provides general blocks that can be used and combined to define APIs. While professionally I'm using that for inter-service communication, I'm also planning on experimenting with using it more ubiquitously. This feeds into a long held perspective around the fact that many of our modern abstractions (like containers) are too often treated as tools that allow us to do things certain ways whereas the greater promise seems to be in decoupling what things are from how they are done. In the container example this manifests as the naive perspective that containers enable microservices to be replaced with the more open perspective that combined with proper modularity containers enable logic to easily shift across the spectrum from sharing a process space, to sharing a host (i.e. within a Kubernetes pod), to being on another system. AsyncAPI could provide the complementary API definition where an interface is defined that could result in a method call, basic IPC/shelling out, or communicating with a remote system.
This perspective also draws on some of my perspectives around Data Precedence (which should be extracted to its own page), and thoughts on programming languages in general. This will be covered at some point or other as a topic of What vs. How, but the short version is that abstractions typically package up a What and while I see there being a fair amount of benefit in being able to express How in appropriate languages, the use of defining interfaces in particular languages potentially feels more incidental (albeit with plenty of details that are being glossed over here) and so adopting an inter-language mechanism to define interfaces seems potentially very powerful.