reza_n

Joined 11 years ago

Karma
310
Submissions
100
Member since
Mar 24
Reza Naghibi https://reza.naghibi.com

I write fast code, fast.

View on Hacker News

Recent submissions

Comment · 5 years ago
You can use `explicit_bzero()` to bypass DCE (dead code elimination). Otherwise, simply initializing your memory before using is enough to trigger magic failures when you use-after-free. C programs barely function if they do not initialize memory. Context, I work on Varnish which the OP referenced for this.
Comment · 5 years ago
Varnish Software | Dev Ops | NYC onsite or US based remote | Full-time

Varnish Software is the company behind Varnish Cache, a hugely popular open source caching solution installed in front of millions of websites globally. We build high performance caching, CDN, and edge logic solutions. We are looking for a talented dev ops engineer to join our growing US based engineering team. You will be responsible for building, managing, and monitoring our cloud, on-premise, and hosted Varnish solutions. These are Linux based architectures with 100+ gbit/sec network capacity and hundreds of TB of disk capacity. Skills desired:

* Experience managing Linux based systems (bonus points for high performance systems experience)

* Experience troubleshooting and problem solving Linux based issues

* Experience with Ansible, Bash, Git, Docker, Kubernetes, and Terraform

* Knowledge of at least 1 programming language

* Knowledge of how websites and HTTP works

* Knowledge of security best practices

We are considering candidates of all skill levels, if you are new to the field but passionate about Linux and Dev Ops, please apply! Varnish Software provides an open laid back work culture with competitive salaries, full benefits, and generous vacation time. You will be working alongside some of the best and brightest in the industry!

Please apply at: [email protected]

Comment · 6 years ago
Bummer, he pretty much proved he was on the right path with his translation theories. Maybe this was done to protect his work? As in, hes now working to complete the translation and did not want others to beat him to it. One can hope...
Comment · 6 years ago
Time and experience. Learning the syntax and wrapping your head around pointers and memory is the first step. After that, just try and write as much C as possible. Help out with projects, start projects, write tools and APIs. Most importantly, study existing code bases to learn real world techniques. Best case, get a C job where you have to write a diverse amount of C code day after day.
Comment · 6 years ago
I write C full time and I love it (Varnish Cache). In our team of about 10 full time C engineers, we spend less than an hour a month dealing with things like “memory safety”. When you are writing C at a professional level, your time is spent on things like performance, algorithms, accuracy, hitting requirements, and delivering software. We have numerous safety and fuzzing systems humming in the background checking our work 24/7. The tooling ecosystem (Linux) is top notch.

(If you want to write C full time professionally too, contact me!)

Comment · 6 years ago
Comment · 7 years ago
This is a bit on the unsafe side since it blindly trusts user input. At minimum, there needs to be some kind of magic number in the struct header to validate its looking at the right memory. Best case, some kind of pointer accounting. Unfortunately, magic doesn't come for free.
Comment · 7 years ago
We have no problem sharing our codebase with customers, especially if there are concerns like this. Shoot me a msg if you are genuinely interested in anything you have read.
Comment · 7 years ago
Possibly, but memory is accessed using plain CPU instructions, so it would be hard to transparently encrypt all memory for an application at the kernel level. You do have virtual memory, but I dont think that could be leveraged for this. But who knows whats possible there, maybe if you align and address each memory value at the page boundaries and always force a page fault you could have a really poor implementation :)

Transparent disk encryption, not a problem since devices have filesystems which can implement encryption at that layer.

Comment · 7 years ago
Yup. When something goes wrong in these kinds of applications, you sometimes tend to just randomly dump memory, which is a huge data leak. Or even worse, if someone figures out a way to force a data leak, then your are completely compromised. Having each piece of data with its own key and that key is a combination of data outside of the process address space drastically lowers the chances of data leakage and total compromise.
Comment · 7 years ago
Comment · 7 years ago
Comment · 7 years ago
Edge facilities are warehouses in regional locations with excellent backbone connectivity, basically your modern datacenter. Cellphone towers can probably host a few racks, that's not a profitable business and its not "internet scale". If the regional datacenter has a 15ms ping to each tower in the region, then you have pretty good coverage.
Comment · 7 years ago

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton