HNHacker News
TopNewBestAskShowJobs

mackwic

396 karma · joined March 19, 2013

You can always contact me at mackwic+hn@gmail.com
submissionscomments
mackwic··on Stack Exchange Raises $40M Led by A16Z to Boost Its Programmer Forums
As a startup entrepreneur which don't doubt about success and growth -- how could I ? ;) -- I am very interested in the work invested by the whole team in a sane and enjoyable workspace.

What are the trade-offs ? I always feel like only the exceptional rich companies can sustain such high standard of living, the same rich which will respond that it's the only way for keeping an healthy work in the end.

Seems like a never ending chicken and egg problem that I don't have time to solve, I have hard deadlines to manage... (it's slightly exaggerated, of course, but you got the picture)

mackwic··on Stack Exchange Raises $40M Led by A16Z to Boost Its Programmer Forums
It's easier than emit obligation on the market, I guess.

See it as a long-term shot. No doubt that 40M in recruitment will pay if the SO team continue to be half as good as they seems to be today (which is one of the challenges).

mackwic··on Soylent Raises $20M
YES ! Definitely. Soylent is not available in Europe, so if you are OK to fedex them, I buy them all. My mail is on my profile.
mackwic··on NW.js
Seems like it is.

We use nwjs with lot of files + sqlite3[1] + bluetooth + http + child synchronization for tasks in other languages[2].

It works well, scale well, is cross-platform with changing very few of the application code (the build process is quite complex, thought).

Also, building an html with bootstrap, eventually with the chrome developer tools, takes agility to a whole new level when we speak about desktop applications.

[1] With http://bookshelfjs.org/ but http://sequelizejs.com/ is better in most cases

[2] With https://github.com/primus/primus we spawn watchdogs which run processes (via http://nodejs.org/api/child_process.html). It's very effective.

mackwic··on NW.js
Especially the full compatibility with all the HTML/CSS/JS widgets for UI, and the npm packages for computing/interfacing.

I have a lot of pleasure to ship software developed with nwjs, there's plenty of choice and the issues are well known (esp. for a new thing like this).

mackwic··on NW.js
Basically, it's a scriptable desktop application derived from a browser.

Nothing to do with a server framework as it's at the other end of the pipe. ;)

mackwic··on NW.js
By the way, who use nw here ? How ?
mackwic··on Octohub – The missing app for GitHub
Agreed, but still. I don't understand what this app exactly do.
mackwic··on Why you should not use AngularJs
I don't think so, check what ActiveSupport brings to ruby (http://guides.rubyonrails.org/active_support_core_extensions...).

TLDR: with RoR, things like `[1,2,3].third` or `foo.present?` is highly encouraged.

mackwic··on Last Call: HTTP2
Thanks for your deep explanation ! That's very refreshing !

Do you have any clue why SRV is not more widely used ?

mackwic··on Ask HN: We're spliting our team. Any advice?
Thank you for your kind and complete answer. Awesome and scary is exactly what we're feeling now. The end-of-day status email is a really nice advice.
mackwic··on FizzBuzz Enterprise Edition
Not true. It's very difficult to unlock a big budget when you have a small team. And with Coq or Haskell, you team won't be very big...

Also, ADA is _a bit_ popular, but not too much. Most of the code is still done in C because of the conformism. Object oriented programming is still considered like a dangerously modern move. The rules here are pretty hard and it's easier to fuck up the regulation than the code... (cough A330 Neo cough)

mackwic··on Skipping fsck during boot with systemd?
A fairly bad answer, we can all admit that.
mackwic··on Skipping fsck during boot with systemd?
Every n boot (n usually around 30) is scheduled a fsck at boot. It is more a legacy thing as ext4 is really robust. I remember checking my /home/lost+founds regularly in this time and often finding random stuff, music, documents where the i-node has been made orphan so that it doesn't belongs to any directory. Today, we have ntfs and ext4 with amazing journals which can replay most of the operation that has been made. So, when the Virtual-FS layer (the component of the kernel that map the bytes on your HDD to the logical file-tree in the exporer) detect an inconsistency it can replay and apply the correct state to the fs tree on the fly.

Now that we have robust disks and robust fs, I think that this fsck at boot setting could be relaxed. However, think of the people needing saving their data with an fsck because their HDD wasn't as robust as yours. It's not an easy choice to do. You can't even base your decision on the SMART metrics as the worst HDD, the one you want to check regularly, lie to/don't implement correctly SMART.

mackwic··on Systemd v218
Well, your opinion is well informed. Please accept my apologies for answering so lightly. I was also thinking you were a troll.

So, very quick points before going into the core of the discussion:

> finit and initng are examples of plugin-based init systems.

There is a lot of innovative init systems out there, and none of them seems to have been considered. I agree, that's a shame but as I see it, systemd is only a transitional state where new architectures will be considered. I see systemd more like the recognition of the pain of shell scripts. The current situation is definitely too instable to stay as it.

> I'm also curious as to why you mention "recompile". The whole point of plugins is that you don't need to do that.

I strongly disagree. Dynamic libraries can be a point of failure of the system in so many ways I can't even imagine them all. We speak of a critical component of the system, it should be completely controlled.

Also, about the lack of Emacs-like plugin system, I would be frightened by this kind of extensibility as it would make the audit of a system far more complicated. I think we need some boundaries, the kind of a full interpreter wouldn't be able to give.

The question, then, is _what kind of extensibility is needed and acceptable_ ?

You seems to have an opinion on the matter, I would be happy to hear it.

From my point of view, the system proposed by systemd is acceptable and I don't miss any feature. Maybe I didn't dig to extreme corners, but be assured that I dig at least more than a simple install. It's not that bad.

mackwic··on Systemd v218
> Not at all. Emacs is significantly extensible. systemd has no notion of a plugin or module system, or anything like that

rolling eyes

Please, stop doing your karma bitch.

1. Systemd is far more than an init system, it has 69 binaries !

2. sysV init has no notion of plugin nor module system, but has a notion of script file

3. Like systemd the init system: http://0pointer.de/blog/projects/systemd-for-admins-3.html

4. But you can also plug yourself via the dbus api, which is far more powerful: http://www.freedesktop.org/wiki/Software/systemd/dbus/

5. If that's what you are suggesting to do, you are not supposed to directly modify and recompile your init system for causal changes. If you want to change its behavior, use command line flags or configuration file.

mackwic··on Streem – a new programming language from Matz
Well, sorry but sed _is_ cryptic. Let me quote an exemple for you (squeezing blank lines):

>leaves a blank line at the beginning and end if there are some already.

     #!/usr/bin/sed -f

     # on empty lines, join with next 
     # Note there is a star in the regexp 
     :x 
     /^\n*$/ { 
       N
       bx
     }
     
     # now, squeeze all '\n', this can be also done by:
     # s/^\(\n\)*/\1/
     s/\n*/\
     /
As soon as you begin to use sed registers, the code becomes arcanic.
mackwic··on Streem – a new programming language from Matz
Yeah yeah, of course. The hacked syntax showed by GP made me really think of sed. :)
mackwic··on Streem – a new programming language from Matz
I think that stream-oriented languages are doomed to have an arcanic syntax.

Streams are a non-trivial construction, after all.

mackwic··on Streem – a new programming language from Matz
Awesome ! Let's call it sed !

Reference: https://www.gnu.org/software/sed/manual/sed.html#Examples

Sorry, I couldn't miss that one. :) Really, check the example. Sed is most powerful tool and can do astonishing work.

mackwic··on [dead]
And, like always, there is a relevant XKCD: http://xkcd.com/1172/

Moreover, there is no reason to use vendor-prefixed css without the soon-to-become standard css property. Bad code is bad code, Mozilla is not responsible to fix it.

mackwic··on AWS Data Transfer Price Reduction
I really don't understand this thing about charging bandwidth. In France we are used to the free and unlimited bandwidth for all providers and hosters (see OVH, Gandi, Dedibox... but also all ISP), and the rare cases when I had to pay my bandwidth (Hertzner), the service was quite bad (routes issues, ipv6 issues, and the throughput was very inconsistent).

It really seems to me like some providers are trying to charge for anything in order to extract value.

mackwic··on Ask HN: Is it time to give up, or is it time to push on?
I think you mean "easy to hire"-technology. One time it was Java, then it was PHP, now it's becoming node.js and angular. Maybe it's a bit soon, but it's far from insane to bet on these technologies nowadays.
mackwic··on A high-performance, bindless graphics API for Rust
Can you tell us a bit more about the history of the project ? Are you a game developer ? Why did you put so much work in such a huge project ? (thanks for that ! That's wonderful)
mackwic··on Rails – #forty_two() method
It's the whole philosophy of ruby: sometimes, it makes more sense to write the index in full letters rather than in digits.
mackwic··on Ask HN: What small webapps do you know that have a large audience?
Before websockets, some hackers used gifs as an one-way raw socket. Very impressive stuff.

Example project: https://github.com/videlalvaro/gifsockets

mackwic··on Effects of the x86 ISA on the Front End: Where have all the cycles gone? (2001) [pdf]
Your link is fabulous ! Thanks for sharing it, that was not-so-well known.
mackwic··on Ask HN: Why learn non-JS languages/framework?
Why highly suspect ? We know and use cooperative concurrency since decades.

Agreed on the "not suitable for all" but no one said that.

mackwic··on Ask HN: Why learn non-JS languages/framework?
It's like learning a new programming language: the more you know how to speak/code/design, the more you can express and understand others.

You should have a look to rails, it's still the state of the art in term of framework design. The java/scala Play framework is also worth trying.

mackwic··on The overhead of abstraction in C/C++ vs. Python/Ruby
Even though the question is good, the article answer is disappointing.

First, I really don't like the angle taken, then the question of abstraction (why we do it, how) and choices made by languages designers (and variations in their idioms) are so vast that you really can't treat the question through a <1000 signs blog post.

Some quick points:

- You don't code for the machine, you code to be read by another human (possibly you) in the future. I insist, you will be read regularly and frequently. Thus, your code needs to be clear, precise, and concise. This must be the first thing in mind when coding: program what need to be done in a way that a fellow stranger could understand.

- Abstraction is a way to keep a structure of code clear when the interactions become complex and/or abundant. If you can avoid them when still being crystal clear in your code, do it. Direct speaking is always better than convolution.

- The main requirements when you code are often one or two of: quick to develop, easy to maintain, extensible, efficient (you control your big-O and _WORST_ exec times), correct (no bug. at. all.), real time (when X happens, Y is done between n µs and m µs during p ns)

- So, know when performance is a goal, and know when it's not. Choose your language, your techs, your team considering these goals.

- And yeah, C89, C99 and the C++es have a very high overhead of abstraction: clarity, concision, and sometimes performance (all abstractions can't be inlined). Think of it.

← PreviousPage 3 of 7Next →