CodeIsTheEnd

Joined 5 years ago

Karma
923
Submissions
80
Member since
Feb 28
twitter.com/CodeIsTheEnd

Projects:

- plaintextsports.com: Live scores, play-by-play and box scores, in plain text. No images, no ads, no tracking, and no loading. (Also twitter.com/PlainTextSports)

- jless: A command-line JSON viewer written in Rust. (jless.io)

View on Hacker News

Recent submissions

Comment · 2 months ago
I am training for a marathon, and, as I increase both by distance and pace, I am always excited when I have a "Pareto run": a run along the Pareto frontier of me trying to maximize distance and speed.

When explaining it to some coworkers, I stumbled on a fairly intuitive explanation: "I've run farther before, and I've run faster before, but I've never run _this_ far, _this fast."

There was some pushback about why not just call it a PR (personal record), but I would only use that term for fixed distances (1mi, 5k, 10k, etc.) or a consistent route that I've run many times before. Nobody would say "I set my 7.40 mile PR today." More importantly, it misses the comparison to all farther (and faster) runs—it's not exciting to set a 5k PR just because you've barely run that distance before, and the pace is actually slower that a 10k you've done.

(Had a Pareto run of 7.40 miles @ 6:28/mi last week!)

Comment · 8 months ago
I watched the animated gif in the readme and let out a shout of delight when I saw the lightning strike, and on the second loop appreciated how it also lit up the surroundings. Lovely attention to detail!

I looked at the snow one and almost expected snowdrifts to start accumulating.

Comment · 1 year ago
I initially built https://plaintextsports.com because I was annoyed with how slowly other sports websites loaded, but since then I have come to appreciate it more for the density of the information, and how few clicks it takes to get to the info you care about (usually at most two or three).
Comment · 2 years ago
Unsolicited feedback because I clicked: - Don't require picking a composition name before getting started - Whatever scroll settings you have broke swipe to go back, and then when I tapped the back button I got stuck in an infinite loop between the home page and the create composition page
Comment · 2 years ago
Comment · 3 years ago
For sports, ESPN does have http://www.espn.com/nba/lite/scoreboard, but most of the links go back to the normal website. It may have been been more robust in the past, but I don't imagine anyone works on it anymore. It seems like the developer listed in the credits (http://www.espn.com/espn/lite/credits) last worked there in 2002!!

So if you're looking for a sports alternative, https://plaintextsports.com (which I made) works great! All the scores, play-by-play, box scores, standings, and schedules, but just no news stories. Blazing fast.

(No, it's not technically "Content-Type: text/plain", it uses HTML and CSS. Yes, I know it's not necessarily easier to read; it's an aesthetic. Yes, this is shameless self-promotion.)

Comment · 3 years ago
A personal gripe with progressive web apps: they cache the website!!

A lot of people have requested that I make a progressive web app for https://plaintextsports.com. I've looked into it, but it fundamentally doesn't work, because it caches the home page. My website doesn't load any data via JavaScript; it just relies on the HTML page updating every 30 seconds, so when the home page is cached, the website just stops working.

I don't want this service worker nonsense. In most cases offline access isn't useful; people want the live scores. (It'd be moderately useful for viewing schedules offline, but I think most people use it for live scores.) I just want the website to show up as its own app in the app switcher, and basically nothing else to change: I still want the swipe-to-go-back gesture to still work. I still want the address bar with the manual refresh button. But I can't do that.

It's frustrating that they've provided a way to make a certain style of websites into first-class apps, but it doesn't work for the most basic websites!!

Side note: this is partially a the-best-way-to-get-a-question-answered-on-the-internet-is-to-say-something-wrong post. If there's a way to make it a PWA and not have all the pages heavily cached, please let me know! I would love to be wrong on this. (Unfortunately my noprocast just triggered though, so I won't be able to edit this post or respond for the next three hours.)

Comment · 3 years ago
Comment · 3 years ago
The intention is to put the schedules for everything on this page:

https://plaintextsports.com/premier-league/2022-2023/clubs/l...

The challenge is that these pages are really labor intensive, because I want to show relevant information for whatever league is happening, e.g., group stage points, leg of Champions League matches, and it's really difficult to figure out how to fit everything in just 45 columns.

I complained about it in this tweet: https://twitter.com/CodeIsTheEnd/status/1569489636900347904

Comment · 3 years ago
I run Plain Text Sports (https://plaintextsports.com/).

I got sick of waiting for ESPN to load so I made a site with the goal of providing immediate access to what people actually care about: sports scores.

It's pretty fully featured at this point, supporting the NFL, NBA, MLB, NHL, MLS, Premier League and Champions League, college basketball and college football, WNBA, NWSL, and the World Cup. And for a lot of leagues it has full schedules and standings as well.

It actually was really popular in South Africa during the World Cup when a "super-app" that points users to sites that don't use a lot of data linked to it.

The site is served off of S3 (which is cheap), but there's a job running on an AWS server that's fetching the data for all the games and republishing pages to S3. It's using Ruby and is making a lot of network requests, so it's definitely not super efficient. I need a least a couple virtual CPUs, so it ends up costing ~$60 a month. I could definitely reduce that number, but the trouble just isn't worth it to me right now.

I don't want to make money on it. It's been difficult enough to get people to use it; getting people to pay for it would be even hard. At this point I feel like I've gotten everything I've wanted from the project. (An eye-opening experience into the marketing world; a website that I use every day.)

I try to limit how much I work on it now to mostly just maintenance work. I'd rather work on other stuff. If I started making money that'd just be a number to obsess over, and, honestly, it's never going to make enough money to replace my salary as a software engineer.

Comment · 3 years ago
You are a hero and have just cured me of a hundred daily paper cuts. My employer should give you a bonus.

It works in Chrome, but unfortunately not in the standalone Slack client. (Maybe an argument for switching to the web version?)

(Uh, does anyone know how I select all (previously C-a) or search (previously C-f) in Chrome now??)

EDIT: Looks like C-/ functions as select all, still looking for a find replacement.

EDIT #2: Oh, silly me, as long as I'm not focused on an input, C-f still works.

Comment · 3 years ago
For anyone using a Mac, the basic cursor movement commands available in readline and emacs—C-f, C-b, C-a, C-e, C-n, C-p—are also available in virtually any text input in any program, namely web browser inputs, url bars, and textareas, as well as all system UIs.

Once you get used to using these shortcuts that means you can compose and edit text anywhere without ever moving your hands.

I recently switched to using Linux full time for my job and it KILLS me that these shortcuts aren’t available outside of the terminal. I try to navigate to a search suggestion in Chrome using C-n and accidentally open three new windows. I try to add a sentence at the start of Slack message using C-a and accidentally highlight everything and delete it. I try to move my cursor up to edit a previous line using C-p and end up brining up a print dialogue. It’s breaking the muscle memory of my most basic interactions with the computer, and it sucks.

Comment · 4 years ago
Alright, my bike-related tally over ~6 years in SF:

- 2 stolen bike seats (one by 4th and King, one in the Mission)

- 1 entire bike stolen (left out in the Castro overnight)

- 1 rear wheel stolen (in a parking garage by the SF Symphony)

- 1 seat post clamp (literally just the clamp they had to remove the seat, take off the clamp, then put the seat back; during a 30 minute piano lesson in the Mission)

But that doesn't included the most egregious thing that I ever witnessed: I was running up to Twin Peaks on a Saturday morning, and right around noon, in the mini parking lot between the actual two peaks, with dozens of people milling about, heard someone break a car window while there was someone in the vehicle and grab a bag. A woman was seated in the passenger seat and they broke the rear driver-side window. Within seconds a car pulled up with no license plates, the guy jumped in and they sped off.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton