Other than the hotel debacle, I'm having a pretty good time in the UK. Yesterday I went out to Berkhamsted to do Walk #1 in The Home Counties from London by Train Outstanding Circular Walks (Pathfinder Guides):
I followed that up today by getting lunch in Borough Market, then walking back to King's X:
(The maps are in French because I set my phone to French to practice in advance of my arrival in France tomorrow.)
The weather yesterday and today has been spectacular, to boot.
Another nice bit of news: I'm now less than 1,000 miles from lifetime Platinum status on American Airlines (with courtesy Sapphire status on another dozen airlines):
That should flip over 2 million lifetime miles when I get back to Chicago.
And now: a shower, a quick kip, and (I really hope) a pork bap at the Southampton Arms.
I've just released a new version of Weather Now, which brings back a feature the app hasn't had since about 2002. Building on the release two weeks ago that added user profiles (as long as you have a Microsoft account), today's release allows users to set their home location and home weather station.
Pages like the Nearby Weather page will show distances from your home location in the list of stations. And other pages will use your home weather station (Current Weather) or home location (Sunrise Times) as the default starting point. You can still specify different locations for everything. And, of course, you don't have to have a user profile set up to use those features.
To choose your home location, search for a place and then go to the Place Info page. (The link to Place Info is usually on the bottom of a page.) On Place Info, click on "Make this your home place." Similarly, to set your home weather station, go to any weather page and click "Make this your home weather station."
Next up: users will be able to select the stations that appear on the home page when they log in.
Super cool!
Just a quick note while I've got my head down with an ugly commit and probably a few follow-up fixes.
After a lovely autumn-cool weekend, today we have some summer-like weather, just warm enough to make me wonder whether I should turn on the air conditioning. I'll decide around 6, I think.
On the other hand, I wonder why I'm sitting inside on one of the last days like this we'll have for six months?
So, I finally figured out why Weather Now kept struggling: I deployed it to a too-small App Service Plan for the load it was getting. And since most of the load is coming from bots, I hope that the robots.txt file I finally deployed properly will get them to stop.
I fixed the mysterious exceptions being thrown, too. But it turned out, the problem was simply load. A bigger App Service Plan brought the effective CPU from 100% to 28% immediately. And it'll only cost another $66 per month...
I'll experiment with other ASP sizes later this week. At least the app works again!
I spent hours this weekend and a couple of nights this past week fixing Weather Now. The app has gotten a lot more traffic than usual lately, mostly because I didn't put the robots.txt
file in the right location. Unfortunately, all the extra traffic made it really obvious that the app had some serious performance issues, which I traced to some bad asynchronous code design.
The miracle cure for these issues came from Microsoft, and the Microsoft.VisualStudio.Threading.Analyzers
package. This easily found the places in the Inner Drive Extensible Architecture as well as Weather Now where I'd botched the async coding.
Along the way I also made a couple of small tweaks that should cut down on the number of error messages the thing sends me. After last weekend's deployment I started getting so many that I had to shut the app down for a while. (Good thing I don't have any paying users.)
Annnndddd...it's not better. I still haven't figured out why the production API keeps dying, even though it seems to work fine in the Dev/Test environment.
Crap.
I just finished a 75-minute open-level French test as part of a QA study that Duolingo invited me to participate in. What an eye-opener. And quelle épuisement!
The test started well enough but got a lot harder as it went on, for two principal reasons. First, the order of sections went precisely in the order of my abilities: reading, writing, listening, speaking. Turns out I read French a lot better than I write it, write it better than I understand it, and speak it like a reject from a Pink Panther film. Some poor evaluator will have to listen to me going on for nearly three minutes about how hard the job of cat-herder is. What's worse, I only just now learned the word berger. "Herder des chats" is, apparently, not a thing, but berger de chats potentially is. I hope whoever scores that response at least has a sense of humor.
The second reason it got harder is that "open level" bit I mentioned. Each section got progressively more difficult, such that by the end of the listening part I could barely pick out the topic let alone individual words. Senegalese fishermen, you may be surprised to learn, are harder to understand than recorded announcements at train stations.
Still, I'm glad I did it. I don't know if they'll share the results with me, because they only want the data to calibrate their language-learning product. I hope they do, particularly before I pop out of the Chunnel just over two weeks from now.
I'm dog-sitting again, so a nervous beagle wandered up to my office during the test to see why I hadn't fed her yet. I suppose they both could use an around-the-block and some kibble. I will try to speak French to them, if only for my own practice.
Oh, and if you haven't been able to get to Weather Now this afternoon, that's because I shut it down for a bit while I root out a connection-exhaustion problem. I believe there are too many bots hitting it the last few days, but it still shouldn't crash when they do. Until I can fix the problem, or get rid of the bots, I'm only going to have it up a little bit at a time. (Its data collection continues unaffected, however.)
So far this autumn, we've had ridiculous amounts of sunshine in Chicago, with 99% of our rapidly-declining minutes of daylight delightfully cloud-free. We haven't had such a sunny first week of September since 1955, it turns out.
For that reason I ate lunch outside today, and unless something truly bizarre happens in the next few hours, I'll have dinner outside as well. Not a bad Thursday.
As for the title of this post, when you multiply six by nine, you get 42 base 13, in fact: the answer to the Ultimate Question of Life, the Universe, and Everything. Any other meaning would be purely coincidental.
Before I bugger off to get at least a couple of daylight hours in this sunny, 22°C afternoon, here are the most interesting stories that popped up today:
Finally, the Chicago White Sox have surpassed their team record for losses, going 31-108 through yesterday. If they lose 13 of the remaining 22 games—which would actually represent an improvement over their performance so far—they will surpass the 1962 New York Mets' record 120 losses in a season. For reasons passing understanding, they're still charging for tickets, with box seats going for $69 and some tickets as high as $309. They have lots of seats left, though, so maybe I'll just take the El down there this weekend to see the Athletics beat them?
The weather today requires that I leave work as early as permissible and take Cassie home the long way. Of course, in order to do that, I have to eat at my desk. (I suppose I could have taken a long lunch, but then I wouldn't have as much time with my dog. Choices.)
Last night I fired up the ol' grill. I am proud to report I have gotten steak grilling just right; this guy was a perfect slightly-rare-of-medium and every bite was juicy and tender:
Dinner tonight (and probably tomorrow) will be leftovers, of course. Breakfast and lunch today were oats and poke, respectively, as I realized that I should probably have as little fat and cholesterol as possible the rest of the day.
This morning, the CTA completed re-routing the #9 Ashland bus to the Ravenswood train station, which ended over 100 years of the bus line terminating by the Graceland Cemetery:
For more than a century, public transit commuters headed north on Ashland Avenue had their ride stop at Irving Park Road before the bus headed east to terminate at Clark and Belle Plaine, near Graceland Cemetery, CTA director of service planning and traffic engineering Jon Czerwinski said.
“This is a routing we’ve followed for a long time. It’s been in place since the Chicago surface lines operated streetcar service here all the way back to 1912,” Czerwinski said.
The route created a gap in service for anyone wanting to take public transit further north. But starting Aug. 25, the #9 Ashland bus will continue past Irving Park Road and now terminate at the newly renovated Ravenswood Metra station, 4800 N. Ravenswood Ave., Czerwinski said.
I caught two of the buses exploring their new neighborhood on my way to the train:
I'll have a link roundup later this afternoon.
I've added a new feature to Weather Now: user profiles. It's only the most basic implementation and, at the moment, doesn't actually do anything. But it will lead to a whole range of features that the application hasn't had since it was an old Active Server Pages app in 1999.
Unfortunately, the deployment required setting up additional features on the weather API, so that user IDs travel from the UI to the API securely. The deployment took two hours, and threw up several pipeline failures for a reason having nothing to do with the API changes.
Anyway, now that the base user profile feature works, I can now add:
- User preferences for measurement systems (metric or Imperial);
- User-selected home locations;
- User-selected home page weather lists;
- Multiple custom weather lists; and
- Lots of other personalization features.
At some point I'll also finish importing the whole (9-million-plus record) gazetteer, so users can search for more places.
Now, however, I'm going to make some lunch now and take Cassie on a very long walk in the amazing autumn weather we have today.