Summary of Go Generics Discussions - <AUTHOR> https://docs.google.com/document/d/1vrAy9gMpMoS3uaVphB32uVXX4pi-HnNjkMEgyAHX4N4/edit?pli=1 <comment><USER3> This is such a biased document as to be pointless. The authors are so opposed to generics that I don't understand why they bother. Just a few beauties:

 _> The generic dilemma is this: do you want slow programmers, slow compilers and bloated binaries, or slow execution times?_

I don't think these are the only outcomes, but lets go with it. A slightly slower compiler then. Solved.

 _> The generic structures are less useful than a concrete one._

If they weren't more useful then nobody would be arguing for them.

 _> Generic structures can be less optimized than a concrete solution_

Ridiculous.

 _> Code won't look idiomatic._

Idiomatic is a function of the language syntax and features. If generics are a feature then their use will, by definition, be idiomatic.

And on and on. At this point people using Go accept the lack of generics (and, oddly, sometimes wear the omission as a badge of honor). I don't think anyone happily using Go is expecting generics anytime soon, if at all. And I don't think the authors need a paper to show their dislike for them. Who are they trying to convince anyway?

EDIT: A few folks have told me I come across too heavy handed in my reply. I apologize to and don't mean to discourage the author(s)! It's a tough document to write. Especially if this was just a starting "brain dump." The document title had just set my expectation towards a neutral tone.

<comment><USER4> > I don't think these are the only outcomes, but lets go with it. A slightly > slower compiler then. Solved.

Except that a capital-F Fast compiler is a design goal for the language, so that's the _least_ desirable of the three. I feel tempted to go with slower execution times, simply because it's already a part of the design as well: you can't optimise too aggressively on a limited compilation time budget.

<comment><USER5> Generics are a nice feature to avoid code duplication. However, they are not required to be used in every application. Whatever the solution is, it should not affect code that doesn't require the use of generics. If the entire language is affected (such as a slower runtime because of the need to box/unbox) that would be a step down.

<comment><USER6> So how are you writing Go if you neither use arrays/slices, maps, channels, etc.?

</comment></comment></comment></comment><comment><USER7> > No abstract examples/arguments. These cause the discussion to lose focus and > make examples harder to follow. The example/argument must be traceable to a > real-world problem - Go is intended to solve real problems not imaginary > ones.

I find that's a very good rule in those discussions, it's too easy to get bogged down to some obscure use case and miss the forest for the trees.

I note however that the authors seemed to have forgotten about that rule just after writing it down since the rest of the document is full of vague assertions and unsubstantiated arguments like:

\- "I have heard of simple libraries having text segments shrink from megabytes to tens of kilobytes by revising or eliminating the use of templates."

\- "Generic algorithms can be harder to follow than their non-generic counterparts."

\- "Fancy algorithms are slow when n is small, and n is usually small. - <USER2> Pike"

\- "map/slice suffice for most of the cases encountered in programming. (based on some community opinions [https://groups.google.com/d/msg/golang- nuts/smT_0BhHfBs/MWwG...](https://groups.google.com/d/msg/golang- nuts/smT_0BhHfBs/MWwGlB-n40kJ\)"). The linked thread contains a bunch of posts, not sure what I should be looking for (I thought the whole point of this document was to "go over the relevant points without digging through hundreds of forum posts"?)

\- "Code won't look idiomatic." I'm not sure what that even means.

I don't know if generics have a place in Go or not but I'm not sure this document is going to help solve that issue. Making a list of concrete use cases for generics and discussing possible alternatives would probably be more constructive.

<comment><USER8> "I note however that the authors seemed to have forgotten about that rule just after writing it down..."

I feel I need to remind you, and a lot of the other commenters here, that this is a top-level _summary_ of all the various arguments. And that it is possible on the Internet to _mention_ arguments without actually _advocating_ for them at the same time. I doubt you could find any individual on the planet that would "agree" with that entire document from top to bottom.

<comment><USER7> Then it should link to the various places where those arguments have been discussed. As it is it's hard to take that as a neutral reference and looks more like an opinion piece against the implementation of generics in Go trying to pass off as a neutral reference. If that was on wikipedia it would be littered with [citation needed].

</comment></comment></comment><comment><USER9> Previous discussion: [https://news.ycombinator.com/item?id=8756683](https://news.ycombinator.com/item?id=8756683)

</comment><comment><USER10> Something that has turned into such a contentious topic one would think someone would fork the project to add generics themselves. Perhaps in an effort to "prove" how it could be done easily or cleanly.

How many man-hours have been spent arguing about this?

<comment><USER8> I've actually considered stabbing at it, but at the moment it's best to wait for the idiomatic Go rewrite of the compiler to get further along.

And by "stabbing at it" I mean opening up the compiler to see how difficult it would be, not a commitment. But even for that, the best answer right now is to wait for the in-progress compiler rewrite to get further along.

<comment><USER10> I think it will be interesting to see what kinds of things bloom from the rewrite of the compiler.

</comment></comment></comment><comment> dale-cooper From the java section:

> A vector of bytes uses significantly more than one byte per byte.

There is still the option to use an array of bytes (the primitive data type, not the class Byte) if the performance of boxing/unboxing is a problem.

In fact, i don't understand how the vector example is relevant to generics at all. Even pre-generics the underlying storage for a Vector in java would be an Object array so the boxing/unboxing would still happen?

<comment><USER8> Ah, this threw me for a while too. So the answer appears to be: Suppose you have a generic function X(Y), where the "Y" is generic. Now suppose you want Y to be truly _generic_ , and not just Java-style generic, which means that Y may be any size. That is, it may be a "byte", it may be "short", a "long", a 184-byte struct, a pointer, etc etc etc. The way most programming languages do functions, functions encode into themselves the sizes of what they are expecting, and the expectation for how they are going to receive parameters. Therefore, a single function can't take all those options, and at the very least you end up needing one per base size, plus one for spilling to the stack... and that's _just_ to deal with the size issue, you still have signedness, various struct properties if you're passing structs, etc.

So one option is to "box" everything, which basically amounts to saying "I will take a pointer to everything", and in the case of Go, "I will take the pointer to that thing's type". (That's how interfaces work in Go.) Now everything is the same size (pointer-sized). But now everything's boxed. Alternatively, you can compile lots of functions, but now everything's compiled in separate copies of the function.

From the high-level language POV it all seems so simple. When converting it into actual assembly, which has to interact with the rest of the system, it gets more complicated, and the performance implications of even slight slowdowns to a function call can be catastrophic given how many of them we make.

Personally I'm still interested in the question of whether it's feasible to create a different calling convention into a generic function that deals with this directly. This might not be possible in C due to its age, or C++ due to its reverse-compatibility heritage, but I'm interested in whether we can write a sufficiently-generic (in the more general sense of the term) function calling system that it can work with Go better. Basically looking at types like a vtable and abstracting out all the calls that are size-dependent into vtable-lookups, which ought to be slower but only _slightly_ slower than a direct call (given that it seems like everything can be resolved at compile time except the actual address). But I don't know. Interested to hear if anybody else has ever tried that or anything similar. (Assembler is a great deal more flexible than the structured programming we have laid on top of it, at least in theory.)

<comment> dale-cooper Thank you, that was a great explanation.

For what i've been using java for it's never really bothered me. When there is need to use primitives it's almost always in the form of a list where you can just use an array instead to avoid the boxing/unboxing.

The risk of null pointer exceptions when implicitly unboxing objects are more annoying..

</comment></comment></comment><comment><USER11> The Go team has repeatedly stated they have nothing against generics per se and they see a value for it. They simply have not found an implementation that works with language values (simplicity, fast compilation, etc.)

If anyone can come up with an implementation that works, I see no reason why the team would say no to its inclusion.

</comment><comment><USER12> /offtopic

This kind of discussion is actually something that bothers me even more than generics at the moment : [https://groups.google.com/forum/#!topic/golang- nuts/m7k9Epxq...](https://groups.google.com/forum/#!topic/golang- nuts/m7k9EpxqK4I)

Come on... removing an item from a list requires tricks ?? I know go aims at being memory efficient, but delete(list,obj) should be idiomatic.

<comment><USER13> I'm not a Go programmer, but I think this is a problem of data structure expectations. Slices are not "lists", but views into arrays. So, by design, slices are a view into contiguous chunks of values. In such structures, removing an item will necessarily be O(n).

A general principle in interface design for data structures is don't make expensive things easy. So, if removal from a slice is O(n), then the data structure is obviously not optimized for that, so don't provide a function for it.

<comment><USER12> I would agree, except for the fact that slices have a lot of very convenient sugar syntax, making it look like the de facto standard for storing anything (with maps that is).

Well, i may be spoiled, but ever since i stopped working with C, i never had to deal with data structure so different between arrays and list than go (that is, slices and container/list).

The performance concern is an absolute hypocrisies. Whenever you decide which structure you pick in eg, Java, you know that the various containers are optimized for various operation, and you decide which to use depending on performance only.

In go the language is so broken (because of the type system) that using a chained list vs an array makes your code look completely different.

</comment></comment></comment><comment><USER14> That generics would allow for better Type-safety is only true if one compares it to using empty interfaces (or some other type less thing).

But it would actually lead to less accurate Type-safety than if one had a different sort method for each sortable type, it would lead to some amount of "duplicated" code but that is a different matter than Type-Safty.

<comment><USER15> It would lead to less safety but _more_ type safety, actually.

[http://jspha.com/posts/six_points_about_type_safety/](http://jspha.com/posts/six_points_about_type_safety/)

</comment></comment><comment><USER16> It is incorrect to say that the c approach is no generics. C has its precompiler macros which functionally provide a crude form of generics.

<comment><USER17> C macros are the worst form of macros. They are string substitution without type checking and can very easily leaf to all sorts of issues. That said I'm in the macros camp instead of generics just because I think go authors would actually do it.

<comment><USER18> If you're rooting for language features based on the willingness of your language designers to implement them rather than what will make the language better, your language ecosystem is fundamentally broken and it's time to move on.

</comment></comment></comment><comment><USER19> I wonder what a survey of real Go users about generics would show. I'm betting an overwhelming majority would like that.

<comment><USER20> Would these be people writing "production" code in Go who need generics, and for some reason have not been instead using a language with the features they need?

The whole continued argument is odd. The "whole generics are important" and "Go is too simple" thing seems counterintuitive when all of the comments mention Rust, Haskell, Java, etc., yet the proponents of generics are not using those languages instead.

Why if Go does not have the features one needs, would a person be compelled to use it?

<comment><USER19> Simple - it has many other virtues that outweigh this even if you need it.

I'm writing a lot of production Go code, and I'm very happy about the language. I wouldn't put generics at the top of my wish list but at times I wish I had them. But not enough that I'm willing to use a 3rd party solution, so I guess not that much :)</comment></comment></comment>


Ask HN: How to make money without working visa - <AUTHOR>

Hi
i'm an international student (F1 visa) in the center of the silicon valley. Unfortunately my money won't last until the end of my study and the college that i attend does not offer OPT/internship while studying.
so my question is: how can i make enough money to support for my study and stay in the U.S.? i made an apprenticeship as Software Developer, studied 2 years software science and have about 7 years experience in the job. i'm fluent in java, C# and flex and i'm currently learning android. so i thought that i could work something remote or as contractor. any ideas or tips on how to find work like that?
i'm aware that this is not 100% legal, but my options are limited. if i can't make any money, i will have to leave without finishing my degree :-( <comment><USER2> I have been in the same situation.

Have you tried applying for CPT? (Curricular Practical Training)

You might also want to transfer to a community college (cheaper tuition) get some credits and go back to your original school.

And if none of these work, as difficult as this may sound, you should consider going home and coming back when you are in a better financial position; the last thing you want is to loose your legal status.

If you end up going back home, see it as an opportunity maybe to clear your mind and refocus, or maybe work on side projects, or maybe continue learn android.

The most important thing is to remain positive, no matter what. Stay focused on school and keep getting good grades.

Best of luck.

<comment><AUTHOR> i am already in a community collect. i just need to finish the AA degree somehow and then i could work for one year in the OPT program. but yes, CPT might be a possibility. i'll talk to my counselor on monday about that.</comment></comment>


Hire freelance - <AUTHOR> http://www.hirecontentwriters.com/ Welcome to the freelance content marketplace. Here you can buy and sell content by hiring freelance writers and content providing companies. You can even post writing jobs to hire freelance writers. <comment><AUTHOR> Welcome to the freelance content marketplace. Here you can buy and sell content by hiring freelance writers and content providing companies. You can even post writing jobs to hire freelance writers.</comment>


Does Emacs violate the Unix philosophy of doing one thing very well? - <AUTHOR> https://www.quora.com/Does-Emacs-violate-the-UNIX-philosophy-of-doing-one-thing-very-well/answer/Tikhon-Jelvis?share=1 <comment><USER2> The Unix philosophy isn't "do one thing well". It's "parse text from standard input, files, command line arguments and environment arguments in hacky way, do one thing okay-ishly, then spit out ambiguous text once again".

</comment><comment><USER3> Nope. Emacs lets you do one thing well: Use a computer.

</comment><comment><USER4> The best comment seen on Reddit is "it does one thing well, it's a perfect Lisp interpreter."</comment>


Yo App Allegedly Hacked By College Students  - <AUTHOR> http://techcrunch.com/2014/06/20/yo-app-allegedly-hacked-by-college-students/

<comment><USER2> The Yo joke keeps on getting funnier. First 1.2 million dollars of funding for an app that allows you to send, "yo" to your friends and now this hack. What the hell was the money spent on? It certainly wasn't security. I'd imagine the developers threw a massive party with kegs and thousands of pizzas with the funding money because lets be honest: Yo is an MVP product that is not refined nor innovative and could be built by a 14 year old with a Udemy course on Objective-C. The fact it supposedly took 8 hours to build and started off as an April Fools Day joke says it all, right?

I like stupid apps and things like this, but the fact this received funding just reminds me of 1999. Apps like this shouldn't take funding, they're short- lived hype apps, they're not the next Twitter or Facebook. Can the bubble just pop already please? Save the VC funding for startup ideas that actually deserve it. This is the pet rock of mobile apps.

At least Mike Judge has a plot he can adopt for season two of Silicon Valley though.

<comment><USER3> Maybe they haven't spent the 1.2 million dollars? Maybe they and their investors know a little bit more than we do and have something up their sleeves.

What we do know is they sure have recieved a lot of attention they wouldn't have otherwise.

<comment><USER4> There's so much potential for this app, they could add a keyboard and allow you to send any message you want for instance...

</comment></comment></comment><comment><USER5> I have little sympathy for Yo - it's indicative of the cavalier (arrogant?) attitude many seem to have towards security these days. There's this prevalent minimum viable product attitude lately that seems to make app developers think security is something you can think about later.

It isn't. You have an obligation to your users and the personal data they entrust you with. Build it in. Today. And know that you can't write secure code as part of an agile process. Security means sitting down and working out a threat model before you jump into code, user needs and backlogs. In other words, choose design up front, or have a contingency ready because you're going to get hacked.

<comment><USER6> You're wrong. I can think of many apps where security shouldn't be the main focus. Apps where neither the developer nor the users really care if it happens. Yo is one of them.

<comment><USER5> I didn't say it should be the main focus. Also, your comment demonstrates my point (thanks for that). It's arrogant, and demonstrates a lack of insight. If they don't, Yo _should_ care. As I mention in another comment below, this impacts their reputation. Imagine if the developers of Yo build something that really should be secure one day. First thing I'd think is they don't bother with security, so I won't use that app. Or the developer interviews somewhere else one day -

 _Interviewer_ : "So dude, what have you done in your career?"

 _Yo dev_ : "I built Yo."

 _Interviewer_ : "Yo got hacked. Goodbye."

<comment><USER7> . . . said no interviewer ever.

And as selfishly awesome as it would be for my career if security holes became career-ending mistakes (hire me so you don't lose your job!), the only people who haven't written software with security holes are those who haven't written software.

<comment><USER5> I get it. Because absolute security is an impossibility, we just shouldn't bother at all.

See what you and I did there? Extremes, both sides of the argument. I know that no interviewer says that - it was done to illustrate my point.

</comment></comment></comment></comment></comment><comment><USER8> Great marketing, everyone is talking about the app now. Just heard it on the FM radio.

The title of the article even hints to this be marketing.. "allegedly."

I don't believe much of anything I see on the Internet. I think you shouldn't either!

<comment><USER9> Well if you scroll down to the "Update" portion you'll see it's been confirmed. Alas, that's by the CEO, so I guess theoretically this could all be one big scheme. But they were getting quite a bit of hype before this security issue(s) arose.

</comment></comment><comment><USER10> Is it wise to advertise that you've hacked any app in this social climate?

Theoretically, could the founder of Yo have pressed charges against the student? (This would, of course, be complete suicide for any startup. But companies aren't always rational actors.)

<comment><USER11> Nope, they are white hat. Hacking a product/app/website and not talking about it, not warning the founder is the problem.

In fact, what those guys are doing increases the collective conscious and improves the system to be able to develop better/safer products.

<comment><USER12> I recall a case where the courts did not agree with you. I can't remember names or many details, but the gist was that some guy realized that one of the pages was taking an fdat argument that was his userid, and by simply incrementing that number he could retrieve the data of any user he wanted. He presented his findings to the company (something major, like AT&T maybe), and they immediately sued him. He fought in court saying he wasn't malicious and was "white hat" as you say, but I believe he was convicted.

Does anyone remember this case?

<comment><USER7> Weev. Search HN, there are hundreds of conversations about that case.

</comment></comment></comment></comment><comment><USER13> I came here to talk a little about Yo. I was one of the original people to "hack" the app and updated the message to say "Tweet #YoBeenHacked" at about 3AM EST on June 20th. This is the hashtag that has sense been used. Approximately 15 minutes after doing this, I received a call from Or, the founder and CEO of Yo. Or, Chris, and I talked for about an hour and fixed a few issues then. From that point on, the message could not be updated.

The issues with Yo were not entirely Or's fault. As he put it, the app was intended as a "prototype" and had it not blown up so fast, this would not have been an issue. A common claim is "You have 1 million dollars, hire someone to fix this!" which Or had already done. A meeting with the parse team had already been scheduled long before today and had everyone tried to hack the app today, the attempts would fail. During this meeting Parse's Security team, Or and I fixed the security issues. I would be happy to answer any other questions, post below.

During the conversation Chris and I were both offered freelance jobs. Chris declined, I accepted. I currently am working on a feature for Yo to update your username.

<comment><USER14> How was the Yo app hacked to play sounds('rick roll') that weren't originally in the app binary?

<comment><USER13> Or came to the conclusion those people changed the binary and that they were on jailbroken devices. Those videos were faked so to say.

<comment><USER14> Gotcha. The binary only has two .mp3 files; yo.mp3 and yoyo.mp3.

</comment></comment></comment></comment><comment><USER15> Georgia tech alum here. Whoever did this, I may have a job offer for you! Awesome!

</comment><comment><USER16> And suddenly 'Yo' has a path to monetization ... litigation!

</comment><comment><USER17> The app uses parse.com API for all communication (and probably for all data storage) and I haven't seen it communicating with anything other than parse, getsentry and flurry services.

Does hacking the app means hacking parse.com?

<comment><USER18> Maybe the hackers found their API keys in the app binary.

<comment><USER19> Ok, I took another look and all the Parse keys are in a very obvious place!

<comment><USER19> I'm interested in how you can conceal these API keys in Android, there does not seem to be any recommended approach.

Obscure methods like wrapping them up in C native code get mentioned. I'm assuming Proguard does not help?

</comment></comment></comment></comment><comment><USER20> Those students have done a better jop than the original app developers and deserve a million dollar more than funding for a 'Yo' app. Please. Let's be serious.

</comment><comment><USER21> App now sends 'Ya!'.

<comment><USER22> "Oy!"

</comment></comment><comment><USER23> 'bringing on a specialist security team' (i.e. better programmers who know what the fuck theyre doing)

</comment><comment><USER24> Quick! Give those students one million dollars in VC funding!

Just think about it. We have more and more flash-in-the-pan shoddily written apps in mobile.

And because they're flash-in-the-pan, for a time, they're popular. And because they're shoddily written, they're easily exploited at the peak of their popularity, so you can amass a ton of personal information from the app users and abuse it any way you want.

Hacking crappy mobile apps may soon become the new "my WordPress blog got hacked". Think of the potential, it can be a whole new industry. Not to mention all the fake diplomas, mortgages, Russian brides and Cialis pills that'll get sold in there.</comment>


How can Skyrim be so unoptimized? Modders do better job than Bethesda - <AUTHOR> http://forums.bethsoft.com/topic/1321675-how-can-skyrim-be-so-unoptimized-modders-do-better-job-than-bethesda/ <comment><USER2> Wow. The forum is full of so many really smart people. And the Bethesda developers are so stupid. Maybe all the people in the forum should start a company and acquire the rights to develop Elder Scrolls VI. /sarcasm

Most likely explanation: PC port was crashing, they disabled optimizations, it stopped crashing. Been there, done that. Drop dead release date approaching, no time to find the root cause. Maybe the PC game already crashes enough that the people who pick up this patch don't notice that it's crashing more now.

Dunno. The forum thread just makes my head spin with naivete. As a former game developer, I'm reminded why I could only ever read forums with one squinted eye open, head turned to the side.

<comment><USER3> Inlining getters should not cause crazy stability bugs.

I'm also a former game developer and I see both sides of it.

To be honest one thing that I think is true is it's probably not some hacker's fault - the marketing and politics BS that goes on with respect to choice and support of platform when making AAA games is really horrible sometimes.

<comment><USER4> throw new BathwaterException(new Baby()) ?

<comment><USER5> No no no. Always throw by value, and catch by reference. Like this:

      throw BathwaterException(Baby());

Wait, we are talking about C++ programming, right? ;)

</comment></comment></comment></comment><comment><USER6> > Rewriting some x87 FPU code and inlining a whole ton of useless getter > functions along the critical paths because the developers at Bethesda, for > some reason, compiled the game without using any of the optimization flags > for release build.

That sounds appalling. This is not some tricky algorthm-level optimization - they seem to have simply disabled compiler optimizations. Or forgot to reenable them for the final release. Inlining a function should have zero impact on the QA process (some try to explain the lack of optimization by the need to 'fix' bugs). If it does, then there is some sort of memory corruption bug somewhere, and the code should fail QA anyway.

Ensuring compiler optimizations are active would be the first low-hanging- fruit thing to come to anyone's mind when considering performace. The fact that it was 'forgotten' means that no one even considered performance during the whole development process. Not even in the "let's leave it to the compiler" form.

<comment><USER7> I think you're making the same mistakes as people on that thread. It's a long stretch from "there's some x87 assembly instructions and some function calls that could be inlined" to "they compiled with optimisations off".

It's entirely possible, for example, that the relevant code came from a 3rd party library that the game was statically linked against; or that they had to disable optimisations in parts of the code because they were found to cause bugs elsewhere.

Creating a rich interactive world the size of Skyrim is a considerable technical achievement, so I certainly don't think you can accuse the developers of incompetence.

<comment><USER6> >disable optimisations in parts of the code because they were found to cause bugs elsewhere.

Well that is exactly what I meant. Compiler optimizations by themselves do not cause bugs - they reveal bugs. They are specfically designed to be sematically equivalent[1]. Without the compiler optimizations the bugs may not manifest themselves, or only manifest themselves in particular conditions that may not be spotted by QA - but the bugged/unsafe code is still present. Any functional discrepancy between compiler-optimized and non-optimized code should be cause for concern.

>Creating a rich interactive world the size of Skyrim is a considerable technical achievement,

I wouldnt say that the size is a _technical_ acheivement - the credit would mostly go to the artists there - and they did an amazing job. Although it would cerainly not be possible without a decent quality engine.

Don't get me wrong. I really like skyrim, and have spent a lot of time with it. But I simply get the feeling that performance receives less and less attention in the modern products.

[1]<http://en.wikipedia.org/wiki/Compiler_optimization>

<comment><USER8> _Compiler optimizations by themselves do not cause bugs - they reveal bugs._

This is incorrect. Optimizations do often reveal bugs rather than causing them, but turning on optimizations can also cause bugs in itself. See for example:

[http://gcc.gnu.org/bugzilla/buglist.cgi?short_desc=optimizat...](http://gcc.gnu.org/bugzilla/buglist.cgi?short_desc=optimization%20bug&resolution=---&resolution=FIXED&cf_known_to_fail_type=allwords&cf_known_to_work_type=allwords&query_format=advanced&bug_status=NEW&bug_status=ASSIGNED&bug_status=SUSPENDED&bug_status=WAITING&bug_status=REOPENED&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&short_desc_type=allwordssubstr&product=gcc)

<comment><USER9> These are due to bugs in the compiler, not inherent property of optimizations. It's quire rare for anyone to hit a optimizer bug and when it happens one can always selectively disable the buggy optimization method. Disabling all optimizations kinda overdoes it.

</comment></comment></comment></comment></comment><comment><USER10> Because Bethesda has deadlines and P&L statements, and modders don't. It's as simple as that.

E.g., the Macintosh launched with a hard-crash bug in the Clipboard code in ROM [1]. When you're struggling to meet a tough date for a huge project, things fall through the cracks. They fixed it later with on-disk software.

[1] [http://www.folklore.org/StoryView.py?project=Macintosh&s...](http://www.folklore.org/StoryView.py?project=Macintosh&story=Cut,_Paste_and_Crash.txt&topic=Technical&sortOrder=Sort%20by%20Date&detail=high&showcomments=1)

<comment><USER11> Bingo. The questions one asks before launch are "Does it work?" and "Will it sell?". Performance is part of the former only inasmuch as it impacts the latter. Far more important in those final days is the coarse QA, not tuning.

Look down that forum post for all the people asking for help getting it working. Every one of those would have been a lost sale if this were in the shipping product.

And who knows: maybe this was off for a reason. Maybe they hit some voodoo late in the process which produced a crash bug on one of their 19 test systems that didn't occur with a debug build. So one of the engineers tries an unoptimized build and it works. Slightly slower is better than crashing, so they pulled the trigger and shipped it.

Shipping software only looks easy when you look only at code.

</comment></comment><comment><USER12> I think what the people in that (painful to read) thread failed to realize is how the QA process works. I'm guessing that there would need to be significant regression testing for some of those optimizations. When you are killing yourselves to hit a date, that's the last thing you want to worry about considering things are already working well enough.

<comment><USER13> Most likely they have been explicitely disabled to workaround problems.

</comment></comment><comment><USER14> Not much more to say than this: [http://forums.bethsoft.com/topic/1321675-how- can-skyrim-be-s...](http://forums.bethsoft.com/topic/1321675-how-can-skyrim- be-so-unoptimized-modders-do-better-job-than- bethesda/page__view__findpost__p__19868762)

Bethesda _are_ releasing patches, but right now they're fixing bugs rather than optimising performance and I'm presuming that it's a slow process because they need to test on all platforms before releasing patches.

<comment><USER15> Indeed Skyrim is butter smooth at 1080p on my 360, even in Markarth and Whiterun. Maybe it's lacking a few bells and whistles compared to a PC powerhouse (whose GPU alone would cost more than my console) but I don't care. Given the performance of Oblivion and Fallout 3 (which was okay-ish) for an inconsistent visual quality (see checkerboard patterns in the hills) I would never have expected Skyrim to achieve such a level.

Secondly, the interface on the PC has been criticized, but on the 360 it's just fine. I bet on a PC it's a mere remap from buttons to keys and it just begs for a controller instead of keyboard/mouse.

I have no PC to compare with and honestly care less, but from what I hear it shows where (some) priorities lie.

<comment><USER16> >Skyrim is butter smooth at 1080p on my 360

Its rendered internally at 1280x720 and then up-scaled (Pretty much all xbox/ps3 games do this). Which is over course a legitimate approach & looks good. In contrast on a PC, it is actually rendered at 1080p without upscaling & so the PC ends up rendering more than twice as many pixels even though both are set to 1080p in the options. So direct PC-Console performance comparisons are a bit tricky.

<comment><USER17> Where do you have the technical details on that?

I have a considerably larger monitor and have been going past that, but would love to know more about detailed specs like this to better tune the game

<comment><USER18> DigitalFoundry does some technical comparisons of console releases, eg Skyrim triple-platform Face-off: [http://www.eurogamer.net/articles/digitalfoundry- face-off-sk...](http://www.eurogamer.net/articles/digitalfoundry-face-off- skyrim)

</comment></comment></comment></comment></comment><comment><USER19> >How can Skyrim be so unoptimized?

Time. Bugs and features coupled with (tight) deadlines will push aggressive optimizations "for later". This is especially true if the product is performing adequately and nobody really wants to mess with it lest they introduce unknown regression bugs.

<comment><USER20> It's surprising that they didn't have SSE enabled to begin with.

</comment></comment><comment><USER21> There are some great people at Bethesda, creating an engine that is capable of what Skyrim is capale is no small feat, so I'm sure they are perfectly aware of what they are doing.

Its hard to believe that they 'forgot' to turn on optimizations or optimize critical code paths, they simply didn't because they are probably fixing show- stopper bugs which is much more important (I'm saying this as a game developer.)

Part of it I believe is that we are spoiled by title updates, they allow developers to ship games earlier (before extensive QA testing or bug fixes) but at the same time is what the fans want and makes sense financially for their company.

So I doubt these modders can do a better job than the professionals at Bethesda, if anything they can do the trivial things that would take any novice programmer a day with a profiler.

</comment><comment><USER22> I doubt code optimizations were off, it's more likely that the offending functions were not declared inline and not visible across translation units.

I've seen this many times in games that definitely were optimized -- some trivial constructor exists out of line because it was forgotten about but then was called thousands of times per frame. Sometimes they just don't show up on the profiler.

</comment><comment><USER23> Another huge oversight which they only fixed 2 days ago was only enabled 2GB of virtual memory on 64bit OSes. This made most 64bit OS people I've spoken to crash every few minutes. How did _that_ get past QA?

Of course, it could be fixed with a patch on the EXE someone released. Until they encryped the EXE (to prevent piracy) and broken the only fix people had for a month.

<comment><USER24> A 32-bit executable can use 2 GB on both 32 and 64 bit OSes; there's a linker flag that lets you use 3 GB, if you're not playing any dirty tricks with your pointer bits. More than that, and you need to recompile the EXE for 64-bit, which is far from trivial, and uncommon for games. Especially games that also run on 512 MB consoles.

<comment><USER23> Maybe I misunderstood the reason, but this patch fixed it for me and everyone else: <http://www.ntcore.com/4gb_patch.php>

It seems to just flip a simple flag in any exe

</comment></comment></comment><comment><USER25> Yea, because tweaking software is so much harder than writing an entire massive-world RPG.

</comment><comment><USER26> Am I the only one who thought of that story about the programmer who occasionally checked in unnecessary loops, so that when performance bonus time came around he could just take them out?

</comment><comment><USER27> I don't know much about reverse eng, could someone explain how you can recompile machine code with new compiler flags? And changing getters and setters to be inline?</comment>


Depression-Gene Studies Were Built on Shaky Foundations - <AUTHOR> https://www.theatlantic.com/science/archive/2019/05/waste-1000-studies/589684/ <comment><USER2> Statistics. Garbage in, garbage out.

This shows why you have to explicitly quantify statistical power and error model for your study design. Tools are good, but not good enough to do it for you.

Then, do calculate effect size instead of a binary answer. You will get answer with a digit in fifth place with a proper size unbiased sample. Note that for proper genome study, the sample size for observational studies is in tend of thousands barring inbred model studies. (Mice or men, with easily detectable disease process.)

<comment><USER3> It's amazing how convincing statistics are--even for supposed experts--and not just for the reason you elaborate on.

In 2019, they really are the best way to lie.

<comment><USER4> Science became a new religion. Instead of saying "shut up god made it that way" you say "shut up science says it's that way".

You can find hundred of studies to support your arguments, no matter what they are, it's even easier if you don't actually read the studies and stop at the summaries made by popular medias.

<comment><USER5> > You can find hundred of studies to support your arguments, no matter what > they are.

I think that simply incorrect, assuming 'studies' != Youtube videos. I know because I've been involved in internet arguments where I've gone looking for studies and found my own argument is incorrect/poorly supported.

<comment><USER6> I'd say it depends on the topic, and it depends on the standard you hold the papers in question to. For instance, I can find you a paper showing almost anything you like in the field of nutrition in terms of what people should eat. It'll even hold up in the abstracts. Whether it holds up beyond that can get complicated, though; I've lost count of things like "a study that X intervention is good in 20 rats over 5 days if you feed the X rats high- quality X but give the not-X rats low quality not-X" or n=8 human studies or n=20 self-reporting studies or all kinds of stuff like that.

<comment><USER7> Can you find me a paper that says eating a Sausage McMuffin every morning won't shorten my lifespan?

<comment><USER6> In those exact words no, but if you break down the nutritional content of the Sausage McMuffin, yes, probably. A lot of studies are done on rats where even the rats eating "quality" food in the study are still eating things much lower in quality than a fast food muffin. That doesn't even sound particularly challenging.

To be honest, if you're trying to make my point sound absurd by exaggeration, you've shot way too low. The mainstream nutritional view would be that a Sausage McMuffin every morning on its own isn't going to be a particularly bad thing. You need to be a lot more specific with an overall diet to be a problem. You should have asked something like whether you could find a study about eating nothing but lard is available.

To which my reply would be that the principle of charity would make it clear that in general I meant any semi-realistic nutritional view is available, not that there are studies that prove humans can be healthy on a diet of rocks and asbestos. It really isn't to anyone's advantage if I also have to append to my little post a complete discussion of what is and is not within the boundaries of nutritional theories that have been studied.

I mean... is that... _really_... what you want...?

<comment><USER8> > what is and is not within the boundaries of nutritional theories that have > been studied

I don't think this is clear to the average person at all.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> I think pop sci rags going wild over papers that claim radical breaks are a part of the problem, even if a small one.

There's simply no reason that people who are not technical enough to read scientific papers would be up to date on the latest cancer research. People have a right to knowledge? Then open up the journals.

<comment><USER10> It's on a slightly different level.

There are strong incentives to find 'sexy' results, but this is mostly aimed at getting a paper into Nature, Science, or Cell. Publishing in these journals can have an outsized effect on one's career, even if the results don't actually hold up.

In contrast, there's not a huge pay off for getting something into Popular Science or the New York Times science section. Publicity is good and can help show the relevance of your research. It's also fun to show your mom (who still wants you to go to med school), but people tend not to chase it nearly as hard as a "glam" paper.

<comment><USER9> That's probably a bigger effect.

People have a huge trouble accepting that their wonderful science is a social process.

<comment><USER11> Yes, and also that it's a very economic one. If you need to churn out (and get accepted) research in quantity, then "hold on there, do we know that for sure? let's try to replicate that, with a much bigger sample size..." is downright unwelcome.

Scientists are mostly good people, but they're not angels, and if we put them in a system that rewards the wrong thing, we will get the wrong thing.

<comment><USER2> Unfortunately neither economics nor sociology are good enough science branches to even fix themselves. ;)

</comment></comment></comment></comment></comment><comment><USER12> imagine how many times a valid counter argument was silenced because of the "are you denying science?" bull* argument

</comment><comment><USER13> I love the quote from the Slate Star Codex article:

> ...what bothers me isn't just that people said 5-HTTLPR mattered and it > didn't. It's that we built whole imaginary edifices, whole castles in the > air on top of this idea of 5-HTTLPR mattering. We "figured out" how 5-HTTLPR > exerted its effects, what parts of the brain it was active in, what sorts of > things it interacted with, how its effects were enhanced or suppressed by > the effects of other imaginary depression genes. This isn't just an explorer > coming back from the Orient and claiming there are unicorns there. It's the > explorer describing the life cycle of unicorns, what unicorns eat, all the > different subspecies of unicorn, which cuts of unicorn meat are tastiest, > and a blow-by-blow account of a wrestling match between unicorns and > Bigfoot.

[https://slatestarcodex.com/2019/05/07/5-httlpr-a-pointed- rev...](https://slatestarcodex.com/2019/05/07/5-httlpr-a-pointed-review/)

</comment><comment><USER14> The Slatestar Codex blog post linked in the article is a much more entertaining read, I think:

[https://slatestarcodex.com/2019/05/07/5-httlpr-a-pointed- rev...](https://slatestarcodex.com/2019/05/07/5-httlpr-a-pointed-review/)

<comment><USER15> Scott is always a good read, and rarely not entertaining. The Atlantic's piece is a bit less snarky, but has other redeeming factors.

It is quite obvious when comparing the two that a journalist's first instinct is always to call a bunch of experts and incorporate their views. It's also laudable that the author rejects the easy cynicism of accusing these scientists of individual intentional deception, and instead redirects our scorn onto the publish-or-perish dynamic.

</comment></comment><comment><USER16> As someone who works on depression GWAS, this isn't the end of finding causal genes for depression, it's the beginning.

In the next few years we're going to see a waterfall of new rare variants linked to disease, all which have a much higher chance of causing functional change.

As WGS comes online for association studies it will both validate and more deeply explore the genetic nature of every disease. It is going to be mindblowing.

<comment><USER17> > As WGS comes online for association studies it will both validate and more > deeply explore the genetic nature of every disease. It is going to be > mindblowing.

But there is another layer of confusion, because WGS implies resequencing, and resequencing is only as good as your reference genome, and will distort results when the genome you're inferring is to far from the reference (reference bias).

The real mind bend will come when we have thousands or millions of whole genome de novo assemblies and we compare these to each other to do our GWAS. Only then are we going to have a hope of knowing what is actually causal in a genomic sense. Until then we remain in the land of association.

In nature, most adaptive variation appears to be large and structural. All the recent studies that have used whole genome assemblies to look at this have found the same thing. I would be surprised if this isn't the case for humans too. If it is, then much of current perspective on GWAS (both based on chips and WGS) will need to be rewritten.

<comment><USER18> GWAS is nothing more than correlations and by themselves aren't very remarkable. What is remarkable is when someone does a functional analysis on the variant they found in their GWAS and is able to describe the mechanism that it uses to affect the disease or phenotype. The way you do that isn't more sequencing, but with model systems that you can easily manipulate in the lab.

GWAS also doesn't compare to an arbitrary reference sequence. Some good numbers for a GWAS are >1000 cases and >2000 controls from the same population. You have to match populations, or else all your association study is going to find is the differences between east asians and europeans, for example. You need a lot of samples to get enough stats power to even see these rare variants.

</comment></comment></comment><comment><USER19> > Between them, these 18 genes have been the subject of more than 1,000 > research papers, on depression alone. And for what? If the new study is > right, these genes have nothing to do with depression.

The article doesn't actually say anything about what these 1000 research papers actually claimed to show. It's entirely possible that most of them were negative results, there's no way to tell from the text of the article. It strongly _implies_ that this is the case, but it doesn't actually say so. This is a significant omission for an article whose thesis is that these 1000 papers constituted a "house of cards."

[UPDATE]

"Sometimes the gene was linked to depression; sometimes it wasn't. And crucially, the better the methods, the less likely he was to see such a link."

Seems to me like this is science working exactly as it is supposed to (except for the possible suppression of earlier negative results, but that's a known broad problem that has nothing to do with this particular gene study).

<comment><USER11> It worked as it was supposed to...eventually. Instead of double-checking the initial results, hundreds of research papers by many research teams looked into questions that would be very important, if the genes in question were connected to depression.

Sure, it is great that it's not (quite) religious dogma, and it eventually gets revisited. But, a couple decades worth of work and ~1000 research papers, many of which took place AFTER the earlier 2005 paper that called into question the link to depression, is by no means what we should shoot for.

More fundamentally, there was nothing in the system that motivated anyone to do replication of the original link. The problem is not that the original link turned out to be spurious, and it's not that anyone did anything unethical. More worrisomely, nobody appears to have done anything unethical, but because of the systemic incentives for research grants, tenure, etc., replication of the foundational result wasn't attempted in a serious enough way until many times that much work had been done on something spurious.

</comment></comment><comment><USER20> It's just naive to pin something as complex as depression on a single variable (but that's Popperian scientificism for you)

Now it might be that the 1st study identified an effect on a (very specific) subpopulation and in the bigger study case that subpopulation is not present or not identifiable. But who knows

Now of course it's not wrong to study a certain gene, but to go "all in on" a very narrow study path is stupid. Now, if on the course of the depression studies they found this gene had everything to do with a different disease that would be "p-hacking" or something, right? RIGHT?

More statistical power and "rigour" won't lead research anywhere because it's not the studies that were necessarily flawed, it's that the effects might be small, or dependent on a chain of other factors, so unless the effect of a single factor is predominant it might not even matter (as an isolated factor).

<comment><USER21> >It's just naive to pin something as complex as depression on a single variable

Why? There are other complex diseases with purely genetic causes, e.g. Huntington's Disease; depression isn't necessarily different. Hindsight is 20/20.

<comment><USER9> Yes, but Huntington's is an explicit cluster of symptoms at diagnosis + a specific prognosis. Uppercase D "Depression" is a diagnosis built around a single symptom, lowercase d "depression". But many people experience depression, both in "core mental illnesses" like bipolar and outside. (Note how bipolar is much better constructed -- indeed the method of differential diagnosis was invented by Kraepelin to differentiate bipolar from schizophrenia)

If it was up to me, big D Depression would be redefined as "responds to Prozac" or something.

</comment></comment></comment><comment><USER22> What's needed is for the Ignoble Prize people to focus on the people who start this sort of crap, not on humorous low value targets. Really call out the people who contributed negatively to the progress of science.

</comment><comment><USER23> "Nor... should his work be taken to mean that genes don't affect depression. They do, and with newer, bigger studies, researchers are finally working out which ones do."

This part really needs some context/sources. Anyone know which studies he's talking about?

<comment><USER24> Here's one: [https://www.nature.com/articles/s41593-018-0326-7](https://www.nature.com/articles/s41593-018-0326-7)

<comment><USER23> Thanks

</comment></comment></comment><comment><USER25> Odd that this article cites Scott Alexander as if that is the name of a real psychiatrist,

> "What bothers me isn't just that people said [the gene] mattered and it > didn't," wrote the psychiatrist Scott Alexander in a widely shared blog > post.

Scott Alexander is the _pen name_ of a person running a blog who _claims_ to be a psychiatrist, and AFAIK, his authenticity is not proven due to his anonymity.

<comment><USER26> His identity is hardly a deep secret; anyone who _really_ cares can find it out, and verify his credentials.

(Not that those credentials are really relevant here, no?)

<comment><USER25> The blog actively misleads readers into thinking Scott Alexander is his real name,

> SSC is the project of Scott Alexander, a psychiatrist on the US West Coast. > You can email him at scott[at]slatestarcodex[dot]com. Note that emailing > bloggers who say they are psychiatrists is a bad way to deal with your > psychiatric emergencies, and you might wish to consider talking to your > doctor or going to a hospital instead. [1]

Journalists citing that blog should note it is an alias, and deeply question whether or not he really is a psychiatrist.

And no, I don't find it easy to verify his identity, and yes, it is completely relevant here as he's being cited as a real psychiatrist. That's not verifiable without knowing a real name.

[1] [https://slatestarcodex.com/about/](https://slatestarcodex.com/about/)

<comment><USER26> > it is completely relevant here as he's being cited as a real psychiatrist. > That's not verifiable without knowing a real name.

We're discussing his criticism of how a ton of "real psychiatrists" got some major things wrong. This criticism stands or falls on its merits, _not_ on his status as a "real psychiatrist". You don't need to be a "real psychiatrist" in order to this sort of analysis (and, it turns out, a ton of "real psychiatrists" got this wrong in the past).

This is like reading a cooking blog by someone who says they're an auto mechanic, and demanding proof that they really know how to fix cars before you'll listen to them talk about pie crusts. If they're not claiming special expertise in the area (and he isn't), the credentials don't matter.

Eg, Scott writes:

> Border et al focus this infrastructure on 5-HTTLPR and its fellow depression > genes, scanning a sample of 600,000+ people and using techniques twenty > years more advanced than most of the studies above had access to. They claim > to be able to simultaneously test almost every hypothesis ever made about > 5-HTTLPR, including "main effects of polymorphisms and genes, interaction > effects on both the additive and multiplicative scales and, in G3E analyses, > considering multiple indices of environmental exposure (e.g., traumatic > events in childhood or adulthood)". What they find is…nothing.

I mean, either he's right or he's wrong, and you could go read the paper yourself and find out. Or you can trust other people who have read the paper. Or, I dunno, you could ask one of the _authors_ of the paper if they think Scott's summary is any good:

> I have never in my career read a synopsis of a paper I've (co-)written that > is better than the original paper. Until now. I have no clue who this person > is or what this blog is about, but this simply nails every aspect of the > issue

(Source: [https://twitter.com/matthewckeller/status/112638089124318822...](https://twitter.com/matthewckeller/status/1126380891243188224))

And again, none of this has anything to do with his status as a psychiatrist. You _shouldn 't_ blindly trust a blog post about this topic just because the author is verifiably a psychiatrist, but you shouldn't blindly distrust one just because they are not.

<comment><USER25> > We're discussing his criticism of how a ton of "real psychiatrists" got some > major things wrong

No, you replied to me. My comment was it is strange that this Atlantic article cites him as "the psychiatrist Scott Alexander" because that is a pen name, and it isn't verifiable that he is a psychiatrist due to his anonymity.

Your refutation of my point is "it doesn't matter that it isn't verifiable", but that was part of my point. You can't just toss it out, that's being intellectually dishonest.

Any piece of journalism that cites a person should do so only if they can verify the source. Journalists who skip this step means at least a portion of their article is fake news.

> You shouldn't blindly trust a blog post about this topic just because the > author is verifiably a psychiatrist, but you shouldn't blindly distrust one > just because they are not

This has nothing to do with my point, which is all about how The Atlantic journalist cites him, and has little to do with whatever his blog says.

<comment><USER27> You're assuming without evidence that Ed Yong didn't verify his credentials. How do you know? Maybe ask?

<comment><USER25> Again, the author cited him as "the psychiatrist Scott Alexander".

If he did verify credentials, he ought to have mentioned the name is an alias.

<comment><USER27> He could have mentioned it, but I don't understand why you think it's important?

The authors of the actual scientific study are Richard Border and his co- authors. Scott Alexander is just a well-known blogger who gets credit for writing about it in a vivid way that got people's attention. He's not a primary source, so for the purposes of this article, it doesn't really matter whether he's using an alias or even whether he's a psychiatrist. (It's not a credential in the relevant field anyway.) You can verify the quotes by following the link.

Calling up other scientists in the field and asking questions about a scientific paper is how science writers verify a science article, and Ed Yong did that.

<comment><USER25> > I don't understand why you think it's important?

Scott Alexander is a pseudoynm. Journalists referencing that name should note this, along with the fact that his credentials as a psychiatrist are not publicly verifiable.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER28> This happens when you have a boatload of "educated" people with degrees in psychology/neuroscience who have to do "research." There's something like 100,000 new psych grads each year - and there's only so many coffee shops.

<comment><USER29> Please don't post shallow dismissals to HN, and please don't snark. These are two of the site guidelines. If you'd read them, and follow them when commenting here, we'd be grateful.

[https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)

</comment></comment><comment><USER30> Now please let the same epiphany come about cancer research or personalized medicine based on genes.

<comment><USER31> Let's not throw the baby out with the bath water. No doubt there's a lot of sketchy stuff going on, but also the fields are very wide with lots of "verticals" going on. Just cause one vertical might be built on a shakey foundation, doesn't mean all of them are (and the converse is also true).

<comment><USER30> You might be right that not everything in those fields is bad, but most is. Nevertheless, what is so terrible is that all the money is put into research (gene mutation causing cancer) even though it has been proven wrong many years ago. That becomes very clear after reading Thomas Seyfried's work (cell fermentation causing cancer).

Sadly, academics have the incentives to publish papers in prestigious journals that make them sound smart and not to find a simple cure. Likewise, the free market does not have the incentive to easily and cheaply cure people but to maximze profits. Hence, so much research is absolutely abysmal, wrong, misleading and harmful. Sadly the human mind is constructed in such a way that we self-deceive to gain advantages. That is why there is no need for a conspiracy but just the wrong kind of incentive structure.

<comment><USER31> I know you're getting downvoted. I don't think things are as "bad" as you think they are, but it's also impossible to deny that our current incentive structure is not ideal and can lead us to bad results.

That said, with respect with Seyfried's work, I urge you to give something like [https://sciencebasedmedicine.org/ketogenic-diets-for- cancer-...](https://sciencebasedmedicine.org/ketogenic-diets-for-cancer-hype- versus-science/) a read. Go ahead and skip all of the bits about his chosen associations and focus on just the science parts if you would like. I think you'll find that quite a lot of research as been done on cancer metabolism, and that Seyfriend's work at best can be considered incomplete.

If you find the blog's arguments about lack of clinical trial data to be circular (I guess they kind of are), I don't have any answers for you now, but I suggest you keep on eye out for this guy: [https://clinicaltrials.gov/ct2/show/study/NCT01754350](https://clinicaltrials.gov/ct2/show/study/NCT01754350)

This is one of the studies in early stages that the blog links to (it's been a few years). They just wrapped up the study a few months ago, and hopefully there will be results posted soon. You can also search for that study number (NCT01754350) or study name (ERGO2) for papers when they do come out (again, expect at least a few more months).</comment></comment></comment></comment>


Apple Is an Internet Company - <AUTHOR> https://anuhariharan.substack.com/p/a-different-way-to-think-about-apple <comment><USER2> Humbly disagree with this whole argument. Bloomberg got this one right:

> Apple's new revenue strategy isn't a bad one. It's, basically, sell the > customer an iPhone every three to five years, and make a bunch of money in > the years between by selling them a new Apple Watch or AirPods (which only > last about three years tops before you need a new pair -- batteries!) and > services. If a user subscribes to all of Apple's services for two years > straight, that's about equal to revenue from a new iPhone. So in those > cases, if that user doesn't buy a new iPhone for a couple years, it's not a > big deal.

Really, what seems more likely: services like AppleTV will bust out and become bigger than Netflix (smaller than AirPods), or in five years they'll follow up iPad, Apple Watch, and AirPods with another hit piece of hardware?

<comment><USER3> Yeah, the basic strategy seems to be increasing the average value of a customer that buys an iPhone. Some of that is similar to what they've done in the past with software integration between their hardware products (AirPods, Watch), and now they're expanding into services probably because those are simply easier and more cost effective to build than new hardware products. It's also easier to get people to pay for a monthly software subscription than it is to buy hardware (even with 0% APR on credit)

</comment></comment><comment><USER4> LTV for an Apple customer buying AppleTV+ and iCloud is let's say in the thousands.

The profit margin for selling a MacBook Pro or Mac Pro ranges from thousands to tens of thousands.

So it is always going to be more profitable for them to sell hardware than software or internet services.

But it's irrelevant because they can just do both. Hence why there are both a products and services company not one or the other.

</comment><comment><USER5> Apple is a hardware company selling software and services that are primed towards that hardware.

</comment><comment><USER6> > What is an internet company? Simply, it's a company that does the majority > of its sales via the internet.

What a sleazy, slimeball argument.

> But we firmly believe the opposite.

Who is "we" exactly?

<comment><USER7> The author is a partner at Ycombinator.

[https://www.linkedin.com/in/anuhariharan](https://www.linkedin.com/in/anuhariharan)

I disagree with her argument but I don't think her argument is sleazy or slimeball.

</comment></comment><comment><USER8> I'd disagree here.

Which one of their services has a web client?

All of their services require an iOS or MacOS device in a walled garden.

<comment><USER9> You can log in to iCloud quite happily on a Windows box - and from there, collaborate on a Pages, Numbers or Keynote document.

Or try [https://beta.music.apple.com/us/browse](https://beta.music.apple.com/us/browse)

</comment></comment><comment><USER10> No, they're a lifestyle company. They're aligned with 'living' and want to penetrate every corner and aspect of that. From your ears to your eyes to your heart to your feet. From the TV you watch to the run you take. To how well you sleep.</comment>


Interhoods - Find Designers and Developers in Your Neighborhood - <AUTHOR> http://sanfrancisco.interhoods.org/

<comment><AUTHOR> It maps GitHub and Dribble accounts to neighborhoods in 3 cities - SF, NYC and Chicago. Could be cool for organizing meetups, or just finding a partner for coffee or lunch.</comment>


Video Demonstrates Wired's Concept iTablet App - <AUTHOR> http://www.wired.com/gadgetlab/2009/11/itablet/ <comment><USER2> At first, I thought this was going to be yet another pathetic mock-up of an Apple tablet. Then I thought it was going to be some kind of Mac-specific touchscreen app.

It's actually just a Wired-specific magazine reader for a generic touchscreen device. They seem to be imagining a sort of jumbo iPod Touch.

I don't find their concept very innovative. It's basically just a paging interface to their standard magazine format. An ebook reader with graphics.</comment>


Criticize Stallman and suffer the wrath of the internet - <AUTHOR> http://www.networkworld.com/community/node/81966

<comment><USER2> This article doesn't add anything to the discussion. Worse, it pointedly takes a stance against RMS's article and calls it FUD, but doesn't say anything to address any of the points RMS made.

Should probably just be flagged as blogspam.

<comment><USER3> +1. Probably just a frustrated ubuntero. :)

<comment><AUTHOR> Actually he never used Ubuntu as his main distro, just for reviews. He's main distro is Arch.

</comment></comment></comment><comment><AUTHOR> My opinion about RMS is very simple. He did a incredible job by creating the GPL license and funding the GNU project, but in the modern world he needs to get out of his cavern and at least try the things he rant about, after he tried and realized that it really isn't good he can say anything about it.

I can't hear a person that wants anarchism for the open source community and reads sites by wget'ing them. After he tries things for himself instead of just hearing about them I'll start to hear him again.

<comment><USER4> From what I've seen, his reasons for disliking things shouldn't be affected by whether he's tried them or not. He's not criticizing Ubuntu for having a bad UI, or insufficient features; he's criticizing it for (what he sees as) spying on its users. What relevant information would he gain from trying it? He already knows that it sends all of the user's searches to a server, and he already has reasons why he believes that's an unacceptable thing to do.

<comment><AUTHOR> The problem with his article isn't that he tried Ubuntu the problem is the language that he used. He sounded like he wanted internet riots that would boycott Canonical.

Canonical made extremely great things for the open source community and because of one single thing he makes it sound like Canonical was a tumor inside the community that should be exterminated.

</comment></comment></comment><comment><USER5> Does Linux Mint have the same spying "feature" as Ubuntu?

<comment><AUTHOR> The "spying" feature is only for Unity, since Mint doesn't use Unity then it doesn't have it. Also they aren't "spying" on you more than 10% of what Google is doing right now.

</comment></comment><comment><USER6> tl;dr of counter-argument from Jono "not Canonical" Bacon:

We're making a product here and it's not perfect yet. Your privacy is important to us. Unfortunately, RMS and I have a disagreement at what privacy means. We feel that convenience is privacy. At least we're not _Facebook_.

I feel that RMS trying to mobilize the Linux community fits the definition of FUD. Respectfully, RMS is a fuddy-duddy. Freedom also means allowing corporations to have freedom too, don't you know. Just look at Apple, aren't you jelly? We need to do this to make free software look like Apple stuff.</comment>


MIT TabulaROSA: Tabular OS Arch for Massively Parallel Heterogeneous Comp Engine - <AUTHOR> https://arxiv.org/abs/1807.05308 <comment><USER2> There is a colossal amount of investment in managing clusters of relatively puny nodes carved out of massive boxes broken into VMs, but I'd love to see what can be done for an OS for the kinds of machines that we have on our desks - with a couple complex and "general purpose" cores along with dozens, if not hundreds of small cores tuned to specific operations. I'm curious on how they could be unified under a single OS, managing processes sharing, perhaps, a single memory space but running wildly different instruction sets.

I would expect that would have been done in the mid 90's a couple times.

<comment><USER3> This reminds me of TAOS ([http://www.uruk.org/emu/Taos.html](http://www.uruk.org/emu/Taos.html)), an operating system designed for the Transputer parallel computing architecture and later extended to heterogeneous parallel architectures.</comment></comment>


Trolls just want to have fun. (Trolling likely manifestation of everyday sadism) - <AUTHOR> https://www.academia.edu/6016545/Trolls_just_want_to_have_fun

<comment><USER2> This is surprising? Did the authors never tease anyone? But there are multiple shades of trolling, and I wouldn't necessarily call all of them "sadism". When I take a contrary opinion on a friend's Facebook post to draw them into making a fool of themselves because I already know their opinion is not based on logic (even if I necessarily agree with their end decision), that's not sadism, that's just teasing.

But I have noticed a trend in recent years that people have gone so far into anti-bullying being their pet issue of the year, that they are quick to call any form of teasing "bullying".

I had a friend who, for years, hated that people teased him but never said anything about it. I mean, we all teased each other, it's what friends do. Stuff like, whenever he'd try to show off with climbing on monkey bars (at age 30, mind you), I'd call him a monkey (not attention whore, mind you, which was what he really was), and that would upset him. He even engaged in the teasing of us, but couldn't take it himself. He said we bullied him and that we were not good people and must hate him. We assured him that we liked him a lot. He refused to believe it. We are not friends anymore.

The general lesson of the story: cut the wilting flowers out of the garden. Teasing is fine, and if someone can't take it, leave them to their own devices.</comment>


Ask HN: Need advice – I can't decide on a side project to work on - <AUTHOR> I have a full-time job as a software engineer. I'm in my 20s, and my eventual goal is to create something of my own (a software project) on the side which can earn me money, so that I can focus on it full-time and quit my full-time job.
When selecting a project I focus on the following criteria: 1. There is an actual need for it - Since it's something that I want to bring me decent income one day, it should be marketable. I can't just create something and hope people will like it. Also, not in an over-saturated market. The world doesn't really need another dating app, or another todo-list app. 2. It is fun to implement - It should be exciting to work on. For example, finance-related software can be a money-maker, but I find it utterly boring. I don't want to dread working on my own side project. 3. I can work on it on my own - I want it to be something I can create the foundations of on my own - not something I need partners from the start. I would only involve more people when the project reaches maturity.
All of the ideas I've had so far cover only 2 of the 3 criteria.
When  I start working on a project that covers only 1 or 2 of the 3 criteria, I immediately give up on it and start searching for another one.
My current job involves work on Android, but it's not something I'm particularly passioinate, so that fails criteria 2.
In terms of my interests, there's entertainment (movies and video games), healthy living (workouts, gym, diets), travelling, educational videos, MOOCs, 3D printing, 3D graphics. I believe all of those are over-saturated in terms of software solutions, but I'm happy to hear your thoughts on this.
I've also read several past posts on HN on the same topic, including PG's essays. But I just can't notice any obvious problem that is not already solved.
Is there any advice you could give me? Or a framework I should follow? Or perhaps ideas that come to mind? <comment><USER2> You're going to fail so don't stress so much about finding the perfect thing first. If you want to make a business to replace your job you'll need to learn how to run a business. So do anything first that you can motivate yourself to do.

Set aside a couple grand for business expenses (hosting, compute, marketing, and freelance costs for work you outsource). Follow the first idea that you would want to succeed even if you find no one else wants it.

What ideas have you had? You only posted about what industries you don't like.

<comment><AUTHOR> One idea was a workout mobile app with achievements (badges) - Duo Lingo for workouts. You pick a ready-made workout plan (or create your own) and it gives you badges to reward your progress and encourage you to keep going. What concerns me is that the market is over saturated - a quick search in Google Play shows hundreds of results for workout apps.

Another idea was improving the renting experience in London (where I'm based). There are so many new flat listings here that it's hard to find the ones you like. My idea is to crawl over the more popular agencies' websites and organize the listing information neatly with extra customizable filters, such as "1 mile away from a tube station" or "bedroom that is at least X sq.m." (for the ones that have an included floor plan). I haven't actually tried out that idea yet, and it would definitely solve a problem all my friends and I are having - we all go through a miserable experience in finding a flat. However, one problem would be that some of the agencies' ToS prohibit crawling.

I also had an idea about a Citymapper-like tourist guide mobile app, but with the pandemic, that won't be relevant anytime soon.

<comment><USER2> I'd say do the second one as it solves a problem you have. At the very least you get that. Also make sure you set up the business properly so that you are protected personally if the business does break ToS and you'll learn that process as well.</comment></comment></comment>


Ask HN: Which clean tech company is hiring (remote) software engineers? - <AUTHOR> Being very much concerned about the ecological crisis in general and climate change in particular, I would like to turn towards dedicating my career to the attempt of contributing to the prevention of that crisis.
I have a background in agronomy, have been working as a full stack web developer (python + javascript) for six years and have been getting into data science and machine learning lately. I'm based in central Europe.
Which clean tech company is hiring (remote / freelance) software engineers? <comment><USER2> These are the top I know \- Shopify \- basecamp

But you should check [http://weworkremotely.com](http://weworkremotely.com), although majority of the companies here offer US only remote but still there are many companies who offer world wide remote.

<comment><AUTHOR> How are Shopify and basecamp "clean tech"?

</comment></comment><comment> em-bee i am working with a green construction company. we are currently seeking web- developers. how can i contact you?

<comment><USER3> Stumbled upon this thread during an hn search. Leaving a comment here because I can't find any other reply buttons, but the OP may want to see this comment on 'working in cleantech' from 1.5yrs ago: [https://news.ycombinator.com/item?id=15127154](https://news.ycombinator.com/item?id=15127154)</comment></comment>


Hey Email - <AUTHOR> https://www.hey.com/ <comment><AUTHOR> I was quite taken with their pitch after seeing their article about the battle with apple yesterday. It seems like they did tackle a lot of my pain points. Does anyone actually have first-hand experience? Did they "fix" email?

<comment><USER2> I suspect the best way to fix email is to replace it with something new entirely. Hey is not allowing imports from other services, so initially the experience will get a boost from starting everyone at "inbox zero". This is the same way closet organization systems look so effective, because you always start with an empty closet.

One major improvement email needs will have to happen on the sender side, and that is to send structured data instead of blobs of text. Every email that comes out of a CRM or database, or is template driven already has structured data for things like invoices amounts, locations, phone numbers, etc. This should be marked up with microdata or something so that it can be captured and indexed by the recipient automatically. How nice would it be to be able to search every invoice you've received over the last year? Or to trigger workflows based on that data?</comment></comment>


Ask HN: Verizon Wireless can't stop spoofing. Really? - <AUTHOR> I called Verizon Wireless to report that my phone number was being spoofed.
They told me there is nothing I can do about it except change my number, which may incur additional costs, or I could try just waiting it out and it would probably stop.
Really? They can't do anything to stop it? <comment><USER2> No. They really cannot do anything to stop it.

Caller ID is broken. It is trivial to spoof your own phone number because the receiving network assumes your honesty. You can tell them pretty much anything as far as your caller ID number, and they will relay it onto their customers.

Things can be done, but they are expensive and require everything to work together. The networks need to start a catalogue of who owns number blocks and then check inter-network calls to check that caller ID numbers are within the blocks provided (and bounce the call if they're not).

Additionally smaller interconnection networks (i.e. those that provided VoIP to telephone network interconnects) need to start putting caller ID information into their outgoing calls rather than allowing clients to do it, they can then verify that the client owns the number before allowing it.

The TL;DR: In the US only an act of congress can fix the current situation, but such an act would be expensive for phone companies and they have enough lobbying power to kill it dead.

So in answer to your concern: No. Verizon cannot stop someone spoofing your phone number, and in order to fix it for you they and other phone companies need a massive retrofit.

</comment><comment><USER3> Depends on what you mean by "spoof."

Anybody can generate custom outgoing caller ID numbers. That's not really a "spoof," that's just lying about who you are when you make a call.

Most phone "spoofing" would be if someone cloned your phone number and the phone was registered multiple times on the same network, so when you got a call, one or more of the phones would ring at the same time.

</comment><comment><USER4> Phones calls, in a sense, are like email was before SPF records and DKIM: The honor system. If you say you're XYZ, the receiving unit is inclined to believe you.

So no, it's not the carrier's fault, and it's not something they can control.

Designing an authentication/verification system is non-trivial but not impossible. There's just little political-will to actually do it.

As a side note, this is why you should always set a passcode on your voicemail box. Many folks have their voicemail set to skip passcode-authentication when they're calling in from their own cell phone number. The problem is: if someone spoofs your number and calls into your voicemail box, they've got unfettered access.

</comment><comment><USER5> Verizon wireless are hopeless at customer service. I called about the 4 or 5 "Rachel from Cardholder Services" calls per day I was getting last summer. The Customer "Service" Rep claimed never to have heard of such a thing, and clutched his pearls, as if spoofing your Caller ID information was unheard of! He suggested blocking the telephone number, which is no help, as they usually call at most twice with the same spoofed number.

If I had a choice, I'd dump VZW in a hearbeat.

</comment><comment><USER6> You can spoof any phone number, it has nothing to do with verizon.</comment>


How to Build a Dyson Swarm (2017) - <AUTHOR> https://www.realclearscience.com/blog/2017/08/23/how_to_build_a_dyson_swarm.html <comment><USER2> Dismantling a planet is very different from dismantling an asteroid.

The energy involved is so vast, for one thing, that temperatures will get absurdly high at the surface. (And once you dig down far enough you'll find that internal temperature are hot enough to destroy any equipment you want to put on the surface.)

The time scale for a planet to cool off is in the 10's of millions of years so the realistic time to disassemble a planet is long enough to colonize the galaxy some other way.</comment>


How we wrote and sent the " best cold email ever " - <AUTHOR> https://ramptshirts.com/blog/2018/01/12/wrote-sent-best-cold-email-ever/ <comment><USER2> Thanks!

Just shout if you have any questions we can answer about this.

Neil (the CEO behind this) - ;-)</comment>


Ask HN: Do you shut down your service in the EU due to Article 13 upload filter? - <AUTHOR> What do you think about article 11-13?
Does it lead to censoship? How is your service affected by this new copyright directive? <comment><AUTHOR> I am asking since twitch announced that it might be forced to "shutdown" its service in the European Union due to the new copyright reform(article 13) which most likely passes later this month.[1]

[1] www.twitch.tv/videos/392340867?t=04m04s

</comment><comment><USER2> If it pass I will have to close my small podcast hosting services just to avoid any legal issues.</comment>


Does the Posterous home page look normal to you? - <AUTHOR>

It seems as though a user has inadvertently hijacked Posterous's domain name.<p>http://www.posterous.com/ <comment><USER2> I saw it for a few minutes, but it seems to be fixed now. I can't wait to hear how this happened.

</comment><comment><USER3> sweet, posterous is now a club DJ.</comment>


GNU Make Jobserver Implementation - <AUTHOR> http://make.mad-scientist.net/papers/jobserver-implementation/ <comment><USER2> Toward the very end, the author gives a brief one paragraph explanation of why they didn't use multiple threads:

        Obviously one idea is to use threads. It's common to have a separate thread
        for dealing with signals and combining threads with semaphores, etc. would
        allow GNU make to wait on two different types of asynchronous events
        simultaneously. This was rejected because so far GNU make was single-threaded,
        and requiring multi-threading was deemed too much of a price to pay.

I'm confused as to why adding multi-threading would be quite so onerous. As I understand it, one could restrict the use of threads to that specific feature and thus avoid large architectural changes.

Do I not understand how Make is designed, or is "the price to pay" in reference to performance or some other metric?

<comment><USER3> As I noted in my own mention [http://highlandsun.com/hyc/#Make](http://highlandsun.com/hyc/#Make) I originally wrote that patch back in 1991. There was no such thing as threads back then. Even in 1999 the POSIX threads spec was only up to Draft 6 or so, not yet finalized. Nobody sane would write production code for such a moving target (oh, except maybe Microsoft, using Draft4 to create the Windows NT threads API).

<comment><USER4> That parenthetical history is wrong, at least according to Dave Cutler. He traced Windows NT's threading back to his work on VAXELN in 1983, years before POSIX was even thought of. He also was quite obviously deriving the NT API in part from OS/2, again not POSIX, given the whole "mutant"/"mutex" affair.

<comment><USER3> Windows NT RPC is DCE RPC - that is an indisputable fact. DCE used POSIX Draft 4, and Windows copied DCE pretty completely there. [https://en.wikipedia.org/wiki/DCEThreads](https://en.wikipedia.org/wiki/DCEThreads)

<comment><USER4> Well now we know where all of your errors are coming from. Regrettably, you've learned a lot of bunkum, that you now have to un-learn.

The source of that bunkum, or at least the source that you've pointed to, is a canonical example of how rubbish turns into gospel via Wikipedia. It started out, in August 2005, as an intentionally opinionated rant written by someone who didn't supply xyr name, who clearly didn't know the subject, and who pointed to entities that didn't exist at the time in question as xyr authorities.

* [https://en.wikipedia.org/w/index.php?title=DCEThreads&oldid=...](https://en.wikipedia.org/w/index.php?title=DCEThreads&oldid=21947270)

Other people came along and tried to take the opinions out and leave the facts. But the underlying problem was that the facts weren't factual at all, and were as warped as the rest of the rant was; and no-one with any actual knowledge of the topic, or research ability, has touched the article significantly _in eleven years_.

* [https://en.wikipedia.org/w/index.php?title=DCEThreads&type=r...](https://en.wikipedia.org/w/index.php?title=DCEThreads&type=revision&diff=641382127&oldid=23011764)

And in the meantime, people come along, believe Wikipedia uncritically, and regurgitate a load of old tripe.

Here are some of the things that you have to learn in place of the un-learned junk:

* There were such things as threads in 1991. There were such things as threads in 1988 when Dave Cutler started on "NT OS/2" at Microsoft. There were such things as threads in 1987 when OS/2 version 1.0 was announced. And indeed in 1983 in VAXELN according to Dave Cutler.

* Threads are not RPC, DCE RPC or otherwise.

* The design of Windows NT threads pre-dated the _existence_ of 1003.4a draft 4 (dated 1990-08-10). By years.

For far better things than Wikipedia to read on this subject, see:

* _Inside Windows NT_. Particularly page 92 of the 1st edition.

* Cutler's own _Windows NT Mutant Specification_ , written in 1989.

* Mark Russinovich's writings on the subject of Windows NT and its VMS heritage.

* Any good book on OS/2 version 1.0 programming that details the threads API.

* Michael Yam's 1996 _Dr Dobbs_ article on porting his wrapper class library from DCE to Win32 threads.

* Any number of books on the subject of DCE, explaining the two quite different things that are DCE RPC and DCE threads.

</comment></comment></comment></comment></comment><comment><USER5> > a traditionally hairy problem in UNIX programming: how to wait for two > different types of events (signals and file descriptors) at the same time.

I've always thought one of the weak points of POSIX was that the event sources were not unified. Imho, is a pity the relevant committee didn't work towards a clean solution in the mean time.

<comment><USER6> Same here! Also annoying is inability to wake up when any (vs all) child threads are done.

Even more annoying is that Windows API allows to wait on any combination of file/socket descriptor and/or message[1].

[1] MsgWaitForMultipleObjects [https://msdn.microsoft.com/en- us/library/windows/desktop/ms6...](https://msdn.microsoft.com/en- us/library/windows/desktop/ms684242\(v=vs.85\).aspx)

<comment><USER7> I know we're talking about POSIX here, but Linux does have the ability to wait on signals the same way it waits on file descriptors. It does this by also allowing signals to be delivered on file descriptors.

[http://man7.org/linux/man- pages/man2/signalfd.2.html](http://man7.org/linux/man- pages/man2/signalfd.2.html)

<comment><USER3> Gratuitous fluff. Writing to a pipefd inside a signal handler works on all POSIX systems.

</comment></comment></comment></comment><comment><USER8> We need to use Make for sensible (partial) rebuilds of static websites. I'm exploring ways to build a dependency graph out of Handlebars files. That might be enough to generate a Makefile and leave Gulp/Grunt out of the equation. Anyone doing anything similar?

<comment><USER9> Not for static websites, but I've definitely done very similar with Knitr for repeatable analyses in R (except for autogenerating the makefile). I create R scripts, markdown templates, database extract jobs, and even take care of sending the analysis results via email. I've left the job where I was responsible for those reports, but they're still in use with a distribution list that goes up to the SVP level at Amazon, so apparently they've been pretty successful.

</comment></comment><comment><USER10> GNU make is one of the most complete task manager I have seem.

But there are a few major problems with it:

Newies often complain a lot about the esoteric syntax.

It's written in C.

It doesn't gets updated as fast as it should.

These points make it not very suitable for our current time.

I belive we all just need to pick something like gulp and port the "good parts" into it.

There is no point in having 20 tools that do the same!

<comment><USER3> "written in C" is an asset, not a liability. It is still the one language that is portable across the widest spectrum of platforms, as well as the most efficient high level language for execution.</comment></comment>


Infographic: Just How Big Is Amazon.com? - <AUTHOR> http://www.pcmag.com/article2/0,2817,2413305,00.asp

<comment><USER2> What an horrible font they use to write the "that's"... So horrible I cannot even decipher the "???" word in "that's ??? 51 million Apple iPAD 4s"

oler? der? def.? excl.?

<comment><USER3> Why on earth would they point out that the number of active Amazon accounts is 2.6 times Ohio's population more than the number of people who voted in the 2012 election. Is this a satire of infographics?

(By the way, "over" is your mystery word.) And the crazy font is FG Jasmine 2, according to whatthefont.

</comment></comment><comment><USER4> I bet that Target and Walmart have a very different ratio of Engineers to labor workers, than what Amazon has. Comparing revenue per employee is very misleading here.

<comment><USER5> Perhaps a little misleading but it is a standard measure of productivity.

</comment></comment><comment><USER6> Pointless. You can ask with the same success "Just how big Walmart is, if it is only one store?" or "Just how big is Chevron, if it is only one gas station?"

</comment><comment><USER7> The source: <http://blog.500friends.com/2012/12/17/how-big-is-amazon/>

</comment><comment><USER8> It seems bad form of PC Mag not to link to the source, given that the whole article is based off it.

</comment><comment><USER9> I'm curious, How big is AWS within Amazon's revenue?

<comment><USER4> They don't yet break out AWS revenue, keeping it in the "Other" category "Includes non-retail activities, such as AWS in the North America segment, advertising services, our co-branded credit card agreements, and other seller sites in both segments."

Q3 financial reports this "Other" category at 1.582 billion over 9 months. [http://phx.corporate- ir.net/phoenix.zhtml?c=97664&p=irol...](http://phx.corporate- ir.net/phoenix.zhtml?c=97664&p=irol-reportsother)</comment></comment>


Show HN: Simple Naming Scheme for Developers - <AUTHOR> https://github.com/wtcross/simple-naming-scheme/blob/master/README.md

<comment><AUTHOR> It even lets you name employees!

acme-billing-intern-raleigh-234234</comment>


Limbo will be available for free for a limited time (Xbox One and Steam) - <AUTHOR> http://www.gamespot.com/articles/limbo-devs-next-game-gets-xbox-one-and-pc-release-/1100-6440696/ <comment><AUTHOR> It will be available for free on June 20 and 21 on Steam.

In case, you're wondering what Limbo is [1].

[1]: [https://en.wikipedia.org/wiki/Limbo_(video_game)](https://en.wikipedia.org/wiki/Limbo_\(video_game\))</comment>


iPhone case design automation produce terrible products - <AUTHOR> http://www.boredpanda.com/funny-amazon-ai-designed-phone-cases-fail/ <comment><AUTHOR> There are a few articles around with similar pickings.

I took the liberty of removing "AI" from the title, because I AFAIK there is little customer-prediction in the process, which is exactly why these random images are being presented.</comment>


XMLHttpRequest is Silly - <AUTHOR> https://blog.assemblyco.de/xmlhttprequest-is-silly/

<comment><USER2> It's an anachronism today yeah. Today, we could just call it HttpRequest. And I would personally love to see a responseJson (and not just responseXML)</comment>


Keeping Up with Coding Ecosystem - <AUTHOR> Okay, this is very much a general discussion topic, but it's something I've long discussed with other engineers and I'd really appreciate HN's input. It seems like a vast amount of extremely hyped up new frameworks quickly fall off for use in real production applications. For example, Vue was extremely hyped up but React quickly won out for most real world applications. Same goes for numerous new frameworks and libraries, as I'm sure you all know. My question is if we could come up with some sort of a framework of criteria to help us determine if and when we should start trying to apply the 'next big thing' in our real projects. It's so important to keep our skill sets up-to-date, but obviously we can stay current with everything to a substantial level of expertise and actual understanding without trying it in a real world application. Looking forward to hearing how everyone approaches this. <comment><USER2> It is _not_ important to keep your skill sets up to date, if by "up to date" you mean "having used everything that got a fair amount of press for a couple of months". You don't have time for that. Nobody does.

So don't chase press releases and puff articles. Chase real world results _that fix your problems_. If framework X fixes problems Y and Z, and you don't have problem Y or Z, _then skip framework X_. It's a waste of your time.

I'd say that once every 5 to 10 years, there's something worth moving on to even if it doesn't fix any of your current problems. The rest of the time, skip it unless you know why not.

</comment><comment><USER3> You should not ever, under any circumstances, apply the 'next big thing' to your project if your criteria for success is "other people are using it".

You should evaluate your needs and pick a tool based on those.

There aren't "winners". There are tools. Some of them are more effective at certain things than others.

If you are asking how to evaluate "which framework is going to win", then I'd argue you have no business making these decisions.

<comment><AUTHOR> I'm not saying to use what frameworks win in popularity. The problem is; how are you supposed to know which framework/library tool is going to be the best for your project without actually trying it in said project? I've heard a lot of stories of startups going down a path of using a new library because they initally thought it would be the right tool to fit their needs, but after actually implementing it they find it was the worst decision they ever made. They inevitably end up needing to rewrite everything (eventually) using the more appropriate tool.

<comment><AUTHOR> With that said, I'm looking for advice on how to avoid that scenario, but yet stay current with tech.

<comment><USER3> Prototype!

</comment></comment></comment></comment><comment><USER4> Use frameworks that are at least 3+ years old for production</comment>


Will automation and the Internet of things lead to mass unemployment? - <AUTHOR> http://www.theguardian.com/media-network/2015/may/27/internet-of-things-automation-unemployment <comment><USER2> Will it ? I do not think so. The man has always managed to create a lot of unnecessary jobs. Take a look at almost any management positions.

I am not saying they are not important...what i am saying is that most of the jobs that require a manager would be better with no manager rather than a poor one. And believe me there's only 1% of all the managers that are actually worth it.</comment>