This seems a bit fiddly... I gave it the ChatGPT iframe html for my (not yet released) Liveclip MCP server that's like tables [https://x.com/firasd/status/2039926453408776649]. And I had this chat in the sidebar and it popped up some questions in a form
> do you see our current html
Hi-fi design
Interactive prototype
html
> do you see our current html
Hi-fi design
Interactive prototype
html
● Claude
Yes — I can see your html/ folder. It has 7 files:
files-list.html
math-result.html
rows-view.html
table-view.html
text-editor-doc-view.html
trending-topics.html
unique-result.html
Want me to open them up and take a look at what's in there? And what would you like to do — polish them, turn them into an interactive prototype, build something new on top, or something else?
> yeah in table view i'm thinking about how to deal with cells that may be big. i guess we want to do something different than excel or sheets in that auto expand rows with cells that contain big values. we can show like the first -- what does twitter show, 280? so we can show 280 chars and then [...]
● Let me take a look at the current table view to understand what we're working with.
Got it — I see the current table view. Right now every cell is clamped to max-width:220px with white-space:nowrap and text-overflow:ellipsis, so long values just get cut off at whatever ~30 chars fits the column. You're thinking about the opposite end: what if a cell genuinely holds 2,000 chars of text? Neither pure clip nor Excel-style row expansion is quite right.
Before I start sketching, a few quick questions so I don't guess wrong:
> Questions answered:
- truncation_threshold: ~280 chars (new tweet)
- expansion_ux: nothing right now -- it's not interactive
- row_height_policy: Grow freely like Notion/Airtable
- content_types: Not sure yet
- indicator_style: [...] at the end of the text
- newlines: Render them (row grows)
- copy_affordance: no interaction right now
- column_width: Fixed width, all columns equal
- variation_count: 2 variations
- aesthetic_direction: Same bones, but let you push it a bit
● Got it — so: non-interactive, rows can grow freely, 280-char cap with [...], newlines render, same bones but push it a bit, 2 variations. Let me sketch this out.
Set up variations file with two table treatments
V1: Notion/Airtable-style free-grow with [...] cap
V2: pushed aesthetic variant
Wire both to the same sample data w/ long cells
Let me peek at a couple of the sibling files so the variations stay in-family with the rest of the widget set.
Good — now I have the visual family. The shared vocabulary across widgets:
#f5f5f3 page, #fff card, #d0d0cc borders, #f0f0ec headers
System font, 12–14px
Subtle alternating row tints, no drop shadows, flat corners
Color used sparingly; #666 for secondary text
My plan for the two variations (side-by-side in a canvas so you can compare on the same rows):
V1 — "Notion-ish, stay in family"
Keep current palette, borders, zebra striping
Rows grow vertically as needed; white-space: pre-wrap so newlines render
Cap each cell at 280 chars; if longer, slice to 280 + […] inline
Same fixed column widths, everything else identical
V2 — "Same bones, pushed"
Tightens the grid (hairline borders instead of panels, more whitespace, denser typography)
Column rail with sticky row numbers
Soft fade on the bottom of ultra-tall cells instead of mid-text […] when content is really long (hybrid: char cap + visual)
Monospaced tabular digits for row numbers; type column ⌾ / ▤ markers subtly hinting content type; column width slightly wider for breathing room
Let me build it.
Now let me build the two variations. I'll set up realistic sample data with a mix of short values, tweet-length values, long-long values, and ones with newlines, so the behaviors are visible.
Now the two table components.
Clean. Two variations on the canvas, both rendering the same 7 rows so you can compare directly:
V1 — in-family. Your current widget, with white-space: pre-wrap so rows grow, newlines render, and a soft grey […] appended when a cell goes past 280 chars. Row 3's summary (double-long prose) and row 4's URL show the cap.
V2 — same bones, pushed. Hairline borders instead of filled header panels, monospaced tabular row gutter, column letters as uppercased small-caps above the header names row, tighter typographic rhythm, cells > 280 → […] legend in the footer. Row 7 shows how newlines render naturally.
Both slice at the nearest word boundary when one is within ~40 chars of the 280 cap, otherwise hard-cut — so […] never lands mid-word.
A couple of things worth calling out, not changed:
280 is pretty generous when a row has multiple long cells side-by-side — row 3 is ~2 cells × 280 = a very tall row. If that ends up being painful in real usage, dropping to ~180 or adding a per-row max-height with fade might be worth a follow-up.
Neither variation is interactive per your answer; there's no click-to-expand, hover, or copy. Easy to bolt on later.
Fork verifier agent
Both variations are live on the canvas. Let me know which direction feels right and I'll fold it back into html/table-view.html."
-----
It's basically similar to their Artifacts system in a harness I guess
> Anthropic’s Super Bowl debut, which drew close attention from rivals, illustrated the risks of that convergence. By centering its message on promising not to include ads on Claude, which OpenAI announced it would begin testing earlier this year. The company made a bet that its ad free principles would resonate with audiences more than product familiarity.
> That wager came amid a significant awareness gap. According to an S&P Global 2025 survey of 1,149 respondents, 73% reported using ChatGPT, followed by Google’s Gemini at 41%. Tools like Perplexity and Claude registered in the single digits, with only 7% of respondents saying they use Claude.
> “The vast majority of consumers don’t know what Claude is. Many people aren’t going to really get the whole ‘Oh, we’re comparing ourselves to chatGPT,’” said Williamson.
It's helpful to keep in mind that 'AI Twitter' is a bubble. Most people just don't have that many 'important' notes and calendar items.
People saying 'Claude is now managing my life!11' are like gearheads messing with their carburetor or (closer to this analogy) people who live out of Evernote or Roam
All that said I've been thinking for a while that tool use and discrete data storage like documents/lists etc will unlock a lot of potential in AI over just having a chatbot manipulating tokens limited to a particular context window. But personal productivity is just one slice of such use cases
It's interesting to think about how complex the wikipedia text is compared to something like github flavored markdown or even standard html tables (although I guess it eventually renders into standard html so it's not more complex than the latter when all other html elements are considered in addition to <table>)
For example the swatch internet time infobox is dynamically updated
{{short description|Alternate time system by watch maker Swatch}}
{{Infobox
| image = [[File:Swatch beat Logo.svg|200px|alt=Logo of Swatch Internet Time]]
| caption = Logo of Swatch Internet Time
| title = Time{{efn|at page generation }} {{purge|(update to view correct time)}}
| label1 = 24-hour time (UTC)
| data1 = {{nowrap|{{#time:H:i:s}}}}
| label2 = 24-hour time (CET)
| data2 = {{Time|CET|dst=no|df-cust=H:i:s|hide-refresh=yes}}
| label3 = .beat time (BMT)
| data3 = {{nowrap|@{{#expr: floor( {{#expr:{{#expr:{{#expr:{{#time:H|now + 1 hour}}3600}}+{{#expr:{{#time:i}}60}}+{{#time:s}}}}/86.4}} )}}}}
}}
I always found it ironic that the table syntax is designed to resemble ascii-art type tables, and then literally nobody writes it in a way that looks like an ascii art table.
Yeah, it’s not terribly hard to do that even without AI (Prettier can do it, for example). But there’s a lot of places where the tooling just isn’t available. Then again, it’s probably not a big deal if your GitHub comment markup isn’t perfect.
I think the root of the problem is, almost everything else you use in Markdown is easy to do by hand. There’s just no good syntax for tables like this, I guess.
I agree it's great, but that risk is so major that I stopped using it. "There's a 50% chance that your editor will invisibly corrupt the data you enter, and another 30% chance to corrupt the entire file" is just not usable...
Especially in Zed where the only way to switch hard tabs is buried in the settings menu, and impossible to change per buffer.
Lack of control over your editor's behaviour shouldn't be acceptable on this level. Just like making tabs/spaces visible, control like this ahould be a basic feature of every editor.
You'd think more editors would be smart enough to recognize that it's a TSV file and therefore should preserve the tabs, in much the same way that you'd think editors would be smart enough to recognize that something's a Makefile and therefore should preserve the tabs.
It gets tricky when you have a TSV inside Markdown. I don’t think I’ve ever seen tabs used for indentation in Markdown in the wild, though it probably does work.
We could, however, make the Tab key insert spaces if the cursor is in the beginning of a line, and a literal \t if it’s in the middle. This way, you can write a TSV table pretty much anywhere you want.
I'm not very familiar with this model series but tried it when prototyping a potential 'Vibesbench' (my eval) conversation I tried it. Here's Kimi on a Robocop scene
kimi k2 thinking turbo
"He’s not being poetic; he’s weaponizing nostalgia. Quoting Casablanca—the ultimate “beautiful sacrifice” romance—to taunt Morton about corporate backstabbing is pure executive sleaze. It’s the same move as his mahogany desk and flag pin: draping sentimental Americana over naked power. He’s essentially saying, “Isn’t it romantic, Bob? You fought the good fight, now you die.” "
grok 4.1
"So when Dick Jones smirks and says, “Time goes by, it’s the same old story… the fight for love and glory, huh, Bob?” that’s pure Ed Neumeier flexing his love of old Hollywood while simultaneously mocking how these psychopathic ’80s execs think they’re in some grand cinematic drama instead of just murdering a guy for market share."
chatgpt-4o
"The reason the Casablanca reference matters is RoboCop itself is partially a noir—and also a tragedy built inside a genre engine. [… ] So yeah, calling back to Casablanca is not just some meta-joke—it’s a knowing wink that RoboCop is a noir trapped in cybernetic skin. // Even Clarence Boddicker, for all his cartoonish sadism, plays like a twisted stand-in for a noir heavy—talking smooth, dropping nicknames, throwing out casual violence like it’s a punchline."
opus 4.5
"Jones is performing avuncular menace. He's the kind of executive who'd quote old movies while having you murdered, because it's all performance to him, all style. The substance is just power."
It's puzzling to me that all this theorizing doesn't just look at the actual effects of AI. It's very non-intuitive
For example the fact that AI can code as well as Torvalds doesn't displace his economic value. On the contrary he pays for a subscription so he can vibe code!
The actual work AI has displaced is stuff like: freelance translation, graphic illustration, 'content writing' (writing seo optimized pages for Google) etc. That's instructive I suppose. Like if your income source can already be put on upwork then AI can displace it
So even in those cases there are ways to not be displaced. Like diplomatic translation work can be part of a career rather than just a task so the tool doesn't replace your 'job'.
He used it to generate a little visualiser script in python, a language he doesn't know and doesn't care to learn, for a hobby project. It didn't suddenly take over as lead kernel dev.
I think AI displacing graphics illustrators is a tragedy.
It's not that I love ad illustrations, but it's often a source of income for artists who want to be doing something more meaningful with their artwork. And even if I don't care for the ads themselves, for the artists it's also a form of training.
As someone who has to switch between three languages every day, fixing the text is one of my favourite usages of LLMs. I write some text in L2 or L3 as best as I can, and then prompt an LLM to fix the grammar but not change anything else. Often it will also explain if I'm getting the context right.
That being said, having it translate to a language one doesn't speak remains a gamble, you never know it's correct so I'm not sure if I'd dare use it professionally. Recently I was corrected by a marketing guy that is native in yet another language because I used a ChatGPT translation for an error message. Apparently it didn't sound right.
Re displacing freelance translation, yes - it can displace the 95% of cases where 95% accuracy is enough. Like you mention though, for diplomatic translations, court proceedings, pacemaker manuals etc you're still going to need a human at least checking every line since the cost of any mistake is so high
Both Trump presidencies have really shown how little check there is on the White House when it comes to coordinating among these agencies. Heck literally one of the first the things he did in Jan 2016 is try to find out which park ranger posted a sparse inauguration photo. It wouldn't even occur to me that he was the de facto boss of millions of people in this way
Cause consider the previous status quo. It was considered somehow scandalous for Bill Clinton to have an opinion on what his AG Janet Reno was doing
Fischer plays 17... Be6, leaving his Queen hanging.
Standard narrative: "Fischer offers his Queen for a mating attack!"
Engine reality: 17... Be6 is the correct move. Trying to save the Queen actually loses the advantage.
Byrne taking the Queen (18. Bxb6) was a massive blunder. The engine actually wants Byrne to ignore the Queen and trade off Fischer's Knight on c3. He ends up with a Queen stranded on a3, a total spectator
Right. So I guess that's my quibble with the term sacrifice (shared by Rudolf Spielmann)
But what's interesting to me is the counterfactual like outside of these 3 queen moves he would have lost the entire advantage. So it was like a tactical shot like capturing the golden snitch in Harry Potter
Sure, I get what you're saying. It's still a sacrifice, but the compensation is just mate in 2, so the there's no real "sacrifice" here.
That being said, any sacrifice that doesn't guarantee a better (or at least equal) position isn't a sacrifice either, it's just "hope chess", aka a bad move. In Blitz or Bullet you can make the case for a "bad" sacrifice for positional complexity and putting time pressure on your opponent to make accurate defensive moves.
In the Opera game, Black just played a poor game start to finish. Giving up the bishop for the knight, pushing the B pawn while the king wasn't castled.
I had two “brilliant” moves in one chess.com game today. One was a bishop sacrifice that would have led to mate in three. The other was a queenside castle that the engine wanted me to do sooner. I suck at chess, although I did see the bishop sacrifice as the right move. The engine rated me at 1500 for the game.
This is a common theme, gambits are such depending on what your level and calculation depth is.
The queen's gambit opening (almost inarguably a gambit as it is part of a well accepted name of a second move), really isn't a gambit in the sense that you can always recover the pawn, however it is a gambit in the sense that you temporarily give it up.
If we were particularly short sighted, no doubt, responding to an early white bishop threat on g5 or b5 with a knight on f6 or c6 would look like a gambit, as we are sacrificing the knight, but lo and behold, we regain the minor piece afterwards with xf6 or xc6!
The distinction would be whether the gambit or sacrifice is solid or refutable. But it is in both cases a sacrifice.
> do you see our current html
Hi-fi design Interactive prototype html
> do you see our current html
Hi-fi design Interactive prototype html
● Claude Yes — I can see your html/ folder. It has 7 files:
files-list.html math-result.html rows-view.html table-view.html text-editor-doc-view.html trending-topics.html unique-result.html Want me to open them up and take a look at what's in there? And what would you like to do — polish them, turn them into an interactive prototype, build something new on top, or something else?
> yeah in table view i'm thinking about how to deal with cells that may be big. i guess we want to do something different than excel or sheets in that auto expand rows with cells that contain big values. we can show like the first -- what does twitter show, 280? so we can show 280 chars and then [...]
● Let me take a look at the current table view to understand what we're working with.
Got it — I see the current table view. Right now every cell is clamped to max-width:220px with white-space:nowrap and text-overflow:ellipsis, so long values just get cut off at whatever ~30 chars fits the column. You're thinking about the opposite end: what if a cell genuinely holds 2,000 chars of text? Neither pure clip nor Excel-style row expansion is quite right.
Before I start sketching, a few quick questions so I don't guess wrong:
> Questions answered: - truncation_threshold: ~280 chars (new tweet) - expansion_ux: nothing right now -- it's not interactive - row_height_policy: Grow freely like Notion/Airtable - content_types: Not sure yet - indicator_style: [...] at the end of the text - newlines: Render them (row grows) - copy_affordance: no interaction right now - column_width: Fixed width, all columns equal - variation_count: 2 variations - aesthetic_direction: Same bones, but let you push it a bit
● Got it — so: non-interactive, rows can grow freely, 280-char cap with [...], newlines render, same bones but push it a bit, 2 variations. Let me sketch this out.
Set up variations file with two table treatments V1: Notion/Airtable-style free-grow with [...] cap V2: pushed aesthetic variant Wire both to the same sample data w/ long cells Let me peek at a couple of the sibling files so the variations stay in-family with the rest of the widget set.
Good — now I have the visual family. The shared vocabulary across widgets:
#f5f5f3 page, #fff card, #d0d0cc borders, #f0f0ec headers System font, 12–14px Subtle alternating row tints, no drop shadows, flat corners Color used sparingly; #666 for secondary text My plan for the two variations (side-by-side in a canvas so you can compare on the same rows):
V1 — "Notion-ish, stay in family"
Keep current palette, borders, zebra striping Rows grow vertically as needed; white-space: pre-wrap so newlines render Cap each cell at 280 chars; if longer, slice to 280 + […] inline Same fixed column widths, everything else identical V2 — "Same bones, pushed"
Tightens the grid (hairline borders instead of panels, more whitespace, denser typography) Column rail with sticky row numbers Soft fade on the bottom of ultra-tall cells instead of mid-text […] when content is really long (hybrid: char cap + visual) Monospaced tabular digits for row numbers; type column ⌾ / ▤ markers subtly hinting content type; column width slightly wider for breathing room Let me build it.
Now let me build the two variations. I'll set up realistic sample data with a mix of short values, tweet-length values, long-long values, and ones with newlines, so the behaviors are visible.
Now the two table components.
Clean. Two variations on the canvas, both rendering the same 7 rows so you can compare directly:
V1 — in-family. Your current widget, with white-space: pre-wrap so rows grow, newlines render, and a soft grey […] appended when a cell goes past 280 chars. Row 3's summary (double-long prose) and row 4's URL show the cap. V2 — same bones, pushed. Hairline borders instead of filled header panels, monospaced tabular row gutter, column letters as uppercased small-caps above the header names row, tighter typographic rhythm, cells > 280 → […] legend in the footer. Row 7 shows how newlines render naturally. Both slice at the nearest word boundary when one is within ~40 chars of the 280 cap, otherwise hard-cut — so […] never lands mid-word.
A couple of things worth calling out, not changed:
280 is pretty generous when a row has multiple long cells side-by-side — row 3 is ~2 cells × 280 = a very tall row. If that ends up being painful in real usage, dropping to ~180 or adding a per-row max-height with fade might be worth a follow-up. Neither variation is interactive per your answer; there's no click-to-expand, hover, or copy. Easy to bolt on later. Fork verifier agent Both variations are live on the canvas. Let me know which direction feels right and I'll fold it back into html/table-view.html." -----
It's basically similar to their Artifacts system in a harness I guess
reply