Top
Best
New

Posted by david927 6/29/2025

Ask HN: What Are You Working On? (June 2025)

What are you working on? Any new ideas which you're thinking about?
439 points | 1401 commentspage 4
ashdnazg 6/29/2025|
I'm writing a decompiler for Turbo Pascal 3.0, to reverse engineer an educational game from the 80s.

Since TP 3.0 does no optimisations, and looking at the progress so far (~25% decompiled), it seems like matching decompilation should be achievable.

If/when I get to 100%, I hope to make the process of annotating the result (Func13_var_2_2 is hardly an informative variable name) into a community project.

simmons 6/29/2025||
Neat! I sometimes play around with the idea of reverse engineering and transcompiling a tiny game that I think was probably written in Turbo Pascal 4.0. Maybe 4.0 supported optimizations, but this program seems to have been compiled in a debug mode. (At least, it seems to have no optimization, and has the default {$S+} stack overflow checking at the start of every function.) The lack of optimization makes it (and perhaps other programs written in Turbo Pascal) a really attractive artifact to experiment with transcompiling. When I realized that only the first segment was the actual game, and the other three segments corresponded to standard units used for I/O (etc.), which could be harder to analyze, I realized I could just omit those segments and replace them with new functions suitable for the transcompilation target. Maybe some day I'll get around to finishing it.

Good luck!

ashdnazg 6/30/2025|||
Thank you!

It's similar with Turbo Pascal 3.0, but there's only one segment since it's a good old COM file. The compiler just copies its own first ~10000 bytes, comprising the standard library, and splices the compiled result to the end.

I can see how this makes transcompilation relatively straightforward, although the real mode 16-bit code is a bit unpleasant with all the segment stuff going on, so you might as well just decompile :D. It's very possible that similar instructions will be emitted in 3.0 and 4.0 for the same source input.

My program also has the stack checking calls everywhere before calling functions. I think that people using Pascal weren't worried about performance that much to begin with, so they didn't bother disabling it.

pwnmonkey 6/29/2025||
Sounds cool, what game?
ashdnazg 6/30/2025||
A bit of a niche game: https://www.mobygames.com/game/63804/socher-hayam/

Although it has cult status in Israel for some reason.

fxtentacle 6/29/2025||
I went Yak shaving.

For my 3D audio project I need an affordable way to make plastic cases. I felt like injection molding services are way overpriced, so I decided to make the molds in-house. Turns out, CNC milling is overpriced, too. As are 5 axis CNC mills. So in the end, we built our own CNC machine.

And like these things always go, I found an EMI issue with my power supply and a USB compliance bug in the off-the-shelf stepper control board. But it all turned out OK in the end so we now have the first mold tool that was designed and machined fully in-house. And I learned so much about tool paths and drill bits. Plus it feels like now that everyone has experienced hands-on how stuff is milled, my team got a lot better at designing things for cheap manufacturing.

cellular 6/30/2025||
Great to get experience in CNC! I've been working on how to market my GatorCAM for CNC. So I'll give you a copy! 2 birds!

It is easy to select multiple holes/pockets at once so if you iterate, you don't spend time redoing CAM! It does traveling salesman to solve for efficient paths which even the expensive packages don't get right. Calculates v-bit paths too.

On me: https://sites.google.com/view/gatorcam/home

fxtentacle 7/1/2025||
That looks great for 2D engraving setups. Or for cutting parts out of sheet wood/plastic/metal. But based on the videos, I don't think this is suitable for 5-axis milling yet.

Also, in the video where you cut out the circular logo coin:

https://youtu.be/mGd7EIkCK3g?feature=shared&t=108

it looks to me like you're using a metal cutter bit (with corncob grinding surface) on wood. You might get a lot less burr (that furry stuff on the sides of cuts) by using an asymmetric one-blade bit. They look weird, but they'll cut the wood fibers with a carbide blade instead of trying to rub them off with diamond fragments. You usually want separate tiny chips coming off the material. If it starts stringing - like in the video - then usually it's either the wrong bit or too fast spindle speed (and material melting rather than cutting).

cellular 7/2/2025|||
Correct. This is only for 3 axis milling.

I'll have to keep an eye out for a bit like that. I usually use my 30 cent eBay bits with blue tape to avoid the frizzies. But i didn't want to hide the workpiece with tape in the video.

Wood be good to not have frizzies in the demo videos!

cellular 7/2/2025|||
Btw fxtentacle...go grab a copy on me! Thanks for the kind word!
invalidator 6/29/2025|||
That's a pretty big yak to shave! Building a 5 axis that gives good results a big task. How long did it take you to get that working?

Why do you need to make so many molds?

rahimnathwani 6/30/2025|||
There was something in this video about not being able to get moulds made in America:

https://youtu.be/3ZTGwcHQfLY

fxtentacle 7/1/2025||
Yes, it's difficult to find someone with both the skills and the machinery. And contrary to software, bad g-code in a CNC mill can easily cause $100k+ in damages if, for example, the spindle head crashes into a solid steel block ... Which is why they will not let outsiders do the programming, even if you think you could do it.
hucklebuckle 6/30/2025|||
Got a link or blog we can check out?
tim-- 6/30/2025||
Yeah! I would absolutely love to see a write up about this too!
bix6 6/30/2025||
Would love to see your machine! Any pics or write up?
senko 6/29/2025||
* https://cijene.dev (HR, open source) - recently, Croatian retail chains were mandated to start publishing grocery prices online, but not how, so they made a mess of it; I've been building a crawler + unified API to avoid people duplicating the crawl/parse/cleanup effort (open source)

* https://trosko.hr (HR, Android/iOS app) - super-simple receipt/bill tracker (snap a photo of the receipt, reads it using Gemini, categorizes and stores locally - no accounts, no data gathering)

* https://github.com/senko/think (open source) - Python client library for LLMs (multiple providers, RAG, etc). I dislike the usual suspects (LangChain, LLamaIndex) but also don't want to tie myself to a specific provider, so chugging on my on lib for this.

invinciblycool 6/30/2025|
Have you tried BAML? https://github.com/BoundaryML/baml
senko 6/30/2025||
I haven't, thanks for the recommendation, will check it out!
pinkmuffinere 6/29/2025||
I just quit my "day job" to work on a business I've built with some good friends! We make stingray-resistant booties -- ie, if you encounter stingrays in the shallows, these greatly reduce the chance you get stung (https://mydragonskin.com/). I'll be in charge of a couple marketing efforts, helping with Youtube, and other odd things that come up!

My day job required me to go into office frequently, and I'm really feeling the reduced social connection of being fully remote in a small company. Any suggestions how to deal with this? I'm planning to reconnect with old friends, surf a lot, go rock climbing, and maybe take dance / music / other classes. Would also love if anyone wants to work together in the same place (library, coffee shop, etc). I'm in Escondido California, but happy to drive ~30 min to meet folks.

hall0ween 6/30/2025||
Classes and workshops, something with the same people that occurs over several weeks. But it’s important that the content is something you’re personally interested in.
bix6 6/30/2025|||
Legend!!! My buddy just got stung the other week.

Check out Eventship. Hussein is local to SD. You should also meet Fred for press.

I’ll try and remember about these in the winter. I need new booties anyways. How many mm? 2 plus 2 so 4?

https://eventship.com/

pinkmuffinere 6/30/2025||
Oooh thanks, will check it out!

Ya exactly, 2 layers of 2mm each, for a total of 4mm. They’re less warm than most 4mm booties would be though, because they’re intended for the protection. If you’re in SoCal that’s a feature — your feet should stay warm but not overheat :)

Dathuil 7/2/2025|||
Would this work for Weever fish? My father in law was stung while walking the beach last year in Portugal, and I've been looking for some sort of sea shoes to bring with us since
pinkmuffinere 7/4/2025|||
This is my first time hearing about weever fish! Reading about them online, my best guess is that yes, our booties probably would work for them! The mechanism is very similar to stingrays, and they are a similar size to the ones we test with (round rays, about dinner plate size). To be clear, we haven’t explicitly tested with weever fish, so it is just my best guess.
tiagod 7/2/2025|||
Portuguese here, I know people that wear Crocs for that reason.

I have been lucky and haven't been stung in 30yrs of going to the beach here. As far as I know it's a bigger danger when the water is warm, but this might be just a myth.

the_arun 6/30/2025||
But you could use this boot anywhere you see sharp objects, right? Need not be stingray. Assuming this is the first use case, wish you all the best!
pinkmuffinere 6/30/2025||
It will help, but the bootie really is fine-tuned to stingrays, in some ways that might not be obvious. Stingrays strike with limited strength, so we measured tons of stingray strikes and designed to stop that. It won’t do much if you put all your weight onto a nail or something.

But if you want a balance of flexibility and stopping stingray stings, we really are the best. Nobody else is even trying, lol, the other options pretty much do nothing, or are encased in steel and not flexible at all.

wtf242 6/30/2025||
Still working on my books site https://thegreatestbooks.org that I started in 2008. It's been a 1 man team the entire time. I recently made some major algorithm changes that I think greatly improves the rankings. My algorithm code is open source https://github.com/ssherman/weighted_list_rank

I do plan on open sourcing more of the code over time. I also have started working on other sites using the same algorithm implementation (music, movies, video games)

This has just been a side project over the year generating passive income. I get around 250,000 page views a day, and with ads, memberships, and affiliate links I make around $2,500~ a month.

Tech stack is ruby on rails 8, postgresql 17, opensearch, redis, bootstrap 5.3 hosting on 3 servers on linode.

poloo 6/30/2025||
Ho, so you're the one that created that website. When I wanted to start reading more and I did not know where to begin, I found this site and started reading stuff from the top. It was incredibly useful to me, thanks!
tderflinger 6/30/2025|||
I like the idea of a books list. This gives me new inspiration for books that I could read. Other languages like Spanish and French would also be great. :)
Renevith 6/30/2025|||
Nice! I've been looking for a reliable book ranking site. The main rankings skew to the "classics" that don't always hold up (looking at you Moby Dick) but the books in the genre filters look more interesting.

A couple questions:

* Is this primarily intended for discovering new reads, or for people who've already read the books to debate which is greatest? I found the book descriptions sometimes give away too much, to the point where I stopped reading them for any book I might be interested in reading for pleasure. Examples include The Great Gatsby and Madame Bovary. Perhaps you could have a concise description that stays far away from plot points, and a more expanded description behind a "more" link.

* What dictates whether a series has one place on the list or separate places? Narnia has one for the whole series but Harry Potter has individual listings per book.

* Are ratings and reviews from your own site taken into account in the rankings?

wtf242 6/30/2025||
I think it's most useful for discovering new reads, especially with the advanced search and recommendations functionality. I do agree i could do a better job of non spoiler summaries. good idea

- Series have always been a problem. Some book lists will include the entire series, and then some will have individual books. If the series is sold as a single book I'll often just include that. Like Lord of the Rings. Sometimes I will include only the first book in the series on a list, to prevent always adding every single book in a series when a list mentions "harry potter series".

basically I don't have a perfect way of handling series'

for the last point, kind of. If you add a book to the default "My Favorite Books" user list, it gets aggregated and used for this book list which is included in the rankings. https://thegreatestbooks.org/lists/463

jll29 6/30/2025||
Great idea, great site.
neya 6/30/2025||
I'm building (and have been for the last few years) an open source high-performance Wordpress alternative on Elixir. It aims to achieve 1:1 feature parity. One thing that Wordpress has built up over the years that will take a little long for me is the plugins eco-system. But, other than that, I think everything else should be on par. IF you're an enterprise, you should easily see over 30-40% in server costs just by switching from Wordpress. This has been tested and proven with one of our enterprise clients who just recorded 500 million requests on a fork of the CMS.

But, I'm determined to see its completion even if there is just one user. I didn't take the Wordpress fiasco and how they handled it, lightly at all and it only fueled my motivation even more. ETA is by end of this year right on time for Christmas.

If you'd like to read more, here's an article about my CMS: https://medium.com/creativefoundry/what-i-learned-as-an-arti...

If you'd like to get Beta access, my email is listed in my profile.

ralphc 6/30/2025|
I don't know if Wordpress has any kind of customizability or scripting, but it's now possible to add Lua scripting, natively, to an Elixir application. If that's handy it's something to consider.

https://news.ycombinator.com/item?id=43972485

TheHideout 6/29/2025||
I made the same little Roguelike game with Raylib in Odin, C3, and FreeBASIC over the last few weeks. [0] [1] [2]

I started on a Zig one and nope'd right on out of that after a few hours of fighting the compiler.

I'm currently working on porting a bunch of my Rust mini-games to other languages. [3]

[0] https://github.com/Syn-Nine/odin-mini-games/tree/main/2d-gam...

[1] https://github.com/Syn-Nine/c3-mini-games/tree/main/2d-games...

[2] https://github.com/Syn-Nine/freebasic-mini-games/tree/main/2...

[3] https://github.com/Syn-Nine/rust-mini-games/tree/main/2d-gam...

mohas 6/30/2025|
why were you not satisfied with rust for game programming?
TheHideout 7/1/2025||
I probably put down at least 100k lines of Rust and made 15 games of varying sizes from small jam games to much larger ones [0], [1].

It seems like everyone just wants to make the next big popular engine with Rust because it's "safe", and few people really want to make actual games.

I also felt like prototyping ideas was too slow because of all the frequent manual casting between types (very frequent in game code to mix lots of ints and floats, especially in procedural generation).

In the end... it just wasn't fun, and was hard to tune game-feel and mechanics because the ideation iteration loop was slow and painful.

Don't get me wrong, I love the language syntax and the concept. It's just really not enjoyable to write games in it for me...

[0] https://github.com/Syn-Nine/galaxion-trade-empire

[1] https://github.com/Syn-Nine/mirrorb

garyrob 6/30/2025||
I am implementing a single Rust process to which you can connect a zero-knowledge proof of identity, such as can be created with ZKPassword from a physical passport. Each user ends up with a keypair which is:

1) Highly Sybil resistant. Neither the keypair owner nor anyone else can re-use the same underlying ID to link to another keypair.

2) Very high anonymity. While the Sybil resistance requires a nullifier representing the underlying ID to be present in a database (or stored in a public, decentralized form for blockchain use), there is no way to connect that nullifier with the keypair. Even if someone were to use brute force to successfully connect the nullifier with a specific underlying ID, such as a passport, there is no way to connect that ID with the keypair. (In the passport case, even merely brute-forcing the nullifier could only be done by the issuing government, someone who has hacked the government database, or someone with physical access to the passport. This is due to the fact that other passport information than the passport number is included in generating the underlying zero-knowledge proof.)

I understand that other technologies may have similar end-functionality, but this has the advantage that most of the functionality is encapsulated in a single Rust executable that could be easily used in any context, whether distributed or decentralized. (If anyone would like to know more, my contact info is at garyrobinson.net.)

pilingual 6/30/2025|
The rust binary is great, but the underlying zk technology itself desperately needs to be sold to those dealing with things like passports.

In fact, now that I think about it, zk-proof identity will be required in the near future since so many poorly run organizations are leaking ID documents.

ajd555 6/30/2025||
I've been working on a fully electric last-mile delivery company: https://hudsonshipping.co

Beyond the landing page (built with Astro), I've been building all of the route optimization, the delivery and warehouse management systems. A combination of go and java has allowed me to write a few microservices in the past 6 months to handle all of my logistical processes, and I'm just testing the mobile app in the field as we speak! I hope to make some of the code open-source one day!

iamnotmeet 6/30/2025||
This is interesting! Have you considered leveraging Google OR Tools[1] for route optimization? At a previous hyper-local eCommerce startup I worked for, we used it to solve similar problems. Although the setup and integration is not super easy, but the results far outweighed the effort.

1 - https://github.com/google/or-tools

ajd555 6/30/2025||
I have considered it! I've opted for a more specialized optimization library that deals specifically in the Traveling Salesman Problem (https://github.com/graphhopper/jsprit). I will revisit this though, might come in handy pretty soon - thank you!
ag_rin 6/30/2025|||
This is a super cool intersection of real world problems and software. How hard has it been to get customers? I assume trust is a big hurdle here. How are you approaching this problem?
ajd555 6/30/2025||
Thank you! You've definitely identified the trickiest part, especially when you come in with a track record of, well...0 deliveries (I was in working in tech teams before this). Luckily, there are quite a few freight brokers in the NYC metro area, and they are willing to give you a trial period. Another way to approach is to work with smaller companies and offer discounts during the startup phase. (We're starting deliveries in August)
chrisgd 6/30/2025||
Sounds really great. Good luck
ajd555 6/30/2025||
Thank you, appreciate it!
softservo 6/30/2025|
I built a simple web app that helped make me more present during a family tragedy:

https://touchgrass.fm/

Brief backstory: While visiting us overseas, my in-laws were in a very bad car accident. Everyone involved is alive and going to be okay. But what followed was a series of emotional, physical and logistical challenges that pushed my wife and her parents to their limits.

During this time I found myself (shamefully) hiding on my phone. I was obsessively refreshing for updates from insurance/hospital teams, sending empty messages, and mindlessly scrolling feeds. My screen time was averaging 12 hours a day. Time I could have spent being fully present with my wife and her parents.

I finally accepted I have a serious phone addiction. I tried Apple Screen Time and a few popular screen time management apps, but found the blocks were too easy to bypass, and some apps were as useful as they were distracting depending on the context (e.g. YouTube). I didn’t necessarily want to use my phone less: it’s an incredibly useful tool, and the distractions were sometimes helpful.

What I really needed was intentional stretches of time spent away from my phone. I built touchgrass.fm as a simple way to record and incentivize those stretches of time. It’s not quite finished, but it’s been helping me stay present for hospital visits, meals and important conversations.

stripekit 6/30/2025|
That's a really cool idea!
More comments...