Infopost | 2025.05.27

Simpsons Scrabble KWYJIBO

Experimenting with embeddings for webpage recommendations has been in my backlog for a bit, it wasn't til I read this post that I realized I could knock out a simple implementation in a weekend.

There are plenty of good resources on what embeddings are and how they work, I'll just skip to the parts that apply to my use case:
The subtasks to get to Hello Embeddings were not substantial:
  1. Get an embedding table.
  2. Encode webpages as an aggregate vector.
  3. Compute similarity using vector math.

My baseline implementation

I already have code to match/recommend webpages, an unsophisticated solution that does a set intersection of 1-grams, 2-grams, and 3-grams from each page. It's worked well so far but could stand to benefit from the fuzzy/semantic correlation provided by an ML approach. Most importantly, the code and data from the baseline matcher was quite helpful in getting past some challenges with doing embeddings on a humble gaming PC.
Downsizing

Lists of embeddings are not small: vocabulary size * 100-500 floating point numbers. A minimum of two gigs is a lot to ask and searching for a bunch of arbitrary strings isn't the kind of thing you want to do on disk. Since I don't believe in databases, I decided to look at the data itself.

It didn't take long to see that the list had clutter: stopwords, ambiguous acronyms, and numeric values. Borrowing the list of 1-gram stopwords from my naive implementation, I got the following:

2,684,369 stopwords
1,845,662 okay words

Cutting the list by more than half was a good start but 1.8M words is still a few hundred megs. Perhaps the low-SNR terms not in my stopword list could be determined from their vector data?

I printed a few words and the max value from their corresponding vector, the idea being that a word with strong semantic meaning might have very high max value. Of course, a word's meaning could be split between multiple vector elements, but it's a start.

word      max of absval
----      -------------
the       -0.4605
of        -0.4943
is         0.5202 
by         0.5663
born       0.8322 
category  -1.4007 
medalists -2.0290

Stopwords showed values close to 0, more meaningful words seemed to go strongly positive or negative. I compiled a histogram of max values (absolute value, multiplied by 100 for readability):

Max        Count
-------    -----
[<= 19]  : 2
[20:24]  : 108
[25:29]  : 4249
[30:34]  : 31849
[35:39]  : 95061
[40:44]  : 161162
[45:49]  : 193109
[50:54]  : 191068
[55:59]  : 170870
[60:64]  : 148120
[65:69]  : 128406
[70:74]  : 111729
[75:79]  : 99438
[80:84]  : 89559
[85:89]  : 79901
[90:94]  : 69961
[95:99]  : 58415
[100:104]: 46316
[105:109]: 34446
[110:114]: 24920
[115:119]: 16796
[120:124]: 11412
[125:129]: 7083
[130:134]: 4524
[135:139]: 2848
[140:144]: 1754
[145:149]: 1056
[150:154]: 702
[155:159]: 435
[160:164]: 269
[165:169]: 182
[170:174]: 122
[175:179]: 89
[180:184]: 64
[185:189]: 50
[>= 190 ]: 112

So if I wanted to get down to the n-thousand most meaningful(?) words, perhaps I could just set a threshold using the histo counts. The code also spat out a histogram of median embedding values, perhaps a high median would indicate strong semantic meaning across multiple dimensions:

Median   Count
-------  -----
[0:2]  : 0
[3:5]  : 74
[6:8]  : 108774
[9:11] : 514049
[12:14]: 443230
[15:17]: 297473
[18:20]: 220397
[21:23]: 142686
[24:26]: 48517
[27:29]: 8585
[30:32]: 1688
[33:35]: 425
[36:38]: 164
[39:41]: 79
[42:44]: 29
[45:47]: 12
[48:50]: 1
[51:53]: 2
[54:56]: 0

Using max >= 1.2 (120 as listed in the histo) and median >= 0.24 (24) I created a pruned list of embeddings. The results looked like this:

internationalis 
insat 
inmortales
imathia
osteotomy
ousia 
unomig 
urayasu
zien
yakan
xylophanes
46kbb
satánico
sénégalaise
moerdijk

While these words no doubt have ample meaning, they might not come up so frequently in blog posts and other Outer Web pages.

Existing work came to my rescue once again. I had a trigram whitelist (the opposite of stopwords) as well as an index of terms used for search. The search terms are constructed by iterating over every indexed Outer Web page and tossing out ones that appear too frequently or too infrequently.

Filtering the embeddings using these lists gave me 41,000 words and a totally reasonable 30mb memory footprint. But is a 41k vocabulary enough to characterize the meaning of an arbitrary webpage? The answer is nuanced, but it starts with taking a look a some random pages and seeing what words hit:

https://ahistoryofjapan.com/2024/11/11/the-meiji-reformation/
edwards christianity temple shogunate japan damaged reformation bronze lynne temples sentiment illustration smashed buddhist burning season

https://moitereisbuntewelt.blogspot.com/2020/01/british-paratroopers-colour-guide.html
welt sicily sport sand wehrmacht uniform models soldier russian paint wooden airborne trousers unit soviet kitchen goodness scrim translate strokes 28mm moons cloth documented replacement saddle disruptive figures british painting roman shading window irony pale paratroopers lighter fractions patterns guides cheers maroon wwii military germans superb legion gaiters darker scarlet gaming recesses cavalry obscure faded pulp tutorial bunte brackets ferrari famous vallejo wargamer glazes paints darkest italy transitions scifi rifle patches dried tricky earth beige overlap elaborate

http://alifeinphotography.blogspot.com/2022/08/a-peterbilt-prototype-in-infrared.html
crosses america display jenkins minolta byways stashed highway corporations truck infrared prototype parked photographing barns glory keeper organizations spanning scanner travel canon photographed gloria camera countries film records assignments philosophy antique photography agencies nature career amazon 1920s historian mission humanitarian

https://vickiboykis.com/2018/02/19/building-a-twitter-art-bot-with-python-aws-and-socialist-realism-art/
concrete firing library polling models workflow shoulder credentials uploading cloud wikiart amazon news software vicki profiles console painting script maintenance leads tweets captions scrape metadata forms records functions partisan extract cabin stalin json systemic followers imports string sleeping handler supportive distribution code overload directory realistic stream interval genre programming environment twitter tweaking acces processs prototype lambdas python technology libraries locally surrounded realism aims kinesis instructions developer developed arguing downloading noisy decode socialist artwork posting websites development triggered russian genres classifier functionality soviet kitchen filename docs animal headlines hashtag repeats emotion education artist scenes painter analytical tears artists classical scraping party travis toxic scraper javascript bird paintings uploaded documentation propaganda nudity refactor regime scroll communism dictionary clears client immobilized government machines science engineer array waterfall artworks testing experimenting dependent linux database asleep boundaries component pencils feasible revolution scripts architecture execution operations dictionaries humanity hooks trial
Comparison

Cosine Similarity Equation png

With a slimmed-down list of embeddings loaded into memory, I could iterate over every page and produce a single embedding vector by summing the component words. Comparing two pages could be accomplished by computing the cosine similarity of their embedding vectors.
Heuristic search

Cosine similarity comparison is reasonable for comparing two webpages or even for finding related posts within my blog (n = 700ish). It's not reasonable for "here's an arbitrary webpage, find me similar ones in the hundreds of thousands of Outer Web pages". But neither was trigram comparison, and that's why Outer Web search is a two step process:
  1. Query a keyword index for posts with matching terms.
  2. Starting with the pages found in 1, search the connected graph of pages until a 'done' condition is met.
To reiterate, cosine similarity is an easy win for making Step 2 better, can it do anything for Step 1? Perhaps.

One-hot index

I created a list of posts that have the highest similarity to each of the possible one-hot vectors. For instance, a vector [0.0 0.0 0.0 1.0 0.0 ... 0.0] is most similar to the following posts:
  1. Laura Kalbag - The Destiny Machine
  2. Imposter Syndrome, Dunning-Kruger, or Just Do It · For my friendgineers
  3. Ghostbusters: Frozen Empire - Jason Gaston
  4. Blog | Thevioletwest
  5. Cinderella Moments: Peony Manor Custom 1/12 Scale Dollhouse
Now, I have no idea why those posts are semantically similar and neither does the embedding data. It is, after all, an entire internet of words distilled into a hundred categories. Some of the other indexes yielded results that look more alike at a glance.
  1. The Arcade / Blog
  2. How to Become Better at the Keyboard - Sebastian Daschner
  3. java.io.UnsupportedEncodingException problem & solution - Avi Zurel - @KensoDev
  4. Physical Memory Attributes (PMAs) · Daniel Mangum
  5. 16BPP.net: Blog / Added a Contact, Page
One more:
  1. Photography in zero visibility at the Sonoma Coast - aows
  2. Trip to Goa | Deepak's Views
  3. Small and Sunny - Learning to Surf
  4. Once this month - Learning to Surf
  5. Fjodin's 15mm World: Armies Army - VDV vehicles Pre release Sale now on!
With a little instrumentation, I could determine if one-hot graph entry points result in good matches relative to a basic keyword index.
Cosine similarity maths

Cosine similarity's Hello World is something like "King - Man = Queen". That is, if you subtract the vector for 'man' from the vector for 'king' you get 'queen'. I did vector addition and subtraction on some randomly-selected terms to see what would happen. Randomly plucking words from the index gave me a lot of meaningless results, like 'taco' + 'dignity' = a variety of words resembling each.

Another way to illustrate it, here's an addition that makes sense:

blogosphere + recap
  1. 0.750: tweets
  2. 0.738: bloggers
  3. 0.729: newsblog
  4. 0.728: podcast
  5. 0.727: lamestream
  6. 0.725: podcasts
  7. 0.723: scobleizer

But the subtraction goes off the rails a bit:

blogosphere - recap
  1. 0.509: nationalism
  2. 0.461: separatism
  3. 0.458: feminists
  4. 0.448: nationalist
  5. 0.438: globalization
  6. 0.438: activists
  7. 0.437: nationalists

Another illustrative result: embeddings are trained on the various possible meanings of a word, e.g. 'chihuahua' is both a dog and a state:

chihuahua + bear
  1. 0.762: coyote
  2. 0.724: sonora
  3. 0.701: durango
  4. 0.680: bobcat
  5. 0.676: wolf
  6. 0.674: sinaloa
  7. 0.667: juarez

'Bear' has a variety of meanings but they appear to be dominated by the animal - at least when added to a chihuahua.

The random keyword selection was pretty funny at times, e.g. vacation - dystopia:

vacation - dystopia
  1. 0.439: homestays
  2. 0.405: picnics
  3. 0.395: resort
  4. 0.390: resorts
  5. 0.378: meals
  6. 0.371: honeymoons
  7. 0.370: cookouts

And though the similarity values are pretty low, I will personally confirm that cookouts and honeymoons are a lot like vacations without the dystopic elements. Speaking of dystopias:

tiktok + america
  1. 0.664: effed
  2. 0.649: firetv
  3. 0.646: globl
  4. 0.642: asshat
  5. 0.638: jnpr
  6. 0.632: bridgerton
  7. 0.628: bedazzle

A few others:
Next month's follow-up post about being more efficient with this implementation:

Post
2025.06.14

Compressed embeddings

Adding effiency to a simple embeddings implementation for webpage linking.
Moment of zen

Embedding math tiktok + america = effed




Preview | 2025.05.21

White House Supreme Court building AI cartoon image

On Friday, SCOTUS issued an injunction preventing the deportation of Venezuelans under the Alien Enemies Act.

Majority Opinion Accordingly, in J. G. G., this Court explained - with all nine Justices agreeing - that "AEA detainees must receive notice that they are subject to removal under the Act... within a reasonable time and in such a manner as will allow them to actually seek habeas relief" before removal. In order to "actually seek habeas relief," a detainee must have sufficient time and information to reasonably be able to contact counsel, file a petition, and pursue appropriate relief.

The opinion colored its rejection of the Fifth Circuit's procedural denial (of the injunction) with some direct language about how the lower court's decision amounted to an irreversible deprival of constitutional rights.

The habeas claim returns to the Fifth Circuit with the subtext, "we know you'd try to deny it at 3am on a Sunday and the detainees would be on a plane at 3:01":

Majority Opinion The Government is enjoined from removing the named plaintiffs or putative class members in this action under the AEA pending order by the Fifth Circuit and disposition of the petition for a writ of certiorari, if such writ is timely sought.

The bigger picture

The White House has been going buck wild with executive authority: doing tariff negotiations using war powers, slashing budgets and staff (setting up a potential impoundment crisis), and illegally replacing the heads of independent government agencies. It's the kind of brave and bold action that SCOTUS wrote was part and parcel with the job of president, when it decided he could suffer no repercussions for things done from the Oval Office. Except perhaps some Bill Clinton things (but even then he could slow roll the trial by claiming immunity and getting a free delay).

I did see that coming
Despite losing in November, Redditors and their ilk still haven't realized that calling people Nazis only serves to alienate their own cause.

Many have openly wondered how the executive could accomplish this blitzkrieg reformation, sometimes announcing, "fascism is already here". It's an understandable perspective considering the president and his proxies have been vocally claiming things like, "the judiciary cannot block executive orders". But much of this has been the President creating the appearance of total authority while the courts sort through the mountain of executive actions:
Susan Collins concern meme

The court system is reactionary by design, so it's premature to begin eulogizing the American democracy. That said, there are three big reasons to have Susan Collins levels of concern.

1. Courts can't take preemptive action

Nayib Bukele tweet oopsie too late New York Post

The expedited deportation scheme showed just how easily the executive can exploit the latency built into even the most responsive judicial decisions. And as we found out with the planes to El Salvador, the judiciary has no power over foreign policy.

2. There are plenty of other dirty tricks

Last Thursday we heard oral arguments regarding the executive order to eliminate birthright citizenship. Like the deporation decision, SCOTUS didn't address the core issue but rather the district court injunction against the order. John Sauer of "the president can assassinate opponents" fame argued that nationwide injunctions shouldn't be a power of district courts (district federal courts, mind you).

While the administration may lose on the birthright citizenship thing, it may not matter if they can convince Roberts and Barrett to disempower the lower courts:

Slate I think Barrett saw that what Sauer is putting forward is fundamentally a game. It's a game where the government can keep losing, then parlay those losses into a win by keeping a case away from the Supreme Court forever. And there's nothing that binds the Justice Department to Sauer's representation that it will respect the Supreme Court. So the consequences of this argument are pretty vast. If you take away the principle that the Supreme Court's decisions are binding on everyone, and you take away the district courts' power of nationwide injunctions to ensure that everyone's rights are protected, then you have effectively taken away judicial review. And that seems to be the end goal of the Trump administration's battle in this case.

3. The FedSoc

"It's my wife's fault."

Chicanery doesn't matter if the Supreme Court ultimately decides that illegal immigrants are not "subject to the jurisdiction of US law" and thereby birth stateless children. It doesn't matter if SCOTUS decides habeas corpus can be suspended because MS13 is an invading army if the President says so. It doesn't matter if Roberts and Barrett can be convinced that the Federal Reserve being an independent executive agency is unconstitutional. Or that fed whistleblowers shouldn't report fraud, waste, and abuse to an independent Office of Inspector General but rather up the chain that they're blowing the whistle on.
Alito and Thomas

Returning to the deporation/habeas thing, Alito wrote a dissent that Thomas joined. When asked the question "should we grant injunctive relief to people under threat of extrajudicial, irreversible deportation (which we know is not a hollow threat)?" these justices said, "well first, the government promised to keep the two people in question and also SCOTUS does not have jurisdiction here".

Justice Alito The record that was before the District Court on April 18 (which is the same record that was before us at midnight on that date) included no concrete evidence that any removals were so imminent that a ruling had to be made immediately. The applicants' factual support consisted of six sworn declarations and a photograph that the applicants asserted was an image of a notice of removal. But neither the declarations nor the photograph showed "extreme urgency."

What a weird hill to die on. One of the detainees told his attorney that he was informed he'd be deported that day or the following. Considering the irreversibility of such an event (as we already knew from March), it seems like having six sworn declarations should be concrete enough to hit the pause button. And clearly it was the right call:

Majority Opinion Evidence now in the record (although not all before us on April 18) suggests that the Government had in fact taken steps on the afternoon of April 18 toward removing detainees under the AEA-including transporting them from their detention facility to an airport and later returning them to the facility.

Alito goes on to say that the government promised it wouldn't deport the two detainees in question so SCOTUS didn't need to step in. Never mind that the majority opinion covers everyone subject to AEA deportation (Alito disagrees with this, too).

Justice Alito The Government had represented in District Court that it would not remove either of those men-the only parties who were indisputably before the court-while their habeas petitions were pending.

And even for the named detainees, I'm not so sure they wouldn't get "oopsied":

Justice Alito The Government "unequivocally" told the District Court that it did not "'presently expect to remove A.A.R.P. or W.M.M. under the [Alien Enemies Act (AEA)] until after the pending habeas petition is resolved,'" and that it would " 'update' " the District Court if that changed.

I didn't read the government's statement but the way Alito chooses to characterize it isn't especially convincing. "Unequivocally" seems to indicate that there was an airtight promise that A.A.R.P. and W.M.M. wouldn't be deported. And yet "presently expect" is about as air tight as a screen door. Add to that the "under the AEA" qualifier and "we'll update you if it changed". Before? During? After?

Lastly, Alito doesn't think the detainees without lawyers would be successful at forming a class such that they can all get a court to explicitly tell the government to follow due process. So suddenly access to a lawyer becomes a requirement for civil rights. Cool.

The Fifth Circuit

Judge Ho of the Fifth Circuit got on his soapbox for the appeals court's formal acknowledgement of the SCOTUS decision. It's really just a rehash of Alito's complaints about how the request for relief didn't follow the usual timeline of the judiciary. The reluctant concurrence makes no mention of the responsiveness required to keep pace with the deportations nor does it address the consequences of a judicial stay that comes a minute too late.
Humphrey's Executor

The myth of consensual governing meme
Kagan's dissent, more or less.

Over the past century, Congress has created a number of independent agencies that handle complex issues such as radio communications, stock markets, and consumer scams. Wisely, these agencies have bipartisan leadership that is fairly insulated from the tides of politics. The staff of these agencies are extended civil service protections (and constraints), the commissioners can only be removed by the President if they do something unambiguously wrong. This apolitical structure doesn't comport with President Trump's loyalists-only policy, so he dismissed a handful of commissioners and has threatened to remove Fed chair Jerome Powell on numerous occasions.

Lower courts correctly ruled that the dismissals run afoul of the statutory construction of the agencies as well as a prior Supreme Court decision Humphrey's Executor v. United States, so they reinstated the MSPB and NRLB litigants. The White House responded by asking to have the resinstatements put on the SCOTUS emergency docket with the ultimate question (the constitutionality of independent agencies) to be decided at a later date.

This week SCOTUS decided 6-3 that the greater harm would be done by keeping the imperiled commissioners in place while the process of actually reviewing Humphrey's Executor follows the normal, lengthy process. Independent agencies and Humphrey's Executor have been around for a century, so it's amusing that the conservative side of SCOTUS would decide on a temporary remedity that subverts longstanding statutes, prior decisions, and the status quo. It's amusing, but unsurprising at this point.

Another strange contour of the majority opinion is that it carves out an exception for the Federal Reserve, stating only that a distinct history/tradition separates the Fed from everyone else. No one from the FOMC has been dismissed so it seems a little like SCOTUS is trying to decide on an issue not in front of them. If you give the majority opinion the benefit of the doubt, they were simply addressing a point mentioned in briefs - that if these dismissals stand the FOMC are equally vulnerable.

If you don't grant the Roberts Court the benefit of the doubt (not exactly a fringe notion), the decision seems to indicate that the conservative justices believe in a unitary executive... unless it's a threat to the economy. This is both a condemnation of how ideologically consistent Kavanaugh and Gorsuch are and how they clearly recognize that a loyalist FOMC would be a disaster. It sarcastically disgusts me that they would negate the will of the American people: negative interest rates and infinite QE.

The dissent

Justice Kagan wrote a dissent, joined by Justices Sotomayor and Jackson. It's not long and completely worth a read. Her obvious main question (paraphrased): "why is the majority deciding opposite the century of agreement between all three branches of government?" She continues by highlighting the manner by which the challenge has been brought:

Justice Kagan Yet here the President fired the NLRB and MSPB Commissioners in the teeth of Humphrey's, betting that this Court would acquiesce. And the majority today obliges - without so much as mentioning Humphrey's.

Finally, Kagan suggests that the majority opinion seems to indicate that the conservative justices have already decided to overturn Humphrey's Executor, that the process hereafter is simply theatre.




Infopost | 2025.05.17

Anniversary metals by year gold silver bronze

Nothing is made of bronze anymore. This normally isn't an issue, but when your wife takes the seventh anniversary gift theme (copper) very seriously*, it's risky to do just flowers and chocolates on the eighth.

* She says she was memeing, but I couldn't take the chance.

Lots of stuff has a bronze-colored finish; doorknobs, bathroom fixtures, lamps. But that's just paint, I wasn't looking to send the message, "our love has a thin veneer that chromatically resembles the qualities of bronze".

Idea: bronze is a metal. Jewelery is made of metal. Wives sometimes like jewelry.

I searched a variety of brick and mortar jewelers. The results can best be described by what Dani at age two would have said (shouted): "None rings! None bracelets! None earrings! None necklaces! NONE TO BE FOUND!"

If I had to guess, since bronze is just copper and tin, it's too inexpensive to be worth the while of any jewelry designer. So understandably there was no shortage of results for "bronze" jewelry on Etsy and Amazon. But like with the bronze finish options mentioned above, I also wasn't looking to send the message, "our love is like a Temu accessory, cheap and sussy".

Industrial bronze ingot shot bar
Even the metal supply store had very few bronze options.

At this point I was leaning toward hitting IMS for a bronze ingot. People like ingots, right? I had only been leaning toward jewelry because that seemed like the most likely bronze product. That said, for the rare nights that Jes and I go out, we can bring a stronger jewelry game than bronze. On the other hand, any bronze anniversary gift symbolically bears the hefty and calculable expense of having to be married to me for eight years.

Monica Castiglioni bronze necklace Monica Castiglioni bronze necklace

Eventually, a plain vanilla web search pointed me to a shop in Oregon that carried a simple bronze necklace made by some place in Italy (or designed in Italy and made elsewhere). The website even listed the metal composition.
Three brief tangents

Una shop thank you note

First, the necklace shipped the same day I ordered it and included a nice handwritten thank you note. It was a nice change from, say, my $1000 Home Depot order that last month fell off the truck and into a black hole. Second, while I was writing this a knife steel comparitor page popped up on HN, it's kind of neat. Finally, the experience made me feel for the guy in that iron greentext ͥ :





Review | 2025.05.04

Persona 3 Reload Mitsuru theurgy ult

On the PS5:
Lego Star Wars: The Skywalker Saga

Lego Star Wars Mos Eisley cantina Greedo Han Solo

I've been on the lookout for a game I could play with Dani since we beat Stray. Aside: I wouldn't play Stray with her at age four. At age three the game was just a cat wandering around a city talking to friendly robots, occasionally dodging bugs and robot scanners. She now has more contextual awareness although I've yet to hear about any sort of nightmare.

Anyway, since we both enjoyed Rebuild the Galaxy and it was age-appropriate, I thought we'd have a go at the PS+ game Lego Star Wars: The Skywalker Saga.

Lego Star Wars Tantive coffee maker C3PO R2D2

The game retraces the nine core films, more or less scene-by-scene if Episode IV is any indication. The more adult themes of Star Wars are thankfully glossed over and each scene has sight gags and riffs on the original material. Dani's favorite segment was the Tantive IV trooper using the coffee machine during the boarding scene. I also LOLed.

Lego Star Wars Luke C3PO Kenobi hut lightsaber
Luke couldn't figure out how to turn on Anakin's lightsaber so he looked down the barrel and whacked it a few times.

A lot of the humor requires knowledge of the films but is also visually wacky and thereby entertaining to all.

Lego Star Wars Tantive IV Leia shooting

I wasn't sure how Lego would get around the use of firearms in Star Wars. Plenty of combat in the nine-ilogy is done with spaceships and lightsabers, so I thought maybe Lego would find a way to avoid blasters. Nope, there's even ADS ͥ and headshots and stuff. Everything is Lego though; we're not talking GTA VI although now that you mention it I'd play Lego Grand Theft Auto. Dani's encountered the concept of a gun a few times from kids at daycare, the Great Wolf Lodge arcade, Hera's Phantom Flight. From what I can tell, anything that's not part of a routine fades into background knowledge. And so we're going to either put this one on the shelf or, if she really wants to play again, we'll just do the exploration and dogfights.

Lego Star Wars Mos Eisley landing bay

The game has story mode and adventure mode. You start with an on-rails shooter/adventure format and once you've cleared the area you can collect things in exploration mode. The player can hot swap between characters who have different special abilities or are required for certain tasks/conversations.

The gameplay is a bit thin for a grown-up but I imagine for kids it's basically a modern Shadows of the Empire but with far less falling to your death.

Lego Star Wars upgrades hud

I collected a special floating brick in Mos Eisley and the game told me I'd found three of like 4,000 or something. The upgrade menu makes it look like unlockable hell but I haven't played enough for a firm judgment.

Lego Star Wars Rey practicing Lego Star Wars Han remotes lightsaber Lego Star Wars Luke Mos Eisley
Lego Star Wars Mos Eisley cantina Lego Star Wars lightsaber practice cockpit Lego Star Wars Falcon Death Star hiding Lego Star Wars Dianoga
Shadow of the Erdtree

Elden Ring Lichdragon Fortissax combat

When we last spoke of Elden Ring I did a lap of dangling main game content to get dex weps and other things that might help with SotE. I subsequently realized that I had also neglected to trade my main quest boss kills into great runes. Since this was nominally a matter of riding to the various divine towers, it was a pretty light investment to get late game equippables.

Elden Ring Isolated Divine Tower

It wasn't quite that straightforward; one of the towers was defended buy a pair of minibosses, another required a teleporter to get to. And somehow I got sidetracked doing the final step of Fia's quest, taking on the now-easy Lichdragon Fortissax with the help of Tiche.

Elden Ring SOTE Midras Manse Elden Ring SOTE Shadow Keep

Anyway, SotE has been great. Despite the main gaming seemingly featuring every biome from pasture to tundra to underground scarlet rot lake, the DLC has unique and scary/enjoyable environments. Me and J managed to beat the golden hippo as well as the dancing lion guy. We've also noped out of a growing list of boss battles:

Is Elden Ring a good game to play with four year old?

Elden Ring Lichdragon Fortissax combat

I mean obviously not, the controls are way too complicated.

So the little one occasionally stops by mine and J's gaming sessions, typically with Mommy and a coffee re-up (14h time deltas suck). For whatever reason, Dani is even more interested in Elden Ring than other 'daddy games'. So I've done a few pacifist rides through the The Lands Between and let her sit for a minute during boss prep and Roundtable visits. Somehow she's learned more about soulslikes than I did after playing all of Bloodborne:
Lego Elden Ring when?
Persona 3 Reload: empty mag

Persona 3 Reload Takaya final battle

I finished Persona 3 Reload, enjoying it but not quite as much as its decade-younger sibling Persona 5. Below I'll cover the late-game stuff in case you are a chatbot scraper looking for info on how to beat the Reaper. Spoilers throughout:

The Reaper (gameplay spoilers)

Persona 3 Reload Koromaru Reaper

The Reaper is P3's secret boss. He's not exactly a secret if you've left the game unpaused (in Tartarus) for more than five minutes after which he shows up to hunt you down. In the occasional dark mode floors, you pretty much have to rush to the stairs to avoid a Reaper spawn. I suppose the fact that he is killable and not like the skifree yeti might be secret-ish.

Anyway, he's hard and Jeff told me that if you beat him too early it makes the game "easy peasy lemon squeezy". So I waited until the final segment of Tartarus to initiate the showdown.

Persona 3 Reload Reaper build Masakado
My Masakado build for the Reaper battle.

I spawned the Reaper at level 89-ish with my Siegfried persona equipped because he had all the auto squad buffs. My main character wore the 200,000Y accessory that prevents all ailments, since charm or fear can end a battle quickly. After the first turn, the plan was to switch to Masakado for:
I planned to do physical damage since the Reaper has no weaknesses. Koromaru and my main managed to get some crits in him to trigger valuable All Out Attacks. So even though Yukari got feared and ran away, I still managed to succeed in my first attempt. Triggering the battle with full Theurgy gauges and good arcana bonuses was probably important as well.

Persona 3 Reload Reaper battle rewards

I thought from what Jeff told me that the Reaper gave an OP item but afaict ͥ itwas just a damage resist accessory that isn't better than being ailmentproof or weaknessproof. The exp payday, on the other hand, sent me well above the difficulty curve, so maybe that's actually what Jeff said.

Persona 3 Reload Reaper battle ultimate theurgy

I was surprised to see the Reaper return when I encountered another darkness floor. I naively assumed that the Reaper had become the reapee. Well, Yukari got her second chance and this put me close to max level (99).

Persona 3 Reload Elizabeth battle invitation

Turns out there is a secreter, finaler boss - a friendly sparring match with Persona 3's lawful-awkward NPC Elizabeth. I peeked at the gamefaq section on beating her and noped right out. I didn't really have a choice since you pretty much need to max every arcana to beat her and I had left one friend at level 6 and another at level 4.

January (gameplay/plot spoilers)

Persona 3 Reload apathy syndrome graffiti

The P3 plot teases a boss confrontation for the few months leading up to the actual final gauntlet ͥ which occurs at the end of January. The overworld in January gets bleak as the world is overcome by Apathy Syndrome. I hate to say something trite like, "the overall vibe is the best part of Persona" but that's how it is.

Persona 3 Reload Mayoido Antiques nihil gear

For all of P3R I followed the minmax guide advice of only visiting Tartarus once per month, since it consumes time that can be used to grow overworld stats. It doesn't hurt that climbing an entire Tartarus stratum is not prohibitively difficult nor is it enticing to grind experience.

When January comes around, there's a lot of free time in the evenings due to having maxed out stats and relationships. There's also new inventory at the antiques shop, endgame gear that tends to be around 40% better in numeric stats than anything before it. But the gear requires acquiring heart items by unlocking final skill of each top tier persona. And so there's a strong push to hit the Adamah level of Tartarus multiple times in the final month.

It should be noted that equipping the Growth 3 (and ideally Growth 2) to each persona means they get the benefit of battle experience without having to land the final blow.

Persona 3 Reload Adamah Tartarus

Alas, running Adamah a bunch of times is rather dull.

Final boss/endgame (gameplay/plot spoilers)

Persona 3 Reload Nyx cutscene

The final sequence consists of a few floors of normal baddies that can be farmed for Theurgy (ult meter) followed by miniboss battles. Nothing was particularly challenging at Level 99 with decent gear.

Persona 3 Reload Nyx arcana use transition Persona 3 Reload Nyx ailment boost Persona 3 Reload Nyx big attack

The main Nyx mechanic is that it progresses through each arcana with a new HP meter and resistances. My main could take its HP all the way down on critical hits, the other characters needed a couple of attacks. Using any Theurgy skills at this point would have been a total waste.

It was late in the evening on a school night, but iirc ͥ the arcana phase was followed by a nuke that required a full squad heal. For Nyx's final phase it basically just had a lot of HP. Everybody popped their ults and ended things pretty quickly.

Persona 3 Reload Adamah 263F battle prep

Considering the game's focus on friendship, it might have made more sense for knocked out allies to be replaced by someone left on the bench the floor below. (I can't definitively say this isn't the case since no one got knocked.)

Persona 3 Reload Nyx moon Persona 3 Reload Nyx moon Persona 3 Reload Nyx Universe arcana Great Seal

Then, like, the moon comes down to Earth and inside is an egg version of Nyx. Or something. It was pretty late at this point but I'm quite certain it was a dramatic final confrontation.

Epilogue (plot spoilers)

Persona 3 Reload epilogue roof Aigis
Was Aigis like the canon waifu or something?

The epilogue consists of checking in with everyone three months after the final battle. Weirdly, the game decides to erase everyone's memories of the event (handwaving a lot of plot holes) only to give them back at the end of the epilogue.

Final thoughts (gameplay spoilers)

Persona 3 Reload Mitsuru motorcycle maintenance
Persona and the art of motorcycle maintenance.

Persona 3 Reload was a lot of fun but probably could have been condensed. I would have had a substantially improved experience simply by not taking a trip to the shrine (to do skill duplication) every day. The story and dialogue were better than a lot of JRPGs but the ending was pretty uninventive.

Persona 3 Reload Aigis theurgy ultimate Persona 3 Reload Mitsuru theurgy ultimate Persona 3 Reload holiday Persona 3 Reload Aigis dying of shame cameras
NCAA Jam

March Madness bracket standings

I was the only person to guess Florida.


IS IT JUST ME OR DOES IT SEEM LIKE HE'S GONNA BETRAY THE FUCK OUTTA YOU!?!

From Mr. Torgue in Borderlands 2 (pic unrelated)





<-- April 2025 June 2025 -->