HNHacker News
TopNewBestAskShowJobs

thu

980 karma · joined April 14, 2010

Võ Minh Thu - @noteed

Looking for work (freelance, from Belgium).

I build https://refli.be on the side, and have some other projects, including e.g. https://slab-lang.org.

My GitHub profile: https://github.com/noteed/ — The one of my freelancing company: https://github.com/hypered/

[ my public key: https://keybase.io/thu; my proof: https://keybase.io/thu/sigs/JeP2OIWF199YvdBYLUCAFc-VpjpJA-XzgmwtxG85IaQ ]

submissionscomments
thu··on Lizard Squad attacks Brian Krebs
It is certainly unlawful: it is trying actively to disrupt someone's service (a website but also possibly its entire business). There are also specific laws for DoS[0].

[0]: http://en.wikipedia.org/wiki/Denial-of-service_attack#Legali...

thu··on Python: Faster Way
I met someone who was specifically using `dict()` instead of `{}` because, he told me, the CPython parser was much slower on the later than on the former and that it was noticeable on larger code base.

(That being said I think using Python should be about writing maintainable code, not about micro-optimization.

I don't claim the purpose of that site is to push you to use those micro-optimizations, even if the title seems to suggest so. Including the disassembly makes for a nice visualization.)

thu··on A Generation Lost in the Bazaar (2012)
"detour", to reuse the word of the last paragraph, is how things happen. Look at how we'll get our favourite programming languages in the browser: by compiling to javascript, which evolves to become a potent IR (e.g. browsers support asm.js).

Even if you look at the end result (the m4/configure/shell/fortran example) and it is indeed twisted, to honestly say it is abnormal to reach such a state is to disregard any experience developing software. Any project, even brought to life in the cathedral style, will accumulate cruft in the long run that can disappear only with effort.

thu··on Docker Image Insecurity
Maybe you could use the Git packfile format; this is a self-contained compressed Merkle-tree. If you ever need to reconstruct deterministically the tar from that, you can use something like pristine-tar[0].

[0]: https://joeyh.name/code/pristine-tar/

thu··on Angara-5 to become Russia's biggest rocket
A few questions: Is there any comparison (price/performance) with the SLS ? Is the second stage identical to the boosters of the first stage ? I was wondering if the SLS could also have four boosters instead of two as shown recently when they tested Orion ?
thu··on Docker Image Insecurity
I think this is because they regard the tar'd layers as a transport mechanism, not as the signed payload itself.
thu··on Extending Van Gogh’s Starry Night with Inpainting
That's really neat. This makes me think to image analogies[0], something that impressed me enough that I keep remembering it after 13 years!

[0]: http://www.mrl.nyu.edu/projects/image-analogies/

thu··on CoreOS is building a container runtime, Rocket
You seem to narrow down (i.e. restrict) pretty heavily what competition can mean. Open source projects can compete even if no money is involved, e.g. on visibility and amount of help and traction they can get from the community. This is partly related to the concept of fragmentation (where some people argue that fragmentation dilutes efforts).
thu··on Show HN: MagicEye.js – Generate Magic Eye in Your Browser
I find parallel viewing difficult but cross-eyed quite easy. If you can raise a finger and squint and consistently manage to see two fingers, you should manage:

Do it again with two fingers in front of you, you should be able to see four fingers. Adapt how much you squint in order to see "three" fingers (i.e. two of them overlap). (Practice to perfectly control how much you squint: you should start at zero squinting and increase slightly until you achieve the overlapping.)

Once you can do that easily, replace your fingers by the SIRDS generated on that website. Instead of two fingers, you use two features on that image that you see are repeating. You choose two of them that are next to each other. You do exactly as with your finger: turn those two features in "three". Now I think this is the harder part: as you do that, you have to relax and let your view adapat so as the image becomes perfectly neat (not blurry at all).

thu··on The Guts of a Spineless Machine
Another very cool representation is Urban Boquist's GRIN (graph reduction intermediate notation). GRIN is used in Jhc (and thus in Ajhc and Lhc).
thu··on A fast HTTP request/response parser for Common Lisp
In the HTTP benchmark game, there is also Bryan O'Sullivan's attoparsec-based parser: http://www.serpentine.com/blog/2014/05/31/attoparsec/ The important point is that the parser is a few dozen lines of code (i.e. it relies on a general parsing library instead of being custom hand-written code).
thu··on Even Tetris is hard to test
The interesting bit that isn't mentioned is that all the given examples are actually part of the game specification, i.e. those behaviours are there on purpose. It means that if you have an accurate list of the desired features, you could probably also achieve 100% coverage. It is also possible that testing some features would not increase the code coverage.

"Hard to test" in the submission title didn't mean what I thought: I though it meant it was hard to write tests for Tetris, not that it was hard to recover a complete specification of the game while playing it.

thu··on Show HN: Database Labs – Postgres as a Service
I would love to learn what you would expect from a PostgreSQL as a Service offer that would cost $0.50/month on top of DO.

Having about 10,000 customers at that price point asking "quick general question" to gain a ridiculous salary ?

thu··on Show HN: Database Labs – Postgres as a Service
They do mention offsite backup using WAL shipping.
thu··on Shall we fork Debian?
Something's wrong with this thread. Being for or against systemd is one thing. Bashing the people who are ready to do some hard work to bring more choices to the table is another.

If someone wants to write another Ruby (or whatever programming language) implementation, would you bash her/him ? Would you say "leave me alone, I'm very happy with MRI" ?

thu··on Needle: ASCII-fied arrow notation
There was a thread on /r/haskell with 116 comments. In particular there were alternative Unicode character sets that made the rendering clearer.

http://www.reddit.com/r/haskell/comments/2hpzpu/announcing_n...

thu··on Monit's DMCA takedown notice for Inspeqtor
This will be sorted out quickly I guess: Monit's DMCA notice claims this is a rewrite of Monit. This tweet[0] claims the opposite. (I take "rewrite" as a manual translation to Go as they also say it's not a clean-room implementation).

It remains to see if the part where they note the similarity with the configuration syntax can actually be covered with the AGPL.

[0] https://twitter.com/mperham/status/519165523473358848

thu··on Entrepreneur is a silly word, and you sound silly when you call yourself one
Damned, I will change my LinkedIn profile; I didn't know it was sounding pompous :-)

For me, an "entrepreneur" (french word) is someone who undertake an "entreprise". An "entreprise" is not necessarily a company or a business. It is a kind of project. You could say that preparing a party or a wedding is an "entreprise".

thu··on Lecture 2: How to Start a Startup
I guess you could call it a circle jerk, but it is in some way acknowledged (not in a negative way). For instance the path get-accepted-at-yc -> demo-day -> raise-money is intended for those who want to raise money which is not necessarily the desire of every startup (I guess this is clear for everybody).

The one implicit assumption that I find the most difficult to grasp is the "change the world" attitude, especially when you see that as soon as they try to make money at the same scale they are valuated, startups do "wrong" things. Take FB or Twitter; I guess that connecting people is a noble goal. But trying all the time to get me to click on promoted content, is that good ?

thu··on Lecture 2: How to Start a Startup
Why is it so bad to have a bad employee among the first employees ? I don't understand why it is that bad because it seems that if he/she is bad, you'll notice quickly and then can just fire him/her. Even here in Belgium where employee contracts protect more the employees than the company (at least that's the theory), at the starting period, firing can be done very quickly and I think it can be done even more easily in the US.

Also I think the best way to see if someone's good or bad is to put that person to work. This would e.g. mean that if you have filtered out candidates to 8 persons, you could get the one you prefer to work for 1 week. If your choice was bad, you try the second. In the worst case, you have made a very deep assessment of 8 candidates in two months. I mean that I don't understand the point of recruitment processes that take weeks with all kind of proxy metrics for how a candidate would fit in a very small team.

If you can't find out in a week that the person is bad, how can a recruitment process be better ?

Edit: I'm surprised by how the 1 (paid, in my mind) work week is perceived in the (so far) 3 answers below. It happens all the time to have phone interviews, HR interviews, technical interviews, possibly pseudo-psychological tests, and technical tests in a recruitment process. All that time without being paid (sometimes well before you know what the salary could be). It's all about trade-off, I'm not talking about ditching the selection process and instead hire-and-fire liberally. My question was really just about why is it so damageable to get a bad hire.

thu··on Ello: You are not a product.
It seems I can't edit it. Sorry, it didn't cross my mind (and the link text is clear enough for those that would otherwise need the NSFW tag).
thu··on Top 10% of American adults consume, on average, 74 alcoholic drinks per week
I have times when I drink every day two or three drinks per day (mainly cocktails and I don't think I will ever be alcoholic), have only normal brands at home, but I don't think I would switch to cheaper brands if I ever increase my consumption.
thu··on Ello: You are not a product.
Invite only. The first profile I see on their homepage is https://ello.co/bitchesonbicycles with 2392 followers. I guess I don't want to be invited.
thu··on Billionaire must let public access Martins Beach, judge rules
It's not necessarily black or white. Here in Belgium, the sidewalk in front of your house is public but the house owner has to take some care of it. E.g. when there is snow or ice, it's the house owner responsibility to remove it (and is responsible if someone get injured by sliding on it).
thu··on Write every day
This is something I really want, not for distraction-free writing, but to go in my backyard. I would love to get an SSH terminal in the sun.
thu··on Weave – The Docker Network
This seems very nice. What would be the pros and cons of using Weave instead of Tinc ? I have used Tinc for a while[0] and, the end result looks very similar (i.e. there is not a nice command-line tool dedicated to use Tinc with Docker, but the high level description match).

[0]: https://gist.github.com/noteed/11031504

thu··on Venti: a new approach to archival storage (2002)
The idea of a Merkle tree[0] is used in Git and Bup[1] actually splits files into ~8k blobs, using Git as its data store.

Edit: what would be the state-of-the-art Git store format ?

[0]: http://en.wikipedia.org/wiki/Merkle_tree [1]: https://github.com/bup/bup

thu··on Bypassing a Python sandbox by abusing code objects
I was able to connect to any database from a multi-tenant ERP written in Python. The idea was to get hold of the class of the connection object, and re-instanciate it, while passing a new database name in parameter. That ERP lets users (of different tenants) write Python code in various places. The kind of code you could write was already restricted but not sufficiently. Now all the dunder are forbidden, things like getattr() are also forbidden, which makes the trick used in that blog post not possible. One of the funny thing I had to do was to use lambdas to name intermediate values, because statements were prohibited.
thu··on DigitalOcean Partners with CoreOS for Large-Scale Cluster Deployments
I still am very impressed with CoreOS but I find sad that they were forced to move away from their initially touted "only systemd+etcd". (No blame on them, that was expected as the Docker ecosystem is still young and very fast-moving; plenty of interleaved problems must be solved elegantly.) When you say that Docker+etcd is saner that other solutions, I wonder for how long this will remain the case as the field matures.
thu··on Standard Markdown
Cool, was wondering if John MacFarlane was part of it (and he is). The standard implementation is in C[0]. I guess this is a good middle ground (from a social perspective, not from a technical one). This is a very nice initiative. In particular we can hope that all those markdown editors will be perfectly compatible with each others, or that any deviation from the standard will be very well approachable.

[0]: https://github.com/jgm/stmd

← PreviousPage 3 of 9Next →