Kevin Yap @kevinyap.ca · 27/09/2026Got last-minute tickets to this game since I hadn't seen a Scherzer start. Honestly thought that Schneider was going to let him throw a complete game. George getting a double and Max going 7 IP 1 ER 7 K and both receiving massive standing ovations was such a fantastic end to the season. 000
Kevin Yap @kevinyap.ca · 29/08/2026@surveil.land had a few hours where it wasn't properly indexing new events, but it seems like it's fully recovered and caught up on its backlog now. (Cloudflare Workers started taking more CPU time than allotted by the free plan, so the jobs were just timing out instead of executing.) 221
Kevin Yap @kevinyap.ca · 31/07/2026When I initially wrote @surveil.land, there were zero Store Championship events stored in the database, and I wasn't sure if there was a bug in the event-fetching logic, or if there actually were just no events scheduled worldwide. Glad it ended up being the latter! 000
Kevin Yap @kevinyap.ca · 26/07/2026If Gausman gets traded at the deadline, the Jays BETTER give him a player-friendly contract for a year or two so that he can retire a Blue Jay. The man and his family love Toronto more than any other player I can think of, and he's such a great ambassador for our team and the country. 020
Kevin Yap @kevinyap.ca · 16/07/2026Will be rooting for the sixteen Ruby Storm players this weekend! Wondering whether it's one or two specific testing teams that decided to run the deck, or just a bunch of individual pilots. 000
Kevin Yap @kevinyap.ca · 14/07/2026I only just now got around to watching @adef.bsky.social's "naneinf" Balatro run, but it's *by far* my favourite GDQ run of all time. Spoilers in the thread (watch the run if you haven't!) 🧵 110
Kevin Yap @kevinyap.ca · 28/06/2026Made top 8 of the Modern Challenge on Ruby Storm with Hex Magic! Card plays way better than I thought it would. R1: [W] Affinity ⛈️⛈️ R2: [W] Simic Ritual ⛈️⛈️ R3: [W] Ruby Storm ❌⛈️⛈️ R4: [W] Jeskai Energy/Blink ❌⛈️⛈️ R5: [L] Boros Energy ⛈️❌❌ R6: [W] Grixis Moonshadow ⛈️❌⛈️ QF: [L] Boros Energy ❌❌ 120
Kevin Yap @kevinyap.ca · 25/06/2026Got to learn about Cloudflare Pages Functions (yes, double pluralized) while building out this feature! The problem I needed to solve was being able to rewrite the Open Graph tags in the static HTML to show event info based on the link, even though the site itself is effectively a SPA. 000
Kevin Yap @kevinyap.ca · 22/06/2026Pushed some updates to @surveil.land thanks to feedback I got after posting it on /r/spikes: - Added format and country filters. - Fixed searching for Canadian postal codes (embarrassing; I initially tested with my own and it worked, but it turns out that was a fluke) 101
Kevin Yap @kevinyap.ca · 19/06/2026It's been over 6 years since I've done a write-up on a project that I've built (way too long), so today I tried a new technique to overcome my fear of publishing: forcing myself to just write everything in one sitting and then hitting publish. Here's my post on how and why I built @surveil.land!kevinyap.caBuilding a Better RCQ LocatorI built a website for finding Regional Championship Qualifiers for Magic: The Gathering that you can check out at https://surveil.land. 001
Kevin Yap @kevinyap.ca · 15/06/2026I'm back on the Modern RCQ grind this season, but ever since Spicerack was shut down, it's been difficult to find events. Decided to build surveil.land over the weekend to help locate RCQs, Store Championships, and other competitive MTG events (like 5Ks) around the world.surveil.landsurveil.land | Competitive MTG Event LocatorFind RCQs, Store Championships, and other high-stakes events near you. 2134
Kevin Yap @kevinyap.ca · 05/06/2026Breaking down competitive games by how much micro/meso/macro skill they test you on, rather than just their genre, is a really cool framework for understanding why certain games appeal more to people than others.youtube.comOnce you see this, You’ll see Competitive Games DifferentlyYouTube video by Surnex 000
Kevin Yap @kevinyap.ca · 25/05/2026I'm fairly certain the Ferrari Luce is just a blue Magic Mouse with four wheels. Indisputably a Jony Ive Project™. 000
Kevin Yap @kevinyap.ca · 20/05/2026I created @zeal.gg (a rank-tracking site for League of Legends) back in 2018 while playing a ton of League in uni. Now nearly eight years later, I've found myself building a new site related to tracking games of Magic: the Gathering. Guess this is just my side-project niche for life. 020
Kevin Yap @kevinyap.ca · 09/05/2026This was a 95.1-mph four-seamer and 90.2-mph off the bat, meaning Barger returned it right back home 11-mph *faster* than it was hit. The outfield assist to home has got to be one of the sweetest plays in baseball. 020
Kevin Yap @kevinyap.ca · 09/05/2026Okamoto moved back in the box after the April 17th game, which gives us exactly 18 games pre- and post-adjustment. - First 18 games: .188 / .263 / .290 (.553 OPS), 4 RBI - Next 18 games: .308 / .400 / .708 (1.108 OPS), 19 RBI (!) Love how well he's fitting in with the #BlueJays. 010
Kevin Yap @kevinyap.ca · 05/05/2026First PR merged on @tangled.org, into Tangled itself! 🧑💻 Doing local dev on an atproto app was neat because even though my local DB was unseeded, the app consumes live firehose data, so I was able to see how these changes looked on real data just by letting it run for a bit!tangled.orgappview/timeline: collapse identical events #1400Group consecutive timeline events (defined as being the same action and operating on the same target) together so that the same target is not seen multiple times in a row. This notably does not comple... 1270
Kevin Yap @kevinyap.ca · 03/05/2026First Modern RCQ of the season. Pivoted to Boros last minute with 2 MD Flashback, then was anxious about Belcher and Neoform so I added 2 Vexing Baubles to the SB. Made top 8, then lost T2 then T3 to Neoform in the QF despite my best efforts to cast Bauble, so no invite. List felt great though! 110
Kevin Yap @kevinyap.ca · 29/04/2026Following @mitchellh.com's post, I checked out out @tangled.org and it really reminds me of early days of GitHub when you could actually discover people and interesting repos from the global timeline. Mirrored my Advent of Code solution repo and will probably start bringing other projects over too.tangled.orgkevinyap.ca/adventMy Advent of Code solutions in Python. 1180
Kevin Yap @kevinyap.ca · 25/04/2026I stumbled upon the realization that calling "prime = win" for Ral flips would be valid†, and inadvertently let this cursed idea loose in the Storm Discord — sorry not sorry if anyone pulls this on you in paper. † For any 𝑛-sided die where 𝑛 ∈ {2,4,6,8}. 000
Kevin Yap @kevinyap.ca · 24/04/2026Ramping up the Modern grind again now that RCQ season has begun. I've been excited to test out Flashback in Storm since SOS spoilers, and happened to go 5-0 in the first league that I tried it in! R1: Izzet Wizards ❌🌩🌩 R2: Ruby Storm ❌🌩🌩 R3: Boros Energy 🌩🌩 R4: Phoenix Dredge 🌩🌩 R5: Jeskai Blink 🌩🌩 110
Kevin Yap @kevinyap.ca · 20/04/2026Great write-up on how Shazam's audio fingerprints work, and how songs can be robustly and quickly identified, even when there's a lot of background noise obscuring the actual music. Spoiler: it's hashing, as is the case with most interesting CS problems. 020
Kevin Yap @kevinyap.ca · 12/04/2026Spending the day migrating @zeal.gg off of Heroku and onto @fly.io, along with some other infra simplifications like using Postgres as the job queue instead of requiring Redis for that purpose. I honestly should've done this *years* ago but have just been too lazy to do it until now. 110
Kevin Yap @kevinyap.ca · 28/03/2026Cannot believe Gausman had an 11 K 6 IP opening day, but didn't get credited with the win because Hoffman threw a wild pitch and ended up with 4 K 1 IP, a blown save, and stole the win. Our funny stat game is SO BACK. #BlueJays 010
Kevin Yap @kevinyap.ca · 27/03/2026They played RISE during the hype videos for the Blue Jays home opener and I momentarily thought I was watching a League of Legends streamyoutube.comRISE (ft. The Glitch Mob, Mako, and The Word Alive) | Worlds 2018 - League of LegendsYouTube video by League of Legends 100
Kevin Yap @kevinyap.ca · 21/03/2026One of my biggest pet peeves on the road; glad Transport Canada is taking this seriously. Please fill this out if you're a fellow Canadian that also hates being blinded by LED headlights! 🔦 (It's more of a 5-minute survey than 15 minutes like they claim, so just do it!) 010
Kevin Yap @kevinyap.ca · 16/03/2026I was legtimately stunned while watching this because I couldn't figure out why the game had ended… I thought Perdomo must've swung through the pitch and I had a memory lapse or something. Thank god we have ABS this season. 001
Kevin Yap @kevinyap.ca · 14/03/2026Whoa, this is a virtual desktop with applications & games that lives in the browser and stores all of your documents, preferences, etc. directly in your AT Protocol repo. Such a sweet aesthetic too. 040
Kevin Yap @kevinyap.ca · 11/03/2026In case people weren't keeping track, if the final score in the Mexico vs. Italy WBC game is 𝑥 to 𝑦 (𝑥 > 𝑦; 𝑥 ≤ 4), Team USA will be eliminated from the tournament in the group stage. 100
Kevin Yap @kevinyap.ca · 05/03/2026Nirvanna the Band the Show the Movie was probably the best theatre-going experience I've ever had. Best to go in completely blind and just enjoy this absolute masterpiece. (It's an extra special watch for Torontonians/Canadians due to the setting, but most of the bits in the film are universal.) 000
Kevin Yap @kevinyap.ca · 03/03/2026I didn't expect this benefit from Bluesky labels, but I think this pattern of seeing that someone on the platform plays the same game as you is super delightful — like meeting someone new in-person and realizing you have overlapping interests. Hope this catches on with other games & services! 100
Kevin Yap @kevinyap.ca · 03/03/2026It's been a while I played @puzzmo.com, so I hadn't seen the "Champs leaderboards" until now. Basically, if you get a top score in a game, you graduate to the Champions League that has its own leaderboard, and your scores don't appear on the "general" leaderboard that everyone else sees. 110
Reposted by Kevin Yapnolen @itseieio.bsky.social · 26/02/2026ssh is an obscure but widely-deployed command. It stands for Secure Snake Home and was made in the 90s to securely play snake online I made a massively multiplayer backend for it with support for thousands of concurrent snake players ssh snakes.run to join! 13579190
Kevin Yap @kevinyap.ca · 21/02/2026First day of Spring Training for the Jays, and I've finally completed chores I've been putting off for weeks. The ultimate productivity hack is SO back. 100
Kevin Yap @kevinyap.ca · 18/02/2026Being an OSS maintainer was already a thankless job in the pre-LLM world, but I can't imagine having to navigate the reams of AI slop that hundreds of thousands of people now have access to spit out with literally zero-effort or accountability from their own end. 100
Kevin Yap @kevinyap.ca · 17/02/2026I'm honestly confused what incentive WotC has to make this change. Wouldn't they *want* Standard to develop quicker so that people are forced to buy more cards to keep up? Unless they feel that would scare off newer players, but 6+ Standard sets per year is already accomplishing that outcome. 100
Kevin Yap @kevinyap.ca · 16/02/2026Blue Jays fans: "Can we have Ohtani & Teo?" Atkins: "We have Ohtani & Teo at home." Ohtani & Teo at home: 100
Kevin Yap @kevinyap.ca · 08/02/2026Went 5–3 playing in Magic Spotlight: Eclipsed today. Honestly I can't be that sad about ending with a positive record, but it does sting starting 3–0, then getting to 4–2 to 5–2 and then losing the final win-and-in. Pool was absolutely cracked, will post later. Others' were just better sometimes. 110
Kevin Yap @kevinyap.ca · 29/01/2026Got my first Limited trophy on MTGO playing Sealed Leagues last night; many 0–5s and 1–4s initially, but slowly improving! I'm having a lot of fun grinding Lorwyn Eclipsed in preparation for the upcoming Spotlight Series. The gameplay feels really engaging with all of the mechanics in the set. 100
Kevin Yap @kevinyap.ca · 27/01/2026Opening treasure chests in Magic Online and selling cards to trade-bots that have their own sophisticated websites gives me so much nostalgia from doing the same thing 15 years ago with crates in Team Fortress 2. 000
Kevin Yap @kevinyap.ca · 22/01/2026Started to play around with @leaflet.pub (thinking of writing longer-form MTG stuff there), and although the site itself doesn't currently support deleting publications, since it's built on top of ATProto, you can just delete it using a PDS browser like @pdsls.dev which was a cool experience! 130
Kevin Yap @kevinyap.ca · 10/01/2026Got 2nd place in the Modern Challenge on MTGO tonight playing Boros Ruby Storm! Nice to finally get another Challenge top 8. R1: Boros Energy ⛈⛈ R2: Neoform ⛈⛈ R3: Ruby Storm ⛈⛈ R4: Tron ⛈⛈ R5: Living End ❌❌ R6: Mono-B Midrange ⛈❌❌ QF: Grixis Reanimator ❌⛈⛈ SF: Affinity ⛈⛈ F: Broodscale ⛈❌❌ 120
Kevin Yap @kevinyap.ca · 08/01/2026It's honestly so cool that a such a huge open event is going to be happening at a venue closer via transit to me than most of the LGSes I go to for RCQs. Love seeing Canada show up for competitive gaming! 121
Kevin Yap @kevinyap.ca · 06/01/2026Hexing Squelcher is my "wow this is *too* perfect for Ruby Storm" card of ECL that'll probably not end up actually seeing play. 1R for an anti-counterspell hatebear that itself can't be countered has gotta be something though (it's like a Spider-Punk that you can safely play T2). 110
Kevin Yap @kevinyap.ca · 19/12/2025Forgot to post about this, but @rd.7thbe.at fully launched a couple weeks ago! It's legitimately in my top 10 games of all time — the amount of creativity and musical genius that went into developing a single-button rhythm game is impossible to describe without actually playing it. 140
Kevin Yap @kevinyap.ca · 01/12/2025First December in a literal decade where I'm not staying up to do #AdventOfCode right when new puzzles drop. It feels refreshingly… freeing? Focusing my energy towards other things right now and no global leaderboard = no pressure, but I'll still check out all the puzzles at my own pace! 130
Kevin Yap @kevinyap.ca · 23/11/2025Running back Ruby Storm in the Modern 5K today to try to get my qualification for RC Vancouver. Made one change to the list I played yesterday (-1 Spell Pierce, +1 Untimely Malfunction anticipating seeing Belcher). Praying to play against some Blink and Energy today… 100
Kevin Yap @kevinyap.ca · 22/11/2025It's time to play way too much Magic! Going to start a thread to summarize match results. 🧵 130
Kevin Yap @kevinyap.ca · 20/11/2025Barring any last-minute changes tomorrow, I'm going to run this Ruby Storm list at RC Calgary this weekend! Heavily considered pure Boros, but I figure over 9+ rounds, I want to feel like I have some sort of counterplay to other combo decks to preserve my mental throughout the tournament. 120
Kevin Yap @kevinyap.ca · 02/11/2025welp, that was the most soul-crushing loss you could dream up. thanks for the wild ride, 2025 Blue Jays. (please hand Bo a blank cheque and patch up Springer's 37 unique injuries in the offseason) 110