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

Python has a much more mature ecosystem than Rust, especially for AI/ML stuff. I ran into a rust crate that purported to do a certain ML algorithm but did not do it correctly. I managed to write a replacement with Claude though.

I do think enforcing correctness at the type system level is a good idea for AI, which is why I often choose languages like C# and Rust over Python. However, for some things Python is definitely the correct tool for the job.


I almost always pick Rust. Recently I wrote a plugin for something that was written in Go. I could have used Rust, but Go for one felt right because if the thing turned out well, others would surely find more value in having one toolchain.

The main reason is that you’re capable of reading it if you need to. And the recipient ecosystem expects a language. That’s why some data science communities pick R, MatLab, Julia, Python or Mojo not depending on what’s superior tech, but what their peers speak.


What peers are speaking Mojo? I’m not aware of any place it’s penetrated enough to be a “lingua Franca”


C# feels kinda nice because it's a good balance.

Very good static typing, Roslyn analyzers, good tooling and decent hot reload (for a compiled language), really good ORM (EF Core) that implements UoW and reduces a lot of the need for transaction management (simplifying the code), flexible enough and fast enough for various kinds of use cases.

Source generators are underrated as well since they can make the code very terse and legible by generating a lot of standard boilerplate.


I've written this before, but C# is a great language held back by its culture. I'd say that 80% of C# shops I've seen used it because they were started in the late 00s by some IT guy with a surplus HP server and a dream whose whole world was Microsoft products. They were staffed by people with little knowledge of OSS products who self-identify as ".NET developers" instead of software engineers. Almost invariably they seem to have some gnarly legacy monolith that everybody is slowly chipping away at while old-timers continue deploying .NET services to IIS running on Azure VMs because it's a small evolution of what they've been doing for the better part of 20 years.

In the interest of fairness the San Francisco version of this is also a thing: a giant, untyped ball of Rails spaghetti from the same period running on Heroku that everybody has Stockholm Syndrome'd their way into loving because of Ruby's elegance and beauty. The burden is merely shifted from a large Microsoft to a series of small SaaS companies :-)

Exceptions to this rule exist (hence my "80%") and modern .NET is lovely but it seems that the non-Java/Python mindshare is now taken up by the Golangs and Rusts of the world. It's a true shame since I do love C# for basically being a better Java.


Hmm, I am working on C# microservices based apps since 6 years ago. And I always deployed on cloud using Linux, usually in Kubernetes. I used Google Cloud and AWS beside Azure.

The whole stack is open source, Kubernetes, Docker, Hashicorp tools, Postgres, Redis, MongoDB, RabbitMQ, NATS, Kafka, Prometheus, Elastic Search, Kibana, Grafana and so on and so forth.


>C# feels kinda nice because it's a good balance.

From my experience it's awesome to write C# with AI. But both Opus and GLM usually one shot the modification to the file so I didn't experienced cases lately where AI had to fix compile errors. True, I gave the AI agents the lsp for C#, so maybe that helps.


Yeah C# is fantastic. I also love EF.

I stopped using it because overall it feels like Microsoft has lost the plot with .NET.


What I hate about .NET is the atrocious naming.

Net Core, Net Framework, Net Common Core, .NET..

And God forbid any of these frameworks ever expose what they are in a config file. You start a project, hand it to a colleague and he can't figure out whether it's Framework or Core by looking at the files. You Google and are immediately bombarded by 15 year old threads.


If you start a project with .NET Framework in 2026, you're doing it wrong, plain and simple.

And the .csproj files do tell you which .NET they are.

<TargetFrameworkVersion>v4.</TargetFrameworkVersion> or <TargetFramework>net4</TargetFramework> is the old framework. Also, if the file is an unreadable mess listing all .cs files, it's generally .NET Framework.

<TargetFramework>netstandard2.0</TargetFramework> is .NET Standard 2.0, which means this library can be consumed from either Framework or modern .NET.

And finally, <TargetFramework>netX.0</TargetFramework> (X >= 5) is the modern .NET.


Forget about the old stuff; just use .NET 10.

It's really, really good now. DX is fantastic. Yes, the hot-reload will probably never match that of interpreted languages, but for a compiled language, it is good.

File-based apps are easy to get started with: https://learn.microsoft.com/en-us/dotnet/csharp/fundamentals...

EF is solid and proven. Easy, low-lift type safety end-to-end from DB up with very good perf.

Tooling is dead simple and consistent; `dotnet build`, `dotnet test`, `dotnet run`, `dotnet ef database update`, `dotnet ef migrations add`, `dotnet tool restore`. No mix of build tools and toolchains.


Never tried .NET 10 but hot-reload was garbage with .NET 9 and 8.

It failed very often and you had to manually restart the dev process. Even when it worked, it was no where as fast as eg using Bun with TS.

Also Minimal APIs didn't have feature parity vs MVC even 4 years after release which is quite frankly insane. I hear in .NET 10 they've finally added some validation. Not sure how it compares to something like FluentValidation which still is one of the most downloaded nuget packages.


    > It failed very often and you had to manually restart the dev process. Even when it worked, it was no where as fast as eg using Bun with TS
Really depends on what you're doing. For run of the mill APIs, it works pretty flawlessly with `--non-interactive` and just auto-restarts when it needs to, hot reloads when it can (again, I'm not comparing this to interpreted languages and runtimes; the constraints are just different).

I have a clip of this in action with .NET 9 generating OpenAPI contracts and TS bindings at the top of this README: https://github.com/CharlieDigital/dn9-openapi-codegen/blob/m...

    > Also Minimal APIs didn't have feature parity vs MVC even 4 years after release which is quite frankly insane
Why does it need to? That's like saying express should have feature parity with Nest.js; they have different use cases in my view :shrug:


I had to run it with --no-hot-reload to get a consistent behavior.

> That's like saying express should have feature parity with Nest.js

I disagree but, objectively, validation is a fundamental part of any web app or API.

They shipped Minimal APIs in .NET 6 without validation. The functionality was already there for MVC so it's not like they had to build it from scratch. And yet, they didn't add it until .NET 10.


I just find it very weird that there are two standards here.

Express is ostensibly the analog of minimal APIs and ships with no validation. You pick your validation library and build on top of it. A less complete, less opinionated, bare-bones stack on which you build with explicit stack choices.

Nest.js is ostensibly the analog of controller APIs and ships with validation. A more complete, more opinionated approach where you lean in to stack defaults.

This makes total sense in the Node.js world; I don't see why controller and minimal have to have feature parity when they have different use cases and, like Express, it's possible to pull down third party validation libraries. Controller API is more opinionated like Nest.js while minimal is intentionally less opinionated like Express.


Most web projects use JSON files for configuration. There are also some XML files for project configuration. If anything, you can run into too much configuration files.


Yeah, I mean, if I'm going to step away from the Python ecosystem and let AI manage/polyfill my dependencies, I might as well shift the whole way to OCaml/F# rather than Rust.

Then I get the benefits of GC and strong typing.


I think the AI/ML ecosystem is a bit of a mess overall, things tend to work out of the box in Python because that's what everyone targets, but it doesn't necessarily say that much about maturity and robustness.

In Rust you can use many C++ frameworks like libtorch or ONNX or specialized libraries (llama.cpp, whisper.cpp ...) via their bindings. Native projects such as Candle or Burn are not feature complete yet, but I assume they'll eventually get there and drive bigger communities compared to C++.


Definitively something to be said for AI/ML library support. I find myself going with Rust / TS for a ton of my backend work lately though, even though I'm a huge Django fan for backend.


i think the enforcing the type system is good with AI for a couple reasons: - (speculating) typed language have faster/better LSPs that can be used to more efficiently modify code with tool use. - when a human DOES need to step in and start investigating/modifying the code, the strong typing makes it much easier to get oriented within their spaghetticode


I think the only use cases are when it wraps low level C++ libs like ML libraries, and yes those are extremely difficult to reproduce


Using either Calibri or Times New Roman makes it look like you did not put any thought into your brand and chose the default in Microsoft Word. The State department probably has certain constraints (i.e. they likely have to choose one of the fonts that ships with Microsoft Word, and possibly a subset of that that also ships on macOS), but they could definitely choose better than the default.

I find the narrow serif typefaces such as Century Schoolbook a bit harder to read than ones with more normal spacing, and I think the US government should optimize for legibility and accessibility over style in routine communications. Palatino or Garamond would probably be my choices.


It’s the US government, and it could easily develop their own Liberty- or Freedom-type if the current administration wanted to leave their own mark.



That actually doesn't look horrible to my untrained eye. But the web page mentions accessibility, so I'm a little bit surprised it still exists.


Administered during none other than the first term of Trump, as mentioned in the article!


That just makes it incredibly silly. A good argument from the current administration would have been to pick Public Sans and argue: We paid good money to have a good, generic, license free font developed for the government, and the previous administration went with a font that will cost us money in terms of licensing (not sure how true that might be, but it's potentially true, if used outside Microsoft Word).

But the current Trump administration has a fun way of forgetting everything done during his first presidency. Even the smart choices.

I can't imagine how much all this rebranding is costing the US taxpayers.


Trump Grotesque.


You joke, but...

https://en.wikipedia.org/wiki/Trump_Mediaeval

(Note that this font predates Donald Trump's rise.)


But we repeat ourselves.


All letters have a shiny 3D gold effect you can't turn off.


Trump does use Akzidenz Grotesk Bold Extended as one of his main campaign fonts


I love Garamond as a style but it wouldn’t be my choice for legibility. Most renditions of Garamond have too little x-height.


The worst is Times New Roman text with Calibri page numbers. A sure sign somebody never learned how to use Microsoft Word.


Does Word not default to switching all typefaces - header, footer, etc.? If so, IMO that’s a bad design that violates the principle of least surprise.


Word works very well without surprises if you have learned how to use templating and proper headers - the semantics. Big if!

I will claim most people still just do selections and change font/weight.

So what is good design? Something which enforces our geeky ideas of a base font? Or something which let people easily do what they want to do and get work done? Who should get the least amount of surprise?

Design is taste. Taste leads to principles. Principles makes things easy. Design is also compromise. Compromise is hard. Design is hard.


In fact best way to use Word is to write LaTeX in it and then save as .txt and run pdflatex. It is truly an amazing editor capable of great typesetting.


While it is possible to use "semantic" styling and page layouts and templates in Word, I would argue that Word owes its popularity to the fact that no user is surprised when they select text, change the font, it does not change it anywhere else.

It is one of the tools that popularised "WYSIWYG" as an approach, and as we know from many other tools, you lose something when you adopt a tool like that.

Now, I'd always recommend and use a TeX-based document layout system (but despite my huge respect for DEK, not Computer Modern family of fonts, even for mathematics), but many struggle with non-visual document entry: it is no surprise scientific community is the only one which standardized on it since inputting mathematics visually is a PITA.


I have two:

The first is a preventive maintenance and calibration tracker (https://pmcal.net) that was born out of my day job as an engineer in small business manufacturing.

The second is an AI engine for pulling structured data out of incoming email (either via IMAP on your email server or via SES). If you think of the engine that powers TripIt, they had to write about 10,000 different ingestors for each airline and hotel and travel booking site. With a structured output AI, the need to write specific ingestors goes away.


You can also get structured data out of mailboxes with my project EmailEngine. You can use an API request to fetch message contents, or you can configure EmailEngine to send a webhook for every new email in a structured JSON, for example, like this: https://emailengine.app/webhooks#messageNew


I don't think I was specific enough on what kind of structured data. The idea is that it extracts information from the text/HTML content of emails (e.g. a flight itinerary from an airline booking email or an ingredient list from a recipe) using AI.

Since you already have a method for reaching into folks Microsoft 365 inboxes and such, you could probably train an LLM to extract arbitrary data based on a user's prompt quite quickly though.


I discovered I liked business planning, strategy, and marketing pretty early in my technical career.

I also discovered that one of the thing business people bring to a company are connections, especially if they have already worked in a vertical, and few people want to talk to a bright kid about their problems.


The quality of store management seems to affect a lot when it comes to Walmart. I have been to some Walmart stores where I have never seen any unfolded clothing. I have been to some Walmart stores where I have never seen any folded clothing.

An organization as large as Walmart has the wherewithal to put together an effective charging network if they decide it is a priority. One of the nice things about being first-party is that they will likely have a preventive maintenance program and emergency maintenance program for the chargers, and some of that can be done by the company electrician.

I have a Tesla, and due to various factors (apartment living, other family members with Teslas), I almost exclusively use public chargers. I have some opinions of what amenities I want at a charger (bathroom, cold diet coke), but in general the chargers at gas stations, grocery stores, and Walmarts are the best for me. Restaurants and malls are actually not great amenities because that's often not the mood you are in when you arrive at the charger.


I wrote a small business preventive maintenance and calibration tracker (https://pmcal.net) as a side project.

A few manufacturing companies that I have a close relationship with are using it and love it, but I have kind of hit a wall with other growth avenues (Google Ads, organic promotion on the web).

I have been thinking of marketing directly to ISO 9001 auditors, because “can you get email reminders” is a question they have asked at multiple companies I have worked at. I feel like cold mailing them something branded (e.g. notepads) might work, but I am not sure how much money I want to spend on it if it doesn’t and it’s also a bit nerve-wracking to put myself out there like that.


Thats really nice. I think I want to install this on a small Raspi at the end of a baseball bat and use it to assault some customers.


Nice. A calibration tracker is actually on my list of possible future projects :-) I'm surprised to see it here since it's not typical HN fare!


Thank you. My day job is as an engineer in manufacturing so I felt like I had a unique opportunity to "build what I know" and have seen people use and enjoy.

It's a worthwhile project to build yourself. If nothing else I found out that I definitely do not like the date-fns library in JavaScript. I built it using AWS Amplify, and although I like that it scales to zero, but I think there are too many gotchas to Amplify, and especially DynamoDB, for a startup app that you want to move quickly on. I wrote up one of the major ones after I got really frustrated. [1]

Like I said in my original post, I am trying to figure out how to get it in front of the right people (who are less likely to be on HN). I have kind of decided that the B2C sales experience is not great unless you get a critical mass; my experience doing sales in manufacturing is working the booth at trade shows, talking to people about engineering, and using our process tools to develop a solution to the customer's problem. The more scattered "compete for attention" advertising/promotion sales model doesn't seem great unless you have a lot of money behind it.

I'm rambling, but if anyone likes this or feels it needs a certain feature, feel free to reach out. If you're in Boston / Providence I'll happily grab a drink with you.

[1] https://gist.github.com/rchowe/1db32f1f26d74688a9b4083a19f6a...


Two places that might be useful to learn about additional pain points or features, if you haven't tried them yet:

reddit /r/manufacturing

PracticalMachinist.com has a Metrology section and there's always a healthy discussion going on in the General forum.


Thank you for this. I have been on r/manufacturing and if someone asks for a solution like this I am ready with a link :) I will check out the forum.


Walmart having a very large fleet of corporate private jets likely made the decision and trip easier for him.


If you call yourself Mr. Worldwide you can’t really say no.


I played with OpenHands for a few days (using gpt-4o since I already had an OpenAI account). I found it to be decent at writing new code, but then it had a hard time making changes when there was a lot of repetitive code (in a TypeScript / React project that I had it create with vite).

One of the interesting things about OpenHands is that you can see what the AI is doing in the terminal window where you launched it. Since it can't really load the whole codebase into its context window, it does a lot of greping files, showing 10 lines on either side of the match, and then doing a search and replace based on this. This is pretty similar to what a human might do: attempt to identify the relevant function and change it.

I think I might have better luck with a simpler project, e.g. a Sinatra or Flask app where each route is relatively self-contained. I might give it or Cursor another try in the future when the tech has progressed a bit.


I heard a story of a fishing boat in the eastern US that was "fighting a fish" for miles but could never get any traction. When another fisherman looked at their chart, he noted that they were dragged miles in a straight line towards Europe, and said "You caught a sub". The submariners don't care, they probably find it funny.


If a submarine drags you, you will have a noticeable wake. No need to look at the charts.

Edit: or be instantly capsized and dragged below water, jfc: https://en.wikipedia.org/wiki/FV_Antares#Inquiries_and_recom...


Strong fishing line.


I built a computer vision device that used the top-down area of a penny as a calibration standard. Coins are useful, easy-to-get items that have relatively tight manufacturing tolerances.


What about wear ? Were they only new coins ?


Ever since coin clipping got out of hand in the 1700s most coins feature milled edges or edge inscriptions. They make the edges more resistant to wear and make any wear easy to spot.

Of course there's a limit to the precision you can get from coins, but considering the scale of their production and the account of handling they see they are surprisingly good


> in the 1700s

It's been happening since ever.


Our area measurement application did not require that tight a tolerance (we were estimating yield on broken material). If I needed that tight a tolerance, I could have gotten proof coins from the mint, or potentially switched to using a real calibration standard like a gauge block.


I’ve never seen significant ware on a coin in circulation.

Have you?


I have often, though I suspect not enough to make a significant difference to someone who is already OK with the slight variance between un-worn coins.


I've seen enough wear to prevent them to be calibration material at least.


Depends on what your tolerances are. If you only need to be within a mm a coin is going to beat that by an order of magnitude.

We use a pack of cigarettes as a gauge for one of the jobs we do. Quick, (not so) cheap, and readily available. May have to standardize on a vape though in the near future.


Only on counterfeit £1 coins, before the coins were redesigned to make them harder to fake


I have coins that originally had milled edges that are now completely smooth.


Also a penny is .750 exactly. None of the other US coins have a "useful" diameter.


The US nickel is so close to 5 grams that I've seen them used as weights in a laboratory.


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

Search: