HNHacker News
TopNewBestAskShowJobs

dafelst

1,346 karma · joined December 28, 2020

submissionscomments
dafelst··on Working with jumbo/unity builds in C/C++
Really? That hasn't been my experience at all. What engine version are you on?

We target windows, linux, xsx and ps5 and have probably 15-20 programmers making contributions daily and probably only hit maybe one or two of these issues per week, and they rarely get checked in as we get them during our mandatory preflight build during code review, similar to what you describe. We run all the preflight on on-prem machines now so the cost is minimized compared to our former cloud solution.

We did a lot of work to modularize our codebase so maybe that is helping?

dafelst··on Working with jumbo/unity builds in C/C++
Unreal Engine does unity builds quite well - it will, as part of a prebuild step:

1. Merge related cpp and h files together in groups into monolith files, usually in the order of 10-20 source files merged based on my observations - often entire modules will be grouped together. 2. Exclude any individual files from the monolith that have edits since the last change.

It's a nice middle ground, you don't substantially slow down your incremental builds since the files you're editing are still compiled individually, plus you get a fairly substantial improvement in build times.

It's nice in that you can still structure your source in separate cpp/h files will little extra consideration for the unity builds and it mostly "just works" in both unity mode and with regular builds.

Unfortunately you occasionally do have issues with builds that work in unity but not in individual compilation or vice versa (usually due to arcane #include dependency chains) but they're usually easy to fix.

dafelst··on Embed Crystal code directly in Ruby
For large projects using complex compiled languages like Rust, C++, and ostensibly according to this post, Crystal, yes, they are bad.

I have worked on several projects where a full clean compile of the project takes 30+ minutes, and even incremental compiles and links to a large module will take 60-90s at absolute minimum because linker times are still shitty - and this is even with modern, powerful hardware, think 32 or 64 hyperthread Ryzen CPUs, not just your typical dev laptop.

It may not seem like much, but 60-90s is definitely enough to get you distracted and out of the zone.

dafelst··on Embed Crystal code directly in Ruby
I have to assume you're trolling, but if not, the reason compile times matter is because iteration time is important.

Having to wait longer to see the results of one's work results in loss of focus and productivity.

dafelst··on First Tesla Cybertruck Teardown Shows Botched Door Hinge Install
My headcanon is that Elon downloaded Blender one night to try and learn it, made a low-poly car and then some sycophants said "hey great job" and he decided it was now cool and Tesla should manufacture it.
dafelst··on Launch HN: Diversion (YC S22) – Cloud-Native Git Alternative
I don't think you understand the scale of large creative projects like games. The current (only medium sized) Unreal Engine project I'm working on has about 300k files in the head alone, and a fresh sync for the stuff only required to build/cook the game is about 350GB. If you add the raw content from things like Maya, substance Painter, brush, etc, it is well in excess of 1TB.

Vanilla git just does not scale to this. Microsoft git and Scalar get much closer, but require a bunch more setup and are a giant foot gun if someone tries to use the repo with vanilla git. Add to that the lack of permissions control and remote management, and it is just not a good fit for an industry where say 75% of the contributors are non technical.

Git is a fantastic tool and works for the vast majority of software projects, but there are non trivial amount of projects out there that it just doesn't suit.

Perforce, as horrible as it is, is the game and VFX industry default for a reason - think of it this way, given how notoriously cost driven and penny pinching games companies are, don't you think they'd be using a free/cheaper alternative in hosted Git if they could? But they don't. This is why.

Good luck to the Diversion team, more competition in this part of the market can only be a good thing.

dafelst··on Launch HN: Diversion (YC S22) – Cloud-Native Git Alternative
It does, but perforce is a horrible slow beast, and not as reliable as you might expect.

That said, for large game projects, it really is the only viable option.

dafelst··on My 30-Year Quitting Addiction
Yes, how dare you have an hour of leisure time per day. Unthinkable.
dafelst··on My 30-Year Quitting Addiction
My goal is to lead a happy life, and by and large the entertainment derived from all of the above activities contribute to that goal.

There is a lot more to life than grinding yourself into the machine you know.

dafelst··on My 30-Year Quitting Addiction
Replace "video games" with "reading" or "TV" or "dicking about on your phone" and it starts to feel much more reasonable.
dafelst··on Chief executive of collapsed crypto fund Hyperverse does not appear to exist
Crypto people being dishonest and trying to mislead people?

I'm shocked. Shocked!

dafelst··on Tell HN: Cryptocurrency transactions >$10k require filing Form 8300 with the IRS
Which countries?
dafelst··on The C++20 Naughty and Nice List for Game Devs
True, but linker times still suck and don't parallelize well.

Also, sometimes you need to iterate on some very core .h file and touching any of those brings the whole house of cards down and triggers a full or nearly full rebuild.

dafelst··on Phi-2: The surprising power of small language models
They address this in the document, citing both an effort to eliminate test data from the training set, as well as the usage proprietary, ostensibly private test sets for evaluation.
dafelst··on Ask HN: Can we do better than Git for version control?
Absolutely, the inference is based on a set of heuristics and is often just plain wrong.
dafelst··on Ask HN: Can we do better than Git for version control?
While I feel like this is generally true for most programmers and knowledge workers, Git is absolutely not suited to the workflow of several industries, including the one I work in: games.

Working with an engine like Unreal Engine for a project of any reasonable size requires working with both hundreds of thousands of active files (my current project's repo's HEAD has ~400k) and hundreds of gigabytes of active files, many of which are many GB on their own. Our repository (in perforce) is currently in the order of 10TB.

Git, even with LFS and partial clone and shallow copies and fsnotify just falls apart at this scale. Add to that the necessity for less-technical people (artists, designers, VFX, audio, etc) to use it, and it is really just a non starter.

I absolutely loathe Perforce (having used and occasionally admin'd it professionally since 2007), but I begrudgingly admit that is is currently the only publicly available VCS that can fulfill all of the requirements of this industry in a practical way. Plastic and the others just aren't there yet.

dafelst··on Ask HN: What side projects landed you a job?
Back in around 2004-2005, I was doing contracting work in Australia for a big retailer, maintaining one of their monolithic webapps that was built using C++, believe it or not. At that time, Ruby on Rails was the new hotness, and I was trying to learn that on the side.

When MacOS released their "dashboard widgets" framework back around 2005ish, I wrote a widget for RubyDocs and released it, and it got quite popular.

At the same time, a US company I heard about via the Rails mailing list was investing pretty heavily in Rails and, as a long shot, I applied there and mentioned I made that widget. It turns out they were all using it, and they basically gave me a job on the spot working remotely from Australia.

The experience I got in that job led me to get an job at Microsoft in 2007, and they moved me and my family to Seattle, where I still live to this day, though I left MS over five years ago now.

dafelst··on The worst thing about Jenkins is that it works (2019)
Same, we are using it now and it is a much nicer experience than Jenkins
dafelst··on GQL – Git Query Language
This is a super cool idea, I've been playing with Git internals and having this as a tool/reference will be super helpful. Thanks for sharing!

I don't see it in the code, but have you considered creating secondary indexes to speed up some operations? Things like looking up the path of a deleted file in a large repo?

dafelst··on Justine creates llamafile. Cross platform single binary for any LLM weights
I am constantly amazed at what Justine produces, she is truly a programming superstar.
dafelst··on Ask HN: Do you have a high level of energy throughout the day?
Ballmer was notorious for his (alleged) cocaine usage, that speech was almost certainly under the influence.
dafelst··on How to boss without being bossy
Improved for sure
dafelst··on How to boss without being bossy
Sure, but who is going to cut the wood and build the ship? In your first example, no one explicitly owns executing that task, which is very bad if you do want to sail the high seas.
dafelst··on Why teachers in South Korea are scared of their pupils, and their parents
If you drive in a big city in Korea, blocking someone in can be a multiple times a day kind of thing.
dafelst··on Kubernetes and Kernel Panics
I think OP is highlighting that spamming spoofed UDP packets to this service is an attack vector for a denial of service attack.
dafelst··on O3DE
"Industry-proven" isn't the endorsement that you think it is - I've used engines that have shipped games that have made hundreds of millions of dollars, and you couldn't pay me enough to use them again.

Just because a game ships doesn't mean that the underlying tech is good or pleasant to work with - I would say the majority of games are shipped not via good code but via sheer force of will.

dafelst··on MGM is down, cybersecurity attack ongoing
I was at the Park MGM is Las Vegas yesterday and was unable to use the app or the automated checkout kiosks, though aside from the front desk being more busy than usual during checkin and checkout, nothing in particular seemed amiss.
dafelst··on Wells Fargo customers scramble after deposits disappear from their accounts
The people highlighted in this article are living paycheck to paycheck, they do not have enough eggs to necessitate multiple baskets.

The issue here is that once again a shitty mega-bank has prevented them from accessing the little money they do have at a time where they need it. The amounts here are literally a pittance to these institutions, and they _could_ make these people whole immediately with little to no impact on their bottom line, but their systems and bureaucracy are so bloated and inefficient that it takes days to weeks to fix it.

For people like you and me, that is frustrating and inconvenient and worthy of a twitter rant, but ultimately not a big deal. For the vulnerable in our society, this is potentially life altering, and it is mind boggling that these institutions can continue to get away with treating people like this with practically zero consequences.

dafelst··on Mold 2.0
AGPL and GPL are quite different beasts
dafelst··on Smart Contract Security Field Guide
I think the main takeaway here is that in many cases wrt crypto, it is highly ambiguous on whether the actions you take are criminal or not.
← PreviousPage 4 of 8Next →