HNHacker News
TopNewBestAskShowJobs

emillon

2,853 karma · joined January 10, 2011

Paris-based λ-term writer.

    https://github.com/emillon/
    http://blog.emillon.org/
    @etiennemillon
    me @ <username> . org
submissionscomments
emillon··on The Case of the Modified Binaries
Done. Thanks!
emillon··on The Case of the Modified Binaries
I've made a list here:

http://curlpipesh.tumblr.com/

emillon··on Using GNU Stow to manage your dotfiles
That's exactly how vcsh works too.
emillon··on Skeleton.io – Curated skeleton app and boilerplate code directory
I have a cookiecutter template for js_of_ocaml projects if you want:

https://github.com/emillon/cookiecutter-jsoo

(cookiecutter is a general scaffolding tool)

emillon··on Manipulate audio with a simple Python library
Interesting, I didn't know about these capabilities, thanks!
emillon··on Manipulate audio with a simple Python library
I've been similarly frustrated with DAWs too. In the last few weeks I had a go at writing a DSL that shells out to SoX for audio manipulation. This way I don't have to manipulate audio samples myself.

It's way less polished than pydub but here it is if anyone is interested:

https://github.com/emillon/tmc

Example:

https://github.com/emillon/tmc/blob/master/Music/TMC/Example...

At first it was a pretext to play with free monads, a way of building EDSLs. But right now I'm not sure it's not just a complication. Though, having an intermediate representation before executing the SoX commands makes it possible to write an optimizer (for example, collapsing two audio shifts).

emillon··on Reverse engineering the binary data format for Star Wars: Yoda Stories
That's the difficult part about documenting CTFs and reverse engineering tasks. In the past I tried to do it afterwards but it's a bit clunky. Now I try to do it at the same time, like a journal, and it's getting better (still not as good as OP :))
emillon··on How I Rewired My Brain to Become Fluent in Math
This is the general idea behind category theory: it describes relations and not objects themselves.

That's quite a shift from set theory, where the core idea is that objects can be described with what's inside of them (and building the whole idea of relation as a set of tuples).

emillon··on What is gained and lost with 63-bit integers?
Arrays of doubles are actually special-cased and do exactly this.
emillon··on Ask HN: Who wants to be hired? (October 2014)
Location: Paris, France

Remote: Possible

Willing to relocate: Not immediately but we can discuss it.

Technologies: OCaml, Haskell, Python, C

Resume: http://www-apr.lip6.fr/~millon/cv-emillon.pdf https://github.com/emillon

Email: me AT emillon DOT org

My background is in security & formal methods but I'm also open to working on cool products outside of these fields, especially if it involves open source work.

emillon··on What is gained and lost with 63-bit integers?
Additionnally from the GC, parametric polymorphism requires a uniform representation of values. For example, List.map does not make assumptions about the values in the list like their size.
emillon··on Support for writing GHC passes in Coq
This notion of "for" loop is more a notion of "foreach ... in" than the C version which is indeed equivalent to a while loop.
emillon··on Support for writing GHC passes in Coq
Folds are a restricted form of recursion which always terminate.

Structural recursion (folds) is to general recursion (let rec) as the "for" loop is to the "while" loop.

emillon··on Bare Metal Raspberry Pi BASIC
Fantastic! I've been meaning to do this myself, but glad to see that it exists.

I believe that this kind of single-purpose OS can be even easily created using an unikernel such as mirage, but that removes part of the fun of course.

emillon··on What is type safety?
Indeed. In dynamically typed, every expression is well typed and there is always an evaluation rule that works, so this trivially holds but means nothing.
emillon··on What is type safety?
It is also interesting to consider the PL definition of type safety: the progress and preservation theorems.

Progress: if an expression is well typed then either it is a value, or it can be further evaluated (in the sense that "an appropriate evaluation rule exists").

Preservation: if an expression e has type t, and is evaluated to e', then e' has type t.

That's it, really (well, you can do a few extensions to allow errors such as division by zero, or take memory into account).

If your language has both of these properties, they tell you that typed expressions will behave nicely at run time.

emillon··on Textract, a Python package for extracting text from any document
For video files, guessit does something similar using only the file name:

http://guessit.readthedocs.org/

emillon··on Look at the humongous type that Hindley-Milner infers for this tiny program
I wrote an article on this example:

http://blog.emillon.org/posts/2014-05-21-making-type-inferen...

At first I expected something of the form O(2^n) too but DEXPTIME actually contains O(2^p(n)) where p is a polynomial.

emillon··on Flight rules for Git – What to do when things go wrong
Since you're using a flight metaphor, let's continue it: when doing things like this, use your instruments! It helps a lot to have gitk (or tig) open next to your shell when doing things like this. Git is a DAG editor, you can treat it as such with the proper visualization.
emillon··on Xplain – Explaining X11 with an interactive X11 browser implementation
Previous discussion: https://news.ycombinator.com/item?id=8019346
emillon··on Introducing Transport Layer Security in pure OCaml
The work on Mirage is very interesting. If I understand it correctly, it may be possible to run a Xen domain with a Linux application server, and with a TLS reverse proxy in front using another Xen domain (in the form of a unikernel).

This would be fantastic and does not change a lot how you run your application, except that you get hardened crypto for free.

That's assuming that ocaml-tls has no "high level" bugs (not memory corruption related) of course, but I'm quite sure that it is way easier to review than existing TLS implementations.

emillon··on Dijkstra’s algorithm and the Fibonacci heap
I was confused at first :)
emillon··on Dijkstra’s algorithm and the Fibonacci heap
To help you wrt your edit 2, you seem to be confusing two things:

- the Ɵ() and O() notations can be used on mathematical function. For example 5n^2 + 3n = Ɵ(n^2) [^1] or 3n^2 = O(n^3).

- algorithms have different complexities: for best case, for worst case, or average case. It corresponds to as many mathematical functions.

Each of these functions can be given appropriate Ɵ() or O() bounds.

[^1]: really meaning λn.5n^2 + 3n ∈ Ɵ(λn.n^2), it's a relation between functions.

emillon··on The Axiom of Choice is Wrong (2007)
"The axiom of choice is obviously true, the well-ordering principle obviously false, and who knows about Zorn's Lemma?" -- Jerry Bona
emillon··on Show HN: Browser plugin that turns 'disrupt' into 'bullshit'
All these plugins that do word-replacing should evolve like Adblock: a single plugin controlled by external lists.
emillon··on Goldman Sachs Demanding E-Mail be Deleted
> Frankly I've never understood why email doesn't work this way, it looks backwards to me.

It's (also) a privacy issue as it discloses when one of the recipient has read the email.

emillon··on Job interviews go both ways (2011)
EOF is returned by functions that can return a valid character. So this rules out all the values in 0x00-0xFF (0 would have been a nice choice for EOF but how do you read nul bytes?). -1 is the logical solution (note that getchar returns an int so -1 != 0xFF).
emillon··on Starcraft 2 Anti-Debugging [2010]
Done!
emillon··on PGP released its source code as a book to get around US export law
When Debian decided to incorporate crypto code in main (before, a "non-us" section was dedicated to that), it became necessary to declare the export. So they printed descriptions of the software and mailed it to the Department of Commerce:

https://ftp-master.debian.org/crypto-in-main/ (with pictures of course)

emillon··on Compressing Scrabble Dictionaries
n is the number of words in the dictionary.
← PreviousPage 2 of 11Next →