Why I Have Given Up on Coding Standards - <AUTHOR> http://www.richardrodger.com/2012/11/03/why-i-have-given-up-on-coding-standards/#.UK0hmuOe89E <comment><USER2> I love everything this guy says, too bad its wrong :-)

In the medium case its fine, you'll get folks who write code using a 'common' coding style and for the most part switching between them will be not too difficult. I've observed over the years that a noticeable number of bugs will be introduced by people who didn't read the code correctly.

The place it will go off the rails is when you hire 'that guy' (and it always seems to be a guy) who writes _lots_ of code, and it works, but for reasons that only he understands he only writes it on one line. He likes every function to have its own line, that way he can just use the 'down line' command to get to the next function. And he doesn't really comment anything except sometimes in the middle he'll start a comment between the code that does something and code that doesn't. And someone will have a problem and it will be in this guy's code and they will come to you because they can't read that code and they aren't going to check anything in like that.

At this point a number of entirely predictable things happen. Let's name the players, "Crazy Coder" (CC) who has the bizarre style, "New Guy" (NG) who is asked to fix a bug in CC's code, and "Manager Guy" (MG) the person responsible, ultimately, for all the code.

First there is a blow up when NG takes CC's code, runs it through a pretty printer and reformats it into something they can read, fixes it, and then checks it in. CC has a huge fit that _their_ code has been made "unreadble" by NG and they go back, rewrite all the code that had been reformatted including the NG bug fix, except they won't quite get what NG was fixing and so CC's version of NG's fix won't actually fix the problem. Now NG will be have their bug re-opened because their fix doesn't work.

Now typical escalations are NG assigns the bug to CC since CC won't tolerate his code changes. NG will reformat a big chunk of CC's code just to piss him off. CC will rewrite chunks of the system to invalidate previous fixes by NG and others.

Now as the outlier, MG might want to tell CC to 'change' their coding style to something a bit more standard. They won't. They will insist either there is a coding style or there isn't, if there isn't then there isn't a problem, if there is then _everyone_ has to follow it. And the coding style dilemma will be served up front and center.

Coding style requirements become the lesser of two evils.

<comment><USER3> This is exactly what I was thinking as I read the article. There really are "Crazy Coder's" out there who write obfuscated code just because they can and it's infuriating.

<comment><USER4> Well, the problem then is the guy and forcing rules on the whole team instead of solving the root issue sends the wrong message all around.

<comment><USER5> Exactly! Policy is rarely the correct answer when firing and reprimanding the troublemaker work too!

</comment></comment></comment></comment><comment><USER6> The biggest thing to know about coding standards is that many programmers need to stop being giant dicks about it.

By this I mean I've come across people who insist on:

        if (blah) {
          // ...
        }
        else ...

(You're going to be first up against the wall when the revolution comes btw)

Others who insist on 2 space, 4 space or tab indents.

Others who insist on braces on new lines (in Java) or on the same line (in C/C#/C++), both of which go against the prevailing style.

Others who want to static import everything (in Java).

Etc.

 _None of it actually matters_ in the absolute sense. The key to working well in an organization is being flexible enough to just do what everyone else does.

At Google we use 2 space indents and 80 character lines (100 for Java). I actually like it now but in past lives I'm more used to 4 space indents and no line length limit. Whatever. _It doesn't matter_. Get over it (and yourself).

You see this same sense of heightened inflexibility in build systems. Some diehards like Ant (in Javaland) because you can arrange your project anyway you like (with enough XML). These same people chafe against the predefined structures of Maven.

The point of Maven (and organization-wide coding standards) is not that they're empirically the best. It's that they're consistent. You look at any Maven Web app and you'll know where to find things. Seen one, seen em all. Every Ant build is different.

Yet people continue to insist their (non-prevailing) differences actually matter and their exceptions should live on. They don't and they shouldn't.

Code should be written for those that come after you and read it knowing nothing about it. Knowing where to find it and being familiar with the conventions is a huge help.

And don't even get me started on the ASI (automatic semicolon insertion) crowd. That has to be the most idiotic idea in the history of coding styles: forcing people to learn a set of rules about when ASI happens (some of which can be quite subtle) for absolutely zero gain.

Seriously, if any of this gets your back up and you want to protest how ASI is good or how your weird style is important, just stop being a giant d-bag. Your teammates would secretly thank you for it.

<comment><USER7> In C, braces on a new line is the prevailing style? I've been doing the opposite because that's what K&R C does (except for braces that define functions).

</comment></comment><comment><USER8> As someone who is currently refactoring a giant mess, this is a terrible article.

The problems are myriad:

\- we have people mixing camelCase and underscores

\- we have tab indents and four space indents, and eight space indents

\- program state is all stored in one giant struct, making the code impossible to reuse

\- methods are giant, rambling monsters with at least 6 levels of indentation

Coding style is important, is what I'm saying.

<comment><USER9> What you are complaining about is incompetence, not a standards document.

<comment><USER8> I wouldn't describe it as incompetent, it's just not forward thinking. We have a loosely enforced style guide that should prevent the formatting and casing issues, but what we need is actually a more dictatorial approach.

As I'm rewriting, I'm producing a style guide which is more prescriptive about things that matter, like writing reusable code. This includes trying to identify hotspots where extensibility is very important, versus areas where the code just needs to be readable and work. These deserve more love and attention from an architecture perspective.

</comment></comment></comment><comment><USER10> This is kind of conflating two different things.

One thing is conventions around things like where curly braces go, naming conventions for classes and methods and different types of variables, how much whitespace to use where, and so forth. Most of these things don't actually matter at all, but code certainly is easier to read if everyone on a team follows the same ones (so that I know that Foo.bar() is a static method while foo.bar() is a method call on a local variable and _foo.bar() is a method call on an instance variable on the class, without having any other deep knowledge of the code). The point of conventions is basically to get everyone to stop bikeshedding about things that don't matter (like which line a curly brace goes on in an if statement), so that they can shut up and go back to writing code. There's no rational way to decide trivial questions like "how much white space should we use," so rather than having people engaging in pointless holy wars over two versus four spaces, we just establish a convention and stop talking about it. It really does make life easier on a team if people are on the same page there, and there are plenty of tools that make it trivial for people to format their code so it conforms to the conventions.

Then there's the issue of "standards," which is a much larger, amorphous topic that probably shouldn't just be trivialized. Trying to encode them formally is probably madness, but when some person on your team writes a 245-line-long function or calls a method "getFoo" when it in fact writes a file to disk as a side effect, you do probably want to have a little chat during a code review to say, "Hey, yeah . . . so that's not really okay, even if the code functions correctly." That's what I think of as "standards:" the assumption that just getting things to work isn't the only thing that matters. And just throwing that out the window and saying "Anything goes so long as it works" is pretty suicidal if you're working on a team.

<comment><USER11> The way I addressed your "standards" issue is to just reference the book "Code Complete (2nd edition)" <http://www.cc2e.com/> and tell developers to follow all of those guidelines. It's a long book but well worth reading, and generally applicable to most any procedural or OO language.

For Java specifically our "standards" also incorporate the book "Effective Java (2nd edition)" <http://www.informit.com/store/effective- java-9780321356680> .

</comment></comment><comment><USER12> Coding Standards don't solve _every_ problem and should thereby not be implemented?

 _The truly evil thing about coding standards is what they do to your heart, your team's heart. They are a little message that you are not good enough. You cannot quite be trusted. Without adult supervision, you'll mess up._

No, they simply are conventions making it easier to communicate and understand each others code.

 _Please go write some code instead. You know who you are._

Yup.

<comment><USER5> >No, they simply are conventions making it easier to communicate and understand each others code.

A 1 page coding standard picking which common conventions people use perhaps is making it easier to communicate, maybe.

A 10 page coding standard with lots of positive manual actions a coder must do at ever step that don't necessarily add to the process (I'm looking at contracts in private functions and hungarian especially), or that are outdated and not state of the art, is positively soul-killing to many people.

Most places need code reviews, not coding standards.

</comment></comment><comment><USER13> The real answer is "code review by peers."

Should you have a 100-page book of Coding Law that programmers must follow, on pain of firing? No. That's a demoralizing distraction.

Should you say this?

>> You decide if you can sleep at night with random code layouts and inconsistent variable names.

No. That's inviting each developer to leave a mess for the one who comes after them.

How about something moderate and - gasp! - subjective, like, "if your peers find your code confusing, you're doing it wrong?"

>> They are a little message that you are not good enough. You cannot quite be trusted.

I understand the sentiment here, but we're all capable of writing code that's clear to us right now, but isn't to others and/or won't be clear to us in the future. That's one reason why we have code review, and none of us should be ashamed to admit that we benefit from it.

<comment><USER5> Thank you. If your coding standard appeals to the aspergerish folks more than the neurotypical, it's probably going to sap the energy of the nerotypical and drain productivity out of the process.

</comment></comment><comment><USER14> This is absurd.

90% of the time of most devs is spent reading other people's code. Take any meaninful largish project - linux kernel, git, webkit, node. You will spend most of your time reading rather than writing. The least you can do to make this process easier is to conform to a reasonable pattern. Imagine a book that uses a different formatting every other paragraph. It's distracting and gets in the way.

I think the author is more against nitpicking on coding style. This is unfortunately necessary since most developers cannot even bothered to look at the code above and below to understand the style. If that is the case, how does one trust their code?

Coding standards is about basic discipline. If you followed the standard, I know that you are atleast smart enough (and more importantly friendly enough) for a real code review.

On a side note, if you spend most of your time generating new code, you get to set the coding standard. But others who change your stuff, should just follow your standard.

<comment><USER5> >Coding standards is about basic discipline. If you followed the standard, I know that you are atleast smart enough (and more importantly friendly enough) for a real code review.

Some coding standards are basic discipline. Others are overwrought bullshit that are a drain on concentration, spin up time with new employees, and a constant sap on productivity in order to make stuff a slight bit prettier.

</comment></comment><comment><USER15> The best thing to avoid a lot of style arguments is to have an automatic code formatter (on save, commit etc.) which takes care of indentations, spaces, braces and so on.

Of course, someone needs to set up the options first, but then, life is so much easier. Sometimes you'll miss the possibility to pad similar assignments to look nicely one after the second, but other than that, autoformatting rocks.

The only really tricky thing regarding autoformatters is styling array literals. For arrays like [1, 2, 3, 4] you want it in one line, but if the elements are longer, you may want to have each of them in a separate line.

Of course, this doesn't handle camelCase vs underscored_variables, but it's a feature to leave you the freedom (or accept some solution in the team).

<comment><USER5> Do you know of one that works for Objective-C?

</comment></comment><comment><USER16> You know, if there's one thing I hate, it's a set of rigid coding conventions. They're the joy of the petty and officious and the bane of people who just want to get things done. This isn't an excuse to get rid of them altogether. It's an argument for not taking coding conventions so seriously.

</comment><comment><USER17> I am ordinarily a big fan of articles pushing back against established best practices, but only because despite the sometimes whiny tone, they almost always bring something new and thought-provoking to the conversation.

This article does not.

</comment><comment><USER18> Loosely related thoughts:

If I feel like it, I can tell my editor to display `underscore_functions` as `underscoreFunctions` without actually modifying the text. I don't feel like it.

Here's my official "coding standards":

Whitespace standards (as in "only spaces" or "only tabs" for indentation) are good. Use whatever's already there. Your VC system can probably handle it for you.

I consider standards for things that don't add ridiculous diff noise as "soft". I'd rather run a tool like sonar that can generate "hey, this is ugly crap" reports with blame annotations than reject commits for style violations. I'd consider rejecting commits for really nasty style violations that weren't covered by tests.

I'd also consider making people wear a monocle if they're going to be doing a bunch of "just style" edits. But meh.

On the other hand, a consistent codebase is a nice thing. If it's a large codebase, a _very_ nice thing ... but it's more of icing on the cake than the cake itself. I don't want to eat a whole bowl of icing.

</comment><comment><USER19> Python is perhaps rare (unique?) in having a single authoritative, uncontroversial coding standard (pep8). I'm pretty sure its existence solves more problems than it causes.

<comment><USER20> Go ships with a tool called gofmt which automatically formats your code to a particular convention. It's expected that you gofmt all code that is released publicly. It also solves more problems than it creates, even if I don't agree with all of its rules.

<comment><USER21> Go is much, _much_ more strict than Python. Python is actually fairly forgiving when it comes to whitespace everywhere _except_ for indentation. And for indentation, it doesn't complain as long as you're consistent (for both tabs vs. spaces, and if you choose spaces, consistent with the number of spaces).

Go, on the other hand, checks for many aspects of style at compile-time. If you include an opening brace on the same line, import a package that isn't used, define a variable that isn't needed... all of those will cause compile- time errors.

At first, it can get annoying - especially when you comment out a single line when debugging and then realize you have to make some other minor change elsewhere just to avoid one of the aforementioned style issues.

But on the other hand, I can't deny that it makes my own code cleaner, and it probably saves some errors down the line. Furthermore, it made my code more consistent with existing Go code right from Day 1, even when I was just learning the language. Furthermore, for anybody who wants to do any metaprogramming/code translation, having a more rigid syntax enforced by the compiler is very helpful.

Python doesn't do that. PEP8 is great, and I'm thankful that it's very widely followed. But it's much more powerful when these issues of "style" are made as mandatory as any other aspect of the language specification[1].

This "benevolent dictator" approach has its pluses and minuses, but having written Go code a short while now, I've come to appreciate some of its benefits in the case of coding style.

[1] Okay, so the Go language specification doesn't include all of these, and yes, there are two independent Go compilers. But we can say that it's "mandatory" in the same way that we can say that "Python" has the GIL, when in reality many implementations don't (Jython, Iron Python, etc.)

</comment></comment></comment><comment><USER22> I think he has a point. Rather than making coding standards where your organization adopts a "best practice", just try to write clean, understandable code. Folks who can mess up, will mess up: we've all seen unreadable "Hungarian Notation" code, we've all seen weird conventions (like all instance variables are prefixed with "my"). They don't help.

<comment><USER23> so, is it foo.getSize() or foo.GetSize(). Naming all instance variables my* might or might not be very useful, but naming some instance variables that way is defiantly harmful. The point of having standards and conventions is that you can just know what arbitrary and useless decision others have made, because it is not arbitrary, it is the standard.

</comment></comment><comment><USER24> There's standards and there's standards.

C allows you to place your braces, commas, other tokens and whitespace in whatever form you desire. I suppose there's no need to get anal over those.

But then there are standards such as assertions, avoiding type casts, and breaking functions into helper functions. Those have an effect on code quality by setting up guards for conditions and sentinels for invariants.

I've had my code blown up an assert call so many times that writing all the rest of the assert calls have cost nothing compared to the savings initiated by forcing myself to evaluate where my thinking went wrong as the assert failed.

Formatting coding standards, again, should probably be banished in favor of letting programmers express their thinking in form of how they format their code. I'm pretty sure the best programmers all have top-notch consistent formatting over all their source code files. And if the worst programmers don't, we have bigger problems than formatting.

</comment><comment> at-fates-hands I've seen it both ways.

I worked at a company that cranked out 4,000 sites a year. The only way they could do that was by having implicit coding standards. Every bit of code you've written has already been done the same way by ten other developers, 1,000 times over.

It also made maintaining the sites super easy since within a few months you knew 99% of the layouts of every site which was built in the last three years.

On the flip side, for smaller agencies and smaller projects I agree with the author. Trying to impose standards actually hurts the process. Maybe I want to use LESS or some other technology which would vastly improve the code and process, but not make the code super easy to maintain for the next guy. If you only have a few hundred sites, this becomes more manageable.

Besides, do you impose standards on yourself when you're doing projects for yourself or for freelance work?

</comment><comment><USER25> I'm sorry but no. You can't go wrong with PEP8 for Python and JSHint or something similar for Javascript. Neither of those standards are that rigid and there are tools for most major editors that highlight non-conforming lines as you're coding. Please, put semicolons at the end of your statements.

</comment><comment><USER26> "Social problems are hard to solve so just ignore them and wing it"?

Not a recipe for success in my experience.

</comment><comment><USER27> I think I prefer the idea of the style guide, which you might argue is a coding standard, but the use of 'guide' allows for a bit of lenience.

Moreover, I think one of these things is missing the point if it's _entirely_ about syntax, whitespace, and whatever else can make the code appear readable on the surface. There's no substance to this and the code can still be shite while being 100% conformant. It'll just be formatted nice.

What a standard/guide should try to do is serve the dual purpose of educating or informing people about good practices, both in general and while being language specific. Some might disagree or find it patronising, but even if it's only encouraged by colleagues or peers, it can be the sort of thing that makes you think twice about the code you're about to commit.

By the same token, using a style guide for that should never be a replacement for a good, collaborative work environment. This is essentially a people problem after all.

</comment><comment><USER3> Just plain wrong is all there is to say about this article in my opinion. That said I don't believe that style requirements need to be hyper rigid, they should just prevent people from writing code that is entirely unreadable for no apparent reason.

</comment><comment><USER28> I can't say I've ever been restricted by a rigid standards document. I do however, attempt to use recommended/best practices for standards in my own code. For the most part I can also say that if others would do the same, it would make me more efficient when maintaining their code.

As far as JavaScript, IMO jsLint is a wise tool to have and use for any project with more than two developers. But by all means, if someone thinks that it's not 'moving the needle', do a double blind study and show us the results. Somebody else, and what they _believe_ worked _best_ in their experience, doesn't really resonate with me unless I'm looking at some hard data that backs it up.

</comment><comment><USER29> Basically, what he's saying is "I don't enforce coding standards because my programmers are smart enough to choose one by themselves".

</comment><comment><USER30> Seems to me that what you need more than the standards are the reasons behind the standards - because yeah, the person coding that particular problem knows more than you about that problem, and should /teach you what they know/, particularly when it's easy.

<comment><USER31> That doesn't work at all when it's religion.

Using spaces for indentation is a sin against humanity, but that doesn't mean that someone else isn't going to come along and believe otherwise and no argument you make will sway them.

<comment><USER30> Well, but then your problem is religion, not coding standards. And then it'll be over this or that design pattern, coding paradigm, version control commit logs....

If you name the problem "coding standards" and it's "religion", you'll solve the wrong problem and of course it won't work.

</comment></comment></comment><comment><USER32> go write some code, don't write blogs.. then.. work with some other guys and theeeennn let's talk about coding standards I would never write such a story about something like "don't use conventions"...

I didn't read the entire article because I am not a novel fan

</comment><comment><USER33> Standards suffocate me, as any restrictive device should. Even knowing their importance, especially in mission critical roles such as aerospace and medical, it is hard to reason that all the time and creative energy spent on most standards is worth it. Especially since standards evolve by being broken or ignored, creating flux that makes the standard meaningless.

I think the need to form standards are a symptom of poor tools and methodologies for software development.

Robust software needs to be built using first principles. Instead of forming standards in such situations to enforce coding style, we should be improving our tooling, and not be writing code at all. The tools are the standard.

Code is a creative free form medium, and ignoring its raison d'être means killing what it is. If you need precise coloring within the lines, build and use the right tool - a printer. Don't enforce arbitrary rules on using crayons.

<comment><USER8> This is ridiculous; there's certainly a place for creative code. It's an obfuscated code competition. Yes, you can write a BrainFuck interpreter in the C preprocessor. If it was your job, would you do it that way? Would you saddle other people with the work of maintaining your implementation?

The second half of your argument is equally vexing. Yes, ideally tools would turn intent into actions. We would think, or express what we want at some high level, and it would come into existence. That's not how the real world works. Painters need to use a brush, musicians need an instrument, or at least sheet music.

Some would argue that brushwork is like coding style. But the thing is, do you want to work on a team of Jackson Pollocks?

</comment></comment><comment><USER34> clearly, this person has never had to write code within a many-hundred thousand line perl library.

There are certain parts of the spec I dislike, but I thank god everyday I have to look at a new file, because it allows me to focus on what and how the code accomplishes its goal as opposed to minutia like how are arguments passed between functions/methods, what is the naming convention for variables, how are return values returned, or even just do i need to tab indent or space indent in this file?

</comment><comment><USER35> I use Google's R Code Standard in my code and cut my productivity in half.

</comment><comment><USER36> I disagree... Because of the tools we have! If only our regular diff tools were able to work on semantic units then we could _maybe_ be laxer on coding standards.

Once again Google got it right in their Go language: there's an official spec as to how formatting should look like and there's a utility, gofmt, which does format the code according to the _language_ 's standard way of doing thing and this is a Good Thing [TM].

Coding standards should be directly into language _specs_ and then a "dictator" should mandate compliance with the coding standards before committing (use a hook or whatever suits you) to the (D)VCS.

Now of course you should be able to check out and see, in your editor, the code formatted as _you_ prefer to see it. And it should cause no issues as long you re-format according to coding standards before committing.

This is all pointless ranting anyway: it all comes down to the same age-old issue that we're using text files to represent source code and that these text files can contain structurally incorrect source code.

It's all about the tools. Our tools (editor, (D)VCS, diff tools, etc.) do all really s*ck.

As long as we'll be using such inferior tools to craft our code we'd better have sound coding standards.

I'm pretty sure Google and their Go's gofmt are on to something.

As a side note, OP's rant about chaos that should be reigning king regarding coding standards in a codebase falls pretty flat if you're a Go programming team: the entire Go standard packages have been formatted with gofmt and you'd need something much better than the OP's rant to convince a manager that people shouldn't be using gofmt before committing their code...

Once can only hope language-to-come do not only mandate a very precise coding standard in the language's spec but does actually enforce it (e.g. by refusing to compile a source file that isn't properly formatted).

<comment><USER5> I think if specifed at the language level (pep8/python, gofmt/go, objectiveC/apple docs), that's one thing. Additionally, if you have complete tool support for your format, you can demand much much more from the programmer.

The issue is making a guy constantly REMEMBER, Keep in mind, and implement something NOT enforced by a compiler is a huge sap on a certain type of person.</comment></comment>


Automated PCB Reverse Engineering (2017) [pdf] - <AUTHOR> https://www.usenix.org/system/files/conference/woot17/woot17-paper-kleber.pdf <comment><USER2> I've always been super interested in reverse engineering from a young age when I first started changing application flows by breaking them down in NASM and MASM.

Since then I have always looked into variations of the technique delving into specific components and architectural pieces.

The PCB as an embedded device gives a similar field of exploration.

I'd highly recommend people do similar things, it really teaches you a heck of a lot as a software engineer.

</comment><comment><USER3> "lack of inexpensive methods"?? have they not heard of, wait what's it called, China?

</comment><comment><USER4> Is this available as a service anywhere?

<comment><USER5> Literally everywhere in China.

This article is from 2017, but it seems the authors are not very familiar with how the industry already does it --- automatic probing machines can recover the netlist without needing to inspect the layers directly.

In fact, what they did, which is just image recognition, is probably one of the least time-consuming steps. Of course, it doesn't work for parts that have the markings removed either.

<comment><USER6> Yeah, and for PCB's which are worthy of reverse engineering, there is still A LOT of work to do beyond getting the netlist and components. On the other hand circuit designs, in most cases, closely follow datasheet recommendations or reference designs around the core components, so there's a lot of angles that can solve this problem.

The paper, however, seems to be motivated for goals like penetration testing and MITM attacks on hardware _without_ destroying it-- like what "Agent Q" might do in a James Bond film (after Bond is able to pocket the circuit board and deliver it to the lab in an ESD safe pouch).

The far more common and boring scenario would be reverse engineering for the purpose of knock-off products. Not very sexy. Also, do-able in many cases by just noting a few key components, extracting eeprom/flash content and then consulting datasheets.</comment></comment></comment>


Can Twitter's infinite monkeys write the complete works of Shakespeare? - <AUTHOR> http://www.theverge.com/2016/5/6/11606232/shakespeare-infinite-monkeys-of-twitter <comment><USER2> I was the technical lead on the building of the typewriter itself. If anyone has any questions about how it works, happy to answer.</comment>


Apple's Push to Flood India with Used iPhones Ignites Backlash - <AUTHOR> http://www.bloomberg.com/news/articles/2016-04-03/apple-s-push-to-flood-india-with-used-iphones-ignites-backlash <comment><USER2> I understand India's desire to push for local manufacturing, and some of this is all just a bunch of theater dancing around that issue. Meanwhile, the Bloomberg article does a good job of letting us read between the lines about the vested interests in keeping Apple out --

> "The millions of imported used phones will need their batteries replaced. > What will happen to those batteries, where will they go?" asked Sunil > Vachani, chairman of Dixon Technologies, whose phone assemblies roll out a > million phones a month for brands like Japan's Panasonic and China's Gionee.

So what do they do with used batteries from other phones? This has nothing to do with whether a phone is imported or not.

<comment><USER3> If a new phone is sold in India, its Indian owner benefits from the entire multi-year lifespan of the battery before it has to be disposed of. If a used phone is imported from the US to India, its battery will be nearing the end of its life - most of the benefit of that battery goes to the original American owner, but the disposal costs are dumped on India. From this perspective, it's a way for the developed world to dump our e-waste on the developing world and avoid having to dispose of it ourselves.

<comment><USER4> "If a used phone is imported from the US to India, its battery will be nearing the end of its life - most of the benefit of that battery goes to the original American owner, but the disposal costs are dumped on India."

If it is a refurbished model with a new battery that won't be the case. I have had refurbished Apple stuff in the past and those things were indistinguishable from new devices and yes that included the battery.

I've I read correctly that a company like Samsung is a member of one the organisations that are complaining, I think there are other stakes at play then the green card. Especially when a company like Apple is involved. There is a lot to be critical about, but they tend to do their best in those departments.

</comment></comment></comment><comment><USER5> There's something deeply contradictory in India's attitude. For imports (including setting up supermarkets in India) there are levys, laws and regulations to make it almost impossible for foreign companies. But then India is able to export its IT professionals and outsourcing across the whole world. Is this really a level playing field?

Why is no one calling this out as foul play? India seems to want one rule for when it is abroad and another when it's at home.

<comment><USER6> Foreign policy is not decided based on consistency. Every democratic government has a responsibility to defend it's own citizen's interests.

USA does this also, it wants free trade when it wants to export goods and services to other nations but opposes it when it comes to importing labor ( H1B VISA cap etc ).

This is not evil, it is this competition between nations that improves standard of living for people everywhere.

<comment><USER7> Opposes the importation of labor? Inspite of importing more high-end labor than almost any other country? How can they be opposed to it?

<comment><USER8> > Inspite of importing more high-end labor than almost any other country?

On a per-capita basis, I don't believe this is anywhere nere correct.

<comment><USER7> On a per capita basis, any rich country in the Middle East or city state in SE Asia that imports all its workers wins by default. But out of the major economies, the USA is at least up there with Europe per cap, and definitely in raw numbers.

</comment></comment></comment></comment></comment><comment><USER9> > The group's members [who opposed Apple's application] include the largest > Indian phone brands: Micromax, Intex and _Samsung._

Ah.

<comment><USER10> Meh. Apple is asking to be treated like a special snowflake in this case, caught by their own elitism of not-selling-affordable-phones.

<comment><USER11> > _caught by their own elitism of not-selling-affordable-phones._

Yeah, and look where that got them. From near bankruptcy in 1997 to being only the most valuable (or in top 3 depending on when you look/how you measure) of companies on the planet.

<comment><USER12> But that strategy did not work for them in India. Hence they are trying to sell cheaper refurbished models.

<comment><USER11> Well, they have been doing very well in India too:

[http://www.ibtimes.com/once-tough-market-apple-inc- indians-s...](http://www.ibtimes.com/once-tough-market-apple-inc-indians-show- growing-taste-iphones-1796326)

[http://timesofindia.indiatimes.com/tech/slideshow/appleindia...](http://timesofindia.indiatimes.com/tech/slideshow/appleindiasuccess/7-reasons- for-Apples-success-in-India/itslideshowviewall/19647039.cms)

In addition, they're trying to sell cheaper phones there.

<comment><USER12> I don't think they have even 5% market share. ([http://www.theverge.com/2015/11/24/9790810/apple-iphone- indi...](http://www.theverge.com/2015/11/24/9790810/apple-iphone-india- smartphone-market-share)). For a global giant its very very poor. Hence the need to sell cheaper mobiles.

<comment><USER11> > _For a global giant its very very poor_

Not really, as that's not how they roll. They usually have small market share, but of the highest end / largest margin part of the market.

Those 5% can yield like 30-50% of the profits of the whole smartphone industry in India, and 80% of the high-end (more expensive) smartphone profits.

A company that only targets the high end of the market should be compared to other products/companies in that, not the overall.

<comment><USER12> come on dude don't keep on changing criteria. Anyway "Not really, as that's not how they roll" this does not hold good. They are trying to get a bigger market share in India. Hence they are trying to selling refurbished mobiles. Which would be cheaper compared to brand new. Emphasis on it been "cheap". They already do that selling gen old mobiles.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> A strangely-biased article, starting with the headline. But setting aside the concerns of the companies opposing this for obvious reasons, this is a really great idea.

Consumers in poorer countries get the opportunity to buy used, high-end devices supported by the manufacturer, and those devices get another consumer cycle's worth of reuse before they get recycled. Plus Apple can now reach a large new segment of customers without compromising product quality or new- product margins.

<comment><USER12> Or they can price it according to the market. How many people in US buy iPhone at full price? Most mobiles are sold at full price in India.

<comment><USER14> > How many people in US buy iPhone at full price?

Everybody. Anybody who doesn't is buying it on credit. They're still paying the full price (and then some).

<comment><USER12> Installment plans are recent trend isn't it. I see previously it was 2 year contracts for 199 etc. emi are common in India as well. Apple could have done the same in India.

<comment><USER15> Before Apple offered installments plans, US carriers were offering them. Do Indian carriers do the same?

<comment><USER16> The sales model is pretty different.

In India, you'll typically buy your phone outright based on what features you're looking for (Dual SIM, OS version, Storage, etc). Hence manufacturers/retailers typically offer a EMI plan for top-end phones (think Samsung S7, Apple iPhone 6, etc) since the outright cost is quite high.

Then you'll decide which carrier you want to use based on the tariffs they're offering (Voice Calls, data, SMS, etc.)

Although carriers do offer phones with their plans, it's rarely ever bought in that manner.

</comment></comment></comment></comment></comment></comment><comment><USER17> The backlash is just whiney competition. Many people in India see the iPhone as a status symbol. If it is more affordable and comes with a warranty from Apple, people will buy it even if it is refurbished.

</comment><comment><USER18> I find some of the comments really surprising here. If you notice the headline and the article, you will see, this is about "used" phones from a top tier manufacturer. None of the other companies (Samsung, LG, Nokia...) are doing it.

Please do not compare this to Apple not being present in India. It is, in a large way, just not very affordable to masses, which Apple wants to change by selling old, used phones.

Disclaimer: I am an Indian, with an iPhone 6 and its damn easy to find it anywhere in the country.

</comment><comment><USER19> I don't see how this helps Apple. They offered cheaper versions with 8GB ROMs in India before. It backfired because though they were cheap it was a shitty experience. With iOS 9 underperforming even on iPhone 5S, I don't see how this more will do anything but tarnish Apple image further.

Indian customers do not want to spend less. They want to spend as much as they can but expect longevity and quality. Historically Apple has provided that.

Apple's iPhone 5S is 20K in India. Fairly affordable for an iPhone. If they are selling refurbished, they are trying to probably nibble at Moto G buyers. Even if they succeed, they are not a segment that is expected to exceedingly spend on App Stores or iCloud storage. That is the segment expecting things like Bluetooth file transfer. That is the segment not paying 1500/month for a decent plan which has enough LTE.

All of Apple's moves these days are operational. It almost seems like COO has a complete run of the brand. Move the inventory. That's all that matters.

</comment><comment><USER20> I think Apple would have to have a highly backwards compatible and modular iOS for that to even make sense. I have an old iPhone 4 running iOS 6, and I don't think it passes for a useable device. Apple could make the latest iOS backwards compatible, and find ways to reduce computing requirements by omitting functional or visual features, but that would completely counter the current artificial obsolescence tactics. It's unfair to offload those to a developing market, until they decide to support a greater fragmentation of the platform.

<comment><USER21> I don't see how Apple adding another option is "unfair".

Adding an additional choice for consumers in a market rarely harms those consumers. (An iPhone 4 isn't mass-produced cigarettes.)

Restricting choice for consumers in a market far more often harms them.

</comment></comment><comment><USER22> If apple is allowed to sell refurbished phones in India surely lot more people will opt for those instead of the cheaper Chinese alternatives or Indian versions and this could be the reason why the manufacturers here don't want Apple in their price segment as it might affect them directly

</comment><comment><USER23> It shouldn't come as a surprise. There are many reasons why the incumbents don't want Apple entering the market.

</comment><comment><USER24> [http://thenextweb.com/opinion/2016/03/21/apple- hypocritical-...](http://thenextweb.com/opinion/2016/03/21/apple-hypocritical- insensitive-pc-users-old-pc/)

Damned if they do, damned if they don't.</comment>


The black box is a state of mind - <AUTHOR> http://www.eurozine.com/black-box-state-mind/ <comment><USER2> When I call a system a black box I am not saying we cannot understand it, but rather we cannot easily extract the rationale used by the system to discern the classification. Layered neural networks are good examples of this where the signal is mixed in with the noise. I like simpler/older systems we can use to discern the method of classification (decision trees/forests) and NEAT which produce human readable structures.

</comment><comment><USER3> I have a visceral dislike of such human-produced black-box systems, but I have to admit that humans themselves are black boxes, even to ourselves, and any large system (a social system, political system, or a huge machine such as an oil refinery) will exhibit obscure emergent behavior.

So maybe I just have to get over it.

</comment><comment><USER4> What we mean when we say that (statistical) machine learning models are "black boxes" is that they are just vectors of numbers, that have no meaning that a human can readily understand.

Note that scale doesn't have anything to do with this. Say I show you a model my algorithm has learned, that's basically a vector of five numbers: [n1, n2, ..., n5]. Just by looking at those numbers, you can't say anything about this model, with any certainty: what data it was trained on, what algorithm, what classes it was trained to discriminate or if it is a regressor- or anything at all, really. It's just a bunch of numbers.

We can compare this to the incomprehensibility of a large software, or engineering project. There's probably no one person who can understand everything about an airliner- but there are many people who understand its constituent parts, down to the level of nuts and bolts. This is not so with (statistical) machine learning models- they are numbers without recognisable context all the way down (although there are exceptions, this is a pretty solid rule).

And that's why people are afraid that, with (statistical) machine learning we're riding a machine that we don't understand and therefore do not control.

</comment><comment><USER5> This sounds like a pile of equivocations designed to try to minimize an unfortunate truth about learned functions: the learning process does not care whether it corresponds to human thinking, so learned functions do not necessarily correspond to human-written functions.

Yes, the black-box nature of machine learning is a state of mind; the alternative is to view all software as black boxes and then throw up our hands and claim to know nothing whatsoever. This is clearly facetious and meant to protect machine-learning developers from the responsibility of grokking their systems.

<comment><USER6> You're setting up a bit of a false dichotomy, in my opinion. Treating something like a black box doesn't mean you have to "throw up our hands and claim to know nothing whatsoever." Rather, it means you have to change your approach to understanding the system.

People who are concerned about "black boxes" seem to think that we need a first principles or causal-mechanistic explanation for what's going on in a machine learning system to have any confidence in it. That couldn't be further from the case. By interrogating the inputs and outputs of a "black box" you can learn all you need about how it works. Much (if not most) of our understanding of the physical world comes from carefully probing black box systems—systems for which we have no a priori knowledge of mechanism. So, the alternative is not to "throw up your hands," it is to take a considered, scientific approach to understanding the relationship between inputs and outputs in your model: in what situations it succeeds, in what situations it fails, how changing a single variable affects the output, etc. Yes, that can be difficult for a complex model, but why should anyone expect it to be simple?</comment></comment>


Stop Giving Digital Assistants Female Voices - <AUTHOR> https://newrepublic.com/article/134560/stop-giving-digital-assistants-female-voices <comment><USER2> This may be the dumbest thing I have read all day and I purposely went through my spam folder today looking for a lost email. I don't know anyone that associates an AI assistants female voice with subservience. To be honest I keep Siri using a female voice because I find it more calming when interacting with my phone.

</comment><comment><USER3> I have never used any of the options but Siri, so I can't comment about those, but just like the text-to-speech engine in macOS since at least System 7, the voice of Siri is configurable.

Of the things to fucking worry about, this should be just above "I think Siri is stalking me"

</comment><comment><USER4> A friend of mine is a nanny. One day when Siri didn't know the answer to something, one of the little boys said, "Use the guy Siri he is smarter."

I think there is also very much the case to not use the male voice.

<comment><USER5> It's the British accent.</comment></comment>


Apple closes as most valuable company - <AUTHOR> http://www.forbes.com/sites/briancaulfield/2011/08/10/as-stock-market-burns-apple-most-valuable-company-in-it/

<comment><USER2>
      > iPods start at just $49. That's less than a tank of gas. No
      > wonder Apple is more valuable than Exxon Mobil right
      > now.

What? Over the course of time that someone will own that iPod, they will most likely purchase _multiple_ tanks of gas. Also, just because iPods are cheap doesn't mean that people will start buying them in bulk (or using them as a substitute for tanks of gas for that matter).

"Why buy a tank of gas, when I could get two iPods for the same price?"

</comment><comment><USER3> I am constantly unimpressed with the quality of writing on Forbes. Its like The Economist written by highschoolers.</comment>


Why we choose profit - <AUTHOR> https://m.signalvnoise.com/why-we-choose-profit-e511efc4dcb9#.2cfltah79 <comment><USER2> They forgot that profit is the validation of your work and your value. If you can build something that people will pay for, and pay enough to have a profit over it's costs, that difference is the value you created that you are allowed to keep. The fact that customers paid that much means it was worth even more to them, that's the value they are allowed to keep.

Giving shit away just means it had so low a value that you have to give it away to even get users interested.

</comment><comment><USER3> Also I cannot see how a non profit can compete with profit organizations. A for profit organization can summon an of army top talent to push your vision while a non profit would not be able to do so.</comment>


Show HN: Elements – A game - <AUTHOR> http://elements.merkoba.com/ <comment><USER2> Needs some sort of feedback or way to predict the new prices - way too frustrating that it's just a game of chance.

<comment><AUTHOR> Thanks. I just changed it almost completely. Now it doesn't rely on chance, the only randomness that occurs is the initial configuration. The rest can be predicted and mastered with skill.</comment></comment>


iOS 12, reviewed - <AUTHOR> https://arstechnica.com/gadgets/2018/09/ios-12-thoroughly-reviewed/ <comment><USER2> I missed my flight.

フライトが恋しいです

Hilarious. That's "I missed my flight" in the same sense that "I missed my wife (but she's back from her trip now)." As in, "I long to be with my flight, but alas, we are apart." See: [https://jisho.org/word/%E6%81%8B%E3%81%97%E3%81%84](https://jisho.org/word/%E6%81%8B%E3%81%97%E3%81%84)

飛行機に乗り遅れました

This would probably be the translation I would use. I'm surprised that it's not directly in the corpus as a canned phrase. In this phrase, 乗り遅れました literally means something like "[I] was too late to board [the plane]" and doesn't express some kind of bizarre longing or affection for the plane.

<comment><USER3> Machine translation from/to Japanese is astoundingly awful. This has been my barometer for whether the hype around "AI" is real, and I'm always disappointed. It's a hard problem that's nowhere near to being cracked.

<comment><USER4> Japanese and Korean languages are pretty hard to translate.

In Korean, 나좀 봐주라 literally translates into "Look at me", but in most cases, it means, "cut me some slack".

Google translate gets this wrong.

If you Google translate "cut me some slack" into either Korean or Japanese, it also fails.

But if you translate Japanese phrase "もう勘弁してくれよぉ" into English, it is translated into "Please forgive me already", but in reality, it's more like, "Cut me some slack! Or give me a break!"

Translation is hard.

<comment><USER5> Even French and German are hard, comparing deeply.org to Google translator shows how awful the latter is.

</comment></comment></comment></comment><comment><USER6> Honestly it may sound stupid but the native integration with password managers is a killer feature. I've trained my family to use 1Password and the biggest pain point was filling in passwords on the iPhone.

iOS 12 completely fixes this issue.

<comment><USER7> Based on the review, it looks like the iOS 12 password manager has matured quite a bit, but it doesn't say anything about integration with an external password manager. How have things changed for 1Password users?

<comment><USER8> You can now autofill passwords from a 3rd party password manager via a native api integrating with the OS keyboard.

Source: [https://twitter.com/rmondello/status/1041737681141587968?s=2...](https://twitter.com/rmondello/status/1041737681141587968?s=20)

<comment><USER9> No mention of KeePass, which is a shame

<comment><USER10> It's an api ([https://developer.apple.com/documentation/authenticationserv...](https://developer.apple.com/documentation/authenticationservices)) so KeePass just needs to do the work.

<comment><USER11> KyPass 4 works. Costs $7, but I was fine with that.

<comment><USER12> Does KyPass autofill? I've been using MiniKeePass for years but would be happy to pay for autofill support. It would also be nice if it kept a persistent connection to my Dropbox database, eliminating the need to update it periodically.

</comment></comment></comment></comment></comment></comment></comment><comment><USER13> Just updated on my iPhone 6s that I dumped due to slowness. It's just as fast now as the android I replaced it with and LastPass works with all my Apps now. Only thing missing now is good keyboard support (disclaimer: haven't tried since update)

I'm really impressed and happy with this direction Apple's taking. Hopefully they've learned their lesson with the battery slowdowns.

<comment><USER14> What do you feel is missing from the system keyboard on iOS?

<comment><USER15> Dvorak. Even after more than a decade, it's the only current OS I can think of that doesn't have a Dvorak option -- and the only Apple OS since the 1980's that didn't.

There are third-party keyboards, but none of them are good. That's not the third-party developers' fault: the iOS keyboard API is so wimpy, developers literally cannot make a keyboard that works like the default ones.

I don't want to hunt and peck, so on iOS I mostly use the Japanese "flick" keyboard, which is much more logical, but doesn't offer English autocompletion, so it's just bad in a different way.

I really don't know why iOS doesn't support Dvorak.

<comment><USER16> >I really don't know why iOS doesn't support Dvorak.

Probably because Dvorak is used by less than 0.001% of the users and it is only optimised to the English language.

It's _really_ niche.

<comment><USER15> It works really well with any language that alternates vowels and consonants, which is most of them. I can also confirm it works great with Japanese, via Kotoeri (kana input essentially alternates vowels and consonants, even more so than English). I have yet to run across a language where it isn't better than QWERTY, though I'm sure they exist.

And less than 1 in 100,000 sounds awfully low. Where'd you get that number? There's 700,000 people living in my city and I personally know a lot more than 7 Dvorak users here.

iOS does support Dvorak for Bluetooth keyboards, so it's not so niche to cause Apple to ignore it completely. Isn't "Dvorak on BT (only)" even more niche than "Dvorak"?

</comment></comment></comment></comment></comment><comment><USER17> If the rumor that programmers and even executives had to carry and use iPhone 6 Plus devices for a while so that everyone felt the pain of slowness, then I'm in awe. This is exactly what needed to be done.

This is a great release and I hope Apple continues in that vein. We don't always need "NEW FEATURES", but we do always need fast, responsive and stable systems.

<comment><USER18> At a previous company we periodically flipped a feature switch on our dogfood builds that would throttle all network requests to simulate speeds in developing countries with slower cell networks, and it was really cool to see what stuff worked and what was awful when, for example, pictures could barely load or assets wouldn't show up.

<comment><USER19> You mean Facebook? I know Facebook used to do this for a while

<comment><USER20> Pretty much every big enough company does it.

</comment></comment></comment></comment><comment><USER21> Another review worth reading is MacStories. It covers the new Shortcuts automation app in more depth.

[https://www.macstories.net/stories/ios-12-the-macstories- rev...](https://www.macstories.net/stories/ios-12-the-macstories-review/)

<comment><USER22> Shortcuts blew me away when I saw what you could do. I assumed based on the demo that it was pretty limited, but you can set variables, loop, execute remote SSH commands, call into APIs, execute Python, etc. And it comes with API access to send iMessages/read contacts/etc. The fact that it's so much easier to write an automation "script" or shortcut than swift code is huge!

<comment><USER23> The System 7 OS on Macs introduced AppleScript[1] which offered a similar set of features (but designed for the 90s).

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

<comment><USER24> AppleScript is still around, as part of OSA, which now includes JavaScript support.

</comment></comment></comment></comment><comment><USER25> I'm super happy with the update so far on my 6s. I did a comparison with a family member running iOS 11 and the difference is huge, particularly for camera apps.

My only sore spot with iOS now is the Music app's horrible UX. Otherwise, I'm feeling pretty confident my phone will last me another year.

<comment><USER26> "I'm feeling pretty confident my phone will last me another year"

That's great to hear. I used to be one of those people who got every new iPhone release (or at most every 2nd release), but I've been keeping my trusty old iPhone 6 going for a couple of years now and I have very little interest in getting a new phone any time soon. My 6 is getting a bit slow, so if performance is better on iOS 12 that's great news

<comment><USER27> Literally same situation here except with a 6 Plus. Upgraded this morning and the speedup and faster animations are pretty damn noticeable. Camera used to sometimes take 6-7 seconds to open which is now cut to about 1-2s. Definitely recommend the update, the new features are also pretty convenient, I especially like the new Do Not Disturb and Screentime provides some interesting stats. Now it's just battery life getting awful, but I've been putting off getting the battery replaced because spending a week+ without a smartphone is borderline impossible and I have no backup device.

<comment><USER28> Your old battery might be causing your slowness. Replace it for $30 in the store, too; you don't have to be without it for more than an hour if they have the parts in stock. My iPhone 6a is super quick. Camera opens in under a second.

</comment></comment></comment></comment><comment><USER29> _When Apple first presented iOS 12 to the public and to developers, it promised a feature called Group FaceTime that would basically work like Google Hangouts; you 'd be able to video chat with up to 32 participants at the same time. That feature has now been pushed back to a later software update in the iOS 12 cycle—meaning it's not available for us to test yet._

Bummer... :/ that's probably the one feature that I've been most waiting for

<comment><USER30> First developer beta[0] is out if you want to try it out...

[0] - [https://www.macrumors.com/2018/09/18/apple-seeds-first- beta-...](https://www.macrumors.com/2018/09/18/apple-seeds-first-beta-of- ios-12-1-to-developers/)

<comment><USER24> We'll see if they keep it in. iCloud messages was reintroduced in the beta and removed in public version.

</comment></comment></comment><comment><USER31> Between this and my battery replacement I opted into, my 6S Plus feels brand new. If your battery health is < 85% I really suggest you take advantage of the cheap battery replacement by year end.

[https://support.apple.com/iphone/repair/battery- power](https://support.apple.com/iphone/repair/battery-power)

<comment><USER32> My iPhone X is at 90%. You don't think it's worth the $29 + trip to Apple Store?

<comment><USER33> If your battery health isn't low enough, Apple will not replace the battery. This happened to my mom and her iPhone 6.

<comment><USER34> This was the rule early on, but I heard that they will now replace the battery no matter what. The current guidelines don't mention any threshold: [https://support.apple.com/iphone/repair/battery- power](https://support.apple.com/iphone/repair/battery-power)

</comment></comment></comment></comment><comment><USER35> A minor feature/bug fix that I noticed was that the "back to camera" feature of the in-app photo viewer in camera is harder to activate.

That's a mouthful -- the way that I usually view photos is by bringing up the camera (since that's so easy from many entry points) and clicking on the lower left to get to the photos. The main downside of this is that if you didn't slide exactly left to right (even the slightest diagonal) then it would exit the photo viewer and go back to the camera. This was very annoying because if you flip back a few photos and then mis-swipe, you completely lose context.

But now that has been made significantly harder to accidentally invoke. Still possible, but harder, and it has so far made a nice difference for my usage.

<comment><USER36> I've been using iOS since the iPhone first came out and never knew about this feature. Thanks for the hint!

</comment></comment><comment><USER37> I just used Google Maps to get to work this morning using Apple Car Play - it's awesome. There were a few annoying errors in Apple maps on my daily route that I won't have to deal with ever again.

<comment><USER38> why do you need maps for your daily route ? public transportation ?

<comment><USER39> Some people drive to work.

<comment><USER40> Some people don't need a navigation system for a route they drive every day.

<comment><USER41> I tend to use Google maps anytime I drive in Seattle - they've added information about accidents and closures that I'd otherwise miss. When I did drive to work it'd routinely save me time when there was a wreck on i-5 by telling me that and giving me another route.

</comment></comment></comment></comment></comment><comment><USER42> Article misses best new feature: You can close apps on the iPhone X by swiping up from the app switcher, rather than holding down in a very small area to bring the red x forward.

<comment><USER43> Closing apps on iOS unless they are using location services in the background (which you can disable) doesn't save anything in terms of battery life or processor usage most of the time.

<comment><USER44> Sometimes I find I do need to close an app to "reboot" it. But yes. It's actually amusing to me to watch people compulsively close their background apps. I used to try to explain why it wasn't important but I don't think anyone ever accepted the advice.

<comment><USER45> My wife is one of these people. I tried to talk her out of it and tell her it actually makes her phone run slower, not faster, but, as typical, she'll listen patiently to what I tell her and then go on doing her own thing anyway, so I eventually gave up.

</comment></comment></comment></comment><comment><USER24> > There are three configurations for this feature in the notifications section > of the iOS 12 Settings app: automatic, by app, and off. It defaults to > automatic. In this case, notifications from one app will generally be > grouped together, but, for not entirely transparent reasons, iOS might > intelligently decide not to in some cases.

This is transparent; it's decided the "thread identifier" for the notification so that threads are split out separately: [https://developer.apple.com/documentation/usernotifications/...](https://developer.apple.com/documentation/usernotifications/unmutablenotificationcontent/1649872-threadidentifier)

<comment><USER46> >but, for not entirely transparent reasons, iOS might intelligently decide not to in some cases.

This would perhaps be better worded as "for reasons the article's author didn't understand, but people who familiarized themselves with information released months ago at WWDC did…".

I'm going to reiterate the advice to read the MacStories review instead of the one at Ars. It has much more depth and insight.

<comment><USER24> I've read both. Just wanted to explain how notifications work.

</comment></comment></comment><comment><USER47> My no-frills, hardcore iPad mini 2 is alive and rocking again, thank you Apple for having allowed that on a 5 years old machine.

</comment><comment><USER48> The only feature I wish Apple would implement, is Phone Call no longer takes full focus on my screen. We don't call as much any more, at least compare to 5 - 7 years ago. And we get lots more Spam calls than we used to. It really is annoying when I am in the middle of something and a whole screen splash telling me I have a call.

</comment><comment><USER49> I wonder is dark mode is coming to iOS 12 in later updates because it is awkward to go back and forth with Mojave and iOS.

</comment><comment><USER50> Has anyone worked out how to stop mobile Safari asking to save passwords every time you log in to something?

<comment><USER51> Settings > Passwords & Accounts > AutoFill Passwords > Flip the switch to off

</comment></comment><comment><USER52> Just talking instinctively (from using iOS 12 since GM last week), iOS 12 has been one of the best and smoothest releases I've ever experienced. If you haven't updated, do it now. Barring any security issues or HW bugs, outlook for Apple looking very strong going into 2019.

</comment><comment><USER53> Did the new emojis make it into this release? I can't seem to find them on my updated phone.

It's pretty minor compared to all the other things, but I was looking forward to some of them...

[https://www.theverge.com/2018/7/16/17577288/apple- ios-12-new...](https://www.theverge.com/2018/7/16/17577288/apple-ios-12-new- emoji-super-hero-cupcake-and-redheads)

<comment><USER54> New emojis usually go into the .1 releases to nudge people into updating to get the last major release's bug fixes.

</comment></comment><comment><USER55> I updated to iOS 12(on an iPhone SE) yesterday and my WiFi calling feature went to hell. Needed two/three reboots and toggling WiFi calling for it to work again. Still seems flaky and I'm heavily dependent on it to work as my apt gets 0 reception. Apart from this frustrating issue, I love the integration for password managers they have now. It's made my life so much easier.

<comment><USER56> My AT&T WiFi didn't work immediately after the update, but I didn't reboot and within a few hours it was working again. I did turn WiFi Calling off and on again, once, in Settings---not sure if that was necessary as it didn't immediately fix it.

<comment><USER55> I use AT&T too. It was spotty but much better yesterday. I suppose it just needed some combination of reboot/toggle to work again.

</comment></comment></comment><comment><USER57> Does anyone have any idea of when I'll be able to do a full-wipe re-install of iOS 12 via iTunes? I have a super-annoying bug in Youtube and I'm hoping this step will resolve things, but as of last night, my iPhone 7 wouldn't re- install via iTunes because the version wasn't available from the software center.

I deleted my Beta profile, but still no go.

<comment><USER58> Download the IPSW from here: [https://ipsw.me/](https://ipsw.me/)

Manually install through restore. Example: [http://osxdaily.com/2010/11/23/how-to-use-ipsw- files/](http://osxdaily.com/2010/11/23/how-to-use-ipsw-files/) (Click restore instead of update button for a full wipe)

<comment><USER57> Wish that I could but I'm stuck in an endless cycle shown here: [https://imgur.com/a/nnt1f75](https://imgur.com/a/nnt1f75)

...and iTunes is unusable during this cycle.

</comment></comment></comment><comment><USER59> Actually quite surprised, their claims of increased performance ring true. My iPad Mini 4 and iPhones 5S and SE all seem significantly faster after upgrading. On older devices it is more noticeable. No more animation lag, hitches/delays, etc.

Would like to see a continued focus on these kinds of improvements.

</comment><comment><USER60> Apple Maps (at least in Barcelona) are outdated too much. Wrong buildings, wrong roads, wrong parcs - maps are 15 years old. Unusable.

<comment><USER61> While Apple (naturally) never really publicized this, the map data they've been using, including the terrible data where you are, has been cobbled together from a variety of third parties. According to reports earlier this year, a new Apple Maps data set is rolling out with iOS 12 -- but it's going to take a long time to be everywhere worldwide, because they're essentially building it from scratch the way Google did.

The good news is that they had their new data available where I live in the San Francisco Bay Area during the iOS 12 beta period, and it's a noticeable improvement. I haven't been using Google Maps too much recently, but I find Apple Maps' routing here to be pretty comparable to Waze's, without doing the "here's a crazy shortcut!" thing that Waze occasionally does. (Sometimes the crazy shortcuts are good, but more often than not I've found they...aren't good.) The bad news is that it's probably gonna be years before they get Europe done.

</comment></comment><comment><USER62> > iOS uses machine learning to study how you manage your notifications and > recommends how to deliver notifications in the future based on that.

This seems silly to me. I never have so many notifications on the lockscreen that I need help organizing them. Different notifications require different actions; ML can't possibly know the difference. For example, I never click Google calendar notifications but I usually want them on top. It will be confusing when everything is out of chronological order.

</comment><comment><USER63> Anybody try on a 5s?

<comment><USER64> Yes, installed smoothly, seems faster. For example, time until the camera is up by swiping right on the lock screen is 2-3 seconds instead of roughly 6-8 seconds.

<comment><USER65> Same here. Installed it on 5s, seems faster (not 100% sure though, maybe that's a placebo efect) than iOS 11. Definitely does not feel slower, so it's safe to install IMO.

</comment></comment></comment><comment><USER66> A "small" release that is 1.2GB? Hate to see what a large release will be...

<comment><USER24> Just because it's a small visual update doesn't mean that there haven't been changes in system frameworks which now need to be updated.

</comment></comment><comment><USER67> I'm going to be one of those people who wait until 12.1 or 12.2 this time. I upgraded right away with iOS 11 and had my phone constantly lock up on me or randomly restart, that was not a great experience. Especially when you're renting a car that can only be unlocked through a phone app and your phone is dead for 30+ minutes.

<comment><USER68> > when you're renting a car that can only be unlocked through a phone app

Off-topic, but this is an incredibly horrible idea. Can you name and shame the company so I make sure I never rent from them?

I tend to be a forgetful and generally clumsy person, which means I neglect to charge my phone a lot. So I would be stranded in this case?

<comment><USER69> Most of the car share companies operate this way near me. It's not "exclusively via app", but most people rely on the app and NFC to unlock/start and lock/end their trips for convenience.

That said ... you are in a car that can charge your phone too.

<comment><USER67> In my case the issue wasn't battery, it was the phone locking up and no "reset combination" for it would reboot it.

</comment></comment></comment></comment><comment><USER70> I will buy an iPhone the day I can choose a different rendering engine for my browser. Or, at minimum, Safari stops being a turd.

Just yesterday I watched hilariously how a friend tried to do an online job interview on her iPad. But no MediaRecorder API support. Had to lend her my 200 euro Android burner to get it done. Pathetic.

Edit: To be fair, Edge would also have dropped the ball, but then again you probably have FF or Chrome also installed. In iOS you are SOL.

<comment><USER43> Or they could have used one of the dozens of apps that have the functionality....

<comment><USER70> She was in no position, as a job applicant, to be dictating the company as to what sort of an app they should be using to interview her. They used an online pre-screening tool called Videolind [1] which actually pretty cool.

But that is my point - if you force your customers to such a position, albeit for plausible security reasons, you better make sure your browser is top of the game.

I still very clearly remember when Jobs showed everyone that you can have a Real Browser in your palm (as opposed to WAP-somethings). You could hear jaws dropping around you. It was glorious! I do not think you get a proper browser with iOS these days. The world has started to be "optimised for Chrome" and this sucks.

[1] [https://help.videolind.com/article/4-video-does-not- work](https://help.videolind.com/article/4-video-does-not-work)

<comment><USER71> > _She was in no position, as a job applicant, to be dictating the company as > to what sort of an app they should be using to interview her._

We're off topic now, but why is that? I frequently get meeting requests to speak to potential clients via Skype, which I decline because I don't use Skype due to built-in surveillance.</comment></comment></comment></comment>


Ask HN: Should I create a GUI for creating Tensorflow models? - <AUTHOR> Currently, I am evaluating some Master thesis topics. One of the proposals is:<p>- Create a GUI for creating Tensorflow models with data flow graphical programming (similar to Rapidminer).<p>- After the model phase, the Tensorflow code can be ejected and you can integrate it in your existing workflow.<p>- Also, the library will be Open Source.<p>What do you think about it? Is creating your graphs from code a problem worth solving/improving? Why or why not? <comment><USER2> sounds very interesting, especially for recurring tasks / first looks at data

+1 from me</comment>


Self-Proclaimed Bitcoin Inventor Accused of Swindling $5B of Cryptocurrency - <AUTHOR> https://www.bloomberg.com/news/articles/2018-02-26/craig-wright-sued-over-5-billion-bitcoin-mined-by-colleague <comment><USER2> When those 1 million coins get sold its going to be a fun day for cryptocurrency markets...</comment>


BigCalc (YC S12) Makes Hadoop Easier for High Frequency Trading Firms - <AUTHOR> http://techcrunch.com/2012/08/22/y-combinator-alum-bigcalc-makes-hadoop-easier-for-high-frequency-trading-firms/

<comment><USER2> I'd feel better if it was an app that taught people how to game the lottery. At least then the nonsense would be equitable.</comment>


Seagate to produce 5TB hard drive next year, 20TB by 2020 - <AUTHOR> http://www.computerworld.com/s/article/9242268/Seagate_to_produce_5TB_hard_drive_next_year_20TB_by_2020

<comment><USER2> A very cool trick ... that provides less deterministic write times....

Furthers the model that "Cache is the new RAM, RAM is the new disk, disk is the new tape", especially big capacity ones like this.

ADDED: to get the most out of these drives, their non-atomic write nature needs to be exposed, here's a USENIX item on all that: [http://www.seagate.com/files/www-content/solutions- content/i...](http://www.seagate.com/files/www-content/solutions-content/it- professionals/_shared/docs/smr-requires-new-data-management-usenix-login- feldman-gibson.pdf)

</comment><comment><USER3> I wish HD manufacturers would try to innovate the technology rather than give us more space.

I have a 300gb drive and it still has 180gb free. I have a ton of stuff backed up too and quite a few large apps/games.

With more things being "stored on the cloud" it surprises me that HD manufacturers go after space instead of speed/reliability.

<comment><USER4> That's exactly what they're doing with SSDs.

<comment><USER3> The article says they are pushing for 20TB drives by 2020. That means they are saying 7 years from now we will be using the same technology but the drives will be larger. They are clearly talking about non-SSDs in the article.

SSDs are ok for now but they are still not even close to being reasonably priced. A 1TB SSD is like $650, completely gouged.</comment></comment></comment>


Postcardware – free to use if you send us a postcard - <AUTHOR> https://spatie.be/en/opensource/postcards <comment><USER2> See also: ShonenWare

[http://www.proxomitron.info/45/help/License.html](http://www.proxomitron.info/45/help/License.html)

> To register simply go out and buy any CD, record, or tape by Shonen Knife, > listen to it carefully, and e-mail me your impressions of the album

</comment><comment><USER3> What is free to use? I am not sure what the site is for.

<comment><USER4> The details are hidden at the bottom, most of the repositories spatie has on github have a postcardware statement in the readme, similar to this.

        Postcardware

        You're free to use this package, but if it makes it to your production environment
        we highly appreciate you sending us a postcard from your hometown,
        mentioning which of our package(s) you are using.

        Our address is: Spatie, Samberstraat 69D, 2060 Antwerp, Belgium.

        We publish all received postcards on our company website.

It's cute, they don't demand anything causing licensing issues while having some fun with the postcard thing. Kind of reminds me of SDF's option to verify your account with a postcard instead of a small donation.

</comment></comment><comment><USER5> My favorite fitness app, Caledos Runner, is Postcardware! Unfortunately, even though it's a fitness app, I've been too lazy to send the postcard. Maybe I'll do that sometime soon.

[https://api.caledos.com/](https://api.caledos.com/) [https://i.imgur.com/oxAWU2j.png](https://i.imgur.com/oxAWU2j.png)

</comment><comment><USER6> I don't understand what software they are offering for a postcard?

<comment><USER7> Packages for the Laravel PHP framework

[https://github.com/spatie](https://github.com/spatie)</comment></comment>


How do you build a healthy city? Copenhagen reveals its secrets - <AUTHOR> https://www.theguardian.com/environment/2018/feb/11/how-build-healthy-city-copenhagen-reveals-its-secrets-happiness <comment><USER2> A quick note on the bikes:

1) Copenhagen is really, _really_ flat, which makes it easy to bike for everyone.

2) Cars in Denmark have an environmental/luxury tax of over 100%, on top of the 25% VAT, making cars incredibly expensive to buy.

<comment><USER3> What if you don't ride a bike, for either physical or whatever reason? Say butt hurts, wind and rain ruin your hair?

<comment><USER4> Pretty good public transportation. Metro, busses and trains will bring you most places.

I've lived in Copenhagen for 3 years now and don't own a car. I am not an outlier.

</comment></comment></comment><comment><USER5> A well traveled American ex-colleague of mine moved to Copenhagen but left after 6 months. He said he simply couldn't afford to live there on his (Senior) game developer salary and theorized that the reason Danes are so happy is that they have such low expectations.

I really hope that's not true (I'm pretty sure it isn't) as I find the idea of moving and raising my family there very appealing.

<comment><USER6> Developer salaries are significantly lower in the whole of Europe than the US, but they're still extremely well paid positions that'll give you way over what an average person earns.

Describing it as unaffordable sounds a bit off to me when there are people living comfortably on half what he earned (assuming he wasn't being massively underpaid).

If he wanted a garage full of Tesla's in his city centre garage, then yeah, it's unaffordable.

<comment><USER7> The fact that Danes are "living comfortably" in light of outrageous taxes and living expenses does nothing to argue against the GP's reasonable claim that perhaps Danes have low expectations.

People "live comfortably" on dirt floors in many parts of the world. That doesn't mean such a restriction on financial freedom is appropriate for everyone.

<comment><USER8> there seems to be disparity in the definition of comfort.

Your Danish home is going to be smaller, you're not going to drive a giant car, but in return you have excellent access to public transport, years of income guarantee should you lose your job, your kids and you have universal access to healthcare and education regardless where you are on the social strata and so forth. If that's a definition of comfort you like, then Denmark is for you. If you don't, you're better off somewhere else. Rest assured, nobody in Denmark is living in a hut.

<comment><USER9> Just ask how long are you going to _wait_ until a doctor is available to see you, particularly if it's a specialist. Or how long are you going to wait for a surgery.

<comment><USER8> Denmark has some of the lowest waiting times among OECD countries

[https://www.sciencedirect.com/science/article/pii/S016885101...](https://www.sciencedirect.com/science/article/pii/S0168851014002267)

and some of the highest physician density in the developed world. I'm German and have worked in Denmark, and have never experienced waiting times.

</comment></comment></comment></comment></comment></comment><comment><USER10> A Scandinavian economist once said to Milton Friedman, 'In Scandinavia, we have no poverty'. Milton Friedman replied, 'That's interesting, because in America, among Scandinavians, we have no poverty, either' (quoted by Kotkin, 2009).

<comment><USER11> That's not even true, though. The highest concentration of Scandinavian- Americans is is in North Dakota, where they make up 1/3 of the state's population, and have a poverty rate that is significantly above zero.

<comment><USER12> Actually they are a lot less of the North Dakota population[1] being 4.7% of the population.

For 2016[2], North Dakota had a poverty rate of 10.7 (10th lowest in the US). Of that 10.7%, 8% were listed as White.

Given this, I don't think a significant amount of Scandinavian-Americans in North Dakota are in poverty. I guess any number is not zero, but North Dakota is probably the wrong state to use for a demonstration.

1) [http://worldpopulationreview.com/states/north-dakota- populat...](http://worldpopulationreview.com/states/north-dakota-population/)

2) [https://talkpoverty.org/state-year-report/north- dakota-2017-...](https://talkpoverty.org/state-year-report/north- dakota-2017-report/) [https://www.census.gov/quickfacts/fact/table/ND/PST045217#vi...](https://www.census.gov/quickfacts/fact/table/ND/PST045217#viewtop)

<comment><USER11> > Actually they are a lot less of the North Dakota population[1] being 4.7% of > the population.

Your reference [1] says that 30.8% of the state's population reports Norwegian ancestry, and 4.7% reports Swedish ancestry. Overall that's pretty close to the 1/3 I ballparked for Scandinavian-American.

<comment><USER12> Opps, I forgot the Norwegian[1]. Well, 30.8% of 8% of 10.7% is a pretty low number and assumes that the 8% is an even distribution over the White poverty rate.

1) I might still hold a grudge over the damn lefse and not being told its was potato before eating it. I was not in good shape 30 minutes later.

<comment><USER13> I think you are misreading your source. You seem to be interpreting it as saying that 8% of people in poverty are white, but what it actually says is that 8% of white people are in poverty.

Assuming that the poverty rate is evenly distributed over the white population, then the poverty rate for Scandinavians would also be 8%.

<comment><USER12> I'm not misreading the source, else 100% of the people in North Dakota would be in poverty. The Native Americans are listed as 35% and that is not their percentage of the population.

<comment><USER13> Then why are you taking 8% of 10.7%? The correct way to interpret the statistics is not "10.7% of people are in poverty and 8% of those are white", it's "8% of white people are in poverty and that 8% overlaps with the 10.7% of all people who are in poverty".</comment></comment></comment></comment></comment></comment></comment></comment>


What ux recommendations do you have for this original oil painting website? - <AUTHOR> http://www.kathleenmrobison.com

<comment><USER2> I can think of a few.

1) The gallery and buy now overlap but not enough. You should be able to buy prints from the actual print page. Consider using the buy style view as your gallery (Much like a product listing page)

2) The homepage is nothing but a directory. The carousel is moving too fast, use it to showcase recent or popular prints (no carousel.)

3) Consider why the user might actually be coming to the page? The entire bottom half (about, recent posts, twitter) can be combined into a sidebar which would be more economical space-wise

There are just a few starters.

<comment><AUTHOR> Thanks a lot sritch, really appreciate the feedback.

I agree that the gallery and buy now page should be combined, I'm starting to think of the site now as product focused, rather than showcase focused.

I like the idea of ditching the slider/carousel and putting up more actionable and recent products and postings.

I guess the home is now of a portal rather than telling the user anything special or showcasing why they should be here.

Great tips, thanks so much.</comment></comment>


Blade Runner background wallpaper cyberpunk ambience website? - <AUTHOR> Blade Runner background wallpaper cyberpunk ambience website?<p>Been looking for it for a while now. It's this website where it plays cyberpunk cityscape sounds on a loop on a Blade Runner background, and it's pretty awesome. At least one person here has to be into cyberpunk enough to have come across it, and if so, I'd appreciate it if you could share it with me. <comment><USER2> Could it be any of the links in the comments on [https://news.ycombinator.com/item?id=20100348](https://news.ycombinator.com/item?id=20100348) ?

</comment><comment><USER3> [https://www.youtube.com/watch?v=2eC8kOD6TUg](https://www.youtube.com/watch?v=2eC8kOD6TUg)

<comment><USER4> Looks amazing!!!

</comment></comment><comment><USER5> [http://caraellison.co.uk/pink-city/](http://caraellison.co.uk/pink-city/) ?

<comment><USER6> Brilliant resumé.</comment></comment>