HN user

dwilding

42 karma

Occasional hacker. Currently building a lightweight, privacy focused task manager - https://frogtab.com

GitHub: https://github.com/dwilding

Dev blog: https://maybecoding.bearblog.dev

Unused project domains looking for a good home: viewfinder.dev, upriver.app. Contact me through my blog if interested (I'm not looking to sell the domains)

Posts7
Comments29
View on HN

Thanks! Earlier in the project I tried to find a way to generate English but with Chinese grammar - something like “you need to grab your shoelaces and tie them well” - as a way to help memorize grammatical structures. But I didn’t get very far with that. For one reason, I couldn’t coax an LLM to output such unnatural English (!)

So in the end I decided that I can ask GPT-4 to explain alternative structures based on the translation I get

Ideally, I would like to find a reliable way to directly transform my first attempt at an expression into a native-level expression, without necessary routing via English. It didn’t seem doable with the LLMs I tried so far, but there are others I can try, and maybe some training would help too - as you say

I use GPT-4 for this kind of exposition too. If you haven’t come across Pleco [1] yet, I can highly recommend it. It’s a high quality Chinese-English dictionary with a lot of helpful features for reading Chinese

One feature I use a lot is the clipboard reader, which lets you step through Chinese text character by character and shows you the meaning of each character. It can be faster than using an LLM, but you don’t get the whole-sentence meaning or the ability to ask follow-up questions like you can with an LLM. But it’s a great app all round (some features are paid)

[1] https://www.pleco.com/

Happy to share, thanks!

I also use GPT-4 for explaining the meaning of sentences in more detail (as in JimDabell’s comment). Often my questions are like “how would a native speaker say this colloquially” - I’ve found it really valuable to be able to have a back-and-forth on why something works the way it does

Just for fun, I’m trying to force it to misinterpret what I’m saying by changing “dei tie” to “di tie” (as in subway). It really doesn’t want to interpret it differently! I think “shoelaces” must be such a strong signal of context for the LLM

After working on this project, I’ve started using MS translate as my go-to app if I want to translate an existing sentence. Previously I tended to use Google Translate by default. But I’ve genuinely been surprised by the differences between the apps

I have seen some variation in the interpretation - although it does seem to be pretty consistent. When I enter “服了u” into unscrambler I get the interpretation “I give up” every time I try it

Thanks for the kind words!

I’ve found it very helpful for staying in the zone and getting better at “thinking” in Chinese

If you start learning Chinese again in the future, I hope you find it useful too!

I agree, this opens up really interesting possibilities.

Here's my understanding of how it works, based on the puter.js docs [1]:

If I'm developing a frontend app that could benefit from cloud storage, I can load in puter.js as my "backend". I don't need to worry about user auth because puter.js will automatically ask the user to create an account or log in. I also don't need to worry about managing & paying for cloud storage because puter.js will take care of that on a user-by-user basis - including asking the user for payment if they go over their free limits.

I haven't actually used puter.js yet. But if I understand correctly, this could be a really powerful model. As the developer of a niche app whose purpose is not to bring in revenue, puter.js seems like a very reasonable way to pass on cloud storage costs to end users, while also reducing development effort!

[1] https://docs.puter.com/

Your app is awesome, it's just so satisfying to use. Really fantastic job!

My two cents on block insertion: Personally, I would love if Cmd+Enter inserts a new block at the very top

For inserting a new block in sequence, I feel like Cmd+Shift+Enter (splitting the current block) might already be enough - but I obviously haven't used heynote for long enough to have a very informed opinion on this :)

Maybe there's some way to make the behavior configurable?

Several years ago I hacked together a little tool for exploring integer sequences that can be generated via matrix-vector products:

http://dpw.me/clear-the-deck/

Sadly it's not as functional as it once was (sequences are supposed to continue generating as you scroll down the page). If anyone's interested in lending a hand to get it working properly again, I'd love to hear from you! My email is in my profile.

I think you mentioned in the podcast that managing integrations is one of the toughest parts of your whole operation. (Apologies if I am misrepresentating what you said.) I can 100% believe that embracing failure is the only realistic way to handle this at scale.

But as someone responsible for producing API docs, it really pains me to say this! I know my team goes to great lengths to ensure that our API docs are up to date; we even maintain a changelog of every single doc modification, in large part because we have people integrating directly with our Swagger/OpenAPI based docs.

After a bit of Googling, it looks like CluedIn has an integration with us (Zuora). In case it can help you in any way, our changelog is available at [0].

Full disclosure: I work at Zuora, but am speaking for myself only.

[0] https://community.zuora.com/t5/Developers/API-Changelog/gpm-...

Just what I was thinking!

I find things like this fascinating. Ever since discovering quines, I've thought that it would be neat to use some kind of quine as humanity's radio "calling card" in space. As a puzzle/joke for other beings to enjoy.

Just for fun I've mocked up what such a message could look like [0]. I'm not convinced it totally works... But in any case, I'd thoroughly recommend checking out the inspiration [1] if you haven't seen it already.

[0] https://firstcontact.space

[1] https://research.swtch.com/zip

From the post:

Originating in simple blog engines, static site generators treat pages as a single content chunk (often in Markdown) with some metadata sprinkled on top. If you need several long chunks of content (say, a product short description, long description, technical specs, and a list of vendors), you’re out of luck.

I've struggled with this too. I'd really like to write in unadorned Markdown, because I'm using Trello as a headless CMS[0], but I also want the Markdown to map to an object containing discrete chunks of content.

The solution I settled on is to map level 1 headings to separate properties. The content that follows each level 1 heading is converted to HTML and becomes the value of the corresponding property - unless the content is a code block, in which case the code block is parsed as YAML to get a nested object instead of HTML.

[0] https://github.com/dwilding/trello-kb

Sure. For me, the features of StdLib that make it great for building a public-facing service are:

- I can use my own domain for my service, with the request path mapping neatly onto different functions within my service;

- I can leverage unauthenticated/authenticated requests to allow a certain number of "trial" calls, with users charged a small fee for additional calls.

Something that I think could be a bit clearer would be how to tell from within a service whether a request was authenticated. From reading the docs, I figured the way to do this is to ask for user fields in package.json, then check for user data in the calling context. If this isn't the best way, please let me know!

The reason I'm also using Webtask at the moment is that it's free to set up scheduled jobs. I think that my use case makes this more of a significant concern than it ought to be, so I've dropped you an email to dig into what I'm doing.

Hope this feeeback is helpful!

I'm building the API for my side project on StdLib, and the experience has been great so far, for many of the reasons you mention - so thank you!

For comparison, I'm also building part of the backend on Webtask [1], which provides similar functionality to StdLib (i.e., serverless Node.js functions). Webtask is also very nice to use, but I find StdLib more suited to shipping a public-facing service.

[1] https://webtask.io/

For my side project, I've been coming at essentially the same problem from the CMS angle. n:point is very neat by the way - great job!

I'm building a service that makes it possible to quickly create reusable content objects using Trello. The flow is: you write your content objects as cards in Trello, then you hit my service to get an array of self-contained JSON objects.

In terms of monetization, I'm building the service on stdlib.com. This means that I can charge a very small fee for each API request. (My service is not intended to be called from front end code.) Each user will also have an allowance of free calls. And I've already open-sourced the core functionality [1]. Definitely open to suggestions on this approach, though.

I keep thinking about adding support for schema validation. Your project has given me more to think about on that front! However, my immediate goal is to get the MVP ready to share.

Right now the MVP is live, but the landing page is not done yet. Feel free to get in touch if you're interested in more details - my email is in my profile.

[1] https://github.com/dwilding/trello-kb