mdup's comments

mdup | 6 months ago | on: Ask HN: Who is hiring? (September 2025)

Proton | AI Engineer | Geneva, Paris, London, Barcelona, Prague, Taipei, EU Remote | Full time

We recently launched Lumo, a privacy-friendly ChatGPT alternative, by the makers of Proton Mail & Proton VPN.

We are looking for curious and talented people to help us grow Lumo with any of these skills: ML engineering, LLM inference, GPU infra & devops, Frontend (Typescript, React), Backend (Rust, PHP). Looking for senior-level or fast-growing juniors.

I'm one of Lumo's core devs, write to me directly at marc dot dupont, domain proton ch, with "HN" in the subject.

https://lumo.proton.me

mdup | 1 year ago | on: Smuggling arbitrary data through an emoji

I worked in phishing detection. This was a common pattern used by attackers, although .exe are blocked automatically most of the time, .html is the new malicious extension (often hosting an obfuscated window.location redirect to a fake login page).

RTL abuse like cute-cat-lmth.png was relatively common, but also trivial to detect. We would immediately flag such an email as phishing.

mdup | 3 years ago

It means the eigenvalues will only give you information about the system relatively to the center of that system.

Before describing any system, it's up to you (your "convention") to assert where is the zero-point of your world and in which directions the axes (x,y,z) are pointing.

For instance, in the real world you can choose your 3D coordinate system such that your mirror, as a physical system, keeps the origin untouched (0,0,0) -> (0,0,0). If you decide the origin is a point on the mirror, the equations will be linear: mirror(X) = AX. However if you setup the origin some point far from the mirror, like the center of your eyes, the equations are no longer linear, but affine: mirror(X) = AX+B. Looking at the values of the "AX" part of the system would reveal you the mirroring plane, but now shifted by an offset of "+B" -- the distance between the mirror and your eyes -- because your choice of coordinates was not leaving the origin intact.

mdup | 5 years ago

It's entirely a myth that unsafe is needed to get speed boosts in Rust. Usually, the standard library, as well as other crates, offer optimal performance without resorting to unsafe code.

(If we go pedantic, Vec and other primitives do rely on unsafe, but the point is as an application developer you don't have to write unsafe code yourself.)

mdup | 6 years ago

Probably it was the false friend "hasard" which, in French, means: chance, randomness.

mdup | 9 years ago

In your example, your month of July would be paid. You're out of work the whole month yet your payslip is the same as any other month.

mdup | 9 years ago | on: Rosetta catches dusty organics

Genuine question: How do we know the organic compounds seen by Rosetta do not come from Earth and were not brought by Rosetta itself?

mdup | 9 years ago | on: WaveNet: A Generative Model for Raw Audio

Nitpicking: surjective functions do not relate to unicity of ouptuts; you'd rather talk about non-injective functions. I agree with your point, though.

(surjective != non-injective, in the same way that non-increasing != decreasing)

mdup | 9 years ago | on: Ask HN: Describing skills and competencies in a resume?

Recently I've tried an approach where I send two documents when asked for a CV:

- a "classic" CV which describes education, skills, work experience, and "miscellaneous" projects (late night hacks mostly);

- a second document entitled "friendly CV" but which is actually a short pdf with slides. It is super casual and I explain my previous work with pictures of algorithms and technical stuff. I cut down all the noise and try to speak directly to the inner geek of my potential reader.

From my perspective, I'd say I had quite some success with it.

I think it doesn't matter if you do exactly that. The point is to wake up your reader if you're the 50th CV they're reading this afternoon.

mdup | 9 years ago | on: Show HN: Language Evolution Simulation

Nice demo! Feature request: I'd like to see the people talking, like display sentence of a random pair of agents, every 10 sec e.g. That way I would feel immersed into users discussions :)

mdup | 10 years ago | on: Ask HN: Who wants to be hired? (May 2016)

Location: New York City (desired). Paris, France (current)

Remote: No

Willing to relocate: Yes, to NYC.

Technologies: Machine Learning / Data Science. Python (sklearn), R, C++, Java, JavaScript, Go, Rust. Also got exposure to Haskell, Scala, Erlang, Clojure; several {,No}SQL DBs.

Résumé/CV: http://mdup.fr/cv-classic.pdf http://mdup.fr/cv-friendly.pdf

Email: marc#mdup,fr

More info: PhD in Machine Learning (time series analysis for gesture recognition). I have the profile of a good data scientist with excellent software engineering skills. I can bridge the gap between research scientists (good POCs but crappy engineering and slow perfs) and software engineers (write good code but struggle to grasp underlying math).

mdup | 10 years ago | on: Show HN: 3D Vector Graphics

One could argue that as a name, `go` is not optimal either, yet it seems the community has worked around it pretty well.

mdup | 10 years ago | on: Biohackers Creating Open-Source Insulin

I remember reading in another HN thread about insulins (too lazy to search it right now) that plenty of prototype insulins have been developed, but most of them could cause nasty diseases, notably cancer. Hence only a low number of well-tested commercial insulins have been pushed to the market. Does someone knowledgeable have more info about those "good" vs. "bad" insulins?

mdup | 10 years ago

Not advocating anything, but could C++ have been a good choice? You'd get top performance, small memory footprint, opt-in static linking, at the price of a less "fun" language and verbosity. Regarding memory leaks, it's easy to write a leak-free C++ program these days with smart pointers. However, it doesn't come "batteries included" for net-related stuff, and ASIO can give a couple of headaches.

mdup | 10 years ago

How about Cap'n Proto? Their marketing is great, but I don't recall seeing many experiences with it, so I'm asking for feedbacks here.

mdup | 10 years ago | on: To Master Vim, Use It Like Language

1. For the mnemonic, "\v" turns on "very magic" where all possibly special characters will have their special meaning without prefixing them with "\". Now, "\V" is just the opposite of "very magic", which is "very not magic", i.e. disable all special characters.

mdup | 10 years ago | on: To Master Vim, Use It Like Language

I use them all the time (I've switched them on by default in .vimrc) while editing C++ code. Extremely, extremely helpful to get the structure of a file at a glance. For example, if a 400-line file has about 10 functions in it, you can fold all "zM" and instantly you see only the function signatures, while the bodies are folded.

How to enable it: use "set foldmethod=syntax" (with C++) or "set foldmethod=indent" (with JS, where "syntax" doesn't work for me). Also, I use "set foldminlines=0" so that 1-line paragraphs get closed as well (it looks more consistent).

How to use it: close all folds "zM" (I remember it because the M is shaped like it's all folded on itself). Open all folds "zR". Open one fold "zo", close one fold "zc". Open one fold recursively "zO", close one fold recursively "zC".

By the way, I almost never use manual folds, so "zf" is almost useless to me.

mdup | 10 years ago | on: To Master Vim, Use It Like Language

By the way, in your specific example, "ct(" is not necessarily the most efficient, because most of the time a function name will be a nice alphanumeric string; hence you can use "ciw" which will work anywhere in the string, not only at the beginning.
page 1