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 From Löb's theorem to spreadsheet evaluation
> What happens when you try and write a function that doesn't have a fixed point?

It's like non-well founded recursion, it loops. But as a bonus, some cases are caught at runtime :

    x :: String
    x = x
    
    main = print x
    
    ./x
    x: <<loop>>
emillon··on Syte: Simple but powerful packaged personal site
> There is only one rule. You can use, reproduce and do whatever you want with Syte but I would like you to choose a different adjacent color as the ones used by the people below.

So... Does it qualify as free software?

Technically it's a limitation of what can be done with it, and it limits the total number of users.

emillon··on Hacking ls -l
> Fixing up man pages is something that non-technical volunteers could help with

Another problem with that is that most tools used in this process are made with technical users in mind. A lot of people can expand documentation, but sending manpages patches in a bug tracker is a technical step.

emillon··on Help find a bright object on Mars
I'm pretty sure that NASA scientists are able to do this kind of anomaly detection and that the primary goal of this (interesting!) question is only trivia.
emillon··on [Ask HN] Applying to Y Combinator from outside the US - Some Questions
It does not fully answer the question, but this discussion is relevant :

http://news.ycombinator.com/item?id=3545548

emillon··on TypeScript: a language for application-scale JavaScript development
Very good idea. But note that these annotations are just hints : they are enforced only in simple cases :

var x = "lol" - error found : http://pastebin.com/R1wqp0CS var x; x = "lol" - accepted : http://pastebin.com/0vc68RbY

emillon··on MMO in loving tribute to xkcd-1110
You can click on the stick figure and turn into a ghost.
emillon··on Re XKCD 936: test the safety of your passphrase entirely in your browser
Well, as far as I'm concerned I have to trust that this form won't POST my passphrase to a server you own.

No personal offense intended, that is a genuine problem with your approach.

emillon··on Re XKCD 936: test the safety of your passphrase entirely in your browser
Are you expecting people to disclose their passphrase to a third party ?

The idea is probably not so bad but the browser is really not the place to run these kind of experiments.

emillon··on OStatus: like Twitter, but open
That would feel like inventing UUCP again.
emillon··on Did Blowing Into The NES Cartridge Really Work?
That's not really being brave ; I mean, it's not dangerous. The NES is very serviceable.
emillon··on Tent.is alpha
> Tent.is will become a showcase for what is possible with Tent.

And 10 other sentences telling me that tent.is is for tent users and I still don't know what tent is. The information I'm looking for is under the fold and seems to be on :

https://tent.io/

Otherwise it looks quite interesting, thanks ! (statusnet but for facebook-type content)

emillon··on Why I’m not leaving Python for Go
Well, the choice is between structures or tagged unions.

I'm not a Go user, but if I understand correctly ("It's like an Either that always has Left and Right."), functions return a structure with both an error code and a value.

To wrap a C function into a Go function with this signature, you can initialize a structure with { code: success; value:f() }; and then of course error checking has to be done C-style (errno, lib_last_error(), etc).

The problem with tagged unions is that when you access the wrong field (when it's not enforced by the language), everything can happen : you can build ill-formed values, jump to random places, etc. Having an explicit NULL in that cases is better.

In a nutshell, unsafe tagged unions < explicit NULLs < safe tagged unions.

emillon··on Why I’m not leaving Python for Go
I imagine that this is to keep compatibility with C. And also, this ensures that when a Left value is accidentally read as a Right one, you don't get a "random" bit pattern due to type punning, but a correct (albeit meaningless) value such as NULL.
emillon··on Rescuing Resque: Let's do this
This. I started to get involved in Debian a few years ago (though I'm a long-time user) and this is really really interesting work. There are a lot of packages with too little workforce where you can go through a list of dozens or hundreds of bugs.

alrs is true ; in most cases your work is automatically replicated to Ubuntu (where the package-maintainer relationship is less strong than in Debian. Most packages don't have a dedicated maintainer there).

And everyone can do it ; no sign-up or complicated process required. You just have to find a sponsor for your packages which is just a fancy name for "every code needs review". Debian is often described as bureaucratic but most of the processes are very sane.

emillon··on Epic commit message
You can probably use folding for this use case. With explicit folding markers "{{{" and "}}}" or other syntax rules it's already possible in all major text editors.
emillon··on Actually, you don't understand lexical scope
Probably. But in these languages, variable declaration is also an lambda/application :

    let x = t1 in t2    <=>    (λx.t2) t1
So, it behaves in a sane way (you have lexical scoping for local variables too). There is no "functional scope".
emillon··on Things I've quit doing at my desk
Matt Might suggested something similar for distractions and gaming :

http://matt.might.net/articles/cripple-your-technology/

emillon··on Pdf.js: PDF Reader in JavaScript
Proxying all your documents to Google is something that should be avoidable.
emillon··on Using /usr/local
To be fair, you can do that on any distribution, that is their point.
emillon··on Show HN: We got tired of asking 'What browser are you using?' and created this
I find it interesting that Flash is detected even with FlashBlock enabled. It seems that the add-on only prevents its display.
emillon··on GHC 7.6 is now live: poly kinds, dynamic use of cores, numeric type literals...
The equivalent construct in OCaml is "function", and it suffers from the same limitation, and it's quite idiomatic to match on a tuple.
emillon··on How to run your own open source Skype replacement
> 50% of the skype secret sauce is the NAT traversal

And the other 50% is the network effect.

emillon··on Watch Out Mars: 1080 HD Video of Curiosity Descent
> I disagree. 2.5 billion dollars is worth a lot of lives. Consider how many people you could save from, say, malnutrition with that money.

With that argument you could argue that any loss of money is unimportant, because it could have been used better. This amount has been invested for Mars exploration, so a mission failure would be a net loss.

emillon··on Firefox 3D view helps spot XSS vulnerabilities
What does it have to do with XSS vulnerabilities ?
emillon··on Debian to use Xfce as its standard desktop
No, Debian is not going to use "Xfce by default". There is a ongoing discussion on debian-devel about what to put on CD1 (for people who install with CDs and no network), as Gnome and KDE do not fit anymore. Putting Xfce by default solves this issue, so does using xz compression for .debs. But no consensus has been reached : this has been committed in git, but no package has been released yet.

And as others have said, defaults are mostly irrelevant (or most people would use Vim in Vi-compatible mode). Debian is a software distribution, which is only a way to deliver software to your computer. You can install whatever DE or WM you wish :)

emillon··on Bitey: Import LLVM bitcode directly into Python
That's not parametric polymorphism, that's function overloading. The former makes it possible to use the same function implementation on different types, whereas the latter is about using the same name for different functions.
emillon··on Richard M Stallman: Steam Is Good For GNU/Linux
I think that the GPL uses the term "derivative work" which is quite vague when it is not applied to code. Many software distributions encourage their upstream to use specific licenses such as one of the Creative Common licenses to cover art.

That's true for text too ; for example most pages on gnu.org are licensed under CC-BY-ND.

Unfortunately, as the -NC and -ND licenses add restrictions, some distributions such as Debian don't consider it free software (cf. [DFSG]).

[DFSG]: http://www.debian.org/social_contract

emillon··on Richard M Stallman: Steam Is Good For GNU/Linux
Totally agreed ; I should have pointed that this is only a guideline.
emillon··on Richard M Stallman: Steam Is Good For GNU/Linux
> I imagine there might be (or could be) a license that asks for the "source" of art assets; that is, a .PSD file, or a blender project, or a script that generates the image. That's a lot more useful to me than the final image itself, and a lot easier to modify if I wanted.

This is used in the GPL :

"The “source code” for a work means the preferred form of the work for making modifications to it."

And also in the "open source definition" that can be used to judge whether something is free software or not :

"The source code must be the preferred form in which a programmer would modify the program." [1]

[1]: http://opensource.org/docs/definition.php

← PreviousPage 9 of 11Next →