HNHacker News
TopNewBestAskShowJobs

efortis

822 karma · joined February 20, 2020

Frontend developer
submissionscomments
efortis··on Why Didn't GitHub Copilot Win?
slop
efortis··on Tells of a Slop UI
I see them in mobile, but not in desktop:

https://x.com/efortis/status/2103319003754275262

efortis··on Tells of a Slop UI
Also, incomplete sections. This site below has an FAQ section without answers.

https://ai.meta.com/muse

efortis··on Improving site performance by shipping more CSS
> ${local} is the right target, with global disambiguation where necessary.

How?

---

Another approach is using base52 sequential names, such as `aa, ab, …`. I tried that a few years ago in Webpack, I don't remember but there was an issue, IIRC they weren't deterministic.

efortis··on Improving site performance by shipping more CSS
`zstd --ultra`

    53K _long.css
    11K _long.css.br
    14K _long.css.zst

    38K _short.css
   8.9K _short.css.br
    11K _short.css.zst
efortis··on Improving site performance by shipping more CSS
Here's a comparison using `brotli --best` on my app.

   53K _long.css
   38K _short.css

   11K _long.css.br
  8.9K _short.css.br
Both, dev and prod, have hashes because that's part of what CSS Modules uses to avoid collisions.

Besides download size, smaller names improve parsing speed too.

efortis··on Improving site performance by shipping more CSS
There's room for improvement still. Currently, the production build is using long-dev class names. e.g. `DirectoryContent-module__Box_3__gl6dE` could be compiled to a shorter hash like `gl6DE3a2`.

If you use Vite:

  css: {
    modules: {
      generateScopedName: mode === 'production'
        ? '[hash:base64:8]'
        : '[name]__[local]___[hash:base64:5]',
      }
    }
efortis··on Ask HN: What is the most interesting project you are working on?
I’m working on projects for rendering code more legibly without editing it.

One project is a proportional coding font, Camelana, which has left-padded uppercase letters when they are part of a camel case identifier.

Also, it has custom ligatures. e.g. the keywords ‘return and ‘throw look like a sticker with a solid background, so it is easy to spot exit points.

https://github.com/ericfortis/camelana

Another project is TabularEye, which renders some code blocks in columns without editing the whitespace.

https://github.com/ericfortis/tabular-eye

And other little projects like that

efortis··on Ask HN: How do you interview devs in a post-AI world?
Recently, I was screen-interviewed for coding speed with a fairly easy project. The company used a 3rd party platform which gave me 90m to complete 4 levels, each one building upon the other.

I think that was a nice test, but the platform is too buggy to recommend.

efortis··on Cloudflare Quick Tunnels
One tell is: if you can code that hero there's no excuse for the silly bugs.

For example, the hero is fairly impressive in mobile but it's broken in desktop. And then you scroll down to the next section and there's overflowing text.

IOW, the skill level is inconsistent.

efortis··on The agents are coming for the web and the web isn't ready
Yes, but it can be regardless of being a cache miss.

If you are curious about the use case: https://github.com/ericfortis/aot-fetch-demo/blob/main/optio...

efortis··on The agents are coming for the web and the web isn't ready
Is there a way to stream the ESI in a chunk? I'm asking for different use case.
efortis··on A Week of Bug Reporting
> In contrast, bug reports to a typical end-user application go into a black hole from the moment they’re submitted.

True, but not always, I've heard PMs saying: "this was a user-submitted bug", meaning you better fix this ASAP.

But yes, for the most part they don't like it. I recall reporting a bug and then they obfuscated their SPA bundle.

Funny enough, today I spent like an hour thinking: should I report this, should I ever report bugs at all. It was a P0 but I didn't report it, and I noted it as my first time considering giving up on my career.

Last week I reported a list of medium-bugs and I ended with: "I'm not sure if you'll ever read this, so I'm not adding more details that could help you debug, but feel free to reach out…" They responded: "We will share this feedback with the appropriate team. No further action is required on your end. Your ticket 124443 is solved. Please rate us!"

efortis··on Ask HN: Resources to get good at soldering?
Two tips I learned from Sorin's yt channel:

- Bend the tips

- Don't buy an expensive iron, use a cheap one and assist it with a hot air gun

Sorin is incredibly skilled. Here he is fixing a ribbon cable:

https://youtu.be/P81IG0DZ1kg?t=494

efortis··on Never promise "no network requests"
> fetch, XMLHttpRequest : Nothing — these are the ones everybody checks.

That's one of the things I don't like about security scanners, they just check for fetch and friends, and without context, they downgrade your security score.

For example, I have a fully local client-server package that makes no external requests but it gets flagged with "Supply Chain Risk" because it uses `fetch`.

efortis··on Modern Web Development
FWIW, YouTube, instead of SSR, simply includes the critical API data in the HTML document.

Here’s a PoC of that technique, see option 2.

https://github.com/ericfortis/aot-fetch-demo

efortis··on Contract Testing with Wiremock
Is recording for creating stubs possible with that local setup?
efortis··on Ask HN: How did you teach analog electronics to your kids?
haven’t done it, but I’d try a rain sensor. and if the child is into music, a guitar tone knob.
efortis··on Claude Skill Makes Edits Synced to Song Beat
An easy improvement could be offsetting the cuts a bit so the result doesn't feel choppy. See J Cut and L Cut.

A more complex improvement could be analyzing the movement and/or focal point so cuts flow better. For example, if in ClipN the focal point ends at 30%-top,30%-left try to get the starting focus point of ClipN+1 around that area too.

efortis··on Ask HN: What are you working on? (August 2026)
Currently, on ways to render code more legibly:

- Camelana. A proportional coding font with custom ligatures for `return` and `throw` keywords

- Tabular Eye. IDE plugin for tabularizing mono and non-monospace fonts without adding whitespace

https://github.com/ericfortis/camelana

https://github.com/ericfortis/tabular-eye

efortis··on I don't recommend Tailwind CSS
CSS Modules are a better solution. They compile classnames into unique identifiers, so there's no need for BEM or SMACSS conventions:

https://x.com/efortis/status/1888304658080256099

efortis··on Software for One
For the backend of my personal webapps I’m using Nginx with its WebDAV module.

WebDAV is a protocol for managing files. So I basically have plain json files I read and overwrite.

  GET /mydata.json
  PUT /mydata.json
For auth, Basic auth, which is built-in in the module and in browsers. so it’s just a text file with a username and a hashed pwd.

On the phone, I “Add to Home Screen” from Safari

For backups, in my home router I have a cron that rsyncs the json files.

The VPS costs $12/mo

efortis··on I Recommend Old Russian Mathematics Books
ironical slop
efortis··on Best Fonts for Programming in 2026
Monospace for coding is suboptimal, here's a significantly more legible proportional font designed for coding

https://github.com/ericfortis/camelana

efortis··on Where to find inspiration for a (reactive) personal website?
is it for coastalvectors.com ?

if so, I would say start by adding this meta tag, which will prevent the mobile downscaling

  <meta name="viewport" content="width=device-width, initial-scale=1">

also, check out how your site looks like in the reader mode of a mobile browser. That will give you a solid starting point in terms of typography.
efortis··on My coding font and how I made it
No worries, the motivation was that one day I was very tired and I noticed I had to make an extra effort to read long camel case names. The last screenshot in the readme has the snippet I was reading that day.

So I added the left padding to uppercase letters, and to avoid confusing it with a real space char, I made the space 4x wider.

I kept experimenting with the real space width and the padding ratio. At first I added like 1/6 of padding, and I noticed it took me just a few minutes to get used to it, so I increased it to 1/3.

It also depends on the font size. if it’s over 18pt then 1/3 of padding is too much, but I think it works well for 12-14pt

So if I’m sharing my screen with a large font I change it to mono.

efortis··on Sketchpad (1963)
there is a video of sketchpad here:

https://youtu.be/fC4nW2o-Rwk

efortis··on Ask HN: Who wants to be hired? (July 2026)

  Location: Puerto Rico

  Remote: Yes

  Willing to relocate: Yes

  Technologies: React, Three, JS, TS, CSS, HTML

  Résumé/CV: https://ericfortis.com

  Email: efortis@gmail.com
efortis··on Why I like snake_case
My workaround was a editing a font with a much longer space char and with a 1/3 of a space of left padding on uppercase letters.

https://github.com/ericfortis/verdanacamel

The problem is that it looses tabular alignment, so I wrote an IDE plugin for tabularizing some blocks.

https://github.com/ericfortis/tabular-eye

---

Similar to my font, emacs has a plugin that adds a little underscore.

https://codelearn.me/2025/02/24/emacs-glasses-mode.html

efortis··on The Vim Learning Curve Is a Myth
it is hard and a lot to learn, but you can learn it a little bit at a time.
Page 1 of 17Next →