Streaming
visit pushcx on Twitch (RSS feed)
2025-09 I’m going to pause Lobsters office hours until Oct 2. Basically all of my travel for the year landed in Aug + Sep, and the things travel displaced have kinda taken over all my downtime. I’ll keep PRs moving outside of it. Please do IRC/DM/email any questions! See you all in October.
Stream Motto: If it’s worth doing, it’s worth doing badly. This is primarily Lobsters office hours and dedicated development time. See the announcement for more info or scroll down for the archive. I take questions about the site, community, and codebase, or even run your queries against the production db. If you’re watching live, you can ask questions at any time.
I stream Mondays at 2PM and Thursdays at 9 AM (US Central). The schedule on Twitch should note if I’ll skip a day. You can add it to GCal or most other calendars. If I’m going to miss a session I try to pre-announce on bluesky.
Solve a bug before I do to be marked as a Channel VIP.
FAQ
What am I even looking at
Probably vim with my low-key colorscheme in an alacritty terminal. The roman font is Incosolata, the cursive is Operator Sans Mono Light Italic.
I run an Arch Linux desktop with the Awesome window manager.
No syntax highlighting!?
There is. I find color helpful when I use it sparingly. Watch vim for:
- cursive on comments and literals (strings, symbols)
- git status in the left column
- red
>for linter warnings in left column - red for spellcheck in comments
- yellow for TODO and FIXME comments
How do I learn…
- Programming for the first time: I don’t know, been too long.
- Intermediate programming: Wiki and Destroy All Software
- Expert programming: TKTK once I figure it out myself.
- Ruby: Programming Ruby. I used to recommend The Well-Grounded Rubyist (3rd) but it needs a new edition.
- Rails: Start from the official Getting Started + Installing Guides, but I like the way The PragProg Book builds up a site. Practice by contributing to Lobsters.
- SQL: I don’t have starter recommendations, but there’s gold in Joe Celko’s books.
- Customer research: Deploy Empathy
- Product design: Badass
- Entrepreneurship: If you are a professional with a skill someone pays you for, you can learn to pay yourself. 30x500 teaches you to make a product your customers can and want to pay for.
Streaming Setup Todos
- rss/atom feed
- diarize transcript when there’s multiple speakers (‘heap dump’ post, 2 with Joel Drapper)
- re-encode to HLS for better browser compatibility?
OBS: install browser plugin; most every extensions for audience interaction depends on itblocked, arch does not have a working package due to the complexitymake fun integrationsblocked because Twitch won’t let me set up 2FA for an API key- copy scratch to live panel on twitch
- track twitch/lobsters/github/irc usernames and pronouns (I can’t remember everyone)
- allow viewers to spend bits/points to shift the terminal HSV by 1
- allow viewers to open popups to point out bugs (and more)
- vim: visual fun when a bug report is correct
- vim: visual fun when someone follows
Archive
Titles are out-of-context quotes from each stream. Streams are also included on the tag listing.
2025-12-22
placeholder
2025-12-15 Lobsters Rails bug caching pagination transparency
you know it's going to kill me in the basement later
Tag pagination bug with query strings versus path segments. Domain page loading failures for domains containing dots. Action Pack page caching treating .com as a file extension instead of appending .html; monkeypatching; load ooks. New /banned_ips page for transparency of IP bans.
2025-12-11 DreamHost Rails caching performance rack attack
I noticed that you banned my 470,000 IPs
More perf issues from aggressive scrapers. Added caching to domain, origin, and category pages. PR #1821 moving vote links above story text in emails. Issue #1692 about comments appearing in the wrong place. Rack Attack rate limiting and firewall configuration. Open source sustainability and the value of paid subscriptions for developer tools. Kleenex testing for getting user feedback on new products.
2025-12-08 ActiveRecord CSS Caddy Discord IRC Lobsters Rails Ruby testing
this is one bad actor
Issue #1519 about duplicate suggestions and missing moderation logs. PR fixing CSS for hidden stories. Spam bot hammering the site with a million requests per day to /stories/new. Why Lobsters has an invite system: huge spam, every week, forever. Puma, garbage collection pauses, and why Ruby isn’t the language you’d write for high performance.
2025-12-01 ActiveRecord Lobsters PRs Rails SQL database hotness migrations moderation performance refactoring story merging testing
That method is entirely vibes
Comment lines PR and open graph images PR. Account takeover spam. Advice on upgrading Rails from 5.2.1. Headlines model story merging: circular reference, hotness, migration. Audio and video tags getting fewer votes and comments.
2025-11-24 ActiveRecord Lobsters MariaDB Mastodon MySQL RSpec Rails Telebugs notifications testing
I Just Made Another Silly Mistake
Fixed Mastodon DNS error bug by correcting variable names in email parser. PR #1800 merged: tag list helper improvements. Telebugs not enriching tracebacks. Issue #1809: fulltext search test failing due to transaction isolation. Duplicate notification when replying with @mention to parent commenter. RSpec transaction wrapping prevents fulltext index updates in tests. Dead code from 2012. Triple Town abandonware concerns and the velveteen rabbit of games. Rare production deadlocks on story/comment/vote updates, still mysterious. Mission Control job queue cleanup: discarded 20+ duplicate notification errors.
2025-11-20 Advent of Code Lobsters PRs Rails Ruby Telebugs accessibility jujutsu testing
yak fashion photography
Divider tag PR for ARIA accessibility improvements. Vote hydration PR refactoring with innumerable delegation. Backfill mod data PR for moderator granted_at timestamps. HatsController mod issue filed for splitting out moderator actions. Tags field issue about layout bugs. Rescuing bugs from the failed jobs queue; Telebugs reporting configuration. ActionMailbox UTF-8 encoding and multipart. Doffing mod hats. Refactor story cached columns Malort advent calendar; cat body language.
2025-11-17 CSS Docker Lobsters PRs Python Ruby accessibility devcontainers jujutsu testing
Whether tis nobler to suffer the exceptions
Devcontainers PR. .editorconfig PR merged. Fieldset/legend PR for accessibility improvements. High contrast logo PR for better screen reader support. The Brave browser ban. Story merging UI issue and database schema redesign; scoring. Solid Cache expiration. ?? after change id in jujutsu.
2025-11-13 ActiveRecord Addison Belmont CSS Docker ESLint GitHub JavaScript Lobsters PRs Rails Ruby accessibility domain specific languages jujutsu language design lisp macros npm
Invading Russia in Winter
Docker dependencies PR and the mystery of clang. Fieldset and legend PR. High contrast arrows PR. Tag list PR with accessibility improvements. The popover API, widely available baseline, linting, distrust of js dev ecosystem. Daydreaming about writing a programming language and web framework; Domain specific languages vs macros. Ruby drama continuing weekly for six weeks. Reorganizing the profile settings page. Limiting username changes (1y) and reuse (5y).
2025-11-10 CSS Docker PRs Twitch moderation open source refactoring spam
If We're Measuring Our Config File in Megabytes, We're Probably Doing Something Wrong
PR #1777 improving score display for stories approaching four digits. PR #1796 adding dev container configuration, which is apparently different from Docker somehow. PR #1626 moving webmentions to ActiveJob, with transaction commit timing. PR #1786 adding Brakeman to CI with Dependabot instead of ensure_latest. PR #1786 splitting out moderator comment deletion code. uBlock Origin rule for hiding stories with combinations of tags like go + plt. Logarithmic distribution of streaming revenue vs software jobs.
2025-11-03 ActiveRecord CSS ChaelCodes Docker Lobsters MySQL RSpec Rails UI moderation testing
We're making this up as we go
Mod mail feature development with special ~guest~ host ChaelCodes.
2025-11-03 CSS GitHub JavaScript Lobsters PRs Rails React Ruby on Rails a11y bug jq jujutsu open source refactoring testing
Four thousand scrolls in the briefcase
PR #1780 for upvote arrows in high contrast mode. PR #1778 testing inbox controller. PR #1776 fixing fake_data, declined for wrong debugging approach. PR #1775 adding aria-current to navigation. PR #1774 using details element for story previews. PR #1742 splitting comment deletion logic. Moving comment score display from model to helper with number formatting. GitHub’s React rewrite and its impact on UI/UX. A revset for updating the crossover workflow with jujutsu. Issue #1771 searching by domain without domain: prefix. Production bug in IANA TLD fetch job, undefined method for string. Issue #1685 tag filters for visitors and CSRF tokens. Discount codes and coupons as magnets for bugs in e-commerce. Anubis vs Cloudflare. Thursday surprise stream will be special ~guest~ host @ChaelCodes working on modmail.
2025-10-27 ActiveRecord Anubis Caddy Lobsters PRs Rails cache invitations jujutsu performance refactoring spam
if we're measuring our config file in megabytes, we're probably doing something wrong
Aggressive crawler from Alibaba ASINs hitting comment shortcode redirects, overwhelming the database. PR #1767 removing Message.has_been_read, cleanup after notifications refactoring. PR #1768 for inbox unread notifications. Organizing feature branches in jujutsu with a comic book crossover. Caching comment shortcode redirects to prevent future bot attacks. How the unmaintained actionpack_page-caching works and potentially updating it to have Caddy serve cached pages from SQLite. Visual bug in link selection caused by nav design and preventing zalgo text. dev:cache footgun.
2025-10-23 GitHub Lobsters MariaDB PRs Rails SQL git jujutsu markdown moderation online communities open graph open source
we should get Lobsters some piercings
Jujutsu and healthy communities, discussing the future of jj, GitHub open to “disruption”. Brainwane’s talk on hospitality, jerks, and what she learned in Wikimedia. Productive disagreement and constructive conflict in communities. Ad hominem defense. Merged #1764 adding open graph multiple author links. Chamlis’s Poisson distribution query for extrapolating active users. Hat request approval bug with short messages. Markdowner, link contemporary usernames. Slack’s notification flowchart.
2025-10-20 ActiveRecord CSP Erb HTML Lobsters Marco Roth PRs Rails SQL performance refactoring stream pairing
I don't see a lot of structure
Content Security Policy images PR. Active user graph extrapolation PR. OpenGraph tags PR. Bump checkout action PR. Vote hydration refactoring PR -> ActiveRecord’s limitations with SQL projections and joins with guest Marco Roth. ReactionView throwing levels of abstraction into contrast.
2025-10-16 ActiveRecord CSP CSS Lobsters PRs Rails a11y bug cache migrations performance
Then I'm allowed to ship my foot into production
Label bolding CSS fixes PR #1753. Herb template fixes PR #1754. Ruby 3.4.7 upgrade PR #1746. Gemfile.lock checksums for supply chain security PR #1747. Speculation rules for browser performance PR #1756. Mod comment deletion PR #1742. Username backfill migration. Battling Rails caching bugs. Colorblind-friendly UI considerations. Healthy community growth vs. hockey stick growth.
2025-10-13 JavaScript Lobsters MariaDB Rails SQLite cache fragment caching git jujutsu performance
If not OSHA, the Hague
rel=”ugc” bug fix. Caches link style. Caches links offscreen. Implementing Russian doll fragment caching for mod activity page. Fixing a JavaScript bug that broke upvoting. Extracting username history for comment rendering. Hosting costs and SQLite migration plans. Git vs. Jujutsu version control.
2025-10-09 CSS GitHub LLM Lobsters PRs background jobs form harmonica required
Hacks like that are so ugly that I am both proud and ashamed
Story liner background. Label styling. Don’t autocapitalize, and auditing to use this everywhere. Discussion of Herb::Engine vs Papercraft for Ruby templating. Symied by GitHub partial outage.
2025-10-06 CSS Chicago Django HTML LLM Lobsters PRs RubyConf Solid Queue Washington Post XORuby background jobs bug copyright fanfic form required
I passed that interview anyways
Merged PRs for form required attributes and disposable email blocking. Bughunt for FetchEmailBlocklist job not running. Fixed required field attributes in forms that shouldn’t be required. PR #1726 for domain search parser. PR #1733 and PR #1734 for AGENTS.md to block LLM tools. Raised GitHub stale bot timelines. XORuby conference talk about Recheck. Discussions on copyright law, LLMs, and fanfiction legality. Using a form builder to build my foot into my mouth.
2025-09-04 Lobsters blocking community norms domain filtering fragment caching hiding moderation notifications user muting
I'll let you know if I ever see a responsible adult
The weekend’s big meta thread. Fixing notifications to not reply/@mention in hidden stories. Auditing features through the lens of deliberate bad behavior. User/domain/origin muting/filtering/hiding/blocking. The gap between removing a comment and banning a user.
2025-08-28 CSS Lobsters UI a11y markdown moderation tag filtering
if you're arguing with a six-year-old you're losing
Removed stories show different messages to logged-in vs. anonymous users (from 1706). Compare to nuclear blocks. Visual indicators for filtered tags with dotted outlines. Explain filtered tags on story and tag views. Markdown help position and tab order in comment forms, wrestling flexbox a bit.
2025-08-25 CSP CSS PRs Rails SQLite bug cache cookies jq moderation open source contributions performance
learning jq against my will
Cookie deletion bug. Fixing invalid cookie key errors. PR review for SQLite migration. Block disposable email PR. Stale PR bot oddities. Slow inbox loading investigation. False CSP violations from browser extensions. Mysterious session bugs. Trying not to learn jq syntax for poking around in logs. Comment visibility on deleted stories.
2025-08-11 ActiveRecord CSS Lobsters PRs Rails moderation refactoring
It was kind of great how ugly the early web was
One-year anniversary of Lobsters Office Hours. PR review for extracting to_html_label. SQLite progress. A ModActivity model based on the new Notifications to combine notes and moderations into a single activity stream. Reminiscing about early web development: debugging CSS, how terminal colors grew into the 216 web-safe colors.
2025-08-07 CSS GitHub Rails moderation refactoring spam vibecoding
I would cry if it said lobsters
PR review of CSP reporting disabling. Vibecoding spam in GitHub issues. Self-hosting code forges vs. GitHub’s network effects. Bidirectional sync for migrating away from GitHub, which is not planned for Lobsters. Refactoring mod controllers into mod/. Convention of ‘moderator’ for user-facing; ‘mod’ for mods themselves. Idea for ModActivity model to combine Notes + Moderations. Fixing fake data task bugs.
2025-08-04 CSS Chicago JavaScript Lobsters PRs bug cookies markdown notifications refactoring
The default pizza topping is Italian sausage
Mention markdown PR for user references. Upvoted comments PR for comment vote summaries. Removing replying_comments in favor of notifications. Filed apply_current_vote refactor to reduce code duplication. Finishing the code to prevent both flagging and replying to a comment. CSP false alarms. Cleanup from renaming master branch to main. Chicago pizza and other regionalisms.
2025-07-31 CSS Chicago Lobsters PRs Rails SQL jujutsu moderation timezones
All roads that lead to Rome, not all clocks that lead to Rome
A long-standing mod note bug that creates duplicate entries (PR #1682). A PR to improve message read status tracking (PR #1683). Querying comment scores when users both flag and reply; they’re noticeably worse. Starting to prevent both flagging and replying with some pointer-event CSS. Adding ‘jujutsu’ to the VCS tag description.
2025-07-24 ActiveStorage CSP HSTS Lobsters PRs Rails bug cookies moderation notifications pagination
when it rains, my internet hurts
Merging PRs for Lobsters including filtering empty modlog. Story repository #top PR. Adding notifications to subnav with explanation of what the UI is. Enabling HSTS for better security. Dealing with CSP false alarms and ActiveStorage PurgeJob. Fixing a bug where viewing notifications doesn’t mark comments as read on story view. Unknown cookies PR that broke login when combined with the new CSP.
2025-07-21 CommonMarker Hatchbox Lobsters MariaDB PRs Recheck SQLite database invalid data
Mercury is in retrograde and it's high tide
Reviewing PR #1672 for managing unknown cookies and PR #1673 for deployment paths. Checking CommonMarker is at 25% and off-stream for boringness (PR #1627). The UK OSA is killing sites, same as ever, six months later. Writing up Hatchbox deployment documentation for sister sites. Recheck beta demo, a tool for finding invalid data in production databases, that has found 3 real bugs in Lobsters data.
2025-07-18 CommonMarker Lobsters PRs Rails bug markdown refactoring
Would that make you a painstakeholder?
Fixed a bug with comment links on merged stories. Reviewed merged PRs for Japanese titles and container deployment. Worked on updating CommonMarker with @chamlis_ to handle markdown rendering differences. Painstakingly compared old and new markdown rendering to ensure compatibility. Discussed username linking and how it affects comment rendering over time.
2025-07-14 Docker Lobsters PRs Rails SQL comment threading moderation pagination performance self-promo
if any computers would like to start a site to talk about humans
Merged PRs for faster fake_data, Docker setup, and Docker instructions. PR review for strict cookies and new notifications system. Prohibiting LLM output. Comment indenting. Merged fix for pagination on /top. SQL query for analyzing self-promo by tag. Removed prosopite from production, then the entire app. As usual, ran out of time to look at CommonMarker or Hatchbox deployment cleanup.
2025-07-03 CSS CSS nesting Lobsters Rails notifications story merging upvote button color bug vibecoding
Lobster Roll(ing Release)
Celebrating Lobsters’ 13th birthday! Looking at the stats page showing all-time high comment activity. A magnificent lobster oil painting that costs $3800 (but a print was $15). Exploring how vibecoding tag affects comment statistics. Fixing upvote button color bug for color-blind users with CSS tweaks. (This got a lot of tweaks the next day or two.) Reviewing notifications PR. Why do browsers use the -webkit prefix on text-stroke? It is a mystery to everybody.
2025-06-30 CSP CSS GitHub HTML Hatchbox IRC JavaScript Lobsters PRs Ruby on Rails security
My springbok sense is tingling again
Reviewing several active PRs for Lobsters. Merged markdown via details/summary PR for better semantic HTML. Deployed CSP reporting PR to improve security. Examined IRC bot to Ruby conversion PR to replace JavaScript with Ruby. GitHub’s increasing flakiness has activated my springbok sense about dependencies. We don’t have a prod uptime monitoring service that is professional and affordable. Preparing for Lobsters’ 13th birthday stream on Thursday.
2025-06-26 CSS Erb HTML Hatchbox Lobsters Recheck Solid Queue logrotate notifications
No, it's a different difference
Shorter Lobsters office hour today as I’m working hard on Recheck, which I’ll add to Lobsters on Monday. Thursday stream will be full-length, it’ll be Lobsters’ 13 birthday. Following Marco Roth’s HTML fixes, I suggested some linting rules for his tool. Merged a PR from nav-mike continuing StoryRepository -> scopes. Merged Regis’s PR for postfix config to reduce spam. Flag warning history and notification system redesign with Thomas. Raved about Solid Queue and returned to the topic later in comparison to cron. Investigated Chamliss’s PR for commonmarker updates by comparing rendered comments.
2025-06-23 CSP CSS Erb Hatchbox Lobsters Rails cache jujutsu logrotate performance
The user who usees the HR tag most on Lobsters
Reviewed CSP header PR and discussed the importance of violation reports for security monitoring. Drop in by Marco Roth who’s making some really promising tools around Erb. Explored full page caching with Caddy and a potential SQLite-based caching solution. Fought with logrotate configuration, which is weirdly my nemesis.
2025-06-19 Hatchbox Lobsters Obsidian PRs Rails Synctrain performance timezones
It takes a ruby amount of time
Reviewed several Lobsters PRs including updating commonmarker, reinstance /top/rss, and postfix configuration. Banned a contributor who was submitting LLM-generated code and didn’t understand basic Rails concepts. Got offended over bizarre date formatting (year-day-month with dashes). More tidying after Hatchbox deployment: updating /about, decommissioned web01, recorded puma workers and matched AR connection pools to them. Getting into Obsidian for notes and tasks with Synctrain.
2025-06-16 ActiveJob CSS Hatchbox Lobsters MariaDB PRs PostgreSQL Rails SQLite database notifications performance
Two evils, no crime, no sin
Reviewed several PRs improving Lobsters’ codebase, including CSS fixes from chamlis_ and notification refactoring from Thomas. Discussed our ongoing work to make the site easier to deploy, potentially moving from MariaDB to SQLite. Investigated a strange report of corrupted text in autosize.js that turned out to be client-side. Showed off the dramatically faster deploy times with Hatchbox (66 seconds vs. several minutes). Shameless plug for ReCheck.dev, my upcoming tool for validating production systems.
2025-06-12 ActiveJob CSS CSS grid Hatchbox PRs Rails SQLite notifications
Signup for your app every week driven development
Merged two PRs: StoryRepository.hottest and tags + categories -> CSS grid. Discussed SQLite migration and redesigning notifications with td, plus checking out the noticed gem for notifications on Caius’s suggestion. Design gripes about ActiveRecord lifecycle hooks; would like to get them out of the codebase except for keeping objects in valid states. Spent a lot of time on hatchbox and db outage, so I’ll have shorter streams for the next few weeks while I work on Recheck.
2025-06-09 Hatchbox Lobsters MariaDB PostgreSQL SQLite security vibecoding
I don't know what I need a book to crash rails
Migrated Lobsters to Hatchbox, cutting deploy time from 2.5 minutes with downtime to 30 seconds with zero downtime. Rigged up a script to run as root on deploy despite Hatchbox saying it’s not possible. Consulting horror story about a Fortune 50 company with a mission-critical system that took 15 minutes to load a page… and that wasn’t the bad part. Talked about Keybase impersonation security issue found by Chambliss. Discussed vibe coding with Aider and showed a deploy script I created today in 2 minutes. Merged StoryRepository#active PR from Nav Mike. Fixed a bug that lost comments on story resubmission. Considered migrating from MariaDB to SQLite or PostgreSQL to simplify hosting.
2025-06-05 ActiveJob CSS GitHub Hatchbox Lobsters Ruby on Rails cronjob git jujutsu moderation
Pair of shoes
Removed Keybase integration; it’s only received minimal maintenance since Zoom acquired them 5 years ago. Folded the GitHub wiki history into the main repo to preserve it. Fixed a CSS margin bug for comments reported by users. Reviewed and merged PRs for converting another sitemap cron job to a Rails job and StoryRepository#newest refactoring. Considered a feature to apply tag filters to the modlog at user request. Discussed jujutsu vs git and showed off some workflow improvements like splitting commits. Getting close to done replacing the Ansible scripts I’ve badly maintained with Hatchbox.
2025-05-29 Lobsters Rails SQL git jujutsu moderation refactoring
I need to get myself a tricorner hat, a parrot, and 100 bangles
Explored jujutsu (jj) as a git alternative, sharing my first week’s experience with its error messages, operation log, and commit editing. Fixed the /top route to show help text and pluralize “of the past” correctly. Reverted PR #1597 due to Ruby 3.4.4 compatibility issues with common_marker. Merged PR #1592 to refactor the story repository with better ActiveRecord scopes. Fixed sitemap generation that was broken for over a year and disabled deprecated Google ping. Added comment filtering by tag to match story filtering behavior. Ran SQL queries to find stories with the most comments.
2025-05-26 CSS Hatchbox JavaScript Lobsters PRs Rails git jujutsu moderation
These are my bad records
Reviewed and merged PRs for fill_flagged_cache job and story repo hidden scope. Discussed the Hatchbox migration progress and configuration challenges. Added the new concatenative tag after community approval. Fixed a bug where users who doffed their own hats appeared as moderators in the mod log (issue #1591). Tried to fix TomSelect sorting to prioritize ‘vibecoding’ over ‘ai’ tag. Explored jujutsu version control after trying Steve Klabnik’s tutorial. Discussed removing Keybase integration due to its abandonment after Zoom acquisition.
2025-05-22 CSS Lobsters SQL cache comment threading hats moderation performance
It's the mob programming version of Dear Abby
Fixed a bug with comment folders not working properly with targeted comments. Investigated stats bug where cache entries were being evicted by Rack Attack entries. Improved the disown button styling to use our link_post helper for consistency. Discussed YouTube previews issue and Diffbot API improvements. Explored the Lobsters hat system and its Comic Sans Easter egg for OpenBSD. Moving to Hatchbox for more reliable Rails deployment?
2025-05-19 CSS CSS grid JavaScript MariaDB PostgreSQL Rails SQLite Telebugs database moderation story merging
It's like the Spanish Inquisition, but nice
Fixed JavaScript debugging by adding exports to make functions accessible from the console with help from SUBH3ADER. Merged Chamblis’s PRs including CSS grid improvements for the lobster emoji. Discussed our Ansible to Hatchbox migration plan to simplify deployment. Explored SQLite as a potential database replacement for MariaDB, weighing pros and cons. Started work on headlines and story merging with type IDs to avoid collisions. Considered error monitoring options like Telebugs for better exception tracking.
2025-05-15 CSS grid GitHub GitHub LLM code Lobsters Lua Microsoft PRs Rails Solid Queue TypeID moderation nginx public relations trace IDs
Pour boiling tea on yourself
Reviewed Chamblis’s PRs for semantic HTML tags and expanded BAD_NETS. Discussed PR #1570 about adding LLM content guidelines to the site. Explored CSS grid PR #1567 for forms. Investigated Mastodon deletion issue #1397. Diagnosed a Solid Queue issue #563 causing site downtime during deploys. Ran a query about “obligatory xkcd” meme comments. Worked on implementing trace IDs in Lua for request tracking. Ranted about GitHub’s vague rate limit announcement and terrible corporate writing.
2025-05-12 CSS CSS grid Lobsters PRs Safari a11y performance refactoring
This one is all heinous, so it's fine
Reverted CSS grid layout changes from PR #1508 due to serious Safari performance issues. Fixed session cookie security settings in #1560 with same-site strict and HTTP-only flags. Battled with Git merge conflicts while reverting the grid layout changes. Added tab index accessibility improvements to comment folders for keyboard navigation. Fixed various visual bugs including comment previews and page padding issues. Closed a whole lot of GitHub CSS issues: #1561, #1563, #1564, #1565, #1566.
2025-05-08 CSS Rails URL refactoring security
I'm so far down the yak-shaving hole
Cleaning up URL generation in Lobsters to fix the routes branch. Verified that Link.recently_linked_from_comments reduced story merges by roughly half. Fixed tests for URL generation that were failing due to localhost vs production domain issues. Added anchors to story pages to improve navigation between merged stories. Merged cookie security PR from grayhatter. Discussed vim/editor scripting and the value of learning one editor deeply.
2025-05-05 CSS CSS grid Erb Lobsters PRs TypeID URL refactoring story merging
yak: merging ui -> headline model -> typeid tokens -> clean up url generation
Reviewing chamlis_’s PR that replaces CSS subgrid with flexbox for Safari compatibility. Refactoring URL generation in the codebase, cleaning up path/URL methods. Discussed story merging and how to handle merged story URLs. Considered Telebugs as a self-hosted error tracking solution. ERB’s spaghetti-based templating vs builders.
2025-05-01 CSS CSS margin LLM coding tools Lobsters message pack vibecoding
Ctrl-f for shame
Fixed a CSS margin issue with the disown button on stories. Investigated a message pack warning in production logs that was coming from rack-attack loading solid_cache. Discussed the new “vibecoding” tag on Lobsters and the controversy around LLM coding tools. It mirrors historical programming arguments about structured programming and garbage collection, and historical periods of expansion and consolidation.
2025-04-28 ActiveRecord LLM coding tools Lobsters Rails Solid Queue TypeID moderation refactoring vibecoding
Six AI coding tools you'll get cancer without in 2025
Fixed a race condition in Origin.find_or_create_by! by switching to create_or_find_by. Renamed TypeID slug fields to token. Added a new vibecoding tag to Lobsters after analyzing AI coding tool discussions. Slap fight detection and moderation tools for heated threads. Implemented Rails.routes to work around a Rails misdesign. Moving cron jobs to Solid Queue for better background processing.
2025-04-24 CSS CSS nesting Lobsters PRs TypeID comment threading database layout refactoring
I'm griping about how active record works mostly
Reviewed PR #1527 for moving stats graph generation to a background job. Investigated several CSS layout issues including a bug with comment anchors and display:contents breaking accessibility. Explored issue #1543 about alignment problems in mobile Safari. Started database refactoring for story merging, planning to split stories into headlines and stories. Added TypeID for better unique identifiers to replace our collision-prone short IDs.
2025-04-21 CSS CSS grid Lobsters Safari WebKit layout performance
slashes will continue to decrease until morale improves
Fixed a critical WebKit bug in Lobsters that was breaking page rendering in Safari. Worked with a surprise visitor from the Blink team to diagnose exponential layout complexity with nested CSS subgrids. Implemented a workaround by adding display:block elements to interrupt grid layout calculations. Merged PR #1537 to fix comment tree lines that disappeared in the process. Attempted to detect ChatGPT-generated content by searching for invisible Unicode watermarks in our database but died on the rocky shoals of character encoding.
2025-04-17 CSS CSS grid Lobsters PRs comment threading database refactoring story merging
As fast as I say that, I'm convincing myself it's a good idea
Reviewed chamlis’s CSS grid PR #1508 that replaces floats with modern layout. Found some minor issues with form widths and mobile views, but overall it’s a great improvement. Vertical rhythm in design and how to align comment folders with text. Fixed a small UI issue with story descriptions in merged stories. Started looking at reparenting comments for merged stories #1456 but abandoned it after finding few comments needed moving. Discovered a bug with comment counts on merged stories that needs database refactoring. Dogacel’s upcoming PgDay Chicago talk on database testing.
2025-04-14 CSS grid Lobsters PRs Rails keyboards refactoring story merging
I will be a DJ and drop the base
Merged several PRs from chamlis improving CSS and fixing PRISM gem issues. Investigated a regexp timeout error that mysteriously appeared after 14 years. Implemented UI improvements for merged stories, making them more visible in /newest and /recent. Extracetd a tempalte for merged stories with a cleaner design. Extracted a helper method to clean up avatar display logic. Discussed keyboard layouts and my experiments with the Norman layout on split columnar keyboards.
2025-04-10 CSS CSS grid Rails brakeman story merging
The jank of ages
Deep review of PR #1508 modernizing site CSS with grid layout. PR #1516 to optimize GitHub Actions usage. Debugging brakeman issues with Ruby 3.4.2’s prism parser. Discussion of problems with story merging, mostly about discoverability for new stories.
2025-04-03 CSS CSS grid Rails performance
Float is so hard to keep working
Reviewed OTP recovery codes PR - discussing number of codes and disabling 2FA. Merged 1+n query fix and user profile CSS fix. Deep dive into CSS grid layout proposal to replace floats, discussing subgrids and mobile views. Fixed search parser bug causing 500s on quoted stopwords.
2025-03-27 CSS PRs Rails Story tags UI moderation open source contributions refactoring testing
I don't know if it's because it's such a big change or it's just a bad idea
Fixed single detail preview bug and added test coverage. Explored UI design for merged stories - tried showing each story’s comments separately but unsure about the approach. Fixed duplicate account bug and authorship wording. Investigated story submission URL clearing bug with form field behavior. Discussed open source maintainership and project transitions with brainwane.
2025-03-24 ActiveRecord CSS Rails a11y brakeman moderation story merging
Linus's law by way of the shiba inu doge
Reviewed issues including emoji in titles and self-promotion rules. Improved story merging UI, fixing N+1 queries and cleaning up the presentation. Found and reported a bug in Brakeman error reporting. Experimented with removing custom font sizes after discussion of accessibility.
2025-03-20 Lobsters Ruby on Rails story merging
That's inconvenient, I want to do something awful
Comment editing/previewing is stable, an idea for upvoting, fixing unhiding by deleting js, and more story merging.
2025-03-17 Javascript Lobsters Rails UK OSA refactoring testing
I almost can't bring myself to type the line
Fixed comment reply bugs in Lobsters by simplifying JavaScript selectors and DOM manipulation PR #1493. Discussed coupling between JavaScript and HTML templates, and why testing is hard with import maps. Story about working myself out of a support engineering job alongside a net negative producing programmer.
2025-03-13 Javascript Lobsters Rails UK OSA open source testing
Happy little parse trees
Handling some quick fixes to fixes for comment editing, comment positioning, and parsing stopwords in the search engine. Some straightforward improvements to the PR template and satisfying brakeman. Then the last ~2 hours is starting on a long post about the UK OSA, which I finished and posted over the weekend.
2025-03-10 JavaScript Lobsters Rails parsing security
I didn't undo my undo
- Reviewed PR #1483 for OTP recovery codes - a safety feature for users who lose their 2FA device
- Fixed issue #1485 where edited comments showed “null” instead of content due to JavaScript DOM manipulation
- Fixed comment preview losing undo history by targeting only the preview div instead of replacing the whole form
- Fixed issue #1237 where short search terms (< 4 chars) weren’t working properly in the search parser
2025-03-06 Rails UK OSA memory leak
I broke the build on purpose
Merged several PRs including comment alignment and comment “last read” line, then explained the misdesign in the “last read” feature. Fixed a time bomb test from PR #1414 that was intentionally breaking the build after a certain date. Patched a Mastodon disconnect bug where SSL certificate verification was failing. Reviewed issues including Have I Been Pwned integration, duplicate title tags, and improved story hiding documentation. Investigated a new OOM kill bug in production that might be related to the UK Online Safety Act geo-blocking code. Discussed the UK OSA with a focus on Wikimedia Foundation (thanks Sumana!).
2025-02-27 Lobsters brigading community norms open source
I am going to do the unthinkable for a programmer and read the docs first
The ethics of academic research after a University of Chicago study unethically experimented on me. Explained out brigading prevention guideilne and how to be a good internet neighbor while still allowing valuable discussions about contentious topics. The difficulty of challenges of maintaining community norms while growing, emphasizing feedback loops over perfection. Updated GitHub issue templates to set better expectations for contributors, balancing my limited time with project needs.
2025-02-24 Rails UK OSA brigading jobs
it's been one year since my last push -f
Fixed a build issue with tag associations in the fake data generator. Reviewed PRs for newest stories line and comment alignment, appreciating Tomcat’s heroic effort on complex JavaScript. Extensive discussion about finding first developer jobs, including resume advice, networking strategies, and the value of real-world projects over toy examples. Continued working on UK Online Safety Act response, planning to drop the UK block as risks appear reduced through various exemptions. Discussed moderation philosophy around brigading and why we don’t allow linking to other projects’ bug trackers.
2025-02-20 Lobsters PRs Rails SQL UK OSA performance refactoring
There's more than one way to get mad at rails
Good news on UK OSA - Lobsters likely exempt as email service, plus lack of jurisdiction. Major refactoring to fix N+1 queries in story tag handling PR #1475. Removed tags_a virtual attribute in favor of proper Rails associations. Cleaned up a bunch of old workarounds and test cases.
2025-02-17 ActiveRecord Rails database moderation
There's a hole in my bucket
Fixed a bug in traffic intensity display that was showing 0% due to ActiveRecord query result handling. Discussed invite system’s role in spam prevention after finding a rare spambot that got through. Struggled with ActiveRecord’s deep coupling to the database while trying to build a cabinet view for story templates. Hit limitations of Rails’ global mutable state with @user and model validation happening at the wrong layer.
2025-02-13 Erb Lobsters Rails SVG cabinet data URLs validating HTML
Erb is string soup
Replaced blurry PNG merge icon with crisp SVG from #1472. Started work on “cabinet”, a component preview system like Storybook to help refactor ERB templates. Fixed HTML validation issues and cleaned up data URLs. Investigated MariaDB deadlock from #1238 caused by duplicate comment submission.
2025-02-10 ActiveRecord Rails UK OSA YJIT performance
In the U.S. we have a system of mandatory football
Fixed redundant timestamp updates causing extra DB queries #1467. Tracked down a deadlock between comment creation and voting #1238. Discussed RailsConf CFP and offered to review proposals. Explored YJIT benchmarking of Lobsters in yjit-bench. Update on UK Online Safety Act impact and Ofcom’s inconsistent guidance.
2025-02-06 GitHub Lobsters PostgreSQL Rails SQLite dark mode database migrations prefers-color-scheme refactoring scenic
Let's just break master again, it's what the GitHub UI wants me to do
Merged PR #1457 for prefers-color-scheme support, but it broke production with a type mismatch. Fixed a 500 error caused by the CSS contrast setting being stored as a string instead of a boolean. Discussed SQLite vs PostgreSQL for Lobsters, weighing pros and cons of each. Fought with Scenic views breaking migrations due to multiple database support issues. Created a migration to materialize comment depth and reply counts, with several iterations to get it right. Complained about GitHub’s UI for draft PRs and how it leads to confusion about PR readiness.
2025-02-03 Lobsters Rails UK OSA story merging
The UK government has a secret list of prohibited sex acts
Wrote my last planned update on the UK OSA. Showed Zulip, a chat platform I’m experimenting with for supporting sister sites a bit more; maybe as little as being able to make security announcements. Adding an icon and count after titles when they have stories merged in.
2025-01-30 Joel Drapper Lobsters Phlex Rails UK OSA YJIT goaccess guest stream pairing
I like you but not enough to leave you unsupervised on my machine
Most of this stream was pairing with Joel Drapper to experiment with rewriting a partial to Phlex. Some discussion why I no longer expect anything good out of Ofcom or Parliament about the UK OSA. Playing with goaccess, dealing with the Enumerator.
2025-01-27 Literal Lobsters Phlex Quickdraw Rails dark mode performance
I'm suspicious of any type signature with a newline
After a quick romp through issues and PRs, I was joined by a surprise guest (surprise even to me), Joel Drapper. We confirmed the dark mode bug is fixed (though, spoiler, it reopened the next day). Then we discussed SQL performance in sqlite and toured Joel’s Phlex and Literal gems comparing them against how Lobsters handles those topics.
2025-01-23 Joel Drapper Lobsters Rails UK OSA YJIT guest story merging
there is no gift someone can give that obliges them to give more gifts
Surprise guest Joel Drapper talks through his libraries Phlex, Plume, Yippee.
2025-01-20 Lobsters Rails UK OSA story merging
I'm still writing 2024 on my mod notes
Some PRs are ready to go but I’m waiting for the weekend to deploy because the asset pipeline always breaks in prod for me. Then a not-so-quick small update on the UK OSA. Finally, categorizing more story merges to make sure I’m not missing anything as I work on improving those features and docs.
Here’s the updated TSV of merged stories.
2025-01-16 Lobsters Rails UK OSA
I should be doing this in production
Big PR review. Minor news about the UK OSA, which has caused performance problems. Obviously the best way to fix it is logged into prod as root.
2025-01-13 Lobsters Rails Raz UK OSA
it's the fourth thing I would do if I had a spare million dollars
No real news on the UK OSA; big PR review. Raz drops by the office.
2025-01-09 CSS Lobsters Rails UK OSA checkbox hack
it's been 25 years, I should do that again
Rounding up a lot of PRs, finishing a stale one, filing new issues… then on to the UK Online Safety Act and what’s happened in the last couple days. To have fun after that, writing a silly CSS kludge for a desired feature and then beating it into submission.
2025-01-06 Lobsters Rails UK OSA
Hello, I am your constituent from Chicago
A big review of merged and open PRs with a lot of Rails 8 feature work from a new contributor. Then working on the user CTA in response to the UK OSA.
2024-12-19 Lobsters Rails UK OSA
it would be much more fun to tool around in a golden sub in the 70s than deal with the online safety act
Taking stock of stream inventory, why Peter doesn’t play lawyer, and figuring out how to deal with the UK Online Safety Act.
2024-12-16 Lobsters Rails moderation pattern recognition
now we have nothing, which is like progress
Chatting about good Rails intro books, an app for recognizing art scammers, quick queries to get at whether we’re seeing a lot of drive-by github promos, chat about moderation and training pattern recognition, and then a big dive into revamping ~/standing into a ~/context as side norms have improved.
New VIP: calebhearth
2024-12-09 Lobsters coding story merging
as if I don't have enough software bugs, I have actual bugs
All things story merging! The limitations of the db model (bug factory), some UI hassles (metadata, knowing which comment is where), unclear practices. So I started reviewing all the merges to build up understanding while working towards better documentation and UI.
I don't think the data model forbids it, but it should
Fixed a bunch of my bugs, like:
- comment stats from last stream
- my git misconfig that was checking gpg signatures
- accidentally-committed
if true
Some puzzles around PRs, then building out an admin feature for reparenting.
When I say 'your' bug -- I'm the one who breaks things
- Starting to think about story merging.
- How technical writing is like product design.
- Why journalists can’t spell.
2024-11-28 Rails social media censorship story merging
From civil penalties import unit
- Short Thanksgiving stream.
- Australia’s new social media law with a $32M USD penalty demands age verification that would require some kind of ID check. I won’t comply with it and lots is still up in the air for a few months.
- Reviewed two PRs from Ashwin Mullankandy: PR #1388 for search highlights and 1387 to fix /stats
- @chaelcodes dropped by (check out her recent Dead Code podcast appearance)
- Some comparisons of Phlex and Erb that really highlighted what I like about it.
2024-11-25 Lobsters Rails api keys credentials json logging story merging
Once per site, in the way that marriage is that one special day
Fixing up json logs by not having nice things, once again kludging a workaround for a Rails feature by crashing the site at boot. Talked a bit about story merging, but didn’t get to code.
2024-11-21 CSS stacking contexts Lobsters Rails self-promo
Rails features that we had to invent before Rails had them
As feared, the PR to fix reloading extras/ broke prod, and the fix would break sister sites. Looking at fixing the fix by leaning into Rails features and conventions that have come along since Lobsters started. Also a discussion of temporal fairness and the self-promo rule. Getting close to PR Zero.
2024-11-18 Lobsters RubyConf open soure contributions self-promo
It's YAML all the way down
- Upgrading to Rails 8, though there’s lots left to do.
- Configuring GitHub Action for stale PRs, planning rest of #1368.
- Shipping the CommentStat table for finding above-average participation.
- Discussing APM/telemetry options
- Lots of RubyConf 2024 stories sprinkled throughout, maybe the most interesting being that Lobsters is now a standard(ish) Ruby/Rails performance benchmark.
2024-11-11 CSS CSS nesting Lobsters MariaDB self-promo
Very obvious or very obviously nefarious
- Hat request approvals were rejected (bug); manual log + db groveling to recover the records #1371
- CSS nesting is now widely supported in browsers! Learned in PR #1376
- Self-promo prompts motivated reasoning; voting rings; why invites mean we don’t have to be as sophisticated as HN
- SQL query optimization for detecting above-average comments; I love Joe Celko’s books
- bots.in.space is shutting down so our bot must migrate to a new instance
- My cat knows 2.5 tricks
2024-11-04 GitHub Lobsters MariaDB open source contributions self-promo
Let's do a different kind of evil
- Reviewed PR #1360 for link shortener detection - merged after confirming non-ASCII domains are allowed; so many different URL validations.
- Reviewed PR #1359 about UI/accessibility improvements for story disowning - needs changes to handle CSRF and no-JS fallback properly.
- Started on self-promo detection improvements - exploring query performance for checking if users have well-received comments (score > daily avg) in last 6 months. Added date-based index but still hitting performance issues with correlated subqueries.
- Discussed challenges with GitHub’s limited UI customization forcing use of bots like Zulip to manage contributor interactions. Really don’t want to keep nodejs in prod.
- LLM slop HaikuOS post.
2024-10-31 Django LLM code Lobsters Phlex self-promo
If it doesn't come from the spam region of the Balkans, it's just sparkling self-promotion
- Looked at some PRs, mostly stalled. The new one is LLM or junior code.
- Fix up a test failing from fixing up some length validations.
- Fun Rails code from fractaledmind.
- Deciding between Rails vs Django
- The big wooly problem of self-promo, the limitations of coding social rules, the limitations of mod judgement, trying hard to not create bad incentives.
2024-10-28 30x500 Chicago-style pizza Recheck invalid data worker-owned coops
Recheck demo / a correct but wrong description
- Three important facts about Chicago pizza.
- Demo Recheck, my database validation tool inspired by Stripe’s internal tooling. Found real invalid data in Lobsters comment threading from 2005. Issue #1236
- Impossible/invalid data in production DBs is a common issue in any DB with >500k records. Gave examples from my KCDC 2016 talk
- Launching Recheck as worker-owned cooperative. Explained co-op equity model vs traditional startup equity
- Recommended 30x500 and Stacking the Bricks for developers wanting to bootstrap businesses
- difference between Lobsters codebase vs community re: IPFS/magnet links feature request
2024-10-24 Aider LLM coding tools
No, I don't want to run the linter
Catching up on the Sorbet bugfix (merged!) and avatars (more Active Storage stumbling blocks!), then from 19:06 a demo of Aider, which I think is the best and fastest-improving LLM coding tool available. Where the risks are, the useful parts, the failure modes.
2024-10-21 ActiveStorage Lobsters Rails open source contributions
I'm doing a lot of sighing on this stream
- Working on adding direct avatar uploads to Lobsters, lots of surprising/unsafe defaults in ActiveStorage like not validating that images are images. (PR #547)
- “cookie licking” from Sumana Harihareswara’s post, considering Zulipbot to help manage stale issue claims
- Reviewed several PRs:
- TheCoppinger raided, so I explained Lobsters’ invite system and code
2024-10-17 ActiveStorage Lobsters avatars open source contributions
I want to yassify the StoriesController
- Filed issue about StoriesController complexity - controller has grown too large, needs breaking up into resourceful routes and separate controllers for different story actions
- Reviewed PRs:
- Avatar uploads: got Active Storage basically working; dealing with metadata stripping, file naming, and variant generation.
- Added some copy to usernames/invites to help trans users avoid footgunning
- Documented IRC vs Discord discussion in discord-vs-irc-notes
- Requested books on managing open source projects, got rec for How to Open Source by Richard Schneeman
2024-10-14 ActiveStorage Lobsters Story tags images moderation
Stepped on a rake of my own devising
- Added new chat moderators companion_cube and EBPF to help with increased trolling
- Followed up on cloud-init outage from 3 weeks ago, Digital Ocean support identified
cloud-initbug, see update - Reviewed several PRs:
- Started replacing an unnamed third-party avatar service with direct uploads using Rails ActiveStorage.
2024-10-10 Lobsters Rails sqlite sidecars
I am unreasonably attached to ellipses
- Merged Origin branch after commenting out validation that would block new users’ submissions; want to watch behavior in production before activating
- Extract Links from Comments, show recent on story submission form
- Looking forward to Rails 8, especially sqlite sidecar databases
- Ran query showing most common dupe comments. Found a wholesome pattern of thanks/congrats, with only a few “+1” type comments that we can nudge to upvotes (and discourage ‘bump’ comments)
2024-10-07 Lobsters self-promo sorbet
That test wasn't supposed to pass
- Changed “archive” link text to “caches” (l33t)
- Added retrocomputing
- Bugfix to Sorbet for type signatures of
Data.definewith no arguments - Building “Origin” model for Lobsters to detect self-promotion from new users posting from common domains (mostly github.com, medium.com, dev.to).
2024-10-03 Lobsters Rails self-promo
Where did it come from, unstructured control flow
• Implementing Origin feature for recognizing self-promo. Implemented domain/origin routing and views, hit issues with Rails routing conventions and migration rollbacks • Found edge case with github.io subdomains, may need public suffix list integration; found some normalization bugs with www • vim/neovim config and the need to learn slowly • The Checklist Manifesto because humans are inconsistent, especially experts
2024-09-30 Lobsters self-promo
That really collapses the special cases down
- Origin model to recognize that
github.com/bobandbob.github.ioare the same author powered by regex because the users are developers - Fix duplicate domain records bug in database migration - found two domains (
codinunicorn.devandaaronhawley.livejournal.com) that needed cleanup
2024-09-26 Lobsters Rails self-promo
at least I can assume my users know regular expressions
Working on Origin model for Lobsters to better handle domains like GitHub/Medium/Dev.to where multiple authors share a domain. Spam patterns and prevention, invite system is critical for Lobsters, vs example of Reddit’s sophisticated spam ecosystem with paid accounts/upvotes/tools. Hard to maintain a good new user experience/onboarding though!
Loudly disappointed in the whole world
Handled Lobsters outage yesterday due to DigitalOcean hypervisor/cloud-init issues. Wrote up postmortem. Thanks to Hunter for debugging help.
- Merged PR #1316 to enable Rails 7.2 defaults and PR #1327 improving setup docs
- Worked on PR #1322 about clickbait titles. Analyzed ~80 title edits to develop clearer guidelines around hyperbole, missing info, and moralizing.
- Started evaluating pagination gems (pagy, geared_pagination, order_query) vs current cursor-based pagination branch. Need to decide between building custom solution or using existing gem.
- Looked at at PR about porting comment replies to Action Mailbox
If n is 82 I can write any code I want
Merged PR #1320 to rewrite odd RSS feed design with XMLBuilder. Reviewed PR #1322 about clickbait guidelines; looking at moderated titles to define “clickbait”. Added caching for RSS feeds since they represent ~25% of site traffic. Implemented 120s TTL.
2024-09-12 Lobsters Rails float scores
We fixed seven out of the four bugs
- More #1318 fixing comment confidence/sorting bugs - found float precision issues causing negative confidence values. Switched to BigDecimal; dithered about clamp.
- Switched calculated_confidence to use BigDecimal instead of Float to avoid precision errors
- Fixed admin-only ban enforcement in controllers to match view restrictions
- Migration to fix cached comment scores/flags
2024-09-09 Lobsters performance
the goldilocks diff
- Following up on the last stream a viewer found a whole bunch of bugs in the performance-oriented code that sorts comment threads.
- Work through those bugs and find several more.
- Banning these stream pages from the site for inarticulable reasons.
- A potential upgrade to the Domain model.
- Should we have confidence in confidence, or drop it in favor of score? Channel VIP: dzwdz.
2024-09-05 Lobsters SQL comment threading performance recheck
You're allowed to be evil in performance code
Bug #1313 prompted a deep dive into the most dangerously clever code on the site. We explored why the code works that way, figured out why the performance improvement in #1308 was putting comments in the wrong place, tried to fix it, realized more problems, and ultimately reverted it. (And then fixed a small bug right at the end for funsies.)
2024-08-29 Lobsters Twitch Affiliate leak pagination
Achievement Unlocked: Not an Affiliate
Whole lot of ranty topics came up, weirdly. Mostly working on pagination.
2024-08-26 Jean Boussier Lobsters YJIT guest stream pairing
Heap dump pair
Joined by byroot to investigate the possible memory leak in Lobsters. We came to the hypothesis that it’s actually memory fragmentation, and reviewed and merged his several related PRs. I also ran a user query to give an example of that process.
2024-08-22 Lobsters PRs Rails coop refactoring timezones
Philosophically, Rails CRUD is Java
- Twitch may or may not have an ical timezone bug, depending on the meaning of “standard”
- Reviewing and merging three Lobsters PRs
- Rspec is its own language; optimistic about Quickdraw’s API
- Don’t maintain Rails migrations
- Refactoring to lean into the CRUD
2024-08-19 ActiveRecord Lobsters Twitch API
Numbers that should have decimals in them
- Fixing a bug with comments missing from user_threads - which turns out to only appear to logged-in users who are not moderators (though mods get their own unreported bug)
- Complexities in ActiveRecord scopes: leaning on Rails more
- Investigating the ability to search comments for
c++ - Gumption traps; Zen and the Art of Motorcycle Maintenance
- First cat cam
- Trying outreach to get access to Twitch API
- Exploring the db schema
- Bug VIPs: dpk0, jameslittle230
2024-08-15 Lobsters online communities
A healthy amount of bugs
- Adding a ‘last read’ line to /newest
- The complexity of story list templates
- Big “fun” with the mysterious mic cutout problem; jameslittle230 identifies a workaround!
- Revising the work from last stream on story scoring that didn’t work out
- Code is the physics of online communities
- dlamz requests an endpoint, Nogweii volunteers to add it
- what deployment looks like
- Bug VIPs: arh68, dr3ig
2024-08-12 Discordianism Lobsters
Use hide for story score
First stream!
- First appearance of the mysterious mic cutout problem
- Changing story scoring to use hides instead of flags
- Updating the UI for fading out problem stories
- Discordianism, and the difficulty of finding a “real” copy of the book
- Updating the
replying_commentsview, perf considerations onjoin - Arch packaging of OBS and its plugins
- Stream follower goals; daydreaming about fun viewer interactions
- Bug VIPs: nogweii
Test stream, fixing bugs
An unannounced test stream to shake out bugs in my streaming setup.
- add spec for long-fixed #1274 missing story previews
afoocadocatches a layout bug cutting off the bottom of the terminal; live fix- first stream spammer banned
- fixed #1242 don’t show comments on deleted stories
- Bug VIPs: afoocado frici