HN user

matt_heimer

1,165 karma

My day-to-day job deals with Java (which I actually like) and web development. I run an Operating System Development website (osdev.org) as a hobby.

Posts1
Comments452
View on HN

Not exactly the same but I'm building a NAS box with old parts. Most of my spare RAM sticks are laptop DDR4 SODIMMs. There are SODIMM -> desktop DIMM adapters... it did not go well. The system would boot 1 out of 5 times. No adjustment of memory speed settings would make the system stable.

That's the traffic after rate limiting controls and bot fight mode. It's 3-4 million requests per day without bot fight mode and just rate limits. And as I said it's not a smooth distribution. Plus the requests are almost never for pages in cache. It's always stuff like loading all the message threads from the year 2000 or loading up the details of every page edit ever made to a wiki page.

If it was more static content it'd be easier, it's really the db being a bottle neck in a dynamic site.

Yes, the software could be better optimized but then I'd have to own the development of it. There is no reason a niche website should be getting millions of requests per day.

It might depend on the tech stack. I run a small niche website but it has PHP and a database (MediaWiki/PHPBB) and without Cloudflare I'd estimate I'd need to spend several hundred dollars a month to handle the traffic. Traffic used to be tens of thousands of requests a day. AI has increased that to between 400k and 3M requests per day but it's not a smooth distribution. This is with bot fight mode on that greatly reduces traffic.

I adopted Cloudflare because it was getting DDoSed by the AI crawlers. I'm pretty sure all of them are vibe coding their crawlers and don't bother adding rate limiting as a requirement.

Sure, depends on how accessibly to people you want it to be.

Most legit search engines are going to honor robots.txt and you can disallow access.

Next level would be using something like rate limiting controls and/or Cloudflare's bot fight mode to start blocking the bad bots. You start to annoy some people here.

Next would be putting the content behind some form of auth.

What is the positioning for this and how does it work? A comparison to SBE might be nice.

I understand the issue about using Layout and MemorySegment being verbose but the reason I'm using those things it to develop high performance software that uses off-help memory and bypasses object allocation.

What does "map Java record types onto native memory" actually mean? Did you somehow turn a Java record into a flyweight or is `Point point = points.get(0);` just instantiating a record instance using data read from off-help memory? If it's a dynamic mapping library using reflection, that's cool but doesn't it kill the performance goals for most Java off heap usage?

Is this more of a off-heap to heap bridge for pulling data into the normal Java space when performance isn't critical?

It's perfect for toddlers (I mean that in a good way), it's the infinite answer to the infinite "What's that?" series of questions they can generate. Make everything a hyperlink and it's almost like a LLM mind map of knowledge.

I guess that's true but I find Google's models better than their public tooling. The Pro subscription includes "Gemini Code Assist and Gemini CLI" but the Gemini Code Assist plugin for IntelliJ which is my daily driver is broken most of the time to the degree that it's completely unusable. Sometimes you can't even type in the input box.

The only way I can do serious development with Gemini models is with other tooling (Cline, etc) that requires API based access which isn't available as part of the subscription.

I was a bit worried when I saw the title of the article because I have one of these accounts but geez he made some bad choices. Deleting all phone numbers and the recovery and swapping to a new authentication method and then accessing from a different country??? No wonder it got flagged.

I probably wouldn't believe him either. Google should have an option to revert to the last trusted config after some verification method. Google support is bad, I'll give him that.

All this to avoid roaming charges? And then refusing to share a personal email in this scenario and missing meetings because of that.

I'd argue that changing the MX to fastmail or Microsoft would be much faster than a postfix+dovecot solution on a VPS but I think he's just refusing any solution based on his principals.

That's only good for the web based UI. If you want Gemini API access which is what this article is about then you must go the AIStudio route and pricing is API usage based. It does have a free usage tier and new signups can get $300 in free credits for the paid tier so it's I think it's still a good deal, just not as good as using the subscriptions would be.

If you use Google's tooling but not if you need API access. API access is not in the subscriptions and uses token based pricing. For development I find that the Gemini IDE plugins that have good free usage and are included in the subscriptions aren't great. Gemini plug-in under IntelliJ is often broken, etc. The best experience is with other tools like Cline where you've had to use a developer based account which is API usage based already.

But Gemini's API based usage also has a free tier and if that doesn't work for you (they train on your data) and you've never signed up before you get several hundred dollars in free credits that expire after 90 days. 3 months of free access is a pretty good deal.

I shipped with signature verification to the buyers address. The buyer claimed they didn't receive the item and eBay still sided with them and refunded their money. I will never sell anything on eBay again.

Funny, I just bought Start11 from Stardock for side taskbar placement. It was the oddest choice to remove that feature. On an ultrawide monitor it just makes so much sense.

Yes, it's not surprising that warnings and complexity increased at a higher rate when paired with increased velocity. Increased velocity == increased lines of code.

Does the study normalize velocity between the groups by adjusting the timeframes so that we could tell if complexity and warnings increased at a greater rate per line of code added in the AI group?

I suspect it would, since I've had to simplify AI generated code on several occasions but right now the study just seems to say that the larger a code base grows the more complex it gets which is obvious.

Software HFT? I see people call Python code HFT sometimes so I understand what you mean. It's more in-line with low latency trading than today's true HFT.

I don't work for a firm so don't get to play with FPGAs. I'm also not co-located in an exchange and using microwave towers for networking. I might never even have access to kernel networking bypass hardware (still hopeful about this one). Hardware optimization in my case will likely top out at CPU isolation for the hot path thread and a hosting provider in close proximity to the exchanges.

The real goal is a combination of eliminating as much slippage as possible, making some lower timeframe strategies possible and also having best class back testing performance for parameter grid searching and strategy discovery. I expect to sit between industry leading firms and typical retail systematic traders.

Probably the same thing that makes most developers choice a language for a project, it's the language they know best.

It wasn't a matter of choosing Java for HFT, it was a matter of selecting a project that was a good fit for Java and my personal knowledge. I was a Java instructor for Sun for over a decade, I authored a chunk of their Java curriculum. I wrote many of the concurrency questions in the certification exams. It's in my wheelhouse :)

My C and assembly is rusty at this point so I believe I can hit my performance goals with Java sooner than if I developed in more bare metal languages.

You program differently for this niche in any language. The hot path (number crunching) thread doesn't share objects with gateway (IO) threads. Passing data between them is off heap, you avoid object creation after warm up. There is no synchronization, even volatile is something you avoid.

You can achieve optimized C/C++ speeds, you just can't program the same way you always have. Step 1, switch your data layout from Array of Structures to Structure of Arrays. Step 2, after initial startup switch to (near) zero object creation. It's a very different way to program Java.

You have to optimize your memory usage patterns to fit in CPU cache as much as possible which is something typical Java develops don't consider. I have a background in assembly and C.

I'd say it's slightly harder since there is a little bit of abstraction but most of the time the JIT will produce code as good as C compilers. It's also an niche that often considers any application running on a general purpose CPU to be slow. If you want industry leading speed you start building custom FPGAs.

I've been using several. LM Studio and any of the open weight models that can fit my GPU's RAM (24GB) are not great in this area. The Claude models are slightly better but not worth they extra cost most of the time since I typically have to spend almost the same amount of time reworking and re-prompting, plus it's very easy to exhaust credits/tokens. I mostly bounce back and forth between the codex and Gemini models right now and this includes using pro models with high reasoning.

I'm building a Java HFT engine and the amount of things AI gets wrong is eye opening. If I didn't benchmark everything I'd end up with much less optimized solution.

Examples: AI really wants to use Project Panama (FFM) and while that can be significantly faster than traditional OO approaches it is almost never the best. And I'm not taking about using deprecated Unsafe calls, I'm talking about using primative arrays being better for Vector/SIMD operations on large sets of data. NIO being better than FFM + mmap for file reading.

You can use AI to build something that is sometimes better than what someone without domain specific knowledge would develop but the gap between that and the industry expected solution is much more than 100 hours.

Is the article trying to discuss a thermal issue? It spends the entire time discussing reduced watt consumption over time which would sound like a good thing to most people and then at the very end it has one sentence about needing improved cooling.

I think it's an entire article about thermal throttling that never once mentions it.

It's not just a hobby you need, it's purpose. For some that is a hobby. If you go the hobby route, try to look for one that has in person meetups. Others going through this use self-improvement as their purpose (gym, suit up, etc). Church works for some. Consider some continuing education courses. Would charity work suit you? There are places like habitat for humanity that you can volunteer at. Maker spaces can be fun. You might also want to try out working from a co-working space.

For forums you can look at them for a minute or less and figure it out. It's same with HN and sub-reddits. They are information dense and don't require signing up or customization to figure out if you can curate them into something you might like.

Compare that to mastodon, step 1 is pick a server https://joinmastodon.org/servers Very few are actually topic focused. Even the ones with themes have a lot of deviation. Even picking the popular safe choice - https://mastodon.social/ , I can't tell if I would ever like it. I don't like what I normally see but considering I can see 2 posts at a time and a significate portion are animals or other topics I wouldn't visit a forum about, it doesn't feel like I would.

And the animal thing is common across most of the servers. I understand it, I have dogs. But it's a side effect of the medium not having a coherent focus. It feels like I'd have to spend so much time to turn it into something that I'd like that I'd be better off staying with forums.

Mastodon seem great if you want to follow people and be social which is kind of the point of social media. I want to follow areas of interest, not people.

I still host one of those 20+ year old forums. The Fediverse is different. With forums (and HN/Reddit) you immediately had good sense of them being for you or not. With the Fediverse to have to commit to servers and even then you don't know if they are right for you unless you try and spend time customizing your feeds/follows. It's a lot of work and you don't know if it will pay off. I tried again today and so much of it has no focus at all. It reminds me of this exchange from the Good Place TV show:

Chidi Anagonye: So, making decisions isn't necessarily my strong suit.

Michael: I know that, buddy. You-you once had a panic attack at a make-your-own sundae bar.

Chidi Anagonye: There were too many toppings, and very early in the process, you had to commit to a chocolate palette or a fruit palette. And if you couldn't decide, you wound up with kiwi-Junior Mint-raisin, and it just ruins everyone's night.

The real question will be; Do we need to pay the juniors to write code to become seniors?

If coding is an art then all the juniors will end up in the same places as other struggling artists and only the breakout artists will land paying coding gigs.

I'm sitting here on a weekend coding a passion project for no pay so I have to wonder.

It was more that for past reasons they already have all my information so I'd rather avoid giving to out to other companies.

And their spam filtering is hard to beat.

Ended up narrowing my alternatives to fastmail and Microsoft. And since one of those already also had my info I went with the existing relationship.