Hacker Newsnew | past | comments | ask | show | jobs | submit | more TimTheTinker's commentslogin

Sounds like we need an extended JSON with the express intent of conveying common extended values and rich objects: DateTime instants (with calendar system & timezone), Decimal, BigInt, etc.


I disagree: this is not unlike including the schema in the JSON itself. This should be handled by the apps themselves, since they would have to know what the keys mean regardless.

If you do want the interchange format to be the one deserializing into specific runtime data structures, use YAML. YAML's tag syntax allows you to run arbitrary code inside YAML, which can be used for what you want.


I'm not talking about something arbitrarily extensible or compound values like vectors or lat/lon. Just a few more common data types -- primitive-like values that frequently need to be passed around.

This would probably best exist as a well-known wrapper around JSON itself.


there are a zillion of these "json pro" kind of things: superjson, devalue, capnweb, all with slightly different ideas about how to lower high-level semantics to json's available types. it's so easy to do this kind of thing, its a real https://xkcd.com/927/ situation.

CBOR (Concise Binary Object Representation) has JSON-like semantics with type extension support; with built in type extensions its much easier to get some agreement about registering certain magic type IDs to mean certain things. for example from a random google search for "cbor datetime" https://j-richter.github.io/CBOR/date.html; there's an IANA registry of type IDs: https://www.iana.org/assignments/cbor-tags/cbor-tags.xhtml

however, it is binary.


Amazon ION is kind of this?

Few people seem to use it outside of Amazon tho


I think a more practical and compatible approach is to keep json as it is, and use a side channel (e.g. an openapi spec) to convey metadata. Then it is up to the client to decide that a date returned as a string is a date or string, or to create a specific class instead of a generic object


Updating JSON.parse() to automatically create Temporal objects (from what shape of JSON value?) without a custom reviver would be a step too far, in my opinion.

This is effectively no different from Date:

  serialize: date.toJSON()
  deserialize: new Date(jsonDate)
in Temporal:

  serialize: instant.toJSON()
  deserialize: Temporal.Instant.from(jsonDate)


GK Chesterton would have something brilliant to say about the inauthenticity of it all or something.


> My rule is that if it “compiles” in my brain as an understood idea then i accept it.

Unfortunately, individual people are not anywhere as reliable as a compiler for ensuring compliance to reality. We are particularly susceptible to flattery and other emotional manipulation, which LLMs frequently employ. This becomes particularly problematic when you ask for feedback on an idea.

In that case, a useful hack is to frame prompts as if you're an impartial observer and want help evaluating something, not as if the idea under evaluation is your own.


This is overstating it. Computers are amazing machines, and modern operating systems are also amazing. But even they cannot completely mask the downstream effects of poor quality code.

You say you don't care, but I bet you do when you're dealing with a problem caused by poor code quality or bad choices made by the developer.


Yep willing to bet that the majority of people saying "users don't care how well the code is written" will crash out when some software they're using is slow and buggy, even more extremely if it glitches and deletes their work.

Just like how most people don't care how well a bridge is designed... until it collapses.


yes, they will hit the TV or through the remote, or bang the mouse, or the box. I mean - if you tell me this is 'care', no... this is outrage, and it would probably not even be focused to one particular component.

and for what is worth - the reason of failure may not be because of particular nut, but the combination of them all.

the whole idea that most software is done in good faith is just plainly wrong, and most of the software we rely on a daily basis - all the enterprise bullshit - is very very very often not done in good faith, but rather just made, seamed, helped into some weird equilibrium of temporary performance.

perhaps hardware is done right more than software ever is.


My biggest gripes are around Spotlight. Have you ever tried to search for a file or or create a smart folder that works? These features are horrendous. And Cmd+Space [type app name] used to be a decent app launcher. These days I often find it sits and spins and I end up using the Finder and navigating to Applications -- and that's faster than Spotlight.

When I actually need to find a buried file, I drop into a terminal. Then I feel sorry for people who don't know how to do that.


I've never tried smart folders - I didn't know that feature existed.

Search is mostly ok for me.


> If you generate PDFs with headless browsers or HTML-to-PDF tools, you've accepted a compromise: heavy dependencies, memory leaks, and "approximate" layout that shifts across environments

Absolutely not true with Prince[0]. It's an HTML/CSS-based typesetter built by the creator of CSS (Håkon Wium Lie [1]) that is lightweight, cross-platform, requires no dependencies, has no memory leaks, is 100% consistent in its output, is fully compliant with the relevant standards, and has a lot of really great print-oriented features (like using CSS to control things like page headers/footers, numbering, etc.). Prince has been used to typeset a lot of different print output types, from posters to books to scientific papers. It's even a viable alternative to LaTex. I've used it in the past, and can attest that it is outstanding.

[0] https://www.princexml.com/

[1] https://en.wikipedia.org/wiki/H%C3%A5kon_Wium_Lie


Thanks for the correction. I'm actually not familiar with Prince, so I really can't tell.

To be clear, VMPrint isn't meant to compete with established engines like that. It’s just a genuinely helpful tool I built from scratch for the specific tasks I needed to accomplish because I couldn't find an alternative.

Prince looks powerful, but I have a feeling it probably wouldn't have been the right fit for my use case anyway.


Prince starts at 2k. This is OSS


Weasyprint [0] is OSS and supports CSS Paged media. I’m not actually sure why you’d ever use something like this project (or headless chrome for that matter, maybe you need some automated login as well?) which doesn’t.

print-css.rock [1] has a good overview of available tools and their features.

[0]: https://github.com/Kozea/WeasyPrint

[1]: https://print-css.rocks/


Because CSS is exactly what I wanted to avoid. I just needed predictable pager layout, and I didn't want to wrestle with CSS. Besides, this thing's tiny size allows it to run in a serverless function on the Edge, and that can be useful sometimes.


Why use HTML if you want to avoid CSS? HTML default styles only?


Who said I used HTML? It was impossible to write screenplay/manuscript in HTML and receive industry compliant outputs when printed/converted to PDF.


Sounds like you need Scrivener. It outputs industry standard formats for all kinds of manuscripts.


Its UI is too complicated for my taste. Besides, its screenplay support isn't perfect.


And Weasyprint does not have browser dependencies either, which is great.

Fun fact: I had to write a routine administrative letter for my parents in another country, I asked Claude to do so in PDF form so I could email it to them they would print it and mail it. The way it did so was to write a Python program using Weasyprint to generate the PDF...


For a personal desktop license, it's $495.

If you need something specific for a hosted service and aren't able to pay the full license fee, I can attest from personal experience that Håkon Wium Lie is very friendly and can probably work something out with you.


What does price have to do with anything.


This take lands for me. I'm a busy dad working a day job as a developer with a long backlog of side project ideas.

Hearing all the news of how good Claude Opus is getting, I fired it up with some agent orchestrator instruction files, babysat it off and on for a few days, and now have 3 projects making serious progress that used to be stale repos from a decade ago with only 1 or 2 commits.

On one of them, I had to feed Claude some research papers before it finally started making real headway and passing the benchmark tests I had it write.


Don't underestimate the power of LLMs to build targeted bespoke systems. I used to work on an internal QA team at a software company, and it quickly became the "internal web app" team after I built 2 web apps (to coordinate manual testing and handle the post-release fix approval process). I'd bet a lot of money that the team I was on is currently building a lot of new apps and features for internal use using Claude Opus or OpenAI Codex.

For companies that are willing to pay a few more developers, they can build some bespoke apps for internal use (if simple enough) to coordinate workflows.

Of course, highly complex, domain-specific software will never be dethroned. No one can build a Linux replacement with an LLM. Same for DaVinci Resolve, Apple Logic Pro, Pianoteq and ArcGIS. But glorified CRUD apps that handle basic workflows and integrations will likely be subject to losses on the low end, where a few devs and a Claude Code subscription can handle basic cases.


I very much wanted Google Wave to succeed. It seemed like a really cool way to communicate.

I guess we sort of got it with Slack though


I used and liked both wave and + and much prefered if we had them today instead of facebook, twitter, etc


i was obsessed with google wave... so cool


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: