Compare commits

..

2 commits

Author SHA1 Message Date
b613b45394 Perf upgrades post! 2024-10-04 17:50:20 -07:00
ab963af0cb Run bundle update 2024-10-04 17:50:20 -07:00
7 changed files with 117 additions and 28 deletions

View file

@ -83,58 +83,58 @@ GEM
rb-fsevent (0.11.2) rb-fsevent (0.11.2)
rb-inotify (0.11.1) rb-inotify (0.11.1)
ffi (~> 1.0) ffi (~> 1.0)
rexml (3.3.7) rexml (3.3.8)
rouge (4.4.0) rouge (4.4.0)
safe_yaml (1.0.5) safe_yaml (1.0.5)
sass-embedded (1.79.2) sass-embedded (1.79.4)
google-protobuf (~> 4.27) google-protobuf (~> 4.27)
rake (>= 13) rake (>= 13)
sass-embedded (1.79.2-aarch64-linux-android) sass-embedded (1.79.4-aarch64-linux-android)
google-protobuf (~> 4.27) google-protobuf (~> 4.27)
sass-embedded (1.79.2-aarch64-linux-gnu) sass-embedded (1.79.4-aarch64-linux-gnu)
google-protobuf (~> 4.27) google-protobuf (~> 4.27)
sass-embedded (1.79.2-aarch64-linux-musl) sass-embedded (1.79.4-aarch64-linux-musl)
google-protobuf (~> 4.27) google-protobuf (~> 4.27)
sass-embedded (1.79.2-aarch64-mingw-ucrt) sass-embedded (1.79.4-aarch64-mingw-ucrt)
google-protobuf (~> 4.27) google-protobuf (~> 4.27)
sass-embedded (1.79.2-arm-linux-androideabi) sass-embedded (1.79.4-arm-linux-androideabi)
google-protobuf (~> 4.27) google-protobuf (~> 4.27)
sass-embedded (1.79.2-arm-linux-gnueabihf) sass-embedded (1.79.4-arm-linux-gnueabihf)
google-protobuf (~> 4.27) google-protobuf (~> 4.27)
sass-embedded (1.79.2-arm-linux-musleabihf) sass-embedded (1.79.4-arm-linux-musleabihf)
google-protobuf (~> 4.27) google-protobuf (~> 4.27)
sass-embedded (1.79.2-arm64-darwin) sass-embedded (1.79.4-arm64-darwin)
google-protobuf (~> 4.27) google-protobuf (~> 4.27)
sass-embedded (1.79.2-riscv64-linux-android) sass-embedded (1.79.4-riscv64-linux-android)
google-protobuf (~> 4.27) google-protobuf (~> 4.27)
sass-embedded (1.79.2-riscv64-linux-gnu) sass-embedded (1.79.4-riscv64-linux-gnu)
google-protobuf (~> 4.27) google-protobuf (~> 4.27)
sass-embedded (1.79.2-riscv64-linux-musl) sass-embedded (1.79.4-riscv64-linux-musl)
google-protobuf (~> 4.27) google-protobuf (~> 4.27)
sass-embedded (1.79.2-x86-cygwin) sass-embedded (1.79.4-x86-cygwin)
google-protobuf (~> 4.27) google-protobuf (~> 4.27)
sass-embedded (1.79.2-x86-linux-android) sass-embedded (1.79.4-x86-linux-android)
google-protobuf (~> 4.27) google-protobuf (~> 4.27)
sass-embedded (1.79.2-x86-linux-gnu) sass-embedded (1.79.4-x86-linux-gnu)
google-protobuf (~> 4.27) google-protobuf (~> 4.27)
sass-embedded (1.79.2-x86-linux-musl) sass-embedded (1.79.4-x86-linux-musl)
google-protobuf (~> 4.27) google-protobuf (~> 4.27)
sass-embedded (1.79.2-x86-mingw-ucrt) sass-embedded (1.79.4-x86-mingw-ucrt)
google-protobuf (~> 4.27) google-protobuf (~> 4.27)
sass-embedded (1.79.2-x86_64-cygwin) sass-embedded (1.79.4-x86_64-cygwin)
google-protobuf (~> 4.27) google-protobuf (~> 4.27)
sass-embedded (1.79.2-x86_64-darwin) sass-embedded (1.79.4-x86_64-darwin)
google-protobuf (~> 4.27) google-protobuf (~> 4.27)
sass-embedded (1.79.2-x86_64-linux-android) sass-embedded (1.79.4-x86_64-linux-android)
google-protobuf (~> 4.27) google-protobuf (~> 4.27)
sass-embedded (1.79.2-x86_64-linux-gnu) sass-embedded (1.79.4-x86_64-linux-gnu)
google-protobuf (~> 4.27) google-protobuf (~> 4.27)
sass-embedded (1.79.2-x86_64-linux-musl) sass-embedded (1.79.4-x86_64-linux-musl)
google-protobuf (~> 4.27) google-protobuf (~> 4.27)
terminal-table (3.0.2) terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3) unicode-display_width (>= 1.1.1, < 3)
unicode-display_width (2.6.0) unicode-display_width (2.6.0)
webrick (1.8.1) webrick (1.8.2)
PLATFORMS PLATFORMS
aarch64-linux aarch64-linux

View file

@ -4,7 +4,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<meta charset="utf-8" /> <meta charset="utf-8" />
<title>{{ page.title }} - {{ site.title }}</title> <title>{{ page.title }} - {{ site.title }}</title>
<link rel="stylesheet" href="/assets/css/main.css" /> <link rel="stylesheet" href="/assets/css/main.css?v=2" />
<link <link
rel="alternate" rel="alternate"
type="application/rss+xml" type="application/rss+xml"

View file

@ -48,7 +48,7 @@ _I also want to call out and thank TNT in particular for their help with
sustainability!! The NeoPass partnership has been a genuine game changer—I'll sustainability!! The NeoPass partnership has been a genuine game changer—I'll
talk about it more below!_ talk about it more below!_
### Stability: Changes to keep the site running ### Stability: Changes to keep the site running {#stability}
At the start of the year, DTI was… uhhh, often broken 😖 We'd have multiple days At the start of the year, DTI was… uhhh, often broken 😖 We'd have multiple days
of downtime, and I'll be real with ya: it was _mostly_ an awareness and time of downtime, and I'll be real with ya: it was _mostly_ an awareness and time
@ -74,7 +74,7 @@ smarter about it. So, hey—we're being smarter!
With these changes, it's been months since our last like, _major_ downtime With these changes, it's been months since our last like, _major_ downtime
event. We're still not as consistent as I'd like to be, but hey—more to come! event. We're still not as consistent as I'd like to be, but hey—more to come!
### Simplicity: Cleaning house, clearing hallways ### Simplicity: Cleaning house, clearing hallways {#simplicity}
The high-level goal here is: **I want to remove Impress 2020, but only once we The high-level goal here is: **I want to remove Impress 2020, but only once we
no longer need it**. no longer need it**.
@ -121,7 +121,7 @@ We'll check in with y'all before retiring Impress 2020 altogether, I think
there's still plenty of steps along the way! We're just doing our best, bit by there's still plenty of steps along the way! We're just doing our best, bit by
bit. bit.
### Sustainability: Finding more time, with TNT's help ### Sustainability: Finding more time, with TNT's help {#sustainability}
At the start of the year, the reality of the situation was just… I did not At the start of the year, the reality of the situation was just… I did not
_have_ volunteer hours available to give to DTI. What time I _did_ have for _have_ volunteer hours available to give to DTI. What time I _did_ have for

View file

@ -0,0 +1,83 @@
---
layout: post
title: "This week in DTI: Performance upgrades!"
date: 2024-10-03 14:47:00 -0700
author: Matchu
excerpt: |
<p>Things got a bit slow this week—so we made three changes to improve pageload times across the site! <em>(Also, I'm job-hunting right now!)</em></p>
---
Hi, everyone! You might've noticed earlier this week that DTI had started to
stutter a bit. We experienced a bit of a traffic spike, and pageloads would
sometimes start taking a few seconds. (My phone was ringing off the hook to let
me know!)
![Screenshot of my email inbox: many emails on Sep 30, from health@openneo.net, saying "GlitchTip: Dress to Impress is down" or "is back up"](/assets/images/posts/2024-10-03-perf-upgrades/email.webp)
When we dug into it, there wasn't any _specific_ cause—just a bit more pressure
causing our database to max out our server's CPU a bit too often.
Rather than just throw more CPU at the problem (always an option, but never a
cheap one!), we popped open the slow query log. We found the worst offenders,
and started getting to work fixing database queries that have _always_ been a
bit slow—in some cases, for many years!
Here's the three big changes we made:
- **Item searches:** We
[sped](https://code.openneo.net/OpenNeo/impress/commit/efda6d74ab6b9405cd563ccc72bb45b4f10eabe3)
[up](https://code.openneo.net/OpenNeo/impress/commit/efda6d74ab6b9405cd563ccc72bb45b4f10eabe3)
some of our tougher filters (`occupies` and `fits`) from taking a couple
seconds at worst, to always nearly instant! _(We did this by "caching" more
data about the item's appearance onto the item record itself.)_
- **Trade listings:** Earlier this year, we added the Offering/Seeking pages to
Classic DTI, and built them faster than the Impress 2020 versions. Now, we've
[deleted](https://code.openneo.net/OpenNeo/impress-2020/commit/067da33025cbf5ed92707efa1558a658135e310e)
Impress 2020's slower version of the page, redirecting to Classic's faster one
instead. _(This brings us closer to [merging
the apps]({% post_url 2024-09-20-state-of-dti-2024 %}#simplicity), too!)_
- **Modeling progress:** When we're missing data for new items, we ask for help
at the bottom of the homepage—and we
[used the same upgrades](https://code.openneo.net/OpenNeo/impress/commit/03e4233f67935b6e8998904d41305fb41f7660af)
from item searches to make this faster, too. _(We also
[fixed](https://code.openneo.net/OpenNeo/impress/commit/fe4db1b60571cbc2b6d295cfc1230f2ebbc6f3bb)
the long-standing bug of Maraquan items asking for more help than we need!)_
And these changes don't just affect these features: when our CPU starts to peak,
_everything_ gets slower. And so when we make the site more efficient and stop
hitting those limits, _everything_ gets faster!
Since then, the site has been back to being steady, and I've been glad to see
item searches—one of the most common things that happens on the site—run much
faster for everyone!! And it's always a joy to clean up decade-old code and
bring it closer to what it always deserved to be 🥰
Hope everyone's doing well, and that you've got fun Halloween plans! I'm excited
to see your pets all dressed up again this year!!
## By the way, I'm job-hunting right now! {#job-hunting}
After a few years consulting part-time, I'm looking for a full-time role again!
(The tech layoffs came for me and my family, whuh oh—time to step it up!)
_\[Lore dump!\]_ In addition to running Dress to Impress for 15 years, I've also
been a senior engineer and tech lead at an edtech nonprofit (20152020), focused
in B2B partnerships, team mentorship, and building integrated platforms to
support multiple products across teams.
I'm primarily looking for remote roles hiring in the United States, leveled at
senior or staff—but some of that could be flexible for the right situation!
Right now, I'm especially interested in:
- Consulting firms, especially with a focus in nonprofit
- Stewarding critical integrations long-term, like identity or payments
- Shifting to information security, or technical writing
- Engineering management, for the right human-focused team
If you happen to have an opportunity, please
[reach out](mailto:dti-jobs-thank-youuu@matchu.dev) and let me know! It'd help
me out a lot.
Thanks for taking a look!
_—Matchu_

View file

@ -123,6 +123,12 @@ article {
h3 { h3 {
font-size: 1.5em; font-size: 1.5em;
} }
p img {
display: block;
max-width: 50%;
margin-inline: auto;
}
} }
.posts { .posts {

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB