Ask HN: What are you working on? (February 2025)

261 points by david927 ↗ HN
What are you working on? Any new ideas that you're thinking about?

921 comments

[ 2.9 ms ] story [ 547 ms ] thread
Working on hal9.ai -- Long term, a Roblox for AI; short term, a Python customizable ChatGPT that is enterprise ready. Think of ChatGPT without the LLM and support for writing your own RAG.

https://github.com/hal9ai/hal9

(comment deleted)
A tool for building WCAG accessible Tailwind-like color palettes for UI/web design. :)

https://www.inclusivecolors.com/

> Instead of only working with a handful of colors, you can create a whole palette of swatches at the same time so you can see if they look good together.

> Precise control of every shades/tints in each swatch rather than being limited by autogenerated colors.

> See which color pairs contrast as you edit so you can create a palette with built-in WCAG accessibility. This way you can plan in advance which foreground colors (for headings, body text, form fields and so on) should contrast on which background colors, so you can avoid running into surprise low contrast issues later when designing.

Responding to some feedback I got: I need to add better UI feedback for this, but you can drag whole hue/saturation/lightness curves if you click/drag between points on the curves.

Feel free to message me if you've got any tricky or tedious problems to do with creating color palettes that extra tooling like this might help with! I have more feature ideas but I want to understand more what others need.

I'm planning to write some articles for giving a more intuitive sense about WCAG color contrast rules and picking accessible colors too. From working with designers, I find many give up here because it takes a while to get your head around and it's often not obvious how to fix designs with failing contrast.

Tried it out on mobile and thought the site had broken the back button. Turned out to just be a history entry for every click/drag (which grows quite quickly). I found that quite off-putting but maybe that's a bit like an "undo" in this context...?

Either way, I didn't appreciate the 100+ entries in my history.

Oops, that should be it fixed. Desktop version has more features by the way, the mobile version is more of a preview.
OnlineOrNot as always, coming up to 4 years in operation (https://onlineornot.com)

Currently working on adding webhook notifications for status pages.

Some of your screenshots are cut off on mobile (iPhone/safari/portrait)
Hey thanks for letting me know!
django-simple-deploy, a tool for making your initial Django deployment easier across a variety of platforms. It's plugin-based, so it should cover a growing set of platforms and deployment approaches. I just made the 1.0 release this month.

https://django-simple-deploy.readthedocs.io/en/latest/

A C-based graphics engine/raycasting engine to make 90's games like Wolfenstein3D (1992) - but on a never-before seen scale.

The scale is RNG worlds like Minecraft. I've never seen that before with a Raycaster.

Here is my progress so far (I've had a month break)

https://github.com/con-dog/chunked-z-level-raycaster/blob/ma...

Not for profit, just for fun and exploration

Wow, this is really cool. Do you take inspiration from or have you looked at the original Wolfenstein3D code?

https://github.com/id-Software/wolf3d

Thanks I appreciate that! Love getting feedback :)

Code-wise I didn't take inspiration from anywhere, I followed "C Programming - A Modern Approach" and based my C knowledge off there. There was also a YouTube video I watched regarding raycasting, and watching people optimise Minecraft etc.

Other than that, its just been alot of trial and error and trying many, many different ideas out.

What has helped is I don't worry about cross-platform ability, I just implement what I want and what feels fun and "innovative".

But I have never seen anyone do a Raycaster with as many vertical/z-levels as I'm planning (1000's), maybe the most I've seen is ~10.

Also most of the approach I'm taking is not best-practice, I'm trying to come up with how to approach everything from my own mind which has been extremely rewarding

Also I’m a terrible developer, so if I can do it and have a lot of fun, I think anyone can do it :)

I spent almost 8hours a day over the course of a month working on and off on the project.

Did give me tunnel vision but, no regrets

Continued working with my team to grow my granddaughter who at 15 months handles a spoon and fork to feed herself at each meal; drinks from a cup without assistance; can clean her face and understand everything she is told or asked (though sometimes with a devious smile makes what an adult might consider a poor choice.... She is testing her boundaries like she is supposed to do). I have learned how to and produced 6 different embroidery patterns on various pieces of infant clothing. I combined multiple web based directions to create a Wi-Fi enabled USB (from a raspberry pi W 2) to enable a link from my computer to my embroidery machine. I made cookies and shared them with others creating a lot of joy I'm visiting with my grandson in another state, modeling good parenting and offering help where I can.
[flagged]
An absolute word salad. Dead internet theory
"being a grand dad"

is his answer. and he colored it. it's not that deep so as to upset you. darklake just practicing his creative writing.

Her answer - the poster can be female.
Colored it a corporate beige.

Who the heck is so brain broken as to talk about their grandchild as a startup project and their family as a frigging team.

I have to almost need to see this as AI in order to maintain sanity because there’s no way an actual human being talked about a child—their human grandchild like he was a product.

You’re calling someone “brain broken” for writing a comment in a cute manner to make it sound like product development. It’s time to take a step back and relax.
you're telling on yourself, highlighting that you're so humorless that you couldn't tell it was an intentional parody of corporate double speak, contrasting one of the most human experiences with one of the least human. It's ironic that you tried to call him brain broken lol
You're telling on yourself by admitting to, apparently, not considering that I COULD tell it was intentional parody, found the ironic humor in it, and STILL found it tasteless enough to call them out for talking about a child like they're a product.
It's clearly a joke. You've never heard people make corporate inspired comments about normal activities? Never had friends talk about sending them a calendar invite for dinner?
I don't talk about spending time with my children, friends, and family like they're a job, no.

Is it that much work in your mind to be social with the people you care about or are you just unable to drop the corpo think at home?

At first I thought it was meant to be funny but yeah, this has to be some AI slop surely.
Nah, no shade on the poster but AI slop would be better written, more saccharine and emphatic. You have to provide an AI generator very specific writing style prompts to come up with the same thing.
No, this is what Actual Life looks like once you get past 30.
> No, this is what Actual Life looks like once you get past 30.

This made me chuckle.

GP inserted single new lines instead of double ones.
Good job! You sound like a great grand parent and your grand child sounds like they're doing really well too.
A merge conflict resolution tool for git/github. It is very alpha at the moment (https://codeinput.com) but my timeline is to go live on the next 3 months. Feel free to reach out if this of interest.
Working on my mobile semi-idle MMORPG for parents like myself. With the artstyle of 1980s/syntwave/cassette-futurism. Just finished the website over the weekend: https://afterglow-game.com/
Why for parents
Well... in general for busy people who don't have much free time anymore. Not strictly for parents
a self organizing scrapbook! focused on zero stress for storage, searching, synthesizing and sharing a personal library

https://yourcommonbase.com/

(and some philosophy on the subject :))

https://www.bramadams.dev/tag/personal-library-science/

That sounds interesting, I might give it a try. Do you plan to allow plugins for domain-specific development ?
thank you, i appreciate it! yes, the software is api first, and much of it’s utility comes from working in other environments like google docs, ios shortcuts, etc..

in essence, the core of the project is a vector database that works for end users who want no fuss quick capture, semantic and fts search, the ability to create new relationships with marginalia.

im not trying to replace tools like obsidian or notion, i think ycb works better with them doing what they do best! i also plan to make the stack self hostable in the near future :)

Self-hosted notion replacement would be amazing, I hope you succeed !
I'm building an interactive, web-based Python tutorial site intended to help with learning basic syntax. Originally it was for my kids who wanted to learn to code, but... might be useful to others.

https://learnpy.dev

The content needs some work, but I'm pretty happy with the framework / UX. I would love to get any feedback from folks who check it out!

(The first section is just multi-guess questions as part of the introductory content. Try any other section to get the full in-browser-code-execution experience, which uses client-side Pyodide under the hood.)

the navigation buttons should be at the bottom, because that's where you are when you finish a question. or maybe a "next" button that only shows up when a question is answered correctly.

content wise, i found the first lesson to dry. i'd rather start with something interactive, and explain necessary concepts along the way. the print lesson introduces the separator feature which is rather rarely used and should only be introduced when there is a practical need for it.

A tool to interact with news using ML and AI. Kinda like an rss reader but with less focus on organizing news at the feed level.
A platform for technical founders to accelerate their journey to PMF http://buildrappo.com/founders
I’ve faced this challenge multiple times in my journey of building products and startups—having an early champion onboarded as a design partner while the team builds is critical to a startup’s success.
A parser combinator library. I'm writing a tool that will do static analysis of SQL (in a very limited fashion, it's a build tool and not a static analyzer, but I need to understand dependency relationships between statements). I started out using `nom`, but found it imperfectly matched to my needs (underpowered in areas I desired and overpowered in areas I didn't need for my project). `nom 8` came out with some interesting simplifications, but it happened to break my code in a way that would be awkward to fix. So I bit the bullet and started writing my own library.

My library is specialized for parsing text. That had enabled some cool capabilities.

It comes with a `Span` primitive, which tracks where in a file a token came from, for implementing error messages. A `Span` can be the input or the output of a parser. At the front end a `Span` is an entire file, and as you slice and dice it, it tracks the metadata of where it came from.

Along with the standard `Sequence` (combining parsers in a set order) and `Choice` operations (branching between many parsers) that parser combinators are built around, I have come up two operations that are very handy. I suspect that others have made them before, they are both patterns I used in `nom`. (I've also only skimmed the original paper, they could be in there and I didn't see them.)

One of them is called `Compose`. As an alternative to a `Sequence`, instead of a group of parsers consuming the input in order, the first parser consumes the input, and the subsequent parsers consume the return of the previous parser. This is useful for instance when implementing escapable strings; the first parser grabs the entire string, the second one transforms escape sequences. (There is a mechanism for transforming the content of a `Span` while retaining it's metadata.)

The other is called `Fuse`. This is a small twist on `Sequence`, where after matching the parsers in order, the result is all concatenated together into a single token. This is useful for a "pattern matching" primitive, where you want to find a series of tokens in order, but you don't want to split them into different tokens, you want them all together.

It's been a wild ride, there's been a lot of thorny issues. I often think I should've just stuck with `nom 7` instead of shaving this yak. But I've learned a whole lot about writing especially abstract/DSL-yy Rust by combining tuples, traits, and declarative macros. There are also other programming language projects I'd like to pursue, and it will be nice to have a tailor fit tool for parsing text.

Special thanks to dtolnay's `paste,` the real MVP.

>A parser combinator library.

Cool. I got interested in this subject recently. Have been checking out some text articles and videos about it. Unfortunately there is not much info available (and some of it is advanced stuff), or at least I couldn't find much, so far.

I am working on a library, which is not exactly a parser combinator one, but borrows some of those ideas, for use in other projects.

>One of them is called `Compose`.

About the escapable strings example: can you not just rescan the string for the escape sequences, after grabbing the full string?

> Unfortunately there is not much info available [.]

Parser combinators are a bit hard to get into, the most helpful resource for me was `nom`'s "Choosing a Combinator" document [1], which is dense but gives you an overview of all the Lego bricks which you can then start imagining how to fit together.

I've not really read it, but there's also the original paper on the subject [2] (as linked to by the `parsec` documentation [3]) which describes the nuts and bolts theory behind it.

> [Can] you not just rescan the string for the escape sequences, after grabbing the full string?

Absolutely, this is just a convenience around that pattern that allows you to express that like:

    let string = quoted_string.then(escaped(json_string_escapes)).parse(&input)?;
Where `escaped` does the rescanning using the parser `json_string_escapes` (which consumes all the input up to the next escape, if it doesn't start with an escape sequence, or else consumes an escape sequence and returns the transformed text - this API is a little awkward, it may change).

And also more generally for any parsers `foo`, `bar`, and `baz` as:

    let quux = (foo, bar, baz).map().parse(&input)?;
[1] https://github.com/rust-bakery/nom/blob/main/doc/choosing_a_...

[2] https://web.archive.org/web/20140528151730/http://legacy.cs....

[3] https://hackage.haskell.org/package/parsec

Thanks for the reply. I will check out those links.
I’m working on a cross-platform fast multithreaded HTTP / FTP downloader that will download much more quickly than other clients like FileZilla, hash check files, perform follow up operations (like extracting RARs or deleting files on the remote,) and have a nice graphical UI that runs in the browser and allows local/remote/cloud control. It’s early (started last week) so there’s not much done yet, but if you’re interested, would love a star or watch: https://github.com/lukevp/Speedful
Back on dial up we used browser plugin (or even separate windows app) download managers which did a lot of that
Firefly is a typed full stack programming language:

- object capabilities

- implicit async/await

- immutable collections

https://www.firefly-lang.org/

It's small and (hopefully) fun, and quite usable already. If you try it out, please share your thoughts!

Looks fascinating! RPC looks interesting. Tasteful website!

Slight typo: search for "NodeSytem" on your home page.

Trying to keep a computational epidemiology research group going in the teeth of the CDC, NSF and NIH being absolutely gutted.
Im making an orthodox file manager with vim-ish interactions. In rust with iced-rs.