Exposing the Wayland lie (2018) - <AUTHOR> https://catfox.life/2018/07/31/exposing-the-wayland-lie/ <comment><USER4> I am the maintainer of the most influential library in the Wayland ecosystem, forming the foundation of a strong majority of Wayland compositors, and the author of a popular Wayland compositor on top of this still. Last week I asked the author of this article to issue a full retraction, because every point is a blatant falsehood. Here is my appeal to the author, with some edits for the sake of general audiences:

>I'd like to ask you to update this with a retraction at the top. I'm not sure if you recall when we spoke about this on IRC a few months ago, but each of these points is entirely false, and the article is a dishonest smear on Wayland (though I assume you only had the best of intentions). To recap:

>1 - recording events from libinput only works if you're root, and if you're root, you can do whatever you want. This is hardly a valid criticism of Wayland. LD_PRELOLAD hacks don't work if the compositor launches the programs - some simple .bashrc trick won't work, and getting the LD_PRELOAD into .bashrc requires being unsandboxed, which itself opens up a wealth of side channel attacks. None of this is a mark against Wayland - it's only one part of a secure system, and the other parts are mandatory.

>2 - Wayland is a protocol, not its implementation. And many implementations are widely supported by older hardware. wlroots, which is the dominant Wayland ecosystem with over 75% of all compositors using it for their rendering, requires only GLESv2, which is the most broadly supported OpenGL standard.

>3 - The headline doesn't match the body, but both are wrong. The design of Wayland and its implementations is indeed much simpler than X11/xorg-server. As for the use-cases brought up in the body of this point, the caracatures of Wayland developers are rude and incorrect. For network transparency, it wouldn't be difficult but no one who cares has stepped up to do the work. Multiple clipboards are now supported. Many of the pieces of remote desktop are in place, and again someone who cares needs to step up to implement the rest and tie it together. We are ready and waiting to support anyone who wants to step up to complete this work.

>4 - A bug in xorg-server will similarly bring down your X session. Driver bugs affect both. Bugs are addressed when they're found, what more do you want from us? Regardless, restart protocols are in the research phase and your comments about the security holes implicated are blatant speculation.

>Support whatever you wish in your distro, but please don't publish dishonest articles.

<comment><USER5> > Last week I asked the author of this article to issue a full retraction, > because every point is a blatant falsehood.

That doesn't sound reasonable.

> LD_PRELOLAD hacks don't work if the compositor launches the programs - <USER2> > simple .bashrc trick won't work, and getting the LD_PRELOAD into .bashrc > requires being unsandboxed, which itself opens up a wealth of side channel > attacks.

This lists quite a few assumptions. Are there many distributions that provide these assumptions out of the box (specifically, the compositor running all applications, and all applications being sandboxed)?

> >4 - A bug in xorg-server will similarly bring down your X session.

A Xorg server needs to implement:

\- the display server

A Wayland compositor needs to implement:

\- the display server

\- the window manager

\- the compositor

\- the hotkey daemon

\- the screenshotting tool

\- everything else that is now unimplementable in Wayland, but needs to be in the Wayland compositor because users need them and Wayland compositor implementers have no choice but to provide the features as API extensions.

I'm not really sure what's XWayland's story security-wise, but from my limited understanding, it is a component that is not going away soon, and allows bypassing some limitations of Wayland's API in order to accommodate X11 clients.

<comment><USER4> >This lists quite a few assumptions. Are there many distributions that provide these assumptions out of the box (specifically, the compositor running all applications, and all applications being sandboxed)?

It's not the Wayland compositor's responsibility to provide an entire security solution, just like it's not the deadbolt manufacturer's responsibility to install an alarm system and security cameras. This isn't a criticism of Wayland, at best it's a criticism of your Linux distro.

Flatpak does answer this question, but fwiw in the Sway camp we're still looking into lighter-weight solutions.

>A Wayland compositor needs to implement: - the display server - the window manager - the compositor - the hotkey daemon - the screenshotting tool - everything else that is now unimplementable in Wayland, but needs to be in the Wayland compositor because users need them and Wayland compositor implementers have no choice but to provide the features as API extensions.

This is only partially true. wlroots implements screenshots the same way that xorg-server does: by providing an API for exporting pixels to clients. The actual screenshot tool is a standalone program which can crash without affecting the compositor. This design is virtually identical to X, except easier to secure. The same can be said of many of your other points.

<comment><USER6> Let's say every attack vector exposed by wayland involves user being root or somehow having sudo access or somehow being exempt in pam or somehow having special access to input devices or being promoted through an ssh config or being promoted through a vpn config.

That is still a huge attack vector considering that the userbase is desktop users and not companies with security teams.

<comment><USER7> > _That is still a huge attack vector considering that the userbase is desktop > users and not companies with security teams._

Because the default in Linux is for Desktop users to login as roots?

Where have you seen that?

<comment><USER6> Because after you use linux for a couple of years you become dangerously knowledgeable and apply workarounds to make things more convenient, such as allowing no password with sudo. Surprised I had to explain this, though.

<comment><USER7> > _Surprised I had to explain this, though._

I'm surprised you even think taking such shortcuts has any bearing to wether Wayland is secure.

People that "become dangerously knowledgeable and apply workarounds to make things more convenient, such as allowing no password with sudo" should not have much expectations for security.

The same way if you leave your front door open in a street level inner city apartment, don't be surprised to be robbed.

<comment><USER6> sudo or root is not the only way you can read someone's logs, which I tried to explain above, so the whole point is moot.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> > Wayland is impossible to keylog.

This is an incorrect assessment of the claim which is, "with Wayland it becomes possible to build a system where applications cannot record each- other's events." To the best of my knowledge the only approach with X11 that actually works is running each app with a separate X server. The author points out that being able to register global handlers or programmatically interact with other apps is useful which is why it's possible by asking the compositor nicely. The trick with libinput requires that the system already be pwnd.

Another way of saying the same thing, "you cannot meaningfully sandbox applications that talk to your X server."

> Network Transparency

Is a bad thing and a poor remote desktop solution. Let's say you have a desktop with an Nvidia graphics card and you've installed their drivers. Your laptop is using the OSS Intel drivers. You forward an OpenGL app from your desktop to your laptop -- it will crash. Why? Because Nvidia's libGL expects to talk to a server with Nvidia's GLX extension of the same version.

However, a ton of work is going into getting screencasting and remote desktop working under Wayland in a manner that will let you implement whatever protocol you care to speak on top RDP/VNC.

And VNC currently works on Mutter so I'm not sure why the author is bemoaning it's loss. It's the feature that's getting the most development time right now.

> Multiple clipboards

That's up to the implementor, Wayland had a very general API that's used to exchange data between clients that can be used to implement clipboards in any way the compositor sees fit. Just because GNOME/KDE don't want to maintain it doesn't mean it's not there.

> Restarting ends your session.

If your X server crashes it ends your session too. So this is really an argument that X.org is more stable than Mutter/Kwin. I don't think the devs will argue with that but the point is that they'll get there.

<comment><USER9> Trusted Solaris had fine grained X Windows security.

In the Year 2000...

[http://www.cse.psu.edu/~trj1/cse544-s10/slides/cse544-lec12-...](http://www.cse.psu.edu/~trj1/cse544-s10/slides/cse544-lec12-solaris.pdf)

<comment><USER10> Yeah, but it's not CADT-compliant: [https://www.jwz.org/doc/cadt.html](https://www.jwz.org/doc/cadt.html)

</comment></comment></comment><comment><USER5> Thank you.

From what I've seen, Wayland seems to follow a very narrow set of use cases, and willfully ignores others outside its philosophy, no matter what their practical applications might be.

From what I remember reading previously:

\- Wine is unimplementable in Wayland. By design.

\- Programs cannot set their own hotkeys in Wayland. You must use the desktop enviromnent's hotkey tool to set global hotkeys. (Desktop enviroments may provide APIs for this, but then you get the foreseeable issues with using e.g. KDE apps on Gnome. And what if you don't want a desktop "environment"?)

\- Screenshotting and screen casting tools are unimplementable in Wayland, by design.

\- Some Wayland implementations provide additional features, like screenshotting / hotkey registration, anyway, as API extensions. These extensions are not standardized and require individual support for each Wayland implementation in each program, thus causing further fragmentation.

\- I use the X forwarding feature so often that I have a hotkey on my laptop to open an Emacs frame running on my desktop (on my laptop's screen). Being able to jump between machines while keeping the entire session, incl. open and unsaved files, is pretty great.

I can certainly think of situations where Wayland's advantages greatly outweigh its drawbacks, but its philosophy seems so much at odds with at least the way I interact with my computer, that the idea of switching to Wayland seems completely unfathomable. As far as I can see, at this rate, Xorg will live forever.

I've been instead working on my own little tool to fix the few annoyances in Xorg clients that I ran into (the ease with which I've achieved this and the flexibility of the tool speaks further in Xorg's favor):

[https://github.com/CyberShadow/hax11](https://github.com/CyberShadow/hax11)

<comment><USER11> >Wine is unimplementable in Wayland. By design.

This is false. Wine could be implemented, it would just be less easy than on X11 because it uses relative coordinates for everything. But it's totally possible to convert absolute coords to relative coords and use e.g. wl_subsurface.

>Programs cannot set their own hotkeys in Wayland. You must use the desktop enviromnent's hotkey tool to set global hotkeys.

Yes. This is by design, because it's very easy to turn a global hotkey mechanism into a keylogger mechanism. Also it's not clear how hotkey conflicts should be handled.

Note that there are protocol proposals for global hotkeys.

>Screenshotting and screen casting tools are unimplementable in Wayland, by design.

They already work. See xdg-desktop-portal.

> Some Wayland implementations provide additional features, like > screenshotting / hotkey registration, anyway, as API extensions. These > extensions are not standardized and require individual support for each > Wayland implementation in each program, thus causing further fragmentation.

That's how it works. Wayland doesn't have the magical power to make everybody implement a common interface. For an interface to be implemented, compositor writers and desktop developers have to agree on a design. Drew DeVault said on IRC something that sums up the situation quite well: "Asking wayland for hotkey management is like asking the HTTP standards group for a new HTML element".

<comment><USER5> > This is false. Wine could be implemented, [...]

Is the information in this bug outdated?

[https://bugs.winehq.org/show_bug.cgi?id=42284](https://bugs.winehq.org/show_bug.cgi?id=42284)

> Yes. This is by design, because it's very easy to turn a global hotkey > mechanism into a keylogger mechanism. Also it's not clear how hotkey > conflicts should be handled.

It doesn't change that this impacts usability, and a lot of software will need significant updates to accommodate these limitations.

> They already work. See xdg-desktop-portal.

As I understand, xdg-desktop-portal is one competing mechanism among several.

> That's how it works. Wayland doesn't have the magical power to make > everybody implement a common interface.

I don't understand... by "a common interface", how would that differ in concept from the X11 protocol?

<comment><USER11> > Is the information in this bug outdated?

This comment suggests the same thing as me: [https://bugs.winehq.org/show_bug.cgi?id=42284#c8](https://bugs.winehq.org/show_bug.cgi?id=42284#c8)

> It doesn't change that this impacts usability, and a lot of software will > need significant updates to accommodate these limitations.

Yes, software needs to be updated to work with Wayland. Though, I'm not personally using a lot of software having global hotkeys, and I can configure global hotkeys in my compositor when needed.

> As I understand, xdg-desktop-portal is one competing mechanism among > several.

It's the most widely supported mechanism. Works on GNOME and KDE, and support for Sway (and more generally wlroots) is WIP.

> I don't understand... by "a common interface", how would that differ in > concept from the X11 protocol?

In the X11 world, all WMs didn't have to agree on a screen capture protocol.

Note that there are discussions in progress to improve communication between Wayland compositor writers.

</comment></comment></comment></comment><comment><USER12> Regardless of the merits of the article, I don't like "lie", because it implies people deliberately spreading falsehoods, and the comments here so far reflect that tone which makes everyone's life a little worse. We're all in this together; can we please be nicer to each other and not assume bad faith?

</comment><comment><USER13> > wl_proxy protocol can be LD_PRELOAD to own the entire system without any > privilege required

I don't understand this claim. LD_PRELOAD doesn't allow you to do anything you couldn't normally do. It sounds like the claim is if you run Wayland with LD_PRELOAD set, it's vulnerable, but this is a case of what Raymond Chen would call being on the other side of the airtight hatchway.

</comment><comment><USER14> Not being able to make a keylogger is actually bad thing.

Both X11 and Wayland have poorly designed keyboard events handling (which was defined in XKeyboard spec in 1995). For example, you want to use Ctrl + Shift keys to switch keyboard layouts on release. Simple thing that is working in Windows. You cannot do that in Linux, because:

\- if you assign Ctrl + Shift to switch keyboard layout then when these keys are pressed, the event will be consumed and you cannot use combinations like Ctrl + Shift + F (this will be interpreted as Ctrl + F or Shift + F depending on what key you have pressed earlier)

\- you cannot make a separate program that would monitor all key presses and releases and switch layout without breaking other programs. In the X server and extensions there is no such feature as "monitoring pressed keys"

The only way to do it reliably is to have a privileged program that would listen to events in /dev/input.

By the way this bug hasn't been fixed for 14 years [1], and instead of fixing it the distributions have been using different hacks and workarounds. Also, they don't warn user that using Ctrl + Shift to switch layout will break hotkeys using these modifiers.

Another issue is remote control programs like VNC. In both X11 and Wayland to emulate user input VNC server muss pass a key number to the X server or Wayland compositor. Not a keysym, not a unicode codepoint, but rather a number of the key on a physical keyboard. Now guess what happens if VNC client's machine has a keyboard layout with characters not present in layout on VNC server's machine? Everything gets broken. Typical solution for this is to find unused key number and patch current keyboard layout before sending a key press event to the X server.

Because of the same reason on-screen keyboards on Linux cannot produce characters not present in keyboard layout. Emoji, for example.

[1] [https://bugs.freedesktop.org/show_bug.cgi?id=865](https://bugs.freedesktop.org/show_bug.cgi?id=865)

<comment><USER11> >For example, you want to use Ctrl + Shift keys to switch keyboard layouts on release.

This is possible in Wayland, it's up to the compositor.

>Now guess what happens if VNC client's machine has a keyboard layout with characters not present in layout on VNC server's machine?

This seems pretty normal to me. Remote keyboards are just like physical keyboards. Just configure VNC's keyboard to use the correct layout.

(BTW I'm not sure I understand what you mean by "Everything is broken")

>Because of the same reason on-screen keyboards on Linux cannot produce characters not present in keyboard layout. Emoji, for example.

I don't know about X11's status on this, however in Wayland on-screen keyboards _can_ send unicode to the compositor via the standard text-input protocol [1].

[1]: [https://github.com/wayland-project/wayland- protocols/blob/ma...](https://github.com/wayland-project/wayland- protocols/blob/master/unstable/text-input/text-input-unstable-v3.xml)

<comment><USER14> > This is possible in Wayland, it's up to the compositor.

Typically compositor uses libxkbcommon which suffers from the same problems that X server had.

> Remote keyboards are just like physical keyboards. Just configure VNC's > keyboard to use the correct layout.

It is inconvenient and I don't think it would work. There is no such thing as "VNC keyboard". VNC client sends keysyms over the wire, so the VNC server has to convert them back to a key number, switch to necessary layout if there are several of them, turn off modifiers like Shift if necessary. This is too complicated. For example, x11vnc server doesn't support non-latin input correctly.

> (BTW I'm not sure I understand what you mean by "Everything is broken")

That many VNC servers cannot handle non-latin input correctly.

> however in Wayland on-screen keyboards _can_ send unicode to the compositor > via the standard text-input protocol

This looks like an extension for implementing IME. You can see that there is no key press or key release events. These events are defined in wayland protocol spec [1] and they still use a key number. So you cannot send key press/release events for characters not present in current keyboard layout.

[1] [https://wayland.freedesktop.org/docs/html/apa.html#protocol-...](https://wayland.freedesktop.org/docs/html/apa.html#protocol- spec-wl_keyboard)

</comment></comment></comment><comment><USER15> > Multiple clipboards provide flexibility and power. I will be the first to > admit that a great deal of people don't know about this feature, and it is > entirely possible to use a computer without it (look at Windows or the Mac > OS). That doesn't mean that I would enjoy losing it, however.

macOS _sort of_ has multiple clipboards, if you squint just right, but they aren't all equally supported.

Select "aaa", command-C, then put your cursor at the front of "bbb", control-K. You can paste the former with command-V, and the latter with control-Y (just like Emacs). The kill buffer is just for text, and has basically no API, so third-party programs can't (easily) use it.

There's also the search selection (command-E), which is pretty much only usable for moving the selection to the search box. It's another semi- persistent way to save some text, though.

The situation reminds me of the 6502 (which has 3 registers, each with specific duties), or the 3 robots of Robot Odyssey.

<comment><USER16> _> There's also the search selection (command-E), which is pretty much only usable for moving the selection to the search box._

In most apps, Command-E followed by Command-G will search for the selected text without even going through the search box!

</comment></comment><comment><USER17> I can absolutely relate to 4). Getting kicked out of the graphical environment every time sway crashes is frustrating enough for me to abandon it at least until 1.0.

The Nvidia issue is also annoying, why it has taken so long to resolve is hard to comprehend.

<comment><USER18> They say and wlroots off master. I have only had a single crash, and that was many months ago.

I do keep it fairly updated.

<comment><USER19> I do have a sway crash every week or so, next time it happens i'll try to investigate. Nothing unbearable tho, the upside of running new software is seeing the edges getting softer (and sometimes helping with that process).

</comment></comment></comment><comment><USER20> Until Wayland supports X-style remoting of applications, I literally can't use it, so here's hoping X remains an option for a long time to come.

(Edit: Or Wayland implements X-style remoting which would probably be the preferable option since in other respects such as client-side rendering using the GPU Wayland is cleaner)

<comment><USER21> >Until Wayland supports X-style remoting of applications, I literally can't use it, so here's hoping X remains an option for a long time to come.

Xwayland supports X forwarding, so your existing forwarding setup will work fine OOTB. What's missing is forwarding native Wayland applications, but if everything you use today works on X11, it'll work on a Wayland compositor via Xwayland too.

</comment></comment><comment><USER22> > Network transparency allows you to run an X11 application from any computer > on your network and display it on your local computer.

This is a rubbish point. Remote X may work OKish over a wired LAN, but over anything else it sucks. Not even NX uses the X11 protocol any more.

Honestly the only reason people even use it over a LAN is because VNC is so archaic and nobody has written a modern version. Wayland actually makes that _easier_ though.

The point about crashing compositors is good though. Windows can handle a crash in the graphics driver seamlessly. I don't think any Wayland compositors can come close to that.

<comment><USER23> Applications that use X11 properly don't just work OKish over wired LAN, but work good enough that you can't tell it's not running locally..

One usual workflow is to ssh into a data reduction machine, do some reduction task and inspect the data products without having to copy them to the local machine or use NFS or the likes to access the files.

<comment><USER24> What is a data reduction machine?

<comment><USER23> In my case a few beefy servers (lots of cpu cores, ram and disk) that are dedicated to the purpose of running data analysis/reduction on them.

</comment></comment></comment></comment><comment><USER25> > You can achieve pretty much the same isolation as Wayland on X11 with > cgroups and Xephyr.

Wait, you mean I could get something _almost_ as good just by adding in two additional technologies to the mix? Amazing!

<comment><USER26> Adding just one application (Xephyr) is a whole lot easier than replacing X, though. It's probably worse for isolation, but it's also probably good enough.

</comment></comment><comment><USER27> Several points made in this article are false, misleading, or complete horseshit.

1\. > Except the fact that Wayland is based around libinput, which is trivial to record key events from.

This is complete horseshit. You cannot "record key events from libinput", because libinput merely _processes_ key events from evdev in the kernel, received via /dev/input/event*. This is exactly the same as on X.

2\. > Wayland's compositing protocol is basically designed from the ground up to require the kind of closed-source, blob-filled graphics driver from AMD or Nvidia

This is malicious FUD. sway's authors have specifically and repeatedly stated that they explicitly do not support AMD and nVidia proprietary drivers.

3\. > Network transparency ... allows you to run something like a Web browser on a more powerful device while running X11 locally

This is true but misleading. If you actually try to run a modern web browser, you'll find that the experience is usable but extremely poor. The graphics are ugly, it's slow to respond, and videos don't work properly.

<comment><USER28> Re: 3

A lot of people keep saying this about X apps but anything written with GTK will be awful because (from what I understand) it's just paints everything itself and then uses X11 to actually display what it draws. Plus if you run anything over the network like that GLX doesn't work.

My main two personal complaints with wayland is that writing simple programs without widget libraries is much harder and that the window management is handled by the app (which IMO makes absolutely no sense but maybe there's something I'm missing, which isn't crazy since the last time I messed with it was a year or two ago.)

Until those two things get dealt with I'm unwilling to use it.

<comment><USER29> > A lot of people keep saying this about X apps but anything written with GTK > will be awful because (from what I understand) it's just paints everything > itself and then uses X11 to actually display what it draws. Plus if you run > anything over the network like that GLX doesn't work.

I don't find that to be true, e.g. I've used pavucontrol (a GTK3 app) over the wifi X11 networking and it worked fine - the very nice thing with X11 networking is that it will use your _client_ DPI for rendering / Xresources / etc... so you can have both lo-dpi and hi-dpi clients connecting to the same machine and it works for both without any configuration.

<comment><USER30> Wow, you got audio playback working over network X11? How did you do that?

<comment><USER29> no, i'm running on my laptop a remote instance of pavucontrol which controls the volume of my mediacenter (on which the process effectively runs) - <USER3> sound data is being transferred, only volume changes. (though I've also used pulseaudio-dlna to cast audio over the network from linux very easily)

</comment></comment></comment></comment></comment><comment><USER31> So wayland is just a waste of time or what? Why are the Wayland maintainers doing it then? To hurt users? I don't get it, sorry.

<comment><USER32> Obviously not, but it is not the solution to all problems, that people make it out to be, and still needs a lot of work.

<comment><USER33> And really, X11 isn't that bad. Or at least xenocara on OpenBSD, which is what I'm most familiar with and which has addressed some of the more glaring problems.

</comment></comment></comment><comment><USER34> Why do we need the power of GPUs meant for fast and complex 3D graphics applications to draw 2D text, lines and icons?

<comment><USER35> Because 3D is just an extra dimension for the same calculations?

The GPU does not accelerate 3D, but the computations (so 3D can be much faster).

<comment><USER36> Many graphics cards/chipsets/etc. do accelerate 2D operations, unfortunately there's no feasible _unified_ model of a "2D hardware accelerator" the way there is with 3D, so there's no unified support for it in kernel, either. The whole thing is inherently hardware-dependent.

<comment><USER37> Not anymore; at least not like they used to in 90's and 2000's. Today, they expose some overlays (and some limitations, how they can be used) and that's it.

There is a Nvidia OpenGL extension NV_path_rendering that was intended for accelerating 2d, but it wasn't widely adopted.

</comment></comment></comment></comment><comment><USER38> The most glaring deficiency so far is lack of support for the binary NVIDIA driver in most implementations. The whole affair is rather childish.

<comment><USER4> The lack of support for standard Linux APIs in the NVIDIA driver, you mean. You're asking compositors to implement this:

        if (nvidia proprietary driver) {
           /* thousands of lines of code */
        } else {
           /* thousands of lines of code */
        }

We cannot debug the proprietary driver. We cannot fix bugs in the proprietary driver. We cannot read the code to understand it's behavior.

Our answer: "no".

<comment><USER39> > Our answer: "no".

Good thing you are not speaking for KDE and Gnome then.

<comment><USER40> But KDE and GNOME are quite large organizations which gets financially supported by many tech companies. And they seem to have closer connections with NVIDIA engineers compared to sway and wlroots. I've even heard that NVIDIA was directly contributing the EGLStream backend code for Gnome and KDE (see the links below)

[https://www.phoronix.com/scan.php?page=news_item&px=NVIDIA-B...](https://www.phoronix.com/scan.php?page=news_item&px=NVIDIA- Better-EGLStreams-Mutt)

[https://www.phoronix.com/scan.php?page=news_item&px=NVIDIA-K...](https://www.phoronix.com/scan.php?page=news_item&px=NVIDIA- KDE-KWin-EGLStreams-POC)

It's pretty sad that compared to this, sway and wlroots are being completely neglected by NVIDIA. And I think that is precisely why the sway project decided to ditch proprietary NVIDIA driver support.

</comment></comment></comment></comment><comment><USER36> So far, Wayland is removing legacy cruft and replacing it with newfangled cruft. The Wayland protocol itself is not even well specified in the way that X is - the whole thing is _very_ far from true maturity. Just like, e.g. Pulseaudio, which is apparently now getting replaced by Pipewire.

</comment><comment><USER41> ... beware the GNUluminati</comment>


U.S. drone strike kills 30 pine nut farm workers in Afghanistan - <AUTHOR> https://www.reuters.com/article/us-afghanistan-attack-drones/u-s-drone-strike-kills-30-pine-nut-farm-workers-in-afghanistan-idUSKBN1W40NW <comment><USER2> This is deeply tragic. I wish the story gave more details. Based on the provincial governor's statement, it sounds like U.S. forces were relying on the Afghan government's intelligence assessment.

I also wish news sources would be more careful about suggesting that there are autonomous killer robots in the sky. The _drone_ didn't target anything. A remote pilot did, based on information he/she was provided.

<comment><USER3> The US can't sustain casualties and maintain any popular support for the war or the reputation of the military, so they use remote control killing machines on people the media don't care about. Unless you have people on the ground (and even then!) you can't really be sure of your intel. This media strategy allows them to not care about the quality of the intel. While the power of the state is still terrifying, it is vastly weaker than during the Vietnam era.

</comment></comment><comment><USER4> I have kids and live in a rural U.S. town. I fear "normal" things such as drugs, school/gun violence, sex predators, etc. This... this is next level. I couldn't even fathom what it would be like if missiles rained from the sky at faster-than-sound speeds - from another country no less. You could say: "There aren't terrorists in rural U.S. towns," but I'd argue that isn't the case anymore with all the mass shootings, racial hatred, and so on. The world is in such a sad state.

</comment><comment><USER5> Now imagine "U.S. drone strike kills 30 pine nut farm workers in France" and feel the difference (which is non-existent). Then it goes on tv and reads the list of this morning's evil men who must be stopped.

<comment><USER6> Now imagine

"France knowingly harbors 911 terrorists."

"French leaders take credit for car bombing which kills 23 civilians."

There's a historical reason for this discrepancy.

<comment><USER7> The US "knowingly harbored" nazi war criminals.

</comment></comment></comment><comment><USER8> Notice the wording - the drone targeted the workers. The drone didn't make a decision and target the workers, the drone pilot targeted the workers, and whomever was standing behind them gave the order to launch the missle. The whole "I'm just doing what the computer said" defense only works in movies.

<comment><USER9> Imagine being the person (even if you had little personal autonomy in the matter) who pulled the trigger or pressed the button. Imagine finding out what you had done. Would it break you?

<comment><USER10> Someone should correct me if I am wrong, but military training is mostly about obeying orders and desensitizing about what's going on the receiving end of your actions.

I have watched Restrepo on Netflix and found one thing interesting, that biggest thing soldiers have missed in their civilian lives is the adrenaline/joy rush of a shoot-out, no matter how dangerous it is. Paradoxically most of the interviewees are clearly suffering from some levels of PTSD, because probably you cannot be trained for when you see your friend's body/face to be blown apart.

It would be interesting to hear from someone in the military or someone with military psychology training knowledge, how this works. Seems that soldiers are fine with killing "the enemy", but seeing death of your friends gives you (understandably) PTSD.

<comment><USER11> I usually avoid these conversations about the military, because it's such a hot button issue. I have many family members who were/are in the military. I have one family member who died in WW2, buried in a US cemetery in France.

> but military training is mostly about obeying orders

Not at all. The military wants individuals to think for themselves. Strictly obeying orders would never get the job done. In fact, the large majority of military training is industrial/trade depending on the branch. When people see bootcamp, and orders being thrown around that's less of learning to obey and more of making people into a cohesive team (breakdown, then buildup). Think about how tight a startup team is after going through hell to get a product launched. Very similar but even tighter.

> that biggest thing soldiers have missed in their civilian lives is the > adrenaline/joy rush of a shoot-out, no matter how dangerous it is

A very small percentage of the military ever gets in a firefight, again depending on branch. Of course there is an adrenaline rush that comes out of being in danger (just shooting guns in general is a rush). Every time I paddle out into big surf or when I have sky dived, the chance I may die is part of the 'fun'. I've never been in a shoot-out, but from what I've read it's those experiences X 100 or more. Finally, these are the exact type of people we want fighting. The best way to survive and win is to go all in 100%. When someone is there, on the ground being shot at, the time for them to debate is over.

> Seems that soldiers are fine with killing "the enemy"

Keep in mind that the US has strict rules of engagement (mistakes are sometimes made as reports have shown). By the time a soldier is killing the enemy they are also going to be receiving fire. Effectively if they do not kill this person, this person will kill them. Seeing friends die is obviously hard because they are your friends, and because of the way teams are built people end up very close.

With all that said, the military is the execution arm of politicians. A soldier on the ground has about as much power to decide to be in or out of war as you or I. People join for a lot of reasons. Financial is a common one. But, a lot of people also join out of a duty and a draw to be of service to a country they love regardless of who is POTUS at any given time.

<comment><USER12> >By the time a soldier is killing the enemy they are also going to be receiving fire.

I think this is what concerns people so much about the drone strikes. Clearly drone strikes are one sided fire fights. And even by the government's own statistics their signal to noise kill ratio is abysmal. This is categorically different than a soldier on the ground returning fire even if we might disagree with the soldier having been sent there in the first place.

<comment><USER11> Yeah, drone strikes are a tricky situation. On one hand, it's great that no Americans are put in harms way (other than the philosophical question if war should be so 'easy'), but I think we have seen time and again that intelligence is not good enough to kill others without having people on the ground.

This is not a new problem though. Cruise missiles did this for years before drones. Drones are just more prolific now, and we are more likely to see the aftermath.

</comment></comment></comment></comment></comment></comment><comment><USER13> Today I saw the BBC's "Bitter Lake" documentary. It explains why Afghanistan is so fucked up. [https://www.youtube.com/watch?v=-p0z6iHGzdE](https://www.youtube.com/watch?v=-p0z6iHGzdE)

<comment><USER14> Don't get me wrong, I love an Adam Curtis film as much as the next guy, but...

His films should be interpreted as you might interpret a Malcolm Gladwell book: An entertaining, insightful, witty, and educational way of telling a story that the author wants to tell, supported by hand-picked facts and part- truths, whilst ignoring other information that might reveal a more well- rounded story.

</comment></comment><comment><USER6> I wonder why, even though we generally try to be skeptical of the news, I'm not seeing many comments here that question whether what this article is saying is even accurate.

How exactly does the reporter know which people are IS fighters? Is there some notion that militants don't ever also farm?

Also in these comments there seems to be a huge double standard. The idea the United States might accidentally kill some civilians is somehow morally outrageous, but the regular and deliberate targeting of civilians by the Taliban and the IS as they attempt to completely destabilize the Afghan government is taken as somehow normal?

<comment><USER15> > _How exactly does the reporter know which people are IS fighters? Is there > some notion that militants don't ever also farm?_

The article says it explicitly: the information is sourced from Afghan officials.

You could say that this may not be the most trustworthy source in this case, and I'd agree, but on the other hand, the problem of mounting civilian casualties of US drone strikes is already a decade if not more old, was widely reported on a few years ago, and is continuously being investigated by various organizations. If what Afghan officials are saying is true, it would not the least bit surprising - and that fact _is_ a huge problem.

> _Also in these comments there seems to be a huge double standard. The idea > the United States might accidentally kill some civilians is somehow morally > outrageous, but the regular and deliberate targeting of civilians by the > Taliban and the IS as they attempt to completely destabilize the Afghan > government is taken as somehow normal?_

I think no one in their right mind would say that what the ISIS or other terrorist groups are doing is anything but repugnant. They're doing evil things, that's a baseline fact, so it's unmentioned - there's nothing interesting in pointing this out. What's more interesting is where did ISIS come from and why are they doing what they're doing, and a significant part of the answer to that question is American military excursions and regular, continued murder of civilians using remote-piloted drones. ISIS may be monsters, but the US is supposed to hold itself to higher standards, not step down to the same level.

<comment><USER6> That's simply untrue. They are trying to set up a Caliphate. Not everything is a reaction to something the US did.

Shall we just let Israel get wiped off the map while we are at it?

Edit: "they" in my sentence is IS, and Al-Qaeda, if that wasn't obvious.

<comment><USER15> Nothing to do with the power vacuum left by the US after destroying Iraq and Afghanistan? Nothing to do with weapons and training distributed in that region by the US many years ago? Nothing to do with drone strikes fueling anti-American sentiment that's then used as motivation and justification for performing acts of terror?

I didn't say US is the whole reason here. But it's a big part of it.

</comment></comment></comment></comment><comment><USER16> Can someone explain to me how the US military is still unable to distinguish pine nut farmers from IS Jihadi terrorists? Where is all this advanced military tech I keep hearing the US military is developing that people are mistaking for aliens?

<comment><USER17> The world's largest, most expensive military does not make mistakes. If they admit a mistake, it's to cover up something far more nefarious.

<comment><USER18> Every organization in the world makes mistakes all the time.

<comment><USER19> I'm assuming the grandparent comment is sarcasm.

</comment></comment></comment></comment><comment><USER20> This is how you create terrorists. What do you think the children and friends feelings towards the US will be from now on? People get radicalized for much less than that.

<comment><USER21> Their feelings will be affected and rightly so, it is a tradegy. However the feelings of a few people about an error can not be the single parameter to decide if drone strikes are used. War have casualties.

What about the feelings of the children and friends after 9.11, Charlie Hebdo, Bataclan, Nice, Stockholm, Trèbes, Paris, Liège and Strasbourg? I could go on. Of the 24 jihadist attacks in the EU in 2018, 10 occurred in France, four in the United Kingdom, four in the Netherlands, two in Germany and one each in Belgium, Italy, Spain and Sweden. In 2017, a total of 62 people were killed in ten completed jihadist attacks in the European Union, according to Europol figures. The number of attempted jihadist attacks reached 33 in 2017.

If a single drone strike is how you create terrorists, what is being created in Europe?

<comment><USER22> How many "error's" does the US make? Far too many for them to be called "error's" anymore. How many kids were radicalised by the US going into Iraq and killing millions of their people? Tens of thousands of orphans, with an evil imperial army coming into their home, bombing their farms, raiding their homes, murdering civilians. Enough to create ISIS and radicalise thousands upon thousands more.

How many families were put out by 9/11? About 3000. And you call that an excuse to invade Iraq, Afghanistan, Libya, Somalia, Pakistan etc etc etc. So 3000 American lives, taken by Saudi Arabian citizens, cost the lives of millions across the world so that the American people can feel good about their hegemony?

Al-Qaeda won that war before the US even left their own soil. They had one aim, bring about the end of the USA, and they did it by getting your own government to strip away civil liberties overnight, and you didn't even care.

<comment><USER23> > How many "error's" does the US make?

Usually it's measured in the ratio of civilian casualties to combatants, and as far as I remember, US is keeping this ratio exceptionally low in comparison to other conflicts.

That's the key point here: your criticism applies to any war at all. War is hell, everybody knows that. To be objective in your judgement about US though, you have to quantatively compare different conflicts to each other.

<comment><USER24> Your memory is wrong. You may want to look that up before making such a dumb claim: [https://en.wikipedia.org/wiki/Civilian_casualties_from_U.S._...](https://en.wikipedia.org/wiki/Civilian_casualties_from_U.S._drone_strikes#Total_numbers)

Ratio of 15-20% civilian deaths is not "exceptionally low" by any means.

<comment><USER23> But it is EXCEPTIONALLY low - even more so than I remember.

> Starting in the 1980s, it was often claimed that 90 percent of the victims > of modern wars were civilians.

> The Vietnamese government has estimated the number of Vietnamese civilians > killed in the Vietnam War at two million, and the number of NVA and Viet > Cong killed at 1.1 million—estimates which approximate those of a number of > other sources.[19] This would give a civilian-combatant fatality ratio of > approximately 2:1, or 67%.

> During the First Chechen War, 4,000 separatist fighters and 40,000 civilians > are estimated to have died, giving a civilian-combatant ratio of 10:1.

[https://en.wikipedia.org/wiki/Civilian_casualty_ratio#Cheche...](https://en.wikipedia.org/wiki/Civilian_casualty_ratio#Chechen_wars)

<comment><USER22> So essentially what you're saying is that it's ok to kill million's of people in Iraq and Afghanistan as long as it fit's into a ratio that they're killing enough enemies to make civilians inconsequential? What utter bullshit you spout and a sad world you live occupy in your own head.

</comment></comment></comment></comment></comment></comment></comment><comment><USER25> Would be really so unthinkable a high army charge going to the area to make in place a public televised apology to those people, asking how can help alleviate this disaster, and returning the families a little dignity at least?

And please journalists, stop referring to the people as "tribal this" or "tribal that". To always focus on that point is unnecessary and disrespective. A father is a father in any part of the world.

</comment><comment><USER26> On a side note it's very interesting to re-watch Rambo III, where he teams up with local jihadists in Afghanistan to fight the occupying Soviets in the area. Hollywood propaganda at its finest, but brutally ironic today.

</comment><comment><USER27> Both the Taliban and the US are killing innocent civillian bystanders. This is more and more common with drone strikes. It was konwn that it's pine nut picking season and the governor of the province was informed. There was wither miscomunication or the US forces simply ignored the fact and launched the strike anyway.

[https://www.reuters.com/article/us-afghanistan-attack- drones...](https://www.reuters.com/article/us-afghanistan-attack-drones- letter/letter-detailing-civilian-presence-failed-to-prevent-deadly-afghan- drone-strike-idUSKBN1W431P)

The Taliban were all too coward to plant a car bomb in the proximity of the government intelligence department building, so what they did was to plant it next to a nearby hospital.

[https://www.aljazeera.com/news/2019/09/killed-car-bomb- attac...](https://www.aljazeera.com/news/2019/09/killed-car-bomb-attack- afghan-province-zabul-190919042138106.html)

</comment><comment><USER28> This is simply what made to the news.. war crime for which no one will be held accountable, double standards.

</comment><comment><USER29> Why are we there?

What's the threat, again? I forgot.

<comment><USER6> The anniversary of 9/11 is a week ago and you forget?

<comment><USER29> Have they given up Bin Laden yet?

Isn't it just a little ironic that one of our "allies" was harboring OBL?

Lesson learned: nukes are a VERY effective deterrent to foreign invasion. That's what we're teaching countries in the Middle East.

</comment></comment></comment><comment><USER30> Just keep bombing somewhat random people, year in and year out. Are we at the 2nd decade of this yet?

This way I promise no one will join the rebells. Why would anyone join the rebells just because their families are slaughtered? That's absurd.

(Irony.)

There comes a time when _YOU_ would strap on a bomb belt. Just imagine that They killed half your family and then goes on telling you they will continue doing it...

<comment><USER31> > There comes a time when YOU would strap on a bomb belt. Just imagine that > They killed half your family and then goes on telling you they will continue > doing it...

It's not that hard to imagine - after 9/11, people did enlist themselves to go and start shooting at others, sometimes with the consequence of dying themselves, believing it is for the greater good.

</comment></comment><comment><USER32> If Afghanistan mistakenly killed 30 Americans there would be hell to pay

<comment><USER33> > If the Afghan _military_ killed 30 Americans _on US soil_

FTFY

</comment></comment><comment><USER34> Related: Pakistan body count[0]. "Whether it is a suicide bombing or an attack by a flying drone, for me it's the same: a Pakistani got killed."

I posted this site a few years ago, but it didn't get attention, but I'm glad to see the community is finally outraged over drone strikes.

[0]: [http://pakistanbodycount.org/](http://pakistanbodycount.org/)

<comment><USER35> The site doesn't differentiate between terrorists and civilians killed, so I don't get the point? It's not like Pakistan is running low on terrorists or the state intelligence service ISI isn't sponsoring their activities.

<comment><USER34> > The site doesn't differentiate between terrorists and civilians killed

It does[0].

> It's not like Pakistan is running low on terrorists or the state > intelligence service ISI isn't sponsoring their activities.

I don't know how to respond to that, since there isn't a question in there, just a belligerent statement. I suppose the best way is to simply not engage.

[0]: [http://pakistanbodycount.org/definitions.html](http://pakistanbodycount.org/definitions.html)

<comment><USER35> I saw the definitions page but my point is about the tally number which seems to be conflating everything together[1] (adding dead terrorists into the tally), which I think is disingenuous.

Compared to, for example, [https://www.iraqbodycount.org](https://www.iraqbodycount.org), which only counts civilian deaths (which I assume based on the name is the inspiration for this page).

[1]: [http://pakistanbodycount.org/drone_attack.php](http://pakistanbodycount.org/drone_attack.php)

<comment><USER34> True, and I don't know what the rationale behind their specific motivation is, but if I were to make a website, I'd do the same. That's not to say that they shouldn't be more transparent about their methodology. The truth of the matter is that there's very little known about the people that actually die in these strikes.

There is a fair amount of confusion on whether the deaths reported to be terrorists are actually terrorists. Some say they are not especially since the dead are never charged. There are also reports that the Pakistani military straight-up calls civilians terrorists[0] but these are heavily contested by the military[1] itself.

If you had a dataset which was heavily reported to be mislabelled, what would you do?

Personally, I'd do the same but perhaps add a better explanation.

[0]: [https://www.bbc.com/news/world- asia-48139648](https://www.bbc.com/news/world-asia-48139648)

[1]: [https://www.dawn.com/news/1486313](https://www.dawn.com/news/1486313)

</comment></comment></comment></comment></comment><comment><USER36> Misleading:

> JALALABAD, Afghanistan (Reuters) - A U.S. drone strike intended to hit an > Islamic State (IS) hideout in Afghanistan killed at least 30 civilians > resting after a day's labor in the fields, officials said on Thursday.

Officials here seems to refer to unnamed tribal "officials." The US and Afghan defense ministry officials cited a few paragraphs before that did not say anything about civilian casualties.

</comment><comment><USER37> Nothing to see here, there were not first world victims!

</comment><comment><USER38> Alexander and his successors tried to hold Afghanistan but they failed after three centuries.

The Mongols tried and failed.

The Arabs tried and failed.

The Mughals tried and failed.

The British tried and failed.

The Soviets tried and failed.

NATO tried and......

[https://en.wikipedia.org/wiki/Invasions_of_Afghanistan](https://en.wikipedia.org/wiki/Invasions_of_Afghanistan)

</comment><comment><USER39> I think Americans we are about numb to these headlines as another mass shooting compared that to the reaction of civil society in Germany when a SUV "only" killed 4 people in Berlin.

</comment><comment><USER40> It would be an interesting experiment for the US military to try stop killing people. It would mean that if you say had a bunch of ISIS guys going to kill civilians like they did in Iraq you'd have to find a non lethal way of stopping them like drones with tasers or maybe diplomacy / bribery. It would be an interesting tech challenge to make non lethal AI drones say that could stop a traditional military.

Or maybe like the non lethal terminator in Terminator 2 [https://www.youtube.com/watch?v=i3XJxWwYx58](https://www.youtube.com/watch?v=i3XJxWwYx58)

</comment><comment><USER41> How do we address the underlying selfishness that causes this?

</comment><comment><USER42> Has the US government issued a public apology yet?

</comment><comment><USER43> It appears to be 70, rather than 30.

</comment><comment><USER44> This is an excellent way to cause more terrorism, well done Team USA.

</comment><comment><USER45> we need accountability for this. it can't just be like "oops"

</comment><comment><USER25> ... and nobody will go to jail for this

</comment><comment><USER46> Not that this isn't a tragedy (and/or mass murder depending on your viewpoint), but I don't think hackernews is the right venue for this.

Hackernews should try and keep to tech and away from politics or its quality will continue to degrade. For instance the comments here are mostly not saying anything that hasn't already been said a thousand times before (is this just outrage porn?).

<comment><USER47> > , but I don't think hackernews is the right venue for this

I would think the same, but then you've got things like project Maven which is very closely related to things like US drone strikes and which definitely deserves its place on HN. For example in this particular case, I'd be interested to know how the initial identification has been made from aerial views alone (I suppose they were based on aerial views) that those nut pickers were the bad guys (when in fact they weren't): was it a manual recognition task? An automatic one? (i.e. image recognition).

Again, this pretty much looks like a false positive issue with great "chances" of having been caused by an automatic process, so it definitely has its place on HN.

<comment><USER46> I'd agree with you if a noticable proportion of the comments so far had any discussion of the technical aspects, but they don't. (Two out of the 40 comments could maybe be considered discussing the technical aspects and yours goes into the most depth)

<comment><USER47> Yeah, I left my comment before reading the rest of the conversation in here, you're correct on that one

</comment></comment></comment></comment><comment><USER48> American exceptionalism means they will get away from it easily as 'collateral damage'.

</comment><comment><USER49> More news from the _War on Pesto_ ...

Only the government has the right to produce pesto. You cannot store pesto in a bank safety deposit box (in fact, all safety deposit boxes will be banned). You cannot enter or leave the country with more than 10,000 paper promises of pesto. Anyone who buys, or sells, or consumes pesto will be tracked, and suspicious patterns will be assigned to their _Social Pesto Score_.

The rule of _Civil Pesto Forfeiture_ : the police assume anyone in possession of pesto is engaging in criminal activity. The pesto will be confiscated without any charge, and the onus will be on the pesto owner to litigate to prove that the pesto was obtained legally.

Food banks will charge a fee for dispensing or receiving pesto. Storage of pesto at a food bank will require a negative interest fee.

Futures trading in precious metals for pesto does not need any store of physical metals. Any trade in precious metals for pesto is legally regulated by the Federal Government, but those laws will not actually be enforced.

Pesto lost in boating accidents will be assumed to be still in the owners possession for tax purposes.

The government reserves the right to create as much pesto as necessary for the culinary welfare of the nation. The government decrees that the supply of pesto shall be 2% more than is normally consumed. The excess of pesto will result in too much pesto being included for normal baking transactions, and the value of pesto stored under the mattress will decline.

The production and use of crypto-pesto will be studied by the government in a slightly perplexed manner. For the moment, they do not understand why anyone would want to buy crypto-pesto that cannot be eaten with physical pasta.

All transactions on the _condimentchain_ will be monitored by the government. Eventually they will ban crypto-pesto, because they still don't understand it, but they suspect it threatens their monopoly on printing pesto promises.

</comment><comment><USER50> 16000 civilians death so far in Afghanistan. The life of countless families broken for nothing.

Yankee go home.

</comment><comment><USER51> TIL; 30 Afghans killed today were not pine nut farmers, but its somehow insulting to the survivors.</comment>


In my way,Im sharing back to community,but i need help - what d'ya think? - <AUTHOR> http://www.adobocode.com/spread

<comment><AUTHOR> i do have this little site where i sort of share my small knowledge on Java/JEE stuffs. this is my small way of giving back to the community what i learned from it. however, people don't know it yet, so i made a "begging" page and maybe it can help preach the word. what do you guys think about my move?

<comment><USER2> It's hard to take your seriously when you don't bother to capitalize your sentences. Not a good first impression.

<comment><AUTHOR> I apologize for that..

</comment></comment></comment><comment><AUTHOR> I basically just want to preach and share something to people who has interest in something like me.</comment>


ASK YC: How does a non-American entrepreneur get into the US? - <AUTHOR>

I'm a Canadian about to graduate from engineering. I'm well into my first startup, but I need to get to a startup hub where I can iterate faster and be around the right people. I don't want to spend 3+ years working for a company to get a green card, I want to focus on starting companies and failing as fast as possible. Is there any way I can get into the US? <comment><USER2> Get a travel visa and a sham marriage. As the spouse of a US citizen, you are entitled to a nonimmigrant visa while you wait to be processed to become a permanent resident. Then, you can apply for citizenship.

Actually, your best bet would probably be to send out a boat load of emails to half the valley explaining your situation and see if any will hire you. You can come in for interviews on a regular travel visa. Then, whoever you're working for just has to fill out some form and you can stay pretty much indefinitely as long as you're still employed and file an extension every two years.

[http://www.uscis.gov/portal/site/uscis/menuitem.5af9bb95919f...](http://www.uscis.gov/portal/site/uscis/menuitem.5af9bb95919f35e66f614176543f6d1a/?vgnextoid=a7cc6138f898d010VgnVCM10000048f3d6a1RCRD&vgnextchannel=48819c7755cb9010VgnVCM10000045f3d6a1RCRD)

<comment><USER3> The sham marriage is technically illegal, and vaguely dangerous. Though in fact it is indeed a common occurrence. You can, however, get a TN visa for part-time work, that is completely allowed. Also, the letter of the law seems to indicate that you're allowed to get a TN visa for a company you own partially, provided you don't have a controlling share (i'm not sure if this holds up in court, though). If it does, (i'd talk to an immigration lawyer to make sure), find three other Canadians, split a company equally, and nominate each others visas.

<comment><AUTHOR> Just found this: [http://www.naftatnlawyer.com/nafta-tn-blog/2008/1/14/tn- visa...](http://www.naftatnlawyer.com/nafta-tn-blog/2008/1/14/tn-visa-and- opening-new-business.html) << Looks like "controlling" doesn't just refer to shares.

<comment><USER3> Interesting; they have the clause 'as a matter of fact'.

What we're doing is we've actually founded a company (some americans are part of the company), but it's an actually entity, and the shares are split equally so nobody has a 'sole or primary' share of the stock or income.

Again, this seems to be legal, and we don't see anything wrong with what we're doing. But we do see that some things that _would_ be quite dubious could slip by the laws as well, and that makes us wonder if our interpretation is correct.

<comment><AUTHOR> Hmm interesting, did you ever look at moving on a J1? Or for that matter does anyone else reading have experience with J1 visas?

<comment><USER3> I think you need to get some sort of legitimized sponsorship. I bet this is fairly complicated.

<comment><AUTHOR> A friend of mine did this to work as a waitress for four months in SC. <http://www.swap.ca/out_eng/destinations/usa_internship.aspx> Apparently she found work after she had received the visa and didn't have to report it. I don't want to do anything shady though. I guess you can't sponsor yourself (or your co-founder) for a J1 either?!

</comment></comment></comment></comment></comment></comment></comment><comment><USER4> I am also really interested in a way to start a startup in the US. Also Canadian.

Currently, I am working on a TN visa for a big tech company in the US. The TN is a 1 year temporary work permit. Currently, I'm on my second TN; last year, I tried to upgrade to an H-1B, but my application was not randomly selected. The TN visa is quite easy to obtain if sponsored by a company. It's the H-1B that poses a problem; you might get one after 1 year, or it might take longer (like in my case). Once on an H-1B, you can start applying for a green card. You can find more info about the TN and H-1B on wikipedia:

<http://en.wikipedia.org/wiki/TN_visa>

<http://en.wikipedia.org/wiki/H1B_visa>

It is also possible to go straight from a TN to a green card if you have a good immigration lawyer. This procedure is risky: if your green card application is rejected, you'll never be able to obtain a TN again. Take a look here for more info:

[http://www.immigrationportal.com/archive/index.php/t-123851....](http://www.immigrationportal.com/archive/index.php/t-123851.html)

I do plan to start a startup later this year, in the US if possible. I don't really want to wait 3-5 years (or even longer) to get a green card. In my research, I also came across the Treaty Investor visa status that petesmithy mentions in his thread. Here are some links:

<http://travel.state.gov/visa/temp/types/types_1273.html>

[http://toronto.usconsulate.gov/content/content.asp?section=v...](http://toronto.usconsulate.gov/content/content.asp?section=visas&document=evisa_intro_faqs)

I would be really curious to see how this goes for you omakase. I've only recently started to do some research into this. You can contact me at (alx dot solomon at gmail dot com).

<comment><USER5> You don't have to get H1B to apply for EBGC. The H1B period is 2 years. Although it's not guaranteed to be approved for next two years, you'll pretty likely be. The maximum period of H1B is 5 years from what I remember (2 + 2 + 1).

</comment></comment><comment><USER6> I am on an immigrant, and to answer your question, I don't think there is an easy way to accomplish this. Your best, and most legit option is to wait out for the green card.

There might be a way to spin off a company with a citizen, but even then, to work with them on a H1-B visa, the company needs to show some revenue so that as to convince the INS that it may potential need additional employees, especially immigrants.

Please take what I say with a grain of salt. I looked some into this, and from what I understood, this is the only safe route. Good luck, and I will be interested in knowing if you find something that disagrees with me...:D

<comment><USER5> You can't be employed by the company you own. And you can't share the ownership to avoid this restriction. As far as I know, they don't care are you 1% or 100% owner. So, this means neither H1B or EBGC are possible. And yes, among with solid revenue stream, ability to prove that you're not "one man shop", and that you're not trying to make your business of solving other's immigration problems, the company also needs to be able to pay competitive salary within the market range. So, if you're getting H1B for Software Developer, I'm pretty concerned that you'll ever get approved if your company is stating your salary is less then 65K annually (in CA). And, as far as I know, the companies and visa applicants are getting audited very often to assure that they keep the salaries not lower then stated.

<comment><USER7> My experience is the thing about ownership isn't true, and I can think of plenty of people who are counter-examples. Me (own shares in digg.com), Daniel Burka (digg, pownce), Tara Hunt (Citizen Agency). All three in the US on TN visas.

<comment><USER5> You're saying about TN status (sometimes referred as TN visa). I was saying about EBGC and H1. Only Canadians and Mexicans can use TN.

<comment><USER7> Yeah, my bad. I mixed up comments. Or maybe I mixed up visas. Which is about the easiest thing in the world.

</comment></comment></comment></comment></comment><comment><USER7> Having been through this experience, I think the best way is to try and get a job in the US with a visa, then work on the startup on the side. If you can get funded, everything gets a lot easier. Unless of course you're wealthy to start with.

</comment><comment><USER8> Check this chain out.. Drop me an email (pete at songkick dot com) if you want any info, looked into this pretty extensively..

<http://news.ycombinator.com/item?id=67268>

<comment><USER9> Wow, great thread on this topic, petesmithy.

My experience is with Nurses moving here to the States from the Phillipines or Canada. And, they all say that it's a royal pain. The Immigration service, or to those in the know, "La 'migra" has been very crabby since 9/11. It pays to know what you're doing and know what your options are.

A friend of a friend is on a temporary visa from Hungary (don't know exactly what type). He went to San Diego for a weekend, crossed the border into Mexico for the afternoon, and on the way back in, got a very crabby talking to by the Customs official, and then had to spend several days talking to immigration officials, and explaining why he had violated the terms of his visa, and why they shouldn't deport him.

All that to say, is don't taunt "La 'migra". Don't do something foolish like try to get a faux marriage. Don't get into trouble with the law while you're over here, trying to get your visa.

Perhaps a better question might be: Does anyone know a really good immigration lawyer that I could talk to for an hour or two to see what my options are?

</comment></comment><comment><USER10> > I'm well into my first startup, but I need to get to a startup hub where I > can iterate faster and be around the right people.

I think you might want to examine your assumptions. If you need to hire people (or are desperate to get funded or acquired ;-), then said startup-hub is important. If you have a way of bootstrapping on your own ("I only bus tables as a day-job; I'm _really_ an actor^Wstartup founder!"), and a plan for getting actual revenue, then don't overlook the potential of a certain global computer network that can reach across borders much more easily than you can.

</comment><comment><USER11> I've worked in the US on J1 status, the process was pretty painless, but the sponsoring company does need to produce a Training Plan that includes US social events and evidence of US only experience to be gained and how that experience will then be used in your home country.

You can then try for a H1-B and hope you get one of the very limited number available.

</comment><comment><USER12> You can't. Thank Lou Dobbs.

</comment><comment><USER13> short answer. MEXICO...... j/k</comment>


Lost chapter of world's first novel found in Japanese storeroom - <AUTHOR> https://www.theguardian.com/books/2019/oct/10/lost-chapter-the-tale-of-genji-murasaki-shikibu-found-japan <comment><USER2> post-dupe: [https://news.ycombinator.com/item?id=21228254](https://news.ycombinator.com/item?id=21228254)

Note that they found an ancient transcription of one of the known chapters, not a brand new chapter.</comment>


The cost of a 1TB SSD drive just dropped below $98 - <AUTHOR> https://arador.com/the-cost-of-a-1tb-ssd-drive-just-dropped-below-98/ <comment><USER2> This is some kind of advertisement. This is a low-performing DRAM-less drive.

"Good" drives like the Crucial MX500 were regularly found for $100 during the second half of last year Prices jumped and are slowly coming back down.

[https://camelcamelcamel.com/product/B077SF8KMG](https://camelcamelcamel.com/product/B077SF8KMG)

<comment><USER3> At the end of 2019, everyone was expecting the NAND flash memory market to be on its way toward a shortage in 2H2020, and the major oversupply that pushed prices so low was over. When the coronavirus hit, it was initially unclear whether it would do more to depress supply or demand, so price trends weren't very consistent (especially with lots of stuff going temporarily out of stock). Now the picture seems to be that NAND production hasn't been slowed much but demand is way down, especially for client/consumer drives (as opposed to server SSDs).

<comment><USER2> I would have thought demand would have went out since laptops all sold out at the start of the stay at home orders

</comment></comment></comment><comment><USER4> This seems like a straight up ad with affiliate links. The price of SSDs has been going down for months, and if anything they went up since the pandemic began. You can check the price history of popular ones on camelcamelcamel to confirm.

</comment><comment><USER5> Cheap QLC (not the DRAM-less crap) was sub-$100 per TB last year (closer to $90/TB). This is not the first time flash has crossed this particular arbitrary price threshold.

</comment><comment><USER6> Meanwhile, high-end 1 TB drives -- e.g. Samsung 970 EVO, ADATA XPG SX8100/SX8200 -- are if anything more expensive now than they were 6 months ago, ~175 EUR. At least where I live.

<comment><USER7> And 970 plus around 219 eur on amazon.de. Still better than 5 years ago when I've paid the same price for a 250G 850 pro.

</comment></comment><comment><USER8> I'm thinking about putting an NVMe SSD in my Haswell-based desktop from 2013. The BIOS can't boot from NVMe directly, but I should be able to install Clover EFI on a flash drive, and mount it to an internal USB header.

However, the idea is mildly ridiculous because I only have PCIe 2.0 x1 slots available (and one 3.0 x16 slot for the GPU), which is limited to 500 MB/sec, compared to SATA-III at 600 MB/sec.

Most NVMe drives support PCIe 3.0 x4, which is 3940MB/s. It'd be nice if I could bond two of the x1 slots into an x2, but that would require exotic hardware and chipset support. A basic x1 -> M.2 adapter is $5 on AliExpress, so I'm going to run at 500 MB/sec for the heck of it.

<comment><USER9> You are not realistically going to be bottlenecked at 500MB/s unless you load few large files.

</comment></comment><comment><USER10> Check out diskprices.com for a great resource that's not just ads. I found out about it via HN originally and use it often when making purchases or suggesting purchases to others.

</comment><comment><USER11> I expect to see a rise in SSD form factor home NAS boards & enclosures. The pain-point right now is the PSU. If its built in it usually incurs the fan.

<comment><AUTHOR> Enclosure prices are ridiculous, someone needs to enter that market and slaughter it.

<comment><USER12> I definitely felt the same way when I was shopping for my first NAS. A two-bay Synology ran about $300 for new on Amazon and I just couldn't figure out why it was so expensive.

A few months later I picked one up used on Ebay for $120, and after using it for a few weeks, I can now report why these cost so much.

The amount of software that comes on this thing is absolutely mind blowing. I was able to set up a bidirectional sync to my cloud drive, differential backups, compressed folders for archival, and a backup to Glacier for off-site backup without writing a single line of code.

With a bit of additional digging into their package center, I found out I could install Docker & run GitLab on the NAS, along with a bunch of other self-hostable software.

I realize I could have probably built my own NAS and used FreeNAS for a fraction of the price of buying new, however the amount of time that would have spent configuring/debugging/setting up FreeNAS makes the vendor-purchased NAS a much better investment.

<comment><USER13> But those features weren't in your original specification ( 'I need a NAS enclosure' ) so why pay for them?

The manufacturers know that plain mechanical enclosures have very low margins so they implement features that are perceived-needs ( 'oh that sounds cool!' ) and crank the margins by hundreds of per cent.

</comment></comment></comment></comment><comment><USER14> Amazing. I remember the original Zip drives (and Jaz drives after that) and the price point was somewhere around $200 for 100MB. Would be nice to see this sort of progress in quality and price in, say, healthcare.

</comment><comment><USER15> That's great, Apple can stop charging thousands of dollars for them.

<comment><USER16> Apple charged multiples of the market price when they were installing user upgrade able consumer grade 2.5" HDDs into their laptops, this won't stop them.

<comment><USER17> Apple products are not just worth the sum of their components, they are an "experience" unto themselves.

I type that both sarcastically and with complete sincerity. Apple is vertically integrated, which puts their products in a different class than Intel/Windows, ARM/Android. If you're an Apple user you're not worried necessarily about the CPU or memory, your concern is whether you can run the Mac OS or iOS and the ecosystem that goes with it. So Apple doesn't have to compete on price for its hardware, but rather on other intangibles.

<comment><USER16> Agreed. I'm just pointing out that the price that Apple charged and the underlying price of the components is poorly correlated. Apple will charge what you'll pay, not what it costs to produce.

<comment><USER18> That's true of everybody who's passed econ-101, of course.</comment></comment></comment></comment></comment>


Tariffs Will Increase Home Solar Prices 4% (at Worst) - <AUTHOR> https://powerscout.com/site/tariffs-will-increase-home-solar-prices-4-percent <comment><USER2> If that kills the market than the market was hardly viable to begin with... With the gains in efficiency and drops in price however, it will likely just be a few months of set-back for the industry.</comment>


The Covid-19 Virus: How to stay safe - <AUTHOR> https://foreignpolicy.com/2020/01/25/wuhan-coronavirus-safety-china/?rel=2 <comment><AUTHOR> Author is Laurie Garrett, author of _The Hot Zone_ and an expert on infectious diseases.

Title modified to reflect current accepted name.

The guide addresses practical measures to be safe whilst continuing to engage in daily activities.

Gloves are far more useful than masks. As is distance (1.5 - 2 meters is generally sufficient).

The author was interviewed in this week's On the Media episode, "Black Swans", addressing these and other points (she specifically mentions this guide).

[https://www.wnycstudios.org/podcasts/otm/episodes/on-the- med...](https://www.wnycstudios.org/podcasts/otm/episodes/on-the-media-black- swans)

Audio: [https://www.podtrac.com/pts/redirect.mp3/audio.wnyc.org/otm/...](https://www.podtrac.com/pts/redirect.mp3/audio.wnyc.org/otm/otm022820_cms997580_pod.mp3)

(Submitter)</comment>


America Has Become Too European - <AUTHOR> http://www.spiegel.de/international/world/0,1518,715339,00.html

<comment><USER2> I can't really evaluate the article on economic terms, but it fails miserably in its knowledge of history. If we are to believe prof. Straubhaar, in the 20th century "[t]he United States rose rapidly from virtually nothing to become the most politically powerful and economically strongest country in the world", by following the economics of some fuzzily defined American Way where "every man was responsible for himself -- in good times and bad. No one could count on government assistance".

Then the good professor argues for a return to these good old times. The historical reality begs to differ. Far from being "virtually nothing", the US manufacturing output was the first in the world as early as 1890:

[http://en.wikipedia.org/wiki/Economic_history_of_the_United_...](http://en.wikipedia.org/wiki/Economic_history_of_the_United_States#The_Gilded_Age:_1865.E2.80.931900)

This economic growth was, by the way, happening behind some pretty heavy protectionist measures (initiated by none other than Lincoln):

[http://en.wikipedia.org/wiki/Tariff_in_American_history#Civi...](http://en.wikipedia.org/wiki/Tariff_in_American_history#Civil_War_protective_policy.2C_1861-1913)

But maybe this economics professor wasn't referring to economic output? Let's look at the principles that guided Franklin Delano Roosevelt, under whose leadership the US became acknowledged as a military superpower as well:

"Throughout the nation men and women, forgotten in the political philosophy of the Government, look to us here for guidance and for more equitable opportunity to share in the distribution of national wealth"

A complete opposite from the article's description of an ideology where "no one could count on government assistance"!

In conclusion, the article's premises are based on a very shaky foundation and expose a shocking ignorance (for an economics professor, at least) of US history. And if the foundation is bad, I don't think the rest of the edifice hold up very well either.

<comment><USER3> All your points are fine, except for one. The article does not seek to enlighten or inform, but instead it seeks to influence, by whatever mean, for whatever reason.

Thus the author is in no way to blame, but those in this community who up voted it.

<comment><USER2> Seeking to influence is not an excuse for peddling falsehoods.

</comment></comment></comment><comment><USER4> I suppose one doesn't actually need first-hand experience to have such an opinion, but it _is_ somehow a little bit surreal to read a call for "A Return to Traditional American Virtues" written by a Swiss professor who works in Germany. It'd be like reading an American professor who'd never lived in Switzerland pontificating on how the Swiss need to return to their core values.

It's a particularly nice juxtaposition in this case, because one traditional American value is not listening to what European intellectuals say. ;-)

<comment><USER5> Not to mention how poorly cited the whole thing is (like the dubious assessment that unemployment is twice the stated rate).

<comment><USER6> _(like the dubious assessment that unemployment is twice the stated rate)._

I've actually seen this claim made a lot, both in the media and on blogs. The basis for that claim is that the speaker believes U6 rather than U3 should be the official unemployment rate, and U6 is typically about double U3.

[edit: See joe_the_user's post, which was submitted as I was writing this.]

</comment></comment></comment><comment><USER7> For people who like to read the original, here's the german version:

"Amerikas europäische Krankheit" - [http://www.spiegel.de/wirtschaft/soziales/0,1518,714521,00.h...](http://www.spiegel.de/wirtschaft/soziales/0,1518,714521,00.html)

</comment><comment><USER8> His thesis of structural problems being a large part of the crisis (rather than simple systemic risk) is probably true though. The "fire" instead of "hire and fire" partially reflects that the unemployed aren't useful to employers. Yes, a sizable chunk is due to lower production due to the recession.

Remember how this is the "man-cession"? This means construction and manufacturing. Productivity is up (and not only because people work harder to not lose jobs) due to a well-needed gutting due to having a good excuse. This is some painful creative destruction.

Instead of pouring money out piecemeal, stimulus needs to address the structural issues: modernizing the workforce/education system, rearranging (cut/add) regulations, and useful infrastructure (e.g. not just fixing potholes).

</comment><comment><USER9> What has the FED buying US Treasury securities to do with Europe? That's the opposite of what Europe is doing to handle the economic crisis. The ECB is defiantly not buying German securities or anything like this. Health care and welfare are completely different topics and don't have anything to do with the unemployment rate or economic growth, yet he mentioned them as example of how America became too European and that's supposed to have caused all these problems.

If the FEDs decision is the right one is another discussion, but the way he used Europe in this article to convey his point doesn't make much sense.

<comment><USER3> He mentioned healthcare also. Thus the way he is using europe is possibly to contrast between a hardcore capitalist system like the US and a more soft capitalist system like europe.

</comment></comment><comment><USER10> I'm confused, didn't European nations have smaller stimulus programs compared to the United States? Isn't he consequently arguing for the US to become more European in solving this crisis?

<comment><USER11> The funnt thing is that Germany had a BIGGER stimulus than the US. Look at the data of real government consumption of goods and services, it has risen more in "austerity" Germany than in the United States.

Quarter Gemany US

2007Q4 100.0 100.0

2008Q1 100.4 100.6

2008Q2 101.5 100.8

2008Q3 101.7 102.2

2008Q4 102.5 102.9

2009Q1 103.6 102.5

2009Q2 104.2 103.8

2009Q3 105.1 104.0

2009Q4 104.8 103.9

2010Q1 106.9 103.8

2010Q2 107.3 104.5

Source: [http://krugman.blogs.nytimes.com/2010/08/28/angela-and- the-f...](http://krugman.blogs.nytimes.com/2010/08/28/angela-and-the-fifty- hoovers/)

<comment><USER9> But you have to consider that government spending in Germany is about 280 billion euros, while the US budget is at 3.8 trillion. It's a larger country and all, but these number are really out of proportion.

<comment><USER11> German taxes as a percentage of GDP is 39.3%. The US number is 28.2%. Government income should be about the same as government expenditures, so that means that the German stimulus was even bigger than the number in my previous comment. [http://en.wikipedia.org/wiki/List_of_countries_by_tax_revenu...](http://en.wikipedia.org/wiki/List_of_countries_by_tax_revenue_as_percentage_of_GDP)

</comment></comment></comment></comment><comment><USER12> A good read, but it seems to idealize how America rose to such strength and gloss over how many serious problems came with it and the subsequent need for government to step in and protect (Labor laws, EPA, FDA, SEC, the list goes on...)

</comment><comment><USER13> without reading the article I will say: a) this is too obvious to need voicing b) it ain't hacker news

<comment><USER14> Judging an article without reading it is also not Hacker News.

<comment><USER3> Really?

 _Off-Topic: Most stories about politics_

I think the title conveys possibly well that it is about politics, hence no need to read the article.

<comment> mkr-hn If the community decides that it falls into the "most stories" side, it'll fall off and be forgotten.

<comment><USER15> All stories fall off and get forgotten. Or receive negative comments for being "duplicates".

</comment></comment></comment></comment></comment><comment><USER16> I couldn't agree more. There was an article in the WSJ last week about the benefits of sleeping on the job. I'm sure it was read because it seriously clashes with the NY state of mind, but I saw some pretty supportive comments on Twitter from Californians and New Yorkers alike. I would never want my office to be in France where you get to work at 11, go to lunch and have a few bottles of wine from 12-4, and then take off at 5. I'm glad Sarkozy raised the retirement age to 62 though. I just don't want a culture swap, but it looks to be one of the many directions our melting pot could take. My french roommate used to put the eggs in the cupboard! Crazy!

If I saw one of my employees put the eggs in the cupboard and then take a nap in my New York office, my brain would implode.

I'm not suggesting to operate like a sweatshop and I'm aware that manufacturing power in the United States is quite volatile right now, but even when people focus on those right-brain activities, the earth still spins and capitalism still exists. Some of my best work is produced when my fatigue becomes delusion :D

<comment><USER10> You are funny.

I must say, those French are damn impressive. They work only ten hours a week (probably eight because – honestly – you just know that they will take fridays off) and still manage to be the fifth largest economy in the world. Isn't that something we all should try to imitate, not scoff at?

<comment><USER16> Sarkozy is trying to change social opinion of "careers" and "work" in France to keep pace with other countries. France is a very old country which also makes it even harder to bring change. I think there are a lot of people in France who pick up the slack for others. Kind of like the Israel...

If there is a country we should imitate, I think it would be Israel. Now that's ambition, dedication, and of course, resilience. I think Tel Aviv has the highest concentration of tech startups in the world also.

Why would you think French people only work ten hours per week? My French roommate never understood sarcasm either. He also kept putting the damn eggs in the cupboard even after I told him he would get sick.

<comment><USER10> Pssst, the stylistic device in your comment is called hyperbole, the one in mine is called sarcasm.</comment></comment></comment></comment>


Life at 60 - <AUTHOR> http://www.thesundaytimes.co.uk/sto/newsreview/features/article1427723.ece

<comment><USER2> Paywalled links should not be allowed on Hacker News

</comment><comment><USER3> Why post stories behind a paywall?</comment>


Y combinator real life application: recursive memoization in JavaScript - <AUTHOR> http://blog.klipse.tech/lambda/2016/08/10/y-combinator-app-javascript.html <comment><AUTHOR> The Y combinator is one of the most beautiful ideas in computer science.

It's inspiring to see that it could have real-life applications.</comment>


W3C DRM appeal fails, votes kept secret – Network World - <AUTHOR> https://www.networkworld.com/article/3225456/internet/w3c-drm-appeal-fails-votes-kept-secret.html <comment><USER2> His zealousness aside, it's worth reading the two updates and listening to his video ([https://www.youtube.com/watch?v=h94ZKGVg-B8](https://www.youtube.com/watch?v=h94ZKGVg-B8)) as it adds extra information about how the appeals process, vote, and eventual press release proceeded.</comment>


µUBSan: clean-room reimplementation of the Undefined Behavior Sanitizer runtime - <AUTHOR> https://blog.netbsd.org/tnf/entry/introduction_to_%C2%B5ubsan_a_clean <comment><USER2> Why was a clean-room approach necessary here? The UIUC License used by UBSan is extremely permissive, so going through extra effort to avoid creating a derivative work doesn't make much sense to me.

<comment><USER3> It's not. They're just using the term as a synonym for "rewrite". There's no documentation of any actual IP isolation in the linked article. They just want people to know it's new and not based on the existing LLVM or Linux runtimes.

<comment><USER2> This seems correct. Apologies for the unintentionally pedantic comment.

</comment></comment></comment><comment><USER4> This is an optional runtime used to improve error reporting with the Clang sanitizer:

[https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html](https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html)

</comment><comment><USER5> Darned Good Stuff!

Is the runtime API shared between both GCC and LLVM/Clang?

</comment><comment><USER6> It's sad to see so much duplicated effort. What does this accomplish that a few patches to the llvm implementation couldn't?

</comment><comment><USER7> >I've decided to write the whole µUBSan runtime as a single self-contained .c soure-code file, as it makes it easier for it to be reused by every interested party.

I don't really get why people do this. Linking is one of the easiest and most broadly supported features of C environments on every platform.

<comment><USER8> You're not going to like how PuTTY is written then either. The entire initial portion of the SSHv2 protocol, from version string exchange to the end of user authentication, is coded as one huge (10Kloc) C function that uses a macro- driven Duff's device to implement co-routine behavior (it's all async I/O under the covers).

To me, one huge file or many small ones doesn't matter all that much because I have cscope on my side. What matters is being able to find things quickly. Still, one huge file means I can asterisk on a symbol in vim to quickly find all references to it without having to switch to cscope -- that's not nothing.

Also, [https://github.com/NetBSD/src/blob/trunk/common/lib/libc/mis...](https://github.com/NetBSD/src/blob/trunk/common/lib/libc/misc/ubsan.c) is just not that big... only 1639 lines, 1310 sloc. Compare to, let's say, OpenSSL, where 29 C source files have more lines than ubsan.c, with several being more than twice the size. Maybe you think OpenSSL is not a fair example because there's lots of tables and what not? Even if you look at files outside crypto/, you'll find lots of big ones. Just for fun I looked at a variety of other open source projects: Heimdal, MIT Kerberos, glibc, PostgreSQL -- you'll be shocked when you look at their file sizes, even when you elide files that are obviously mostly-data.

Source file size is not that interesting. The _contents_ is. When a set of sources is small enough, organizing it into multiple files is not necessarily a win. 1.3kloc doesn't seem like that big a file.

<comment><USER7> 1639 lines of code actually isn't bad at all. I think that's less of a selling point and more happenstance, though. I certainly wouldn't want to reject changes which split it up in the future as it gets more unweildy on the basis of "but being in one file is a feature!".

<comment><USER8> You could have looked at the file size first. What if it had been 500sloc? Would you still have made the same comment? What is the point at which you'd absolutely insist on splitting it up if you were doing a code review? Surely 1.3ksloc is smaller than that. The commentary on splitting this up strikes me as so much bikeshedding.

<comment><USER9> I think, not to put words in his mouth, that he is objecting to the idea of single file libraries as inherently good or better than a multi-file library. I think the objection is more about future design choices the maintainer will make. If you want to keep it single file, it may be necessary to avoid adding some features which are too complex.

Complex features usually necessitate modularization, which is against the idea of the single file library. Modularization in c and c++ is very poor and based on having multiple files, some of which represent the interface and others that represent the implementation. I at least partly think this is his objection.

<comment><USER8> OK, sure, [https://news.ycombinator.com/user?id=Sir_Cmpwn's](https://news.ycombinator.com/user?id=Sir_Cmpwn's) comment was:

> > I've decided to write the whole µUBSan runtime as a single self-contained > .c soure-code file, as it makes it easier for it to be reused by every > interested party.

> I don't really get why people do this. Linking is one of the easiest and > most broadly supported features of C environments on every platform.

Sure, this is true, and users already have to know how to link, unless they are #include'ing this, but still, a single file is much easier to share/distribute and use, and in any case, splitting up such a small file (by the standards of.. a number of open source projects I looked at, it's small) seems unnecessary.

<comment><USER9> I totally agree with you, I personally love single file implementations.

I was just trying to explain what I thought his argument was against them, since I don't think he really explicitly stated it outside of generally speaking of maintenance issues. He just said he would prefer to contribute patches to a project that had multiple files and a makefile based build system.

I was assuming his argument was about the future directions the project could go, which I can see as being a valid criticism. As I said the main issue with a single file implementation is that potential users may end up using parts of the implementation instead of just the public facing interface you would like them to use.

<comment><USER8> Fair enough.</comment></comment></comment></comment></comment></comment></comment></comment>


Optimize Last is Wrong, Sort Of - <AUTHOR> http://procrastinatingdev.com/programming/optimize-last-is-wrong-sort-of/

<comment><USER2> I think the thing that gets forgotten when people talk about premature optimisation being evil is that premature pessimism is just as evil, and being sloppy is just being sloppy.

All things being equal, you should always choose the optimally performing solution. This does not have to come at the expense of correctness or readable coding style.

Often when the premature optimisation line is touted it's just an excuse for poor design.</comment>


Why You Should Put Less Effort into Your Online-Dating Messages - <AUTHOR> http://nymag.com/scienceofus/2014/10/put-less-effort-into-your-online-dating-messages.html <comment><USER2> Another good data science post from okcupid. The reason I stopped using the site was low response rate, so this is very salient</comment>


YouTube Gets Google-esque New Look - <AUTHOR> http://www.maximumpc.com/article/news/youtube_gets_google-esque_new_look500

<comment><USER2> I miss the working volume slider. The working volume slider was nice. I wish it would come back. I understand how important it is that everything look prettier and different all the time, but I miss stuff that works -- like the way the volume slider used to work.

The new Google Image search result page (after you click on an image result) is pretty great though. A huge improvement.

</comment><comment><USER3> Loving it.

The page loads much quicker now and looks cleaner. The main focus on the site is now the video and comments. Well done!

</comment><comment><USER4> I also feel they focus a lot of attention on subscribing and channels. It's now easier to see new content from a channel you love.

</comment><comment><USER5> Is it curiously left-aligned for anyone else?

<comment><USER6> it is for me and i hate it. It's as annoying as when facebook added the right side events bar and throw the news feed off center.

</comment></comment><comment><USER7> I like it!

</comment><comment><USER8> new design is cleaner</comment>


Ask HN: Does the idea of a "reduce-map" function make any sense? - <AUTHOR>

Describing Google Search, I would say that it takes a formated string of words and returns a set of (links to) documents. I want do design a program that does the opposite: take an arbitrary text document (and maybe, at one time, a set of them), compute a formated string of words, and return that. This shall work by passing the text of the input document to a hierarchy of pattern matchers, looking for and extracting certain values and their relations. Next comes a function that takes these values and relations and knows how to distribute these data to the appropriate subfunctions, each of which computes and returns a substring; the parent then puts the substrings in the right order, formating them for the return.
I'm looking for a name for this concept, and wondered whether "reduce-map" would be a good one - maybe I could say that I reduce the document to a function, which returns a map (the formated string). To find out whether a "reduce-map" moniker had any currency, and if it did, in which context,  I googled program "reduce-map":
http://www.google.com/search?hl=en&q=program+%22reduce-map%22
But due to the fact that Google doesn't search for an exact string or substring even if you format it using doublequotes (which it does seem to promise; compare 'M.I.A.'s album "/\/\/\Y/\" is ungoogleable', http://news.ycombinator.com/item?id=1363489 ), what I got back was a slew of ordinary map-reduce tutorials.  So I still don't know whether "reduce-map" would mean to other people what I want it to mean. I would be thankful for your take on that. <comment><USER2> Its really unclear what are you trying to achieve. My wild guess would be you're trying to build a Markov chain generator (generation of random texts from sample base text).

Other than that, here are unclear parts:

 _"to a hierarchy of pattern matchers, looking for and extracting certain values and their relations"_

What are the "certain values" and how are they "related"?

 _"takes these values and relations and knows how to distribute these data to the appropriate subfunctions"_

What are those "appropriate subfunctions", what do they do? How do they differ for function to "know" where to send each one?

The concept of "reduce-map" doesn't seem to make any sense to me. It's like taking a word frequency (output of MapReduce) and building original text with that? You just don't have data to do that.

BTW. Google searches for doublequoted "reduce map" just fine, it's just that there's no such thing as "reduce map". You collect some data and output it piece by piece ("map"), then you aggregate it by key ("reduce"). "Map" often works as a "splitter" or a "tokenizer", it won't make sense to supply aggregated data ("reduced") to it, since aggregate data is already "tokenized".

<comment><AUTHOR> Thanks a lot. Your _"It's like taking a word frequency (output of MapReduce) and building original text with that? You just don't have data to do that"_ made me understand what doesn't make sense to you. Your last paragraph made me understand why it doesn't make sense to you. The weird thing is that, from my point of view, your "you don't have the data" statement is not really true, because in my model I have an oracle (more specifically, one or more human authors) which _supplys_ the missing data (before compilation), so I can in fact "build original text" from the input. Now I'm looking for a name which describes that this happens. Any suggestions?</comment></comment>