Hey, congratulations on the launch. Just noticed a discrepancy in the financial 10K example:
There is a section near the start where there are 4 options: Large accelerated filer, Non-accelerated filer, Accelerated filer, or Smaller reporting company.
In this option, "Large accelerated filer" is checked on the PDF, but "Non-accelerated filer" is checked on the Markdown.
Strange that they chose to make it `a?["b"] = c;` rather than to use the same syntax as TypeScript (`a?.["b"] = c;`).
Honestly I like the C# better, and I was initially not super thrilled about the choice to include the period in the TS case, but since there is some overlap between the language design teams I assumed they would be the same.
Where is the dot coming from? If you know the dict is not null you would write a["b"], so it makes perfect sense that the new syntax is a?["b"]. The `?` applies to whatever is to the left of it. a?.Method() has a dot because we would write a.Method(). TypeScript designers made a mistake or had other constraints probably.
This format, or similar formats, seem to be the standard now, I was just reading the "Lessons from Building Manus"[1] post and they discuss the Hermes Format[2] which seems similar in terms of being pseudo-xml.
My initial thought was how hacky the whole thing feels, but then the fact that it works and gives rise to complex behaviour (like coercing specific tool selection in the Manus post) is quite simple and elegant.
Also as an aside, it is good that it appears that each standard tag is a single token in the OpenAI repo.
This looks promising! One of the important aspects of protocol buffers, avro etc is how they deal with evolving schemas and backwards/forward compatibility. I don't see anything in the docs addressing that. Is it possible for old services to handle new payloads / new services to handle old payloads or do senders and receivers need to be rewritten each time the schema changes?
Good question! Compared to Protocol Buffers and Apache Avro, that each have their own specialised schema languages created by them, for them, JSON BinPack taps into the popular and industry-standard JSON Schema language.
That means that you can use any tooling/approach from the wide JSON Schema ecosystem to manage schema evolution. A popular one from the decentralised systems world is Cambria (https://www.inkandswitch.com/cambria/).
That said, I do recognise that schema evolution tech in the JSON Schema world is not as great as it should be. I'm a TSC member of JSON Schema and a few of us are definitely thinking hard on this problem too and trying to make it even better that the competition.
A lot of people already think about this problem with respect to API compatibility for REST services using the OpenAPI spec for example. It's possible to have a JSON Schema which is backwards compatible with previous versions. I'm not sure how backwards-compatible the resulting JSON BinPack schemas are however.
Great seeing you over here Michael :) For other people reading this thread, Michael and I are collaborating on a paper covering the schema compiler I've been working on for JSON BinPack. Funny coincidence!
Quick question: the NextJS demo seems to be doing auth on the client side which would result in a flicker on page load while it waits to see if the user is authenticated. Do you have a server friendly component in the react library? Other libraries (ex: auth0) have a special function which is deployed as a getServerSideProps function on each page, as well as an API route that handles auth requests.
Great point! Thanks for the observation. Unfortunately, at the moment, we only have the client-side handlers built, but we do plan to add support for server-side rendering in the authenticated state.
For now, you can use our `is_initializing` flag to wait until the authenticated state is fully loaded before completing the render in the browser. I realize that's not an optimal solution for this use case. We'll get there!
Why isn't the conversation more focused on Universal Basic Services than Universal Basic Income? I feel like it deincentivises inflation due to UBI, and incentivizes governmental optimization (if the goal is to provide everyone with food and housing, then you can optimize it, whereas just giving out money doesn't cause any optimizations to the services they will purchase).
Because convincing society to unhinge profit from living expenses is far more difficult of a prospect politically in this country than even handing people money directly.
Hey congratulations, I love the ease of use and the aesthetic of this app! A few suggestions to improve quality of life:
1. Add hotkeys for each tool
2. Make delete actually delete things rather than going "back" in the browser
3. Make escape return the user to the "move" tool
4. When you use the "add" tool and add something, the menu closes but the tool stays selected at which point clicking it again deselects it rather than reopening the menu
5. Don't export the "cursor" square when you export the diagram. Perhaps also an export to image rather than svg would be valuable for the kinds of purposes people would use this tool for
At the moment the tool looks great and gets the job done, but I find myself hitting a wall in terms of what I can do with it (mainly around those points I've mentioned).
Additionally, America's "left" is very much the same as Europe or Canada's center/right. The argument could be made that there is probably a more even distribution if you don't use America's right-weighted scale.
Wow, I was skeptical reading that title (and I'm a front end dev so I can only imagine what the usual React bashers would think), but this is really cool. It simplifies so many aspects of creating CLI apps by leveraging React's architecture.
There is a section near the start where there are 4 options: Large accelerated filer, Non-accelerated filer, Accelerated filer, or Smaller reporting company.
In this option, "Large accelerated filer" is checked on the PDF, but "Non-accelerated filer" is checked on the Markdown.