HNHacker News
TopNewBestAskShowJobs

Genbox

582 karma · joined July 25, 2011

My name is Ian (Denmark) and I do science, security, algorithms, software architecture and high-performance stuff.

I built Farseer Physics Engine 3.0, SimpleS3 and about 25 other open source projects. Check them out over at https://github.com/genbox

I am also the founder and director of Chronos, a platform for investigating large-scale security incidents using forensics techniques.

submissionscomments
Genbox··on WHO says there is a biological risk after lab take-over in Sudan
Unless the fighters plan to innocolate themselves onsite with the refrigirated samples, then I don't think we have much to worry about.

Both cryopreserved and cryodesiccation viruses needs special handling. I don't think these fighters are mastermind terrorists, but in case I'm wrong, then I hope survaliance is keeping track of cryotransports and some carrier group can be convinced to take action with a short notice.

Genbox··on [dead]
After having read the paper I would say the headline of "no evidence of brain damage" is wrong. The journalist has misunderstood the intention and results of the paper.

The papers conclusion is that there are a more people with microbleeds in the group that were checked in to the ICU, than people who were also COVID-19 infected, but had less severity of symptoms. They also conclude that there is no difference in the cognitive dysfunction between the two groups, since it was 40% in both groups.

COVID-19 did give them brain damage (microbleeds). It also gave 40% of the participants cognitive dysfunction according to the Montreal Cognitive Assessment test. Participants also reported severe fatigue, depression, anxiety, and insomnia.

Genbox··on [dead]
Link to paper: https://onlinelibrary.wiley.com/doi/pdf/10.1111/ene.15812

nltimes.nl should be ashamed for not reporting their sources.

Genbox··on A 1.5GB string
Efficient data handling is better than spending cycles on generating a lot of backslashes and then burn cycles on compressing it.
Genbox··on OpenAI Tokenizer
Had not seen the Computerphile video yet. Laughing my socks off right now. Thanks for that.
Genbox··on I’m a doctor: Here’s what I found when I asked ChatGPT to diagnose my patients
I've noticed a very weird trend when trying to incorporate GPT4 into my workflow. I lead a small team of developers and security consultants, and whenever someone runs into a problem, it is immediately searched for on the web. However, there is a real resistance/reluctance in using GPT for the same task.

I think it is a combination of factors. The wrong answers are part of it, but I think another part is the anthropomorphization of it makes it almost like asking another human for help, which is somehow 'less good' than asking a search engine.

For better or worse, LLMs are here to stay.

Genbox··on Programming isn’t coding (2020)
In my experience, job titles and capabilities rarely goes hand in hand. Seniority (junior, senior, principal) is sometimes projected to titles (web dev, developer, engineer) making it all the more confusing.

Where I come from, certain braches of industry have simply made it illigal. For example, a nurse cannot call themselves doctors. It pertains to most knowledge-based branches of industry here, except for software development.

Genbox··on Programming isn’t coding (2020)
I've gone by a similiar taxonomy:

- Coder: Can change scripts, HTML/CSS, SQL queries etc.

- Programmer: Can write scripts, small programs, declarative queries etc.

- Developer: Can write one or more of [applications, games, web sites, services] etc.

- Software engineer: Can create complex software with many moving parts.

Genbox··on U.S. Government Sold $216M of Seized Silk Road Bitcoin This Month
> isn't that arguably worse? he helped people in a lot of countries break the law (created a place where illegal sales can be facilitated)

The logic is not sound.

1. If someone started selling drugs using someones GitHub/GitLab issue tracker, would the project owner be accountable? I understand that Ross was likely well aware about the drug sales on his website, but saying someone is facilitating the activities because they own the place is not a great argument in isolation.

2. What is illigal is very different different from country to country. A majority of the sales on Silk Road was marihuana, which is now legal in a 21 US states and decriminalized in 10 others. There are countries where it has never been illigal. Personal posession of AR-15 is legal in the USA, but illigal in a lot of other countries. Suffice to say that it is pretty subjective.

Genbox··on The Smallest Hash Table
I've implemented your RecSplit method in my MPHF benchmark library (written in C#). The suite is not yet public, but I do want to say thank you for your fantastic method/code/paper. In my own rabbithole research, I stumbled upon several artifacts of your rabbithole trail. Most notably the stuff on StackOverflow, which helped my own research.

I've releaed a set of fast hash functions[1] to help gain an understanding of speed vs. quality. My biggest takeaway is that most generic hash functions can be specialized for integer inputs[2], which often reduce latency by quite a lot, making MPFH more attractive over simple iteration on small sets, as the overhead of hashing is considerably smaller.

[1] https://github.com/Genbox/FastHash

[2] https://github.com/Genbox/FastHash/blob/master/src/FastHash/...

Genbox··on Show HN: Faster FastAPI with simdjson and io_uring on Linux 5.19
simdjson is awesome (Lemire does a lot of great stuff) and io_uring is a good use of circular buffers to get efficient IO, but I always squirm a little when I see JSON in a high-performance context.
Genbox··on 3dfx: So powerful it’s kind of ridiculous
Back in the day I bought a Savage 3D graphics card (1998) over the Voodoo 2 Banshee because the price vs. value was much better. At that time, 3Dfx was known for it's 3D performance, but was still clunky on the 2D part, especially considering the Matrox G400 GPU which had dual VGA, amazing color correction and software support everywhere.

It went so fast going from having no 3D acceleration to having more 3D accelleration than you could imagine. It died fast too when ATI and NVIDIA became the only ones left, which is still true to this day.

Genbox··on Sam Zeloof and Jim Keller start a new semiconductor fab
Jim Keller is an engineer that worked on the AMD K8 architecture and the Apple A5 processors.

Sam Zeloof is known from his YouTube channel[1] where he shows how to build microprocessors in detail.

I hope that this step is the first of many to build an efficient processor with fresh ideas and innovation.

[1] https://www.youtube.com/@SamZeloof

Genbox··on Where do stolen bikes go?
For everyone else wanting to see the bike hunt videos: https://www.youtube.com/@vanmoof/search?query=bike%20hunt
Genbox··on Scientists discover receptor that blocks Covid-19 infection
The article is correct. Infection is the process of a virus entering a cell. Disease is the virus's cumulative effect on the body due to the infection.

Since the protein (LRRC15) mentioned in the article binds to the virus, making it impossible for the virus to infect the cells, it does indeed block infection.

Genbox··on De-Bloated Windows 11 Build Runs on 2GB of RAM
Not serving, but handling 2100k requests. Your skepticism is rightly placed, as the HTTP protocol is yet an example of an inefficient protocol that nonetheless is used as the primary protocol on the internet. Some webservers[1] can serve millions of requests pr. second, but I'd never use HTTP in code where efficiency is key.

No, I'm talking about handling requests. In this particular case, requests (32 to 64 bytes) were flowing through several services (on the same computer). I replaced the processing chain with a single application to remove the overhead of serialization between processes. Requests were filtered early in the pipeline, which made a ~55% reduction in the work needed.

Requests were then batched into succinct data structures and processed via SIMD. Output used to be JSON, but I instead wrote a custom memory allocator and just memcpy the entire blob on to the wire.

Before: No pre-filtering, off-the-shelf databases (PSQL), queue system for I/O, named pipes and TCP/IP for local data transfer. Lots of concurrency issues, thread starvation and I/O bound work.

After: Agnessive pre-filtering, succinct data structures for cache coherence, no serialization overhead, SIMD processing. Can saturate a 32 core CPU with almost no overhead.

[1] https://www.techempower.com/benchmarks/#section=data-r13&hw=...

Genbox··on Why do we create modern desktop GUI apps using HTML/CSS/JavaScript? (2022)
Agree on the topic of performance. Try joining the OpenAI discord channel and you'll see Discord slowly die and become unresponsive. Or VS Code being unable to read a 100 MB file. Or Teams slowly lagging out of existence when you open a large OneDrive folder inside it.

Just about any Electron app I know of can't do large tasks of any kind. The web platform is not built for this kind of work.

Genbox··on Why do we create modern desktop GUI apps using HTML/CSS/JavaScript? (2022)
I've built GUI applications for Windows in the primary frameworks Microsoft provides (WinForm, WPF, MAUI, UWP). It is not terrible, but also not great. I have high hopes for MAUI, but honestly, it seems very PoC-ish compared to everything else Microsoft have provided.

Tried X11 directly on Linux before I decided that it was just too difficult. Switched to QT, and there were a million bugs and quirks that forced me back to just Windows GUI development.

JavaScript/HTML GUI frameworks along with embedded browsers have been the key to cross platform compatibility without all the fuss. But it seem to also have become the death of good real-time and responsive UIs.

Genbox··on De-Bloated Windows 11 Build Runs on 2GB of RAM
Performance is not the same as efficiency, and efficiency can't be solved with more hardware.

Let's say I build a sorting algorithm that is O(N^2) complexity and works fine for small inputs (takes <1 millisecond), but it is going to be used for large data systems. Suddenly it takes hundreds of thousands of hours to sort the data.

One of the corps I worked with went full scalability in their architecture. One-click deployments, dynamic scaling of servers, rebalancing of databases, automatic provisioning of storage. They were handling 40-50k requests pr. second with their 15-ish large server farm, which could sale down to 5 servers, or up to 50-ish before it began to wobble.

I got called in because the company had gotten a large client that needed 100k requests pr. second. They tried scaling the system to fit the need, but the whole thing got unstable and their solution was "more operations people to manage it".

I built a custom solution for the backend. Took about two months. The new system could do about 2100k requests pr. second on one server. Scalability of the new system was ~90% efficient as well, so lots of capacity for the future.

None of their developers understood computers or the science behind them. They were all educated and experienced developers, but none of that were applied to the problem. They were just assembling parts from the hardware store until something worked, and the resulting Frankenstein's Monster was put into production.

Genbox··on De-Bloated Windows 11 Build Runs on 2GB of RAM
I've worked on several projects where performance was an afterthought. After the product scaled a bit, it suddenly became the highest priority - but at that time, it was impossible to fix. At least for everyone that created the problem to begin with.

I've taught high performance data structures to dev teams. I've tried to explain how a complex problem can sometimes be solved with a simple algorithm. I've spent decades on attempting to show coworkers that applying a little comp-sci can have a profound effect in the end.

But no. Unfortunately, it always fails. The mindset is always "making it work" and problem solving is brute-forcing the problem until it works.

It takes a special kind of mindset to keep systems efficient. It is like painting a picture, but most seem to prefer doing it with a paint roller.

Genbox··on Huge pages are a good idea
I've built an efficient in-memory database. It has to be very low latency on batched queries. When I couldn't squeeze more perf out of it myself, I tried enabling large page support (dotnet on Windows) and instantly got a 10% perf increase.

It was not at all a pleasant experience due to lack of documentation as well as the flaky implementation. But I was surprised by how much overhead the TLB accounted for.

Genbox··on Amazon S3 now automatically encrypts all new objects
Encryption enabled by default at different S3 compatible providers:

- [x] Microsoft Azure (https://learn.microsoft.com/en-us/azure/storage/common/stora...)

- [x] Google Cloud Storage (https://cloud.google.com/storage/docs/encryption)

- [x] Backblaze B2 (https://help.backblaze.com/hc/en-us/articles/217973398-Encry...)

- [x] Wasabi (https://wasabi-support.zendesk.com/hc/en-us/articles/1150016...)

- [ ] DigitalOcean (https://www.digitalocean.com/community/tutorials/how-to-crea...)

- [ ] DreamHost (https://help.dreamhost.com/hc/en-us/articles/360001089163-En...)

- [ ] Linode (https://www.linode.com/docs/guides/server-side-encryption/)

Genbox··on On leading underscores and names reserved by the C and C++ languages
I get the same feeling when looking at SIMD code.

> const __m256i in = _mm256_loadu_si256((const __m256i*)ptr);

Genbox··on Tell HN: A stranger is using my YouTube account and Google can't log them out
You mentioned you have MFA activated, so you should also remove any App passwords[1] you might have created for the TV.

[1]https://support.google.com/accounts/answer/185833?hl=en

Genbox··on Show HN: Detecting collision between 500k circles below 5ms
Thank you. Amazing article he wrote.
Genbox··on Show HN: Detecting collision between 500k circles below 5ms
Could you provide a link to the "DragonEnergy" you mentioned?. I can't seem to find it on Google.
Genbox··on How Novell Netware lost the battle against Windows NT (2013)
For everyone else wondering. Prices adjusted for inflation:

$4,695 in 1993 is worth $9,682 today.

$47,995 is worth $98,982 today

Genbox··on Big-O matters, but it's often memory that's killing your performance
He makes some good points. Mutable states in multithreaded applications can quickly become the bottleneck and often requires a rewrite to solve.
Genbox··on What it’s like to have a social media detox
We often forget that we are easily scared mammals that love gossip from neighboring tribes.

The Internet broke the information firewall between nations. Today we just need to watch the TV for 45 minutes and to get an unhealthy dose of death and misery across the planet. The same thing goes with just about every news website.

Social media not only deliver this information to your front door, it also carries the other reader's comments that too often comes in forms of outrage, disgust, sadness, which then breeds more negative feelings.

Genbox··on Avoid exception throwing in performance-sensitive code
What you are asking for is checked exceptions where the caller gets notified by the compiler that the function you call might throw one or more exceptions.

However, it is worth taking it a step further and focus on "why the error occurred" instead of "an error has occurred".

An example of this is Code Contracts. Like Intellisense, live code analysis with contracts would tell you "the method you call will throw <exception-type> with the input you give".

Not only will that cover giving the user information about which error conditions that can arise, it will also give you the reason why.

← PreviousPage 3 of 7Next →