Tags: im

3304

sparkline

Sunday, August 25th, 2019

Down by the river.

Down by the river.

Checked in at Chicago Brewhouse. Chicago dog! — with Jessica map

Checked in at Chicago Brewhouse. Chicago dog! — with Jessica

Saturday, August 24th, 2019

I’m dubious of this proposal. I just don’t think a nice bag can offer the kind of companionship you get from an animal.

I’m dubious of this proposal. I just don’t think a nice bag can offer the kind of companionship you get from an animal.

Florid.

Florid.

Friday, August 23rd, 2019

Replying to

Here’s what I just got on web.dev …but no fireworks.

Here’s what I just got on web.dev …but no fireworks.

The Arrogance of the Anthropocene - The Atlantic

If, in the final 7,000 years of their reign, dinosaurs became hyperintelligent, built a civilization, started asteroid mining, and did so for centuries before forgetting to carry the one on an orbital calculation, thereby sending that famous valedictory six-mile space rock hurtling senselessly toward the Earth themselves—it would be virtually impossible to tell.

A nice steaming cup of perspective.

If there were a nuclear holocaust in the Triassic, among warring prosauropods, we wouldn’t know about it.

Walking on the beach at sunset.

Walking on the beach at sunset.

Thursday, August 22nd, 2019

Wetlands.

Wetlands.

Wednesday, August 21st, 2019

Relaxing on the beach. I’ll miss beaches when they’re gone.

Relaxing on the beach.

I’ll miss beaches when they’re gone.

Monday, August 19th, 2019

Admiring @KelliAnderson’s graphic design work in @LoxPopuli.

Admiring @KelliAnderson’s graphic design work in @LoxPopuli.

Revisiting the carrier hotel at 32 Avenue Of The Americas. https://adactio.com/journal/11989 > Telephone Wires and Radio Unite to Make Neighbors of Nations

Revisiting the carrier hotel at 32 Avenue Of The Americas.

https://adactio.com/journal/11989

Telephone Wires and Radio Unite to Make Neighbors of Nations

Checked in at Russ & Daughters Café. with Jessica map

Checked in at Russ & Daughters Café. with Jessica

Sunday, August 18th, 2019

Checked in at The Roxy Hotel. with Jessica map

Checked in at The Roxy Hotel. with Jessica

Here’s @Wordridden arriving into New York this morning, as the Queen Mary 2 sailed under the Verrazano-Narrows Bridge. (Photobombing by @JameStreeter and @ErinaTakahashi_.)

Here’s @Wordridden arriving into New York this morning, as the Queen Mary 2 sailed under the Verrazano-Narrows Bridge.

(Photobombing by @JameStreeter and @ErinaTakahashi_.)

Sailing into the sunset.

Sailing into the sunset.

Dressed for the 1920s.

Dressed for the 1920s.

@Wordridden on the ocean.

@Wordridden on the ocean.

Ship shadows.

Ship shadows.

Saturday, August 10th, 2019

Server Timing

Harry wrote a really good article all about the performance measurement Time To First Byte. Time To First Byte: What It Is and Why It Matters:

While a good TTFB doesn’t necessarily mean you will have a fast website, a bad TTFB almost certainly guarantees a slow one.

Time To First Byte has been the chink in my armour over at thesession.org, especially on the home page. Every time I ran Lighthouse, or some other performance testing tool, I’d get a high score …with some points deducted for taking too long to get that first byte from the server.

Harry’s proposed solution is to set up some Server Timing headers:

With a little bit of extra work spent implementing the Server Timing API, we can begin to measure and surface intricate timings to the front-end, allowing web developers to identify and debug potential bottlenecks previously obscured from view.

I rememberd that Drew wrote an excellent article on Smashing Magazine last year called Measuring Performance With Server Timing:

The job of Server Timing is not to help you actually time activity on your server. You’ll need to do the timing yourself using whatever toolset your backend platform makes available to you. Rather, the purpose of Server Timing is to specify how those measurements can be communicated to the browser.

He even provides some PHP code, which I was able to take wholesale and drop into the codebase for thesession.org. Then I was able to put start/stop points in my code for measuring how long some operations were taking. Then I could output the results of these measurements into Server Timing headers that I could inspect in the “Network” tab of a browser’s dev tools (Chrome is particularly good for displaying Server Timing, so I used that while I was conducting this experiment).

I started with overall database requests. Sure enough, that was where most of the time in time-to-first-byte was being spent.

Then I got more granular. I put start/stop points around specific database calls. By doing this, I was able to zero in on which operations were particularly costly. Once I had done that, I had to figure out how to make the database calls go faster.

Spoiler: I did it by adding an extra index on one particular table. It’s almost always indexes, in my experience, that make the biggest difference to database performance.

I don’t know why it took me so long to get around to messing with Server Timing headers. It has paid off in spades. I wish I had done it sooner.

And now thesession.org is positively zipping along!

Feeling cute, might delete later.

Feeling cute, might delete later.