Mast: @Fryguy@ruby.social BSky: @fryguy9.bsky.social Chief Architect on @ManageIQ @IBM, formerly @RedHat CloudForms -- I ❤️ Ruby, @rails, and @CrystalLanguage

New Jersey
Joined May 2009
I am a computer programmer with 20+ years experience. I bought a video game once and the cashier asked me what kind of computer I had. My brain blanked and I said, "a white one".
3
3
62
I have 200+ production Rails codebases on my local disk. Discourse, GitLab, Mastodon, and a ton of others — all as git submodules in one repo. I've been referencing it for years. For most of that time it meant a lot of manual grepping and reading file after file. Valuable but tedious. You had to be really motivated to sit there and read through that much source code. This past year, with agentic coding, everything changed. Now I just ask questions and the agent searches all 200+ apps for me. "What are the different approaches to PDF generation?" "Compare background job patterns across these codebases." What used to take hours of reading takes a single prompt. The original repo hadn't been updated in two years and I was using it enough that I figured I should fork it and bring it forward. So I did: - Updated all 200+ submodules to latest - Added Gumroad, @dhh's Upright, Fizzy, and Campfire - Stripped out old Ruby tooling (agents do this better now) - Added an installable agent skill - Weekly automated updates If you're building with Rails, clone this and point your agent at it. If you know of apps that should be in here, open an issue or PR. github.com/steveclarke/real-… PS: Hat tip to Eliot Sykes for the original repo.
12
37
13
362
50,382
🎉 ManageIQ Spassky-1 has been released 🎉 ManageIQ Radjabov-2 has also been released addressing a CVE. A huge thank you to everyone in the community! You can read more about it in our blog post: manageiq.org/blog/2026/01/ma…
2
3
158
This is Miyamoto. I am pleased to announce that for the live-action film of The Legend of Zelda, Zelda will be played by Bo Bragason-san, and Link by Benjamin Evan Ainsworth-san. I am very much looking forward to seeing both of them on the big screen. (1/2)
2,130
10,690
9,043
80,795
20,010,959
🎉 ManageIQ Radjabov-1 has been released 🎉 A huge thank you to everyone in the community! You can read more about it in our blog post: manageiq.org/blog/2025/04/ma…
1
3
151
BREAKING: The Trump Administration
2
47
Here is a transcript of my talk at EuRuKo’24 (slightly edited for a blog format, but basically, it is slides+text). It is pretty important for me, so please read & share. (Link in the next tweet).
1
8
1
24
2,238
A fantastically written explanation of why macOS font rendering is superior to Windows. The ugly font rendering on Windows is a big reason I can't stand using the OS. Its the first thing I notice during the OS installation and it really starts everything off on the wrong foot...
oh, it appears as if you have summoned me there are several reasons as to why: 1. macOS does not use hinting hinting is a technique to improve the sharpness of text on low-resolution screens and allow outline fonts to be rendered as bitmaps at a variety of sizes. it works by having fonts contain full-blown programs that instruct the renderer on what to do with outlines when rendering and where to place them on the pixel grid. this results in the shape of a glyph being altered so that it fits into the pixel grid, rather than the original shape of the glyph being maintained. while this can look acceptable (good, even) if a font is meticulously and manually hinted—an arduous process that can take literal years to do by hand and requires knowledge of some extremely arcane software—this is no longer nearly as much of a requirement with monochrome/bitmap rendering no longer being something you'd need to care about and screens being higher resolution on average. therefore, the norm for most new fonts is for them to just go through an auto-hinting process, perhaps with slight manual fixes where needed. this is typically Good Enough™, but… well, really, it's not. there are a handful of issues with this: glyphs will not render consistently at different sizes, stems may be aligned towards the incorrect pixel or aligned when they shouldn't be at all, and it generally will destroy the intended overall character of the font by significantly altering the shapes beyond recognition (something you could argue also holds true for manually hinted fonts, but often, the type designer will take this into account as part of the design itself in those cases). if you've ever noticed things like a font looking weirdly tall or short at specific sizes only, a font just looking nothing like it's advertised or like how it does at large sizes at all, glyphs like "E" having off-centre bars, "9" having a weirdly tiny or large bowl, or "g" having a small bowl that isn't aligned with the baseline, (crappy) hinting is to blame for all of those. what you're seeing is the renderer bending the glyph into the pixel grid in a way that is either Not Necessary or Not Correct. macOS, by simply ignoring these instructions, avoids all of these issues, which allows glyphs to look correct at the cost of looking softer and fuzzier. 2. Windows (usually) does not perform vertical anti-aliasing Windows has, generally speaking, two font renderers: DirectWrite (the New Good One) and GDI+ (the Old Terrible One). and generally, you are meant to perform anti-aliasing in both the vertical and horizontal direction for it to be Useful. ClearType in its original GDI+ implementation simply does not bother to anti-alias glyphs vertically at all—only horizontally—which results in glyphs like "s" and "a" ending up with a distinctly jagged appearance. they are literally only half-anti-aliased. DirectWrite is actually able to do vertical anti-aliasing, allowing these glyphs to look much smoother and more pleasant, but for some arsefucked reason that completely eclipses my understanding, it does not do so by default, and necessitates the use of a special flag. MacType can force this flag, and Firefox also has the ability to enable this flag in about:config, although of course, it is not enabled by default, resulting in markedly inferior rendering. 3. macOS does not use subpixel anti-aliasing subpixel rendering is an ancient technique dating back to when users began transitioning from CRTs to LCDs that aims to improve the horizontal resolution of text by taking advantage of the uniform horizontal RGB subpixel grid on LCDs. while it technically, to some extent, works, it brings about a LOT of complications: it cannot be trivially alpha-blended against dynamic backgrounds, it relies on a specific subpixel grid layout and native resolution, and it creates visible coloured fringing artefacts that may cause eyestrain for some (including myself), manifesting as text that doesn't look purely black, but rather black with a bunch of green and yellow crap around it. subpixel rendering is thus unsuitable for things like OLED screens (which all tend to have hilarious and made-up subpixel layouts for some reason) and setups that mix horizontal and rotated vertical monitors, which are actually quite common among enthusiasts. while there is arguably *some* merit to this technique, the benefits are simply are vastly outweighed by its drawbacks. Windows in most cases employs a very aggressive form of this (which I perceive to be rather abrasive and unpleasant to look at), while macOS sticks to basic greyscale anti-aliasing, which is far more reliable and does not result in unpleasantly fringed text. 4. macOS always uses fractional glyph positioning traditionally, font rendering had been done by rendering an atlas of glyphs once, and simply referring to it for each new glyph, with the position of the glyph being rounded to the nearest pixel. unfortunately, this is not sufficient in order to faithfully reproduce the spacing of glyphs as was intended by the type designer and as is encoded in the font, as kerning and spacing happens at a much, MUCH finer scale than even a high-DPI pixel, let alone a low-DPI pixel. rounding glyph positions to the nearest pixel therefore tends to result in inconsistent and off-pissing kerning that Doesn't Look Right. fractional glyph positioning addresses this by actually rendering glyphs individually in between pixels, so that the intended spacing and kerning that the type designer spent days carefully tuning can be reproduced accurately on-screen, even at small sizes. it is very easy to determine whether fractional glyph positioning is in use by typing one character in quick succession and seeing if all of them look the same or not: iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii if all of these look the same, then fractional glyph positioning is not used; if they look different, then it is. Windows's God-awful GDI+ renderer indeed does not use it, but macOS, as well as Windows's good DirectWrite renderer do use it. (thankfully, your browser most likely does use DirectWrite to render text, unless it is so old that it creaks upon being clicked on) 5. macOS performs intense stem darkening to compensate for gamma correction during the AA stage resulting in perceived thinner and lighter text due to simply not covering enough pixels, particularly on low-DPI screens, macOS's text renderer performs a rather noticeable amount of stem darkening, something that it confusingly refers to internally as "font smoothing". this simply expands the stems by a small amount in relation to pixel size, increasing their coverage of the pixel grid, which enhances the contrast and results in glyphs appearing darker. this allows text to remain easily readable even at small point sizes on low-resolution screens. if so desired, stem darkening can actually be disabled using a terminal command in macOS. in short: macOS treats fonts with respect and dignity, and Windows mercilessly beats and tortures them to death and throws their mangled, desecrated corpses by the roadside all while laughing about it
26
41
3
963
109,518
ManageIQ Quinteros-2 has been released addressing a couple of CVEs. manageiq.org/blog/2024/11/qu…
1
3
158
You can find me on BlueSky @fryguy9.bsky.social
29
Jason Frey retweeted
18
135
16
420
53,559
Jason Frey retweeted
200 OK {"success": false} 🤦‍♂️
650
983
341
13,638
901,785
Jason Frey retweeted
Congratulating #CrowdStrike for reaching its carbon neutrality targets six years early through its disruption of global air traffic today!
181
6,615
376
70,916
2,788,641
🎉 ManageIQ Quinteros-1 has been released! 🎉 A huge thank you to everyone in the community! You can read more about it in our blog post: manageiq.org/blog/2024/05/ma…
1
1
221
Jason Frey retweeted
Can't agree more! @CrystalLanguage
2
5
8
313
Jason Frey retweeted
Replying to @rabidrodent
"Lead"は導くです。地面を這って先の危険を察知してくれる武器です。鉛で出来ているわけではありません。🙂
13
92
36
519
147,201
Jason Frey retweeted
Replying to @tobi
Tobi, this quote from Knuth is misused because anyone using it has never read Knuth and have seen the full context. Here’s what he really said: Programmers waste enormous amounts of time thinking about, or worrying about, the speed of noncritical parts of their programs, and these attempts at efficiency actually have a strong negative impact when debugging and maintenance are considered. We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil
4
2
1
114
25,807
Jason Frey retweeted
Sunday rant. For software engineering, my sense is that the phrase “premature optimization is the root of all evil” has massively backfired. Its from a book on data structures and mainly tried to dissuade people from prematurely write things in assembler. But the point was to free you up to think harder about the data structures to use, not leave things comically inefficient. This context is always skipped when it’s uttered. Not all fast software is world-class, but all world-class software is fast. Performance is _the_ killer feature. If you are in engineering, here is a fantastic anecdote. I refer to this account often. It’s a bit subtile, but the implications are massive- It’s an account of how SQLite became 50% faster, not by doing one specific thing but hundreds of small ones. SQLite is everywhere today because of this work. sqlite-users.sqlite.narkive.… We need the engineers in all companies fight for this more. Product leads are not the right owners of the end performance of the software. This needs to be encoded in the professional pride of the software engineering discipline. Leaders in companies need to encourage it and hold engineering accountable. It’s simply not ok to fritter away the performance of the products for random reasons. Every user of your products cares exactly as much about latency as engineers do when typing in their terminal. They just don’t have the words to describe what they don’t like about the experience and neither should they.
203
810
207
5,418
1,231,470
I wrote (somewhat extensively) about the current state of the Ruby language frontend, including Prism, LRama, "universal" parser, and much more. I hope this post is able to answer all of the questions I keep getting about where everything is heading. railsatscale.com/2024-04-16-…
5
23
2
89
8,444