Standardizing WASI: A system interface to run WebAssembly outside the web - <AUTHOR> https://hacks.mozilla.org/2019/03/standardizing-wasi-a-webassembly-system-interface/ <comment><USER3> Been hoping a stdlib for WASM would spring up. So if I wanted to implement a WASI backend (e.g. on the JVM), are the function definitions I should implement here: [0]? I assume string, array, struct, etc layout in WASM mem is as C expects? Also, is it a goal to provide a test suite to test conforming backend implementations (may already be there, didn't look)? Finally, pardon my lack of research before asking, does this mean that an LLVM-based WASM compilation can target this instead of emscripten/libc and the final WASM could reference all of these API pieces as a imports? Is there an expected posix/libc-to-wasi lib?

0 - [https://github.com/CraneStation/wasmtime- wasi/blob/wasi/docs...](https://github.com/CraneStation/wasmtime- wasi/blob/wasi/docs/WASI-api.md)

<comment><USER4> (Member of the team at Mozilla here )

Yes, that's the list.

And the layout of structs, strings, etc is up to the compiler, within the bounds of the restrictions WebAssembly imposes.

We'll definitely have a test suite, but this is all early days, so a lot of all that isn't yet in place.

And yes, this can be targeted by LLVM-based and other compilers. In fact, Emscripten could use this as the foundation for their POSIX-like libc and library packages. The syscalls are indeed exposed as Wasm function imports.

<comment><USER5> Will WASI normalize differences between platforms? e.g. convert argv or paths to a consistent character encoding?

<comment><USER4> Yes!

<comment><USER6> What about platform differences like how file permissions work on windows vs posix? (i.e., stuff that Python does not fully normalize)

<comment><USER7> I have a dollar that says all platform difference issues will be solved by just doing whatever POSIX does and expecting the host OS to figure it out if it isn't already POSIX. Whenever you try to abstract away arbitrarily different implementations while retaining their non-common functionality you either end up reimplementing one of them and expecting the others to work around it, or you end up forcing the programmer to bypass the abstraction anyway and implement logic for each implementation.

</comment></comment></comment></comment></comment></comment><comment><USER8> This is really interesting. As part of my undergrad research I've built `silverfish`, which is a tool that turns WASM binaries into LLVM bytecode. It's currently pretty chained to how I personally compile my C to WASM, but it'd be pretty cool to get it working with this standard!

Here's a link: [https://github.com/gwsystems/silverfish](https://github.com/gwsystems/silverfish) \-- although the README is pretty sparse, so you'll have to look at the code.

<comment><USER9> wow, thank you. that's amazing!

</comment></comment><comment><USER10> Wait a second...

I thought Java was supposed to do this with the JVM...

I thought .Net was supposed to do this with the CLR...

What's different now?

<comment><USER11> The JVM and CLR suck balls.

They put in huge amounts of effort into things that don't need solving, and the things that need to be solved they do in the most roundabout way possible.

What we _really_ need is a sandboxed VM for running C code securely and efficiently.

The JVM is pretty much the opposite of that; it's not sandboxed, not secure and certainly not efficient as a target for C code.

We're hoping WASM starts over from scratch and does things right this time around.

<comment><USER12> ... 20 years later

JVM, CLR, and WASM suck balls. People have been breaking the sandbox for the better part of a decade.

We're hoping Cool New Thing™ starts over from scratch and does things right this time around.

<comment><USER13> But isn't that the point? We should be getting better at building software over time. Sometimes that means restarting.

<comment><USER14> UNIX is a good counter-argument.

<comment><USER15> UNIX is thoroughly obsolete. Its continued use is from inetia; people rarely need anything but a tiny subset of its capabilities, for which there are more simpler alternatives every day.

<comment><USER16> are you kidding? do you know how many subsystems that people take for granted are using UNIX? furthermore, how do you get simpler than UNIX? it's not complex..

<comment><USER14> I just didn't feel like responding since it was clear OP didn't know what he was talking about.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER17> Solomon Hykes, co-founder of Docker, believes WASM+WASI could take the place of Docker.

[https://twitter.com/solomonstre/status/1111004913222324225](https://twitter.com/solomonstre/status/1111004913222324225)

<comment><USER18> This. I don't have a clear enough mental model for either docker or wasm+wasi, but I immediately thought of docker. What is docker except a bunch of purpose build operating system instances? And why do we need Linux installations (as much as I am a fan of Linux) when we could just run on WASI? And Electron, where each instance runs on an individual instance of a browser?

<comment><USER19> This is the same reason that things like unikernels have been built for. They haven't taken off because of how difficult it is to rebuild your application to also contain it's kernel, but this kind of sandboxing with WASM and WASI doesn't require that and could likely make things a lot simpler to deal with.

<comment><USER20> Yep, just like JEE servers deployed bare metal, oh wait.

<comment><USER18> I'm not sure I get the reference? Could you explain a bit? I know what Java EE servers are, but don't recall anything about bare metal deployments. Comparing my experiences with using JEE and Docker was that they are nothing alike. Just unclear as to your point.

<comment><USER19> Java was at one point going to have a bunch of CPUs[1] built around the JVM bytecode, that would have allowed J2EE and such to run on the bare metal hardware, but they largely didn't go anywhere.

The most successful attempts that i'm aware of are Jazelle[2] and Java-card[3] plans to augment the software solutions

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

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

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

</comment></comment></comment></comment></comment></comment><comment><USER21> After reading about all the AMP and Google, Mozilla's blog is a welcome relief. Always a pleasure.

</comment><comment><USER22> These Mozilla blogs are some of the best edited, articulated and illustrated explanations I've seen on the web. I wish more people could put in the resources to help communicate their mission like this.

<comment><USER23> The author, Lin Clark[0], is the person behind Code Cartoons[1]. She does absolutely amazing work. Unfortunately, there isn't really a single place to find everything she has done. She has done quite a few conference talks[2] as well.

[0] [https://twitter.com/linclark](https://twitter.com/linclark)

[1] [https://code-cartoons.com/](https://code-cartoons.com/)

[1] [https://hacks.mozilla.org/category/code- cartoons/](https://hacks.mozilla.org/category/code-cartoons/)

[1] [https://twitter.com/codecartoons](https://twitter.com/codecartoons)

[2] [https://www.youtube.com/playlist?list=PLIIHcC8epcPqhBrQ1dRmI...](https://www.youtube.com/playlist?list=PLIIHcC8epcPqhBrQ1dRmILg5e5okOVnER)

<comment><USER24> Adding a podcast Lin was on, detailed just how much work goes into creating Code Cartoons. It's pretty amazing and highly appreciated.

[https://changelog.com/podcast/294](https://changelog.com/podcast/294)

</comment></comment></comment><comment><USER25> This year is extremely interesting times for WebAssembly, there's a number of these different runtimes popping up. The effects of all of these decisions, including stuff like this, won't be felt until next year... I wonder how much adoption this will get, but the lineup looks _extremely_ strong.

</comment><comment><USER26> ok, so I hate to be this guy and I'm going to do it anyway because it has to be said:

Did they just invent Java again? Aren't they promising what Java promised? Won't they hit the same problems that Java hits during its write-one-run- anywhere promises?

I'm asking honestly - why is WebAssembly _outside of the browser_ needed?

<comment><USER27> The idea of isolation that java espoused is not a bad one - it just wasnt executed well. Its not a java only idea either - see Native Client[0]. As with all things, execution and marketing matter. Java was lacking in both. [0] - [https://static.googleusercontent.com/media/research.google.c...](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/34913.pdf)

<comment><USER26> OK, that's all correct and valid.

Java _still exists_ and is a valid deployment platform.

Why is WebAssembly __outside of the browser __needed?

<comment><USER15> Using Oracle's Java Programming Language is an immeasurable legal liability.

<comment><USER26> There are open source and non-Oracle Java virtual machines you can buy support from if Oracle isn't your cup of tea.

It's not really a legal liability either. Lawyers for companies who use Java go over those agreements with a fine tooth comb and approve them before they're signed. There are no surprises (if your attorneys aren't frauds.)

<comment><USER15> Google's was not using Oracle's virtual machine, and their attorneys were not frauds, but they've been tied up in litigation for most of a decade and are facing potentially ten billion dollars in penalties.

[https://en.wikipedia.org/wiki/Oracle_America,_Inc._v._Google...](https://en.wikipedia.org/wiki/Oracle_America,_Inc._v._Google,_Inc).

Java is not a responsible or ethical choice for anybody to use for any purpose.

<comment><USER28> Google's case is less one of "using" Java, and more one of reimplementing it. It's an entirely different legal beast.

</comment></comment></comment></comment></comment></comment></comment><comment><USER29> WASI layer interface for AssemblyScript from Frank Denis: [https://github.com/jedisct1/wasa](https://github.com/jedisct1/wasa)

<comment><USER4> Oh, this is amazing!

</comment></comment><comment><USER30> Excuse me if I come across as naive, I'm kind of a noob on these architectural topics, but how is this different/better than what the JVM is/accomplishes? When WASM first popped up I thought about the similarities with Java Web Applets and Flash.

<comment><USER31> 1\. It's an open standard that the major browsers have agreed to, so it's not a plugin that you have to install. A WASM app will work seamlessly in your browser without any additional software.

2\. WASM is designed from the ground up as a compile target, not a language. We already see many languages with support for building to WASM. C, C++, Rust, and eventually when WASM supports garbage collection we'll probably see Python, JS, Go, all with support for compiling to WASM.

<comment><USER32> (1) could be resolved by shipping Java, let's say hypothetically.

(2) the JVM was designed from the ground up as a compile target also, for Java, but is also used by Kotlin, Clojure, Ruby (JRuby), Python (Jython) and Scala, among others. Even JavaScript (Rhino, Nashorn and Graal).

<comment><USER33> The JVM was designed as a compile target for a very particular kind of language. One with a Java-like object model, with some later concessions for more dynamic languages.

C, C++, Rust, etc. do not fit into that model at all. There's a lot of software written in C, and there's a lot of performance to be gained by dropping down to that level when necessary.

<comment><USER34> By later concessions do you mean invokedynamic? How much did it help? Clojure doesn't use it even now, 8 years after it came about, I think. Is it mostly for JRuby?

The JVM is (and was from the start) a lot more dynamic than Java.

</comment></comment></comment></comment></comment><comment><USER35> I love cross-over episodes like this.

Patiently waiting for when eBPF gets it's turn inside the browser.

</comment><comment><USER36> I would love for WASI/WasmTime to emphasize on:

1\. Backwards compatibility with existing libc. (Maybe pick musl)

2\. Platform agnostic wasm generation: the same wasm file should run in the browser (with emscripten polyfills) and across ALL OS-es, mobile included. List: iOS, Android, Mac, Linux, Windows, FreeBSD

#1 shall enable decades of legacy programs to work with minimal porting, while #2 shall enable true cross platform capabilities without multiple codebases. Specifically, don't repeat what node did: digress from browser js semantics, instead of polyfilling them

<comment><USER37> > 1\. Backwards compatibility with existing libc. (Maybe pick musl)

Honestly, that ought to be a non-goal. We already know that POSIX often enforces models that we don't want--filesystem permissions and the fork model are two good examples of things that are broken. So why start with "implement POSIX"?

<comment><USER38> POSIX != C and from what i understand from the official docs, they already have a (musl derived, even) C library.

<comment><USER7> The C stdlib is so married to POSIX they may as well be the same thing.

<comment><USER20> Actually no, go read ISO C and compare it with POSIX expectations.

</comment></comment></comment></comment></comment><comment><USER39> I've heard people predict that the future of the web is to replace userland, to make every program cross-platform and sandboxed close to the metal, and for JavaScript to fade into a family of "web"-targeted languages. Looks like it's happening.

<comment><USER40> In this scenario, what's the point of having more than one OS?

<comment><USER41> Same as with POSIX - different implementations of the same standardized interface that target different hardware, and have different quality of implementation (possibly optimized for different use cases).

</comment></comment></comment><comment><USER42> This sounds great. Basically the web created a cross platform & sandboxed API to access everything we need (Camera, Sensors, OpenGl through WebGl, etc.) but it was very opinionated (for historical reasons) as it imposes the slow JS, the DOM, CSS/HTML etc.

Now this is the same idea but, this time, one layer lower so that we can have performance, the language we want, etc. This is kind what I always wished would happen.

It will be interesting to see how the sandboxing will work with already existing sandboxing solutions. For e.g a WebAssembly app packaged as a Android/Flatpak/UWP/etc. , there will be the need to make mappings between the permissions of the two sandbox systems. Or even maybe one day we'll have the Webassembly sandbox as the only sandbox (like in [https://github.com/nebulet/nebulet](https://github.com/nebulet/nebulet))

</comment><comment><USER43> WASI will have some interesting milestones ahead of it:

* Self-hosting (WASI can run inside WASI)

* GCC can run in it

* Linux can run in it

* Quake can run in it

* Chrome can run in it

<comment><USER44> Doesn't Quake traditionally come first?

<comment><USER45> Isn't Doom the standard go-to?

</comment></comment></comment><comment> lachlan-sneff This is super cool! We're going to have to rush to implement this in the wasmer runtime!

<comment><USER46> This is what I was thinking. How will this affect wasmer.

</comment></comment><comment><USER47> Can't help being reminded of that talk by Gary Bernhardt: "The Birth & Death of JavaScript"[0] — exploring a hypothetical future where JS takes over everything without (most) anyone using it of their own volition.

0: [https://www.destroyallsoftware.com/talks/the-birth-and- death...](https://www.destroyallsoftware.com/talks/the-birth-and-death-of- javascript)

<comment><USER48> Except entirely irrelevant as WASM is not Javascript.

<comment><USER47> Sure, though it's still a web technology taking over an otherwise unrelated space ¯\\_(ツ)_/¯

<comment><USER41> I don't think it's unrelated. Despite the name, WASM isn't really a "web technology" \- it's a sandbox technology and a compile-once-run-everywhere technology, and there has always been demand for that outside the web, even before the web existed. It might be that the web is what created enough demand for it to happen in the end, but what do we care?

The problem with JS was never that it's a web technology. It's that it's a bad technology that happened to be in the wrong place at the wrong time to get a first mover advantage.

</comment></comment></comment></comment><comment><USER49> Should they standardize to run WebAssembly on the Web first? There's like hundreds of things to do: [https://webassembly.org/roadmap/](https://webassembly.org/roadmap/), [https://webassembly.org/docs/future- features/](https://webassembly.org/docs/future-features/)

<comment><USER4> We're working on that, too :) See this post from last Fall where we laid out a way to think about where WebAssembly is going, which use cases to enable, and how: [https://hacks.mozilla.org/2018/10/webassemblys-post-mvp- futu...](https://hacks.mozilla.org/2018/10/webassemblys-post-mvp-future/)

</comment></comment><comment><USER50> How much of the Fuscia model apply to Web Assembly? It seems like they could share similar security models

<comment><USER4> We've mainly based the current design on CloudABI/Capsicum, but it's all early days, and Fuchsia is on our list of systems to at the very least take heavy inspiration from :)

<comment><USER36> Will this be backwards compatible with existing libc?

<comment><USER51> This tutorial gives an overview of how compatibility with existing portable C code works:

[https://github.com/CraneStation/wasmtime- wasi/blob/wasi/docs...](https://github.com/CraneStation/wasmtime- wasi/blob/wasi/docs/WASI-tutorial.md)

</comment></comment></comment></comment><comment><USER52> Love it. This could be a huge innovation and really push the dream of cross platform development to the next level.

I suppose this would have pretty big implications for Electron or a similar successor to aid in the UI portion of this endeavor.

<comment><USER53> Yeap, so innovative it existed already for decades (virtual machine executing some fixed bytecode).

<comment><USER54> Properly sandboxed VM that you can compile practically any language into?

<comment><USER20> AS/400 TIMI comes to mind, and CLR as well.

<comment><USER41> CLR sandbox should not be considered a meaningful security boundary at this point. CAS and partial trust are both officially obsolete.

The problem is always complexity. It can be difficult to reason about safety with so many features on bytecode level. There have been exploits using dynamically-generated methods, exception filters, and vararg handling - <USER2> the near-lack of any common patterns here other than they're all obscure features of the platform, the security impact of which wasn't fully analyzed.

For example, a long time ago, I reported the vararg exploit, which boiled down to the fact that you can have ArgIterator over an argument list containing another ArgIterator, allowing the latter to be mutated via the former. Thus, you can stash away an ArgIterator to the arguments of a function call that has already returned. This is basically the same as having a managed reference to a managed reference, and it's exactly why CLR prohibits this - but they forgot that ArgIterator is also a kind of a managed reference.

<comment><USER20> And WASM remains to be battle tested in the wild, as in the juicy target of millions of black hats out there.

Forcing internal corruption of code produced from C compilers (like doing a stack out of bounds data overwrite due to incorrenct params size) is perfectly viable.

Yeah the exploit doesn't leave the sandbox, so what. It can still be used to direct the sandboxed code to produce other outcome from the called functions.

</comment></comment></comment></comment></comment></comment><comment><USER55> Since it's based on web tech, is this going to be focused on async, rather than synchronous, calls?

</comment><comment><USER56> This technology will become more compelling once there is a deployment target that runs WASM+WASI binaries but won't run native binaries.

Nothing like that exists (it's too early) but it would be interesting to know if anyone is planning anything.

</comment><comment><USER57> And here I am still writing asmjs by hand. Do we know if that's fully deprecated or are there any plans to keep it fast and loved like wasm?

</comment><comment><USER58> If there are any WIP implementations utilizing CloudABI and Capsicum they would be interesting to look at.

</comment><comment><USER26> The amount of hatred in this thread for non-web technologies is insane.

<comment><USER59> Funny, I see the exact opposite. People dismissing WASM as unecessary, or just another Java, or just another Flash, or just another Node.js, or something that shouldn't exist outside of the browser.

If it didn't have "web" in the name, I think people would hate it a lot less.

</comment></comment><comment><USER60> What does this mean for host bindings?

</comment><comment><USER61> There is already a WASI and its a standardized IQ test. I did a double take.

</comment><comment><USER62> This is nice and I'm excited about it, however there is a concern that people are going to start building code that targets WASI and then shim it to run in the browser. This happened to JavaScript when Node.js was released; people began using APIs intended for servers and then shimmed them to also run in the browser resulting in code bloat. I'm worried that the same is going to happen here; the video actually encourages doing just that. The browser is not a platform that should be treated as secondary.

<comment><USER7> I think the browser shouldn't be a platform at all, frankly, and WASI is one possible way we can finally stop trying to shoehorn it into being one. If everything runs a WASI runtime, which is designed to run applications from the ground up, there really isn't any need for the browser to run applications anymore, is there?

<comment><USER48> I think the world in which the browser disappears and all we have is apps is a worse world than the one we have now.

With HTML/CSS we get the relatively easy ability to add extensions to dig deep into the data of a page. One of my favorite extensions is rikaikun which adds popup translation of Japanese words. It can only do this because it can inspect a standardized data structure (the DOM) with standardized APIs.

I also love the ad blockers. They let me not only block ads but also hide parts of websites I find distracting. For example I hide the "Hot posts from other stack exchange sites" section of stack overflow because I find I get sucked into 20-40-60 minute distractions if I don't hide it.

I can also copy and paste nearly any content and link to almost any content.

An a world of native apps none of this is really possible. Every native app will use its own internal representations of data. Different UI kits or libraries. Much of it is un-linkable, un-copyable, It drives me nuts when I can't copy and paste of phone number, or address in a native app.

I don't believe getting rid of the web for a WASI based app world would be a good thing for users.

PS: I think WASI is a great idea. I just think trying to replace HTML based apps with WebAssembly apps using WASI and rendering with WebGPU is the wrong direction for most web apps.

<comment><USER63> What you've mentioned about HTML/CSS is true for native apps too: there is a standardized API for drawing the UI (GTK+, Cocoa, whatever Windows has) and standardized data formats that back them. The issue is that apps are not necessarily required to use these (ironically it's Electron et al. that break these) and they don't use code that is readily inspectable, unlike pure JavaScript. On the other hand, though, this has been slowly been becoming true of the modern web: websites are ditching the DOM for React/Vue/Angular "SPAs" that use horrible selector names and minimized and nigh-impossible to comprehend JavaScript so they can reimplement things that the platform provides for free. So it's not great either way…</comment></comment></comment></comment>


Family Sues Apple for Not Making Thing It Patented - <AUTHOR> http://nymag.com/selectall/2016/12/family-sues-apple-for-not-making-thing-it-patented.html <comment><USER3> Courthouse News seems to be the source: [0], and has more of the rather scant facts around the case.

[0] [http://courthousenews.com/family-sues-apple-over-wreck- cause...](http://courthousenews.com/family-sues-apple-over-wreck-caused-by- facetime/)

<comment><USER4> Thanks, this: >The Modisette family said Apple's failure to either program a shutoff into the FaceTime program _or give strong warning about using the app while driving_ is particularly egregious given the app fully engages visual components rather than audio ones as with regular cellphone usage.

The absence of an explicit warning seems to me like a "better" approach, as I don't think that the "they patented it and then they failed to implement it" can have much relevance in a Court.

Still obviously if the driver of the car that caused the incident was videochatting, it is definitely his fault and not that of Apple, the same reckless driver - should have Apple implemented the "lock out" \- would have probably be watching "Harry Potter" on a DVD viewer.

The patent is this one:

[http://www.google.com/patents/US8706143](http://www.google.com/patents/US8706143)

The "scenery analyzer", though clever, would imply access to the camera (which is obvious for Facetime, but not so much for texting), so - indirectly - <USER2> would mean more or less that you cannot cover your camera when moving faster than a given speed.

On the other hand all car navigators/entertainment systems do boot up with a safety warning, I fear that what may happen would be something _like_ "Objects in mirror are closer than they appear": [https://en.wikipedia.org/wiki/Objects_in_mirror_are_closer_t...](https://en.wikipedia.org/wiki/Objects_in_mirror_are_closer_than_they_appear) "permanently and indelibly marked at the lower edge" of all smartphones ...

</comment></comment><comment><USER5> Sounds reasonable. A patent is supposed to represent actual existing technology, right? So by patenting it, Apple claims to already have this technology. So the assumption that they could do this but chose not to, seems fairly reasonable.

I'm not sure if I actually like blaming this sort of accident on technology, rather than on the people being stupid with technology, but if this will discourage patent trolls from holding patents they're not using, hoping to catch someone else infringing on it, then it could be a net positive. At the same time, I'm hesitant about what other side-effects this kind of precedent might end up having.

<comment><USER6> > Sounds reasonable.

Not at all. Patenting something just means it's possible, not that it works well, or that it has no disadvantages which might make things worse, or that it's always reliable, or that there are no better alternatives. Just that it can be done.

The logical extension of this argument would be that every car sold in america, and every single product usable in a car, must have every single possible automotive-relevant safety feature they can even think of implemented in it regardless of cost.

After all, implementing such a feature in the phone would incur a cost, so if Apple can be compelled to include the feature then that argument should apply to every other company.

<comment><USER5> > Patenting something just means it's possible,

It means a bit more than that. You don't patent the laws of nature, you patent real inventions. I'm aware that patent offices have gotten very loose with their criteria, but as far as I know, a patent was originally supposed to mean that you developed the thing you patented. Maybe there are disadvantages to it, but it has to be more than just possible.</comment></comment></comment>


Prefab housing complex for UC Berkeley students goes up in four days - <AUTHOR> http://www.berkeleyside.com/2018/08/02/prefab-housing-complex-for-uc-berkeley-students-built-in-four-days <comment><AUTHOR> It would be interesting to see what would happen if this sort of thing were legal throughout California: [https://www.vox.com/cities-and- urbanism/2018/2/23/17011154/s...](https://www.vox.com/cities-and- urbanism/2018/2/23/17011154/sb827-california-housing-crisis).</comment>


Windows 10 Shares Your Wi-Fi with Contacts - <AUTHOR> http://krebsonsecurity.com/2015/07/windows-10-shares-your-wi-fi-with-contacts/

<comment><USER2> The crucial question is "does Windows 10 automatically the passphrase for every WiFi network with __Microsoft __any time someone with a Windows 10 connects to it? "

This may be happening, regardless of users' sharing settings, and regardless of whether the WiFi network has `optout` in its name.

I haven't seen this possibility discussed anywhere, and it would be a good idea to try to figure out exactly what happens when a Windows 10 computer encounters a WiFi network.

</comment><comment><USER3> Windows 10 doesn't automatically share your wifi password with others. You have to intentionally choose the specific network and click the "share" button.</comment>


Apple's Intel Breakup Will Reshape Macs–and Beyond - <AUTHOR> https://www.wired.com/story/apple-will-put-its-own-chips-into-macs/ <comment><USER2> What are the chances they'll keep the crappy little facetime camera?</comment>


The Rise and Fall of Theranos: A Cartoon History - <AUTHOR> http://ww2.kqed.org/futureofyou/2016/07/14/the-rise-and-fall-of-theranos-a-cartoon-history/ <comment><USER2> This is priceless!

I was able to create a single-page PDF of the entire article (cartoon and text) by using Safari Reader and setting the paper size to 8.5 x 100 inches.

</comment><comment><USER3> Would be more interesting to see additional history outside of the last 5 years.</comment>


Apple Reports First Quarter Results - <AUTHOR> http://www.apple.com/pr/library/2011/01/18results.html

<comment><USER2> One interesting figure is: 16.24 million iPhones versus 7.33 million iPads + around 10 million iPod Touches. That's around 17 million non-iPhone iOS devices versus around 16 million iPhones, and illustrates why increasing Android sales don't seem to dent iOS sales/usage statistics as much as the phone OS debate might suggest. Most iOS devices being sold are, in fact, not iPhones!

<comment><USER3> Totally. Non-phone iOS devices are the elephant in the room and drive an incredible number of app sales. For example, if you look at the top selling apps in the App Store, they are mostly games that are being downloaded on iPod Touches.

<comment><USER4> Not sure I follow. How do you know those games are being downloaded on iPods and not iPhones?

<comment><USER5> From those stats we don't know, but app developers do know. I would say there are actually significantly more ipod app sales than iphone. It depends on the app, but the app developers that I hang out with tend to have more sales on ipod devices.

<comment><USER6> How do they know? I am an iOS developer and there is no way of seeing whether my apps are downloaded to an iPhone or an iPod (afaik).

Edit: That is, from iTunes Connect. Maybe your pals use some sort of usage logging/statistics from within the app.

<comment><USER7> Users that mail you for support or hints, I generally ask them what device they use. There are a lot of iPod touches out there.

<comment><USER8> Maybe iPod touch users are stupid? In all seriousness, that's not a very rigourous way of polling.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> $6 billion profit on almost $27 billion revenue... that's almost 50% YTD. That's insane. And 62% of that from outside the US.

Say whatever you want about Apple, but they know how to print money.

<comment><USER10> they also know how to sit on that money as well... which has quite a few investors pretty antsy.

<comment><USER11> I think that, for now, their $130 share gain in the last 52 weeks is more than making up for it.

They can talk dividends when their shares are near Microsoft's level and their product pipeline is less stacked and hype machine is dying.

<comment><USER12> I'm re-reading Peter Lynch's classic "One up on Wall Street" at the moment. He's a big advocate of share buybacks over dividends (unless Apple can some up with something else to do with the cash.) Warren Buffett is also.

Buybacks reduce the number of shares outstanding in the market and thereby increase earnings per share, which boosts the share price, rewarding existing investors. So we may see Apple engage in buybacks.

<comment><USER10> We probably won't see buybacks and dividends any time soon. Apple remembers the days when they almost went bankrupt and that has set the tone for how they manage financially. They are very conservative with their cash.

They have made it very clear that they are reserving that cash for a big acquisition. IMHO that means that they are waiting for the moment when someone innovates in a way that threatens them and they can bring the talent and assets aboard. Like the Google process, except you pay with cash.

</comment></comment></comment></comment></comment><comment><USER13> Noteworthy: Apple "analyst" Gene Munster predicted 4.3 million iPads sold in 2010. (<http://read.bi/cYCppW>)

Actual results: 7.33 million just last quarter.

<comment><USER14> "Analysts" who go contrarian on Apple are fairly common, and they have spent the past decade being wrong. At this point low-balling Apple has become so common that I think a lot of analysts do this just in case they manage to draw the lucky lottery ticket and "predict" a miss by Apple -- if they are correct their prediction stands out and when they are wrong they just get filed into the long, long list of bad Apple predictions.

<comment><USER15> If they are correct then their prediction is still just part of the long, long list. Why would it stand out?

</comment></comment></comment><comment><USER16> Watching the Apple share price graph over the course of 7 days starting with Steve's step down announcement yesterday through the earnings call today is going to be a _really_ interesting exercise on timing bad news.

<comment><USER17> I couldn't help but notice the timing too. Steve steps out just as Apple is about to post phenomenal earnings: smart moves on Apple's part I think.

<comment><USER12> If Steve is really sick then it's probably just a coincidence. He's a genius but not god.

<comment><USER18> Yes, it probably is just a coincidence that Steve Jobs' illness recurs just when Apple profits are this high.

But on a more fine grained timescale a few days more or less in the timing of the announcements might make quite a difference in how people perceive this. If they had announced a month ago instead of right next to record quarterly earnings it might have hurt the stock more at the time than it does today.

The market is in theory 'efficient', but in the short term it tends to overreact to bad news, so combining bad news with extremely good news may be a viable method to offset the effect of the bad news on the stock.

Savvy investors will have priced Steve Jobs health in to their stock holdings already, those that are on edge might panic and sell unless there was a second factor.

</comment></comment></comment></comment><comment><USER19> 16 million iPhones over 90 days is 178,000 / day.

This is getting down to near half Android's claim of 300,000 / day (not all phones, but one would presume nearly all).

Of course, add in the other iOS devices and Apple is back in front, but it's interesting to see how far behind Android they are in the phone market now.

<comment><USER20> That claim was also made during the middle of the holiday season. I'd wager activations have cooled off since then.

<comment><USER21> Right, and the numbers themselves are kind of dubious, too:

On Dec 6, Andy Rubin blogged that there were 200,000 activations a day. On Dec 8, Andy Rubin tweeted there were 300,000 activations a day.

[http://googleblog.blogspot.com/2010/12/introducing-nexus- s-w...](http://googleblog.blogspot.com/2010/12/introducing-nexus-s-with- gingerbread.html)

[http://tech.fortune.cnn.com/2010/12/08/andy-rubin-google- act...](http://tech.fortune.cnn.com/2010/12/08/andy-rubin-google- activates-300000-phones-every-day/)

</comment></comment></comment><comment><USER22> The earnings call started a few minutes ago...

<http://www.apple.com/quicktime/qtv/earningsq111/>

</comment><comment><USER23> By the way, not one question about the health of Steve Jobs.

<comment><USER24> One would hope that his last sentence regarding his and his family's privacy would be respected.

</comment></comment><comment><USER24> I am happy for them. Apple is a company that puts design and user experience at the front and they get rewarded for it. I see their revenue as generated by genuine consumer appreciation compared to the generic ad revenue that other companies generate.

</comment><comment><USER25> They obviously knew that this would bump the stock price up, which is why Steve's step-down announcement was timed to effect the market on the same day.

</comment><comment><USER26> very good strategic planning. Releases the report right after Steve Jobs steps down, I am pretty positive that Steve Jobs knew this report, thus knowing that it'll be safe to step down with this type of amazing results being reported to the public

</comment><comment><USER27> The value of Apple soon surpasses the GDP of Sweden.

</comment><comment><USER28> Phenomenal. I'm not sure I can put together a comment that's much more than that.

</comment><comment><USER29> They're hitting $1000 share price this year. :-)

<comment><USER9> I hope not, that would kill their P/E ratio.

</comment></comment><comment><USER30> Apple is simply printing money now. Remarkable financial success.

It is notable that between Q4 2010 and Q1 2011 (the latter includes the holiday season), the growth areas were the iPod [115%] and the iPad [75%]. Macs increased 6%, but actually decreased by 7% in the Americas.

It's hard to hold it as a "bad" result, but among such stellar results the relatively small 15% growth of the iPhone does stand out. Tomorrow the talking heads will probably play that up despite the incredible scale of these results.

<comment><USER31> It's really hard to look at quarter to quarter numbers and say that it's good or bad when you have the holiday buying season involved. It's better to look Year on Year (except for the iPad)

There's also different bits of the product lifecycle to consider. Ipods were refreshed in September, (probably in anticipation of the holidays), but they're down year on year. Iphones are nearing the mid point of the yearly cycle, and I'd expect them to be relatively flatish until summertime. (except for that whole verizon thing). Ipads should be mostly flatish, since world + dog expects a refresh in April. The fact that the ios devices aren't flat is saying that there's a huge demand for these things that hasn't been filled yet.

<comment><USER32> >Iphones are nearing the mid point of the yearly cycle, and I'd expect them to be relatively flatish until summertime.

I wouldn't expect that, at least not this year in the US. The iPhone goes non- exclusive here in a week or so as it hits Verizon stores. Most people are expecting a big jump in sales from Verizon customers who wanted iPhones but didn't want to switch to AT&T.

<comment><USER21> Also:

1) During the conference call, CFO Peter Oppenheimer stated [1] that Apple still can't handle demand for iPhone and they continually have to increase production.

2) Apple keeps adding partnerships with operators in various countries, the US is just a piece of the pie. They currently have agreements with 185 operators in 90 countries, but that's probably not even half of the major operators out there.

3) Sales are growing fastest in the Asia-Pacific region and Japan. IPhone sales doubled year over year in those regions and I doubt that's going to slow down, also because of Apple's marketing efforts there. For instance, Apple plans to open another dozen Apple Stores in China in 2011. It was also stated that the China retail stores are the ones with the highest revenue per store.

[1] [http://www.macworld.com/article/157196/2011/01/apple_financi...](http://www.macworld.com/article/157196/2011/01/apple_financials.html)</comment></comment></comment></comment>


Why GroupMe kills the battery on your iPhone - <AUTHOR> http://fredandrandall.com/blog/2012/02/08/why-groupme-kills-the-battery-on-your-iphone/

<comment><USER2> This is not a good idea. HTTP polling is enough traffic to put the mobile radio into its DCH state, which uses a lot of power. (Second only to the screen on most phones.) Once you're in DCH, there's a timer (typically ~8 seconds) before it turns off again. When polling, you just wasted orders of magnitude more power to wake the radio than was used to actively communicate for that 500ms or so.

One of the great things about the internet is that you can neglect considerations of the physical layer when you design your app.

One of the sad things about the mobile web is that you can't neglect considerations of the physical layer when you design your app.

Some things that seem like a great idea at first (eg lazy loading of lists as the user scrolls) can actually be detrimental and counter-productive when it comes to battery life.

<comment><USER3> Could you expand on your point about loading more content as the user scrolls? Why would that affect power usage?

<comment><USER4> This is a bit simplified since often your app's activity won't be the only thing on the radio, but:

Full load: large transmission to start off, but radio is idle after, if the list is long or user scrolls slowly radio might go to sleep after its programmed idle timer (8 seconds in GP's post)

Lazy load: keep on making transmissions periodically, either waking up the radio (and keeping it on for another 8 seconds) or outright never letting it sleep (if you lazy load every 7 seconds or less)

</comment></comment></comment><comment><USER5> Good find. They clearly know how to do push and in timing tests push notification is well under a second if done correctly. Apple Push is stupid fast. (probably a good separate post)

I suspect they are using a 3rd party push service and perhaps are trying to save a buck when the app is open. Not sure why they don't just keep a socket open?

<comment><USER6> For a company that's pretty push heavy, I'm surprised they didn't implement their own push service, since they manage the chat room logs anyway. It isn't complicated.

</comment></comment><comment><USER4> If only there was an established way, maybe a pattern, perhaps a device service, for getting notifications without constantly doing an HTTP poll request.

</comment><comment><USER7> I thought this wasn't a valid use of multitasking by the App Store rules? Are Apple just not policing multitasking use at all right now?

edit: does this fall under "Local notifications"?

> Multitasking apps may only use background services for their intended > purposes: VoIP, audio playback, location, task completion, local > notifications, etc.

This could also be seen as violating this

> Apps that provide Push Notifications without using the Apple Push > Notification (APN) API will be rejected

<comment><USER8> They're not using multitasking. They're using the basic limited background task functionality, whereby you can request additional time to complete actions when closing the app. The system puts a hard limit on you at 10 minutes, at which point it will kill your app. This is designed for doing things like saving data, posting that tweet the user just wrote, syncing modified data to your server, etc. This app is abusing this functionality in a very stupid way.

</comment></comment><comment><USER9> Huh, interesting. I'd bet that this is a bug.

The only other explanation I can think of is that push notifications can take about 3-5 seconds to be delivered as they are routed through Apple's servers. If these are long-poll HTTP requests directly to GroupMe's servers, then the message would be delivered instantaneously.

<comment><AUTHOR> I filed a bug report with them about it awhile back before I knew what was actually going on.

I'd much rather have that short delay than have my phone die after using it. Right now I force kill GroupMe every time I leave it.

<comment><USER10> It's not only the notification delay. They also do it so that the app doesn't have to reconnect if you reopen it within 10 minutes.

<comment><USER8> That's a valid reason for using a background task, but it doesn't require constantly polling the server.

</comment></comment></comment></comment><comment><USER11> They do this because it allows them to then use local notifications for those 10 minutes to ensure delivery of the notification of a new message, this reliability doesn't exist with push notifications.

Verbs, another instant messaging app for the iPhone, does the same thing.

<comment><AUTHOR> I figured that was what it was for, but it just doesn't seem worth it.</comment></comment>


Quora Feeds Will No Longer Show Data On What Other Users Have Viewed - <AUTHOR> http://techcrunch.com/2012/08/14/after-privacy-uproar-quora-backpedals-and-will-no-longer-show-data-on-what-other-users-have-viewed/

<comment><USER2> I don't think TechCrunch really understands what's going on here. Views are still being tracked and shared, albeit not as broadly.

<http://www.quora.com/blog/Removing-Feed-Stories-about-Views>

[http://www.quora.com/Views-on-Quora-feature/Which-of-my- view...](http://www.quora.com/Views-on-Quora-feature/Which-of-my-views-will- and-which-views-wont-be-shared-through-Quoras-Views-feature)

</comment><comment><USER3> I believe Quora is taking the Facebookian view of going overboard with privacy issues, then pulling back iff users revolt. It is, technically, the best way to push social interactions as far as possible, especially if you are not punished for temporary lapses in judgement.

Users WILL NOT actually punish Quora for stunts like this, so, from the company's perspective, it's a good bet, temporary bad press notwithstanding.

I remember successfully arguing down a similar bad privacy decision at another well-known company I once worked for. It took a treatise on social software, including multiple citations of other social snafus, the painstaking gathering of stakeholder acceptance, and a near-fanatical perseverance to stymie a feature that was absolute poison to our privacy model. The guys at the top were happy to launch-and-see. I suspect that's what's going on here.

tl;dr - For this to get out at all, either Quora's process is broken, or their strategy is to overshare and pull back only when necessary.

<comment><USER4> Why do you say "WILL NOT" in such a definitive way? It doesn't seem like a good bet as a company to rely on your users and the public to forgive you when you step too far, especially if you do it repeatedly.

<comment><USER3> Can you point to a company that actually got bitten by this strategy? I can point to several for whom it's working well.

<comment><USER5> In my opinion it's more of a bad sign that they are so desperate and not focused on generating passionate users who are gaining some inherent value within the system itself. I don't have any hard evidence but anecdotally I can say I know perhaps 100 people in my life who love Stack Overflow but I know nobody who really loves Quora. Personally I think they are blowing it due to impatience.

</comment></comment></comment></comment><comment><USER6> Quora's latest investment round (May) valued the company at $400M [1]. According to Alexa, Quora has perhaps 1% of the traffic of Wikipedia. It seems to me that Quora has two options:

1) Be acquired by Facebook or Google. The problem is that it's no Instagram, so today it could not command a significant premium over the valuation of the latest round.

2) Find a way to make money. Just like Facebook or Twitter, ads seem to be the only way. Only, it does not have the traffic; no growth at all in the past year [2]. Therefore, the management must be doing everything they possibly can to improve their metrics. It's do or die, goodwill be damned.

[1] <http://en.wikipedia.org/wiki/Quora#cite_note-15>

[2] <http://www.alexa.com/siteinfo/quora.com>

<comment><USER7> I always wanted an internal Quora at my company - I figured that was a possible product for them in the future.

<comment><USER6> It's possible, but run the numbers. Companies that would pay for that * monthly price = ?

Very hard to justify a Twitter-like valuation with that.

<comment><USER8> Yes its true, they can't be twitter but they have a fine product which can be monetized without taking away from their shoot for the stars plans.

I always believe in having a profit, so when you fail in shooting-for-the- stars you fail into profitability, stability, and the dolldroms of merely having six figures in your salary instead of eight in your stock portfolio.

</comment></comment></comment></comment><comment><USER9> I deleted my account. There was a fair bit of a debacle in doing so, which appears to have been rectified.

Honestly, I really liked Quora for some of its content, but the UI/UX is just simply atrocious (I have said ad nausea here on HN and other places that Quora suffers from the Digg Effect; trying to wrap their idea of UI/UX around the content too much and thus preventing users from fast, mass consumption of its content.)

I deleted my account on principle: Facebook is simply the wrong model to follow on privacy issues, and the founders of Quora, being ex-facebook have no fucking clue what is an acceptable level of privacy.

And before HNers like Wpeitri and people like Brin/Schmidt can chime in; NO you're fucking wrong. 100% transparency in every little aspect of life is NOT the future, because fuck you, that's why.

I estimate about ~500K active users on quora (pure guess) which puts the user account value quite high (which would put the account value at $800) -- and personally, if my account is that valuable, then fuck them screwing with the privacy settings on the account I make there.

I refuse to be a part of this BS, and will not go back to quora.

<comment><USER10> Can I ask how precisely you deleted it? When I tried a few months back, they wouldn't allow a deletion, they would only allow it to be "disabled".

My reason for trying to delete it was also privacy related, although it will seem like a minor thing. It turns out that when you initially sign up, they turn any friend you have on facebook into someone you "follow" on Quora. My list of facebook friends is not public information. The list of people you follow on Quora is. Ergo, they turned a subset of my private friends list into a public list that anyone could see, and without warning.

Again, seems like a minor thing, but in principle it was a privacy violation, so as soon as I realized this I attempted to delete the account.

<comment><USER11> You have to email email@example.com

I also deleted my account when news of this nonsense non-feature hit. And their disabling it doesn't earn them back any points in my book.

There's no way to _honestly_ make that move as a mistake. There's no way to 1. implement this feature as an opt-out and 2. do it without any notification to the userbase, as a _mistake_ or as a "failure of communication".

This move can only happen, and only happen the way it did, because there is a core irreconcilable difference between my concept of privacy and theirs.

And as far as I'm concerned, their concept of 'privacy' can go get fucked with a rusty pitchfork.

</comment></comment></comment><comment><USER12> Worth noting: they won't let you get rid of your account. All you can do is "deactivate" it, meaning other users can't interact with you. Oh, and you won't get email updates. But as soon as you log in again, your account is "reactivated".

It's very Hotel California.

<comment><USER13> You can have your account deleted by emailing in to email@example.com see: [http://www.quora.com/Quora-product/How-do-I-delete-my- Quora-...](http://www.quora.com/Quora-product/How-do-I-delete-my-Quora- account)

<comment><USER14> Is this common practise, to not provide an option to delete your account except by contacting customer service? Personally I'm not aware of any other product being so sneaky in making it hard for users to quit.

Facebook was one of the first companies that started this trend of burying the "delete account" feature deep inside and making it hard to find. But by removing the option altogether, Quora seems to have raised the sneakiness bar much higher.

<comment><USER15> You can delete your account in facebook? I can only find "Deactivate"?

<comment><USER16> [https://ssl.facebook.com/help/contact.php?show_form=delete_a...](https://ssl.facebook.com/help/contact.php?show_form=delete_account)

</comment></comment></comment></comment></comment><comment><USER17> But this feature is still partially turned on. Thanks for misleading us TechCrunch and Quora. Stop compromising our privacy.

</comment><comment><USER18> Reminds me of the "oh shit" SOPA backtracking GoDaddy did. Too late, you creeped a lot of folks out.

</comment><comment><USER19> "In some ways, this could be seen as a failure of communication more than anything."

What communication? If they had let people opt-in, or even asked them to opt- out then that would have been communicating.

<comment><USER20> It _was_ opt-in. The opt-in message wasn't at all clear (even to me, and I'm a top-100 Quora user), and was presented on first use, not in a settings pane, when you first tried to view a view list -- it wasn't really clear that it reciprocally opened your own views to tracking.

The feature itself isn't horrible (followers on questions and topics are already public, and this is well understood and IMO worthwhile -- you CAN follow anon too, but it at least increments the counter), but was badly presented to users. I think just out of incompetence, not malice.

<comment><USER21> It definitely was not opt-in at the beginning.

<http://www.quora.com/blog/Introducing-Views-on-Quora> states "All Quora users participate in Views by default, but you can delete any individual view from the content's views page, or you can turn off Views anytime on your settings page."

</comment></comment></comment><comment><USER22> It is truly an era of "do it, then apologize later if it blows up in my face."

I see this kind of new feature -> public outrage / privacy breach -> apology / retraction progression far too many times over the past 6 months.

How have we come to this? :(

<comment><USER23> "It's easier to ask forgiveness than it is to get permission."

\- Grace Hopper

</comment></comment><comment><USER24> Merely hiding Views is even worse since the data is still public but people are now less likely to find out. Stupid Quora.

</comment><comment><USER25> I don't what people are even doing on quora. I hadn't even heard about it. It was only a incidence that a colleague tweeted a link, and only one answer was displayed it required login to proceed further and read more answers. At that moment I lost interest and closed the browser tab.

I can understand the need to demand login to answer or ask questions. But asking people to login to read answers is just too much for today's internet environment.

This is just a re incarnation of expertsexchange all over again.

</comment><comment><USER26> Too little too late. Honestly, I have a lot of other problems besides this recent dust up but I think it was a last straw for a lot of people. They have just as arrogant a view about privacy as Facebook, just far less users.

I think StackExchange is far superior with a few notable issues, such as the lack of breadth and long road to go from the Area 51 or whatever it is to actually being a full site. I think StackExchange.com should have an easier of finding subject sites. If nothing else, SE shows you don't need to surrender your identity or privacy at the door just to ask and answer questions, which for many people is the time they'd raher not surrender their identity.</comment>


2.6M comments in, FCC has changed almost nothing about net neutrality proposal - <AUTHOR> https://www.theverge.com/2017/5/24/15682240/fcc-net-neutrality-proposal-sees-few-changes <comment><USER2> Unfortunately this administration's view is you lost you have no voice.</comment>


Software engineers complaining about a $450k salary? - <AUTHOR> Is this (https://www.teamblind.com/post/Would-you-go-to-Snap-from-Google-both-in-NY-E8FK34gT) the epitome of entitlement? It's sad to see there are "engineers" out there that could complain about this. <comment><USER2> It's important to keep in mind that the cost of living in certain cities is massively higher than others, in some cases more than 4 times higher.

It's also important to keep in mind that there are CEO's that make 275 times their average worker, some exceeding 50k per hour.

When I see a highly paid engineer salary, I consider a form of societal progress that a skilled worker can make a good living. Something that used to be reserved only for upper management.

It is an acknowledgement from society that work we do is meaningful and valuable.

<comment><USER3> > It's important to keep in mind that the cost of living in certain cities is > massively higher than others, in some cases more than 4 times higher.

People don't understand this.

I live in suburbs near Portland, OR, and paid $330K for a 3 br, 2.5 bath, 1850 sq foot house near the end of 2015. Meanwhile, in Palo Alto, I've seen 1 br, 1 bath, 700 sq ft condos on sale for over $1.5M.

It's pretty ridiculous.

<comment><USER4> People overstate this.

Specifically owning a home in the bay area is insane. But outside of this one thing, COL changes don't come anywhere close to matching the increased salary. Even if you are including things like childcare.

I'd expect my salary to drop by _250k_ if I left the bay area. After accounting for COL differences, my savings rate would be far lower elsewhere. Even if you aren't making top of line income, people still can very easily come out ahead in the bay area. That 700 sq ft condo may sell for millions, but it is still only 2.5k/month in rent.

<comment><USER5> I think you are underestimating how quickly rents have been rising here every year. There's almost never point of rising income when all of those gains are going to rent.

<comment><USER4> I live here. My income has risen far far far faster than the rent. I'm able to save literally six figures more than I'd be able to elsewhere.

</comment></comment></comment></comment></comment><comment><USER6> I didn't see anyone complaining about a $450k salary - the closest thing was the guy who's L6 at Facebook and making the same as L5 at Snap while working 60h weeks.

Not sure what the problem is - people with high compensation can also discuss how much they're making and talk about their career moves. None of it comes across as entitlement.

Also didn't get why any of it would be sad to you or why you're implying that they're not real engineers by putting quotes around the word engineers.

<comment> non-entity Not sure of OP's nationality, but I vaguely remember hearing certain countries dont care for the title engineer because software engineers dont go through the sale licensing processes other engineers do, or something like that.

<comment> blaser-waffle Nn a lot of other places (even here in Canada), "Engineer" has a specific meaning and licensing requirements, similar to Doctor and Lawyer.

Like, to be an official medical Doctor you have to graduate from an accredited program, do specific training and internships, pass the boards, etc. Likewise with Lawyers you have to come out of certified law schools, pass the bar, do articling, etc. Same deal with Engineers.

Otherwise the term starts to lose meaning, such as someone being a Sanitation Engineer (Janitor) or Food Service Engineer.

</comment></comment></comment><comment><USER7> Why is it sad? 450k is reaching the top of our field, but is nowhere near the top of finance, law, and business. Engineers at the top of their game should be unsatisfied with this type of compensation.

<comment><USER8> This is something that actually really bothers me. Heads of business have a near infinite wage ceiling, same with sales. I guess engineers are probably given incentive with stock, but even still they're not treated nearly as well as even lower management.

<comment><USER9> I dunno, that kinda makes sense to me if you think about the structure of a business. An elite CEO makes the most critical decisions that can be easily worth billions either positive or negative. An elite engineer makes a stellar project sure, but they work on a team etc. An elite engineer that makes elite decisions becomes an executive, and doesn't stay an engineer.

<comment><USER10> What's elite about them? There's nothing elite about them, almost anyone can do their job.

It's more a matter of connections and luck if you're a CEO.

<comment><USER11> Beware the company that has a CEO due to connections and luck. Sure, anyone can sit in the seat and cash the salary checks. Not just anyone can do a good job of actually running the company, though.

</comment></comment></comment></comment></comment><comment><USER12> If you spend more time on blind you'll see it's kind of a thing there. Obsession around TC. Take a look at the highest salaries on 2019:

[https://drive.google.com/file/d/19ne7ccUdOWewD4rFDQjjnQEJDgs...](https://drive.google.com/file/d/19ne7ccUdOWewD4rFDQjjnQEJDgsmgFID/view)

450k is not even high compared to other positions.

<comment><AUTHOR> Yeah this is nuts, $950k for a principal engineer, hahahah what a joke

</comment></comment><comment><USER13> What exactly is sad about negotiating a high salary (if you can get it) from a multi-billion dollar company?

My understanding is Snap has something like a 10/20/30/40 vesting schedule, so it's a long commitment that comes with a lot of risk relative to working at a company with a 25/25/25/25 schedule, especially if you're comparing it to Google. You should be compensated for that added risk in that case.

Plus, you'll probably be working longer hours at a Snap vs a Google.

<comment><USER14> > What exactly is sad about negotiating a high salary

In reality? Nothing. People should be fighting to raise the bar for everyone, but instead there's a trend to push people who are doing well down to the lowest common denominator.

</comment></comment><comment><USER15> I don't think there is any problem with someone complaining about 450K.

I think the problem is people are envy about him.

I want to be this guy with a 450K salary.

I want to complain about it. I do envy in a good way.

Doing my best to learn and be open to opportunities. Will I succeed?

It is not fair to envy or be jealous.

How much this guy had suffered to have a "tunnel" effort to reach that point? Sometimes people are successful to escape something that is always there and _WE_ always pay a price.. Be it on relationships, health or love.

There is _Always_ a price.

Sometimes you don't know the price sometimes you do.

<comment><USER16> It's the case with millionaires and billionaires too. There's always a price.

The price isn't really relationships, health, love. You get that quite easily with enough money. But it's often things like not being able to lie around watching Netflix all weekend. Someone like Bill Gates can't backpack all over the Europe even if they had the money to. Lots of royalty may not have to worry about food and housing, but they live in a gilded cage. Most of us can work 40 hours a week, but a president or CEO might not have the luxury to.

</comment></comment><comment><USER17> Not the epitome of entitlement at all.

Is Apple entitled because it makes such vast profits and wants to make more? Maybe it should reduce it's product prices and all the execs take home $100k/y so they can buy a typical house in a typical city?

Why one standard for business (make profit) and a different one for employees (be humble, be reasonable, don't get too rich)?

If you work for these big companies you are just working for a machine in many regards. There is nothing personal about it even. Even if you are working for a small company, they are not your family (unless they are, but that is rare), you don't owe them to take a smaller salary so that you aren't being too greedy. Especially when you don't get the upside they could get if they sold the business.

</comment><comment><USER18> Entitlement is "I deserve". A job offer is "we think you deserve" in what is presumably a fair trade of income for work performed.

</comment><comment><USER19> one of the comment is legit af..

"There's something wrong with our society where the guy who puts mustaches on cartoon images makes half a million dollars a year, so the rest of us are glued longer in front of our little screens like zombies. God help us all and our future generations. I can't wait for this scam/sham tech bubble to burst."

<comment><USER14> How is it any different than a sports player getting millions of fans to glue to their TV screens watching them play? How about a highly paid actor convincing billions of people to glue themselves to the silver screen?

They're all forms of widespread entertainment and are valuable enough to pay good money for.

<comment><USER5> Theres a difference. A top athlete is the highest form of human physical endurance. A top actor is the highest form of human self expression.

A top clickbait maker is really one of the highest forms of addiction producer.

Clickbait companies are really no different from porn or nicotine companies and top engineers today are producing said goods.

</comment></comment></comment><comment><USER20> The blind community is 200% sarcastic. Don't take anything read there seriously.

</comment><comment><USER21> It seems that salary should be based upon more than just numbers. If an engineer is producing a value greater than a few times $450k they should be adequately compensated.</comment>


Show HN: Monster Train, a deckbuilding card game in the global top on Steam - <AUTHOR> https://store.steampowered.com/app/1102190/Monster_Train/ <comment><AUTHOR> Hi all - I'm Mark Cooke, the CEO of Shiny Shoe, the creators of Monster Train. We released on May 21 and have been in the global top seller list on Steam since. The game currently has a user rating of "overwhelmingly positive", the highest possible rating on Steam.

I've been a reader of HN for years and I've seen some members of this community mention it in Tweets that they are addicted to the game so I figured I'd post it here and see if there is any interest/questions.

AMA!

</comment><comment><USER2> Some thoughts:

Slay the Spire, an obvious inspiration for this game, is my favorite game of this last few years. This game builds on that formula in a meaningful way, and seems like fun so far. What makes Slay the Spire so special, though, is the steady polish (some technical, some new content, lots of balance tweaks) applied over the last few years. Here's to hoping this game will follow that part of the inspiration also.</comment>


Calculating the Distance Between Points in Wrap Around (Toroidal) Space - <AUTHOR> https://blog.demofox.org/2017/10/01/calculating-the-distance-between-points-in-wrap-around-toroidal-space/ <comment><USER3> A trick for dealing with periodic coordinates, not discussed in the article, is to convert each periodic coordinate (eg, an angle theta) into a pair of cartesian coordinates (x,y) on the circle, and then compute the distance in cartesian space. Ie, convert to x = cos(theta), y = sin(theta).

In the 2d example in the post, you would rescale the coordinates so the unit cell is from (-pi,pi) in both dimensions, and then the distance formula would be

        sqrt(((cos(x1) - cos(x2))**2 + ((sin(x1) - sin(x1))**2 + ((cos(y1) - cos(y2))**2 + ((sin(y1) - sin(y1))**2)

This works well for doing things like determining the "nearest" point to another point, and similar operations, and has some other nice properties.

(I forget the name of this system, but it is commonly used for calculations involving dihedral angles in MD simulations)

<comment><USER4> It depends on how you define "distance". My initial thought when reading your comment was that you couldn't possibly use the Euclidean distance because you'd be drawing a path between two points on the circle that involves points _not_ on the circle.

<comment><USER5> Using the Euclidean distance (Cartesian distance? I dunno) works because it's a monotonic underestimate of the distance along the circle. So you know if cartesian_dist(A, B) > cartesian_dist(A, C) then circle_dist(A, B) > circle_dist(A, C).

<comment><USER6> The original problem, though, is about computing distance, not about comparing distances. Comparing distances is just used as an intermediate step in the initial method given.

</comment></comment></comment></comment><comment><USER7> I really enjoy this kind of post. It's short, simple and something most people could figure out by looking at the problem. Even then, it's still something that makes you go 'huh, how _would_ you do that?'. Until the intuition about toroidal space kicks in, that is.

</comment><comment><USER8> The may be a simpler way yet. If the coordinates are normalized from [0..1) and represented as 16bit integers with all bits fractional, you can simply take the difference x1-x2 and treat the result as signed. The result will be in the range [-0.5 .. 0.5). If you then square that number to get a 32bit result it will be correct for that component of the distance formula with no conditional code at all. Representation can be everything.

<comment><USER9> x1 = 0.9

x2 = 0

x1-x2 = 0.9 => -0.4

I don't see how this works.

<comment><USER10> Add 0.5 to the result to convert the result in [-0.5 .. 0.5) back to [0..1)

        -0.4 + 0.5 => 0.1

</comment></comment></comment><comment><USER11> Isn't the topological manifold of the "wrap around" space described in the post spherical? A toroidal manifold would more complicated since the two generalized coordinates do not commute (order matters).

<comment><USER12> I'm not sure what you mean, could you elaborate?

The post says that for a torus, which is a product space of two (or more?) circles, we can analyze the the distance "along each circle" from a shared origin for a chosen basis. One circle is our "x" and the other is our "y". (Contrast with a plane and two lines.)

This seems reasonable if the objects we're looking to measure our distance to are expressed in terms of those circles as well, since this allows us to simply put a measure on each circle and get a distance formula for any two points that behaves the way we would like.

<comment><AUTHOR> I'm out of my depth but I believe it's a torus because it's 2 cylinders, not circles?

<comment><USER12> A cylinder is a circle and a line. The circle goes around and the line is the height.

A torus is a circle and a circle. One circle goes from the outside to the inside and back around, and the other goes around the outside, if we're talking about a donut. We can see that any point on the surface of the donut is some combination of "go around the outside" and "walk around towards the center". You can also imagine taking a cylinder and bending it around to make a torus -- this changes the 'height' line into a second circle.

We're talking about the product space, so what that means is you can describe the space by (two) coordinates, one drawn from each "shape" (actually, manifold). A "torus" then differs from a "plane" in that you can wrap around in the x-direction and wrap around in the y-direction, independently, since the x-direction on a torus is a circle instead of a line and the y-direction on a torus is a circle instead of a line. By contrast, a cylinder you can only wrap around one way, because you can only wrap in the direction that has a circle for its coordinate space.

</comment></comment></comment></comment><comment><USER13> This article essentially describes a modulo (%) operator for floats, which is well-defined and completely analogous to the integer modulo operation. I always wondered why these aren't part of the FPU command set, or at least part of modern programming languages, e.g.:

       1.0 % 5.0 = 1.0
       6.0 % 5.0 = 1.0
       7.0 % 5.0 = 2.0
       7.4 % 5.0 = 2.4
       7.4 % 1.0 = 0.4

With that in place, the torodial distance becomes a one-liner without any case distinctions (i.e. without ifs).

<comment><USER14> I couldn't even find an integer modulus operation when I was porting my fractal code to WebGL. [https://www.shadertoy.com/view/MdSXWc](https://www.shadertoy.com/view/MdSXWc)

<comment><USER15> Did the % operator not work? I just tested 1 % 10 and it seemed to compile. I used the % operator in other shaders. Remember that WebGL is ultimately a sub and superset of C.

<comment><USER14> It does work! I wonder why I didn't think of it while transliterating from my older Python codebase.

<comment><USER16> It's possible it used to not work with an older version of WebGL/GLSL, and now it does.

</comment></comment></comment></comment></comment><comment><USER17> This is one of my favorite things to do on the train while on the way to work. I select two random passing objects out the window, and use a general assumption about the train's speed. Then I visualize these objects on a toroidal space, and after a few minutes, I draw the rest of the owl.

</comment><comment><USER18> This type of calculation is used on a very regular basis in molecular dynamics simulation. The wrap-around space is implemented using periodic boundary conditions. Calculating the distance between points is most often done using what is called the minimum image convention. In one dimension for a "box" of length L the minimum image distance between particles i and j: xij = xj - <USER2> can be calculated through xij <\- xij - L*nint(xij/L). This avoids any if statements.</comment>


Design Hacks for the Pragmatic Minded - <AUTHOR> http://warpspire.com/talks/designhacks/ <comment><USER2> If you like this type of stuff, you may also enjoy the noun project. www.thenounproject.com has an entire database of vector images of icons as well. What's really nice about the vector format is that you can just open them in Adobe Illustrator and make any changes to the lifework.</comment>


APPLE announces a $2500 bonus. - <AUTHOR> http://www.bloomberg.com/news/articles/2018-01-17/apple-is-said-to-give-employees-2-500-bonuses-after-new-tax-law <comment><USER2> It breaks the Hacker News guidelines to editorialize article titles like that, so please don't.</comment>


Ask HN: Do startup CEO blogposts get written by copywriters? - <AUTHOR> I often see blog posts released small, medium and large startups, usually, the spelling, grammar and structure of these posts is quite high.<p>Do all these CEO's just have great writing skills, or do they get help from copywriters? <comment><USER2> it's generally considered against professional decorum to write and tell.

</comment><comment><USER3> Great question!</comment>


Most GitHub repositories are not open source - <AUTHOR> https://lwn.net/SubscriberLink/636261/5e95f528a311ecdd/

<comment><USER2> At least all the source code is open to read even if it's not open source licenced.

<comment><USER3> Of course it's not. GitHub makes its money from private repos. It's very possible there are more private repos than public.

That said, who cares? Unless people are sitting on some really amazing forks of OSS projects, which is unlikely.</comment></comment>


10 Reasons You Have to Quit Your Job in 2014 - <AUTHOR> http://www.huffingtonpost.com/james-altucher/quit-your-job_b_5111751.html

<comment><AUTHOR> Another abrasive yet motivational post from James Altucher. Always a good quick read, especially if you need a little kick to get you moving.</comment>


TRS-80 Trash Talk Episode 4 – Model I Buyer's Guide - <AUTHOR> http://www.trs80trashtalk.com/2016/04/episode-4.html <comment><USER2> The Model I was a piece of trash. Why get a Model I if you could get a III?

<comment><USER3> Because history. And, because when I got my Model I, there was no such thing as any other TRS-80.</comment></comment>


So you wanna start a conference...: In Da Beginning - <AUTHOR> http://www.jasonamyers.com/so-you-wanna-conference/ <comment><USER2> I've been involved with a couple conferences before and agree with wholeheartedly with the post.

      As a conference chair, you're responsible for delivering on every promise to the attendees and sponsors! Stop and reread that line.

This is key. I've seen situations where teams bring on too many volunteers who promise all sorts of things. The chair is optimistic at the beginning since they have a large team. Eventually, about 1/3rd of the team will flake and the chair is left holding the bag. The remaining volunteers are pushed to uphold all the promises and the stress collects.

It'd be great if you write a follow up post going into more details about your experience.

<comment> jam-python I'm gonna write a series of posts breaking down the chunks of the work and experiences. This is just the first.</comment></comment>


SOPA architect now pushing for "IP Attaché" legislation - <AUTHOR> http://arstechnica.com/tech-policy/2012/07/sopa-architect-now-pushing-for-ip-attache-legislation/ <comment><USER2> The bill has been held already after two SOPA opponents-turned-cosponsors of this bill withdrew under fire, led by Ernesto Falcon of Public Knowledge and much of the activist anti-SOPA crowd. Total time since word first broke: ~2 days. These things /can/ move quickly, which is why I'm paying attention to it for the startup community.

We're engaging with Rep. Issa and Chaffetz's office to express our continued concerns.

Contact Troy Stock at Rep. Chaffetz's office $email@example.com

I don't have a staff contact yet for Rep. Issa's office, but I'll update when I do.

I'll note that the startup community fucked up.

We had a decent opportunity to knock out Smith in the primary. We failed to engage. We lost $350k, left it on the table, when a PAC approached local organizers, offered the money if we had been able to identify 15,000 potential Lamar Smith opponents in the district. Campaigning 101.

We were raising money for ads, and failed to do this basic foundational work, meaning we failed to get the money, which knocked off at least one major incumbent in Texas that day (Silvestre Reyes).

As it is, know how much SOPA was worth? Five percentage points, with Lamar going from 83% in '10 to 77% in '12 during the primary.

EDIT: Look for an update today from TechDirt, assuming Masnick can confirm on the record our reports that the bill has been held from further action at this time.

EDIT2: Also, the IP Attache bill is apparently near-copies of pages 70-78 of SOPA, though I haven't verified this.

</comment><comment><USER3> WOW if we protected people health and wellbeing as well as we protect digital media then the World would be full of healthier people. Kind of messed up realy.

I'd dare say more TAXable income thru avoidance is lost in a single day than is lost through piracy in a single year. That would realy put things into perspective.

[EDIT ADD] Just did a quick thumb in the air statistical google for the UK [http://www.newstatesman.com/blogs/the- staggers/2011/11/tax-a...](http://www.newstatesman.com/blogs/the- staggers/2011/11/tax-avoidance-justice-network) gives us £69.9 billion a year lost thru TAX avoidance (esitmated) and for piracy the net effect is [http://www.itproportal.com/2011/11/11/video-game-piracy- uk-c...](http://www.itproportal.com/2011/11/11/video-game-piracy-uk-costs/) for games and for movies [http://www.metro.co.uk/news/817878-illegal- downloading-cost-...](http://www.metro.co.uk/news/817878-illegal-downloading- cost-1-4bn)

So alot less and yet the effort/publicity for the later and laws compared to combating the former TAX fraud/avoidance do seem somewhat out of kilt.

Need I say anything else beyond messed up priorities.

<comment><USER4> > I'd dare say more TAXable income thru avoidance is lost in a single day than > is lost through piracy in a single year.

Depends what method of accounting you use really, going with the MPAA and RIAA's statutory damages demands in piracy cases, "losses due to piracy" are probably in the same order of magnitude as the planetary GDP in the same time- scale.

</comment></comment><comment><USER5> As a resident of Texas, I apologize for the continuation of Lamar Smith's complete:

1) Lack of social and moral awareness

OR

2) Complete corruption by large monied forces.

I swear we all aren't dumb rednecks down here. Most of us are pretty cool. Mr. Smith on the other hand, is a tool.

<comment><USER6> One difference between Americans and non-Americans is that Americans will apologise.

Smith is a tool and US politics sucks, but he isn't significantly worse than the norm in other countries and neither is US politics.

<comment><USER5> I bet you are 100% right. That doesn't mean we have to settle, just because its worse in other places. I'm sure you can come up with a few examples on your own where applying that same logic would seem like a terrible idea.

"I have a brain tumor, but its not as bad as some others so I'll leave it alone."

<comment><USER6> > That doesn't mean we have to settle

And I never suggested otherwise. I just pointed out that Americans apologise for this stuff while non-Americans don't.

</comment></comment></comment></comment><comment><USER7> Isn't "architect" given Rep. Smith a bit too much credence? It's pretty clear at this point that Smith isn't actually writing these things, and may not even have conceived of the strategy to get them in play. He's just doing what some lobbyists have convinced him to do.

</comment><comment><USER8> Dear United States of America,

Please stop trying to impose your ridiculous and restrictive policies and law on us. There a simple reason we don't have the same legislation you do: WE DON'T WANT IT.

Sincerely, The rest of the world

</comment><comment><USER9> This may be slightly off-topic but wondering what the obviously-continental- European power plugs (those that aren't USB plugs in the protest image) are doing in an ad advertising protesting SOPA. Are the French and Germans supposed to go off-line to protest American legislation?

As for the bill, isn't it pretty obviously a copyright maximalist position internationally? I wonder what this has to do with the USTR's reversal on that recently.

</comment><comment><USER10> make no mistake:

"imaginary property" != "real property"

importanceof("real property") > importanceof("imaginary property")

mistakenly equating the two, as most politicians do -- because "well, why should the internet be any different?" -- erodes real property rights (and civil rights, ...). yes, really: distributor (excuse me... creator) imaginary property rights absolutely come second to my real physical property and privacy rights. i don't care how many revenue forecasts aren't met. ROI is not a right, it's a market risk. you don't like the returns? buy a farm and be glad the imaginary property advocates haven't lobbied the right to lock your door away from you yet. you could be infringing my copyright (not to mention commiting thoughtcrimes, or storing encrypted-looking data) behind that closed door.

y2k12wtf!

</comment><comment><USER11> This makes me sick!</comment>


Python Search – eval(raw_input()) - <AUTHOR> https://github.com/search?p=8&q=%22eval%28raw_input%28%29%29%22&ref=searchresults&type=Code

<comment><USER2> Note that a number of these seem to be from people including Python itself within their project [0]. (Arguably, this could also be considered a mistake.) Python 2 defines the input() built-in, which is documented as:

>input([prompt]) -> value

>Equivalent to eval(raw_input(prompt)).

Github is turning up these results because that bit of Python is inside the C code as a string documenting the function.

Python 3 does not evaluate what's passed to input(), however. To get the same effect, use eval(input()). [1]

[0]: Limiting it to C examples [https://github.com/search?l=c&q=%22eval%28raw_input%28%29%29...](https://github.com/search?l=c&q=%22eval%28raw_input%28%29%29%22&ref=searchresults&type=Code)

[1]: [https://docs.python.org/3.0/whatsnew/3.0.html#builtins](https://docs.python.org/3.0/whatsnew/3.0.html#builtins)

</comment><comment><USER3> Is evaling raw_input really that dangerous?

We are not evaling something from a file, or from an internet connection. We are evaling something typed in at the keyboard.

Assuming your python isn't setuid root, anyone at the keyboard could just open a new terminal, type 'python', and start evaling raw_input as much as they like.

<comment><USER4> Doesn't that depend on what's connected to stdin?

<comment><USER5> is raw_input the same as stdin? I don't think you can pipe other programs into it.

<comment><USER6> >is raw_input the same as stdin?

Yes.

$ echo foo | python -c 'print raw_input()[::-1]'

oof

<comment><USER5> Upvoted. I guess I was thinking more along the lines of one shouldn't use raw_input() when you're expecting a pipe since it only takes one line.

        $ ps | python -c 'print raw_input()'
          PID TTY          TIME CMD

But I suppose you could just loop to get around that anyway.

</comment></comment></comment></comment></comment><comment><USER7> While this is obviously a bad practice in any production codebase, this all looks like "learning python" kind of code, where confusing people with security implications isn't really going to help anything.

Besides, this isn't even low hanging fruit. If you want to really find some terrifying github contents, try to think of a library that is used to access the TTY, say to enter passphrases for ssh/telnet/mount/sudo/etc. in a PRODUCTION environment. Then think how it's api would be used, and search for that. Example below: using expect to enter passphrases:

Example:

[https://github.com/search?q=+expect+send+root+ssh&type=Code&...](https://github.com/search?q=+expect+send+root+ssh&type=Code&ref=searchresults)

There is a ton of low hanging fruit out there.

</comment><comment><USER8> I use something like that in one of my programs, it's more or less like a hacky repl (well, without the loop part). It isn't a vulnerability in any way either, since it's just the user running the code in his computer.

<comment><USER9> Said every author of a security bug ever.

Edit: Not sure why I got downvoted. Developer #1 writes script that prompts technical user for input expecting (as parent did) that stdin will be a local console. Developer #2 later wraps script with a web form so sales/marketing can access the tool as well.

[https://www.owasp.org/index.php/Don't_trust_user_input](https://www.owasp.org/index.php/Don't_trust_user_input)

<comment><USER10> I guess the attack vector of you exploiting your own computer is very real. /s

</comment></comment></comment><comment><USER11> In python 2.x input() is equivalent to eval(raw_input()) which could have something to do with seeing this so much. The first result is a docstring that says literally this..

</comment><comment><USER12> My attempt at an advanced search suggests none of them have any stars, so maybe I'm doing it wrong? Someone better at github search wanna give a go? I'm curious what the more popular projects in this list might be, or if it's just all people's local hack scripts.

</comment><comment><USER13> Seems like a cheap shot since you should probably know that Python 2 has a builtin called input() that does the same thing; it would be more likely to be used than your combination.

</comment><comment><USER14> Would be nice to get a website referencing all those "dorks". Interesting.

<comment><USER15> Here you go "CodeSearchDiggity": [http://www.bishopfox.com/resources/tools/google-hacking- digg...](http://www.bishopfox.com/resources/tools/google-hacking- diggity/attack-tools/)

</comment></comment><comment><USER16> Bad programmers will code bad in any language. Language change won't help.

<comment><USER16> I wanted to add that not always "eval(input())" is a bad thing. It's the core of REPL[0], for example.

[0] [http://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print...](http://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop)</comment></comment>


Joyent responds to Yahoo's issues with V8 being used under Node.js - <AUTHOR> http://joyeur.com/2011/02/05/on-brunos-concern-about-the-current-coupling-of-node-js-and-v8/

<comment><USER2> There are a few interesting discussion points being thrown back and forth between the Yahoo developer Bruno and Joyent founder Jason.

The most interesting question raised in my opinion is Bruno essentially saying that thread-per-request blocking I/O server design is safer than event based server design. If one thread dies it's less likely to propagate problems that will kill the server. Due to this added complication he thinks that node.js should focus more on reliability and believes that V8, with roots in browser side and not server side JS, is ill-equipped.

Jason wants to focus on two things. First, he keeps asking for specific examples of where problems have arisen (as otherwise it appears to be a theoretical fear) and second he wants to push node.js towards 1.0 and stabilize the API and feature set.

It seems Jason thinks Bruno is looking too far into the future. It's essentially the architectural equivalent of premature optimization - until the API and feature set stabilizes there's not going to be any great call for perfectly reliable production servers.

Even then Jason is confident Joyent can deliver on the latter considering how many active V8 devs they have working for them.

Both guys seem to really love server side JS and want to push for it, they just have different ideas about which direction to head.

<comment><USER3> I admit both of them have lots to say about SSJS or even SS-anything. Still I can't understand Bruno's sentiment towards thread-per-request approach, considering that he's talking about the Node here. Node.js is all about a simplicity of evented, single thread design. If someone thinks this "worse is better" approach went too far in this case, why to use Node at all? There are tons of good thread-based solutions nowadays - a fit for anyone's taste.

<comment><USER4> The issue is that a single V8 thread in Node.js could be handling the event loop for thousands of clients. A process crash here could cause a mini thundering-herd when all the users attempt to reconnect at the same time.

So his question is not baseless - the solution is to have a VM that rarely crashes.

n.b. Erlang also hard-crashes when it can't allocate memory. This hasn't hurt its reputation for reliability.

<comment><USER5> A process crash will cause the same problem for thread-per-connection server. There is essentially no difference in stability between thread-per-connection and event-loop based servers.

</comment></comment></comment></comment><comment><USER6> I guess Bruno's basic point is: V8 is client-side. That's where Google's thrust is; that's what they're concentrating on. But SSJS has some unique issues, which aren't necessarily issues on the client side.

So it's a natural question to ask if Yahoo, as a company, are thinking of investing millions of dollars (in terms of manpower) on node.js .

Jason's response seemed more like "we'll cross that bridge when we come to it". Which is perfectly reasonable (and the norm) in startup-world; but large, established companies with their BCPs and contingency-planning and long product lifecycles don't usually think that way.

IMHO, if Yahoo is planning on going all-out for SSJS, they should develop some in-house expertise on V8 so that they can fork it for internal use and not have to wait on Google.

</comment><comment><AUTHOR> Original article from Bruno Fernandez-Ruiz (Yahoo): <http://www.olympum.com/future/nodejs-to-v8-or-not-to-v8/>

Response to OP from Bruno: [http://www.olympum.com/future/answering-jason- on-v8-governan...](http://www.olympum.com/future/answering-jason- on-v8-governance-and-impact-to-nodejs/)

<comment><USER7> It's kind of off-topic, but I found this statement from Jason weird:

 _"functioning as a real contributor when there's an issue (e.g. don't report a bug unless you have a patch)"_

Doubly so as later in the same post he's asking Bruno if the failures he's talking about are real or hypothetical. In other words demonstrating that bug reports are valuable even without patches (though of course their value can vary wildly).

<comment><USER2> Context is important here.

Bruno was saying that Google are the gatekeepers of V8 and that if they didn't plan to support server side use of V8 that it'd be hard to contribute to the official codebase. Jason said that not only did Joyent have many V8 committers but additionally they've worked with the Google guys to submit real contributions. This would mean that any contributions they make in the future are far more likely to be accepted due to both the quality of work and the previous credibility they built up with the Google V8 team.

Simply put you're a lot more likely to accept a large feature patch from someone you know and has contributed previously than from someone who doesn't contribute. He doesn't mean to say bug reports have no value if there's no patch.

</comment></comment></comment><comment><USER8> "We'll fork it. And fork it hard. Fork it like it's never been forked before"

<comment><AUTHOR> I love this comment. I really enjoy node.js but have never really paid attention to Joyent, until now. They have immense respect from me (not that it counts for much) for their candid response and their push for SSJS and node.js

<comment><USER9> Why does that quote give you _more_ respect for Joyent?

<comment><AUTHOR> Not necessarily just that comment, the post in general gives me a new found respect for them. They are opinionated, and have a clear focus for what they want to do, and would rather do it in a way they feel is the right way than cave into pressure from big players to do it the 'safe' way. I don't think Bruno, by extension Yahoo, wants node.js to compromise what makes it great, but it definitely isn't tested and it takes balls for Joyent to invest so heavily on evented I/O for V8.

</comment></comment></comment></comment><comment><USER10> Until node.js makes their home page intelligible to a novice, none of this matters.

<comment><USER10> Perhaps I came across too negatively. But, man, it takes some digging to find out how cool node.js is.

<comment><USER3> I think what you're saying is very subjective.

What they have is quite nowaday standard (and comparing to many older opensource projects: high above average) in the terms of design, clarity, quick examples showing the essence etc.

You know it always takes some conscious effort to discover if the technology is cool and useful or not - think like "teach yourself programming in 10 years". It's much better to provide useful essential examples and let people think what they want to than to say "hey we're new ubercool thing, join us or you're the looser lol". I for one am very happy to see Ryan Dahl seems more modest person than some of "celebrities" in the Ruby world for example (to be fair: ruby-talk list was always dominated by modest, hard-working people rather than celebrities). Productive community is the best advertisement and smart, experienced newcomer will quickly add 2+2 and see the value.</comment></comment></comment>


Show HN: Baajet – Budget tracking made easy for travellers - <AUTHOR> https://baajetapp.com <comment><AUTHOR> Feedbacks would be greatly appreciated.</comment>


Fine Print: Unusual legal footnotes - <AUTHOR> https://www.laphamsquarterly.org/rule-law/charts-graphs/fine-print <comment><USER2> Ugh, it's an image without alt text.

Here's an OCR-ed copy: [https://gist.github.com/jwilk/97d49978904256e0ee3379e8aa4f18...](https://gist.github.com/jwilk/97d49978904256e0ee3379e8aa4f180f)

<comment><USER3> Just out of curiosity, how did you create that? What OCR software/service did you use, and what did it return before any manual edits?

<comment><USER2> I used Tesseract OCR ([https://github.com/tesseract- ocr/tesseract](https://github.com/tesseract-ocr/tesseract)).

This is what it returned:

[https://gist.github.com/jwilk/4bd58278fe9a6b88af1010616afe2b...](https://gist.github.com/jwilk/4bd58278fe9a6b88af1010616afe2b0a)

I manually corrected a few recognition errors, fixed the order of sections, unhyphenated a few words and added formatting.

</comment></comment></comment><comment><USER4> Latham's quarterly seems to have lots of amusing pages. I suggest readers flip though the site a bit!

</comment><comment><USER5> Much of the Internet owes _Campbell v Acuff-Rose Music_ a debt of gratitude.

</comment><comment><USER6> Lewis Lapham (former Editor-in-Chief of Harper's magazine) is brilliant.</comment>