skysight-inc/HackerNews huggingface dataset:
Here's why I find this argument unproductive:

1. The vast majority of Android users don't know or care about it. They use what's on the device when they get it and if anyone's getting root, it's more likely to be a malware author than the user.

2. If the manufacturer locks you out, the benefit from a root exploit is time-limited until they ship an update and you're faced with losing root or having known security problems.

3. Using root when the manufacturer doesn't want you to is likely to be used as an excuse to deny support requests later.

It's not helpful to anyone to suggest a computing experience which can change at any time and requires them to delay things like security updates until a new exploit can be found. #1 and #3 combine, in that people are either going to avoid using an exploit if it could mean eating the cost of a new phone at any time or, worse, their buddy will do it for them but not help with the ongoing sysadmin work needed to keep the rooted phone secure. It's worth remembering that the only iPhone users at risk of the Hacking Team exploits were the ones who'd jailbroken the device; I'd bet anyone affected reconsidered how much installing ad blocker or pirated game was really worth.

If you want root, the only viable solution is to refuse to give money to vendors which don't let you have it, which currently means contacting your government to express your support for legal restrictions on devices which cannot be customized by the user. If you continue to support restrictive vendors with your wallet, absolutely nothing will change.
"we were discussing today in one compsci class how agile is something that only works if you don’t care about consistent quality and only care about always having the newest, shiniest, greatest."

My employer (Pivotal) uses XP across the company as a way of building consistently high quality software products at a sustainable pace. We have something of a reputation for doing this over the past 20 years with Pivotal Labs.

"And how, if you are working on software for ESA, or working for one of the largest internet retailers, or if you’re writing a control software for railway switches, waterfall is the only possible option."

This is partial nonsense.

Firstly, unmodified waterfall was never an explicit software development methodology, it was an example used by Winston Royce in 1970 about how NOT to run a software project. http://www.cs.umd.edu/class/spring2003/cmsc838p/Process/wate...

You think Amazon delivers software in a waterfall? Amazon has dozens of teams building microservices in parallel with thousands of releases to production happening daily. http://joshuaseiden.com/blog/2013/12/amazon-deploys-to-produ...

I was the General Manager of Operations for a Class 1 railway, and know something about how railways systems were design and built. Control software for railway switches is written around once every 25 years, so yes, one can do that in a more deliberately planned manner. Financial and billing software for railways is mostly Mainframe or packaged (SAP or Oracle), so that too, was built in a waterfall, which was by no means a guarantor of quality in practice, with many problems being discovered only after deployment.

Yard management systems and equipment tracking can be built in an agile manner, though mostly were built in the 80s and 90s so only add-ons and additions are being built in this way. Much of the surrounding demand management, BI, order management, and forecasting systems are built (at worst) in an ad hoc manner or (at best) in an agile manner, because the level of change required is too high to warrant the lead times of a waterfall-planned approach.

The point is that most companies that develop new products do not do so in a waterfall manner, they do it in a manner that allows for continuous feedback, because they've learned that quality in the face of uncertain requirements requires such feedback.

"Even if the target is moving, agile is never able to provide quality."

The most polite thing I can say to this is, "citation needed".

Agile methods are an attempt to use Lean product development principles in the realm of software. I think you may want to learn more about them before drawing such conclusions.
Constantly invoking the constitution as an argument, when the heart of the matter is that you disagree, is to cry wolf and undermines its status as an important document. Further it's not a particularly good argument since there are countless opinions on how to interpret "spirit of the constitution" as illustrated by the disagreements over different laws.

And since I'm not a US citizen nor in the US, I'm actually not covered by the constitution.
Agile works for web services, for small apps, but that’s it.

That's plainly not true. Many large applications are written by agile teams.

Anything larger, or more complex, needs planning, thought, and design. And often needs refactoring.

Yes – none of these things are banned by agile development. Refactoring is positively encouraged!

It’s rare that you can build a system where you don’t have issues with concurrency (and need to do timing analyses) or with interactions between multiple different systems.

Absolutely. This has no relation to the development process used to build those systems.
Never allow your school to interfere with your education.

> in reality, leads to everyone working on random things,

No. It's just that we acknowledge plans need to change and draw new plans. If we feel something need refactoring, we refactor. If it needs a complete rewrite, we do it. We can do it because we have tests for everything. The tests define what the parts do. They are part of the documentation, one you can run and be 100% sure it is correct. When we acknowledge something needs to be redone, we plan for it.

> If your software is working, but there is no documentation,

See above.

> to quote a professor

Judge the argument, not the person making it.

> Apache License on GitHub. Suddenly developers started caring about code quality

A GPLv3 variation could have been a smarter move, but yes. Having people able to look over your shoulder is a fairly decent quality driver. All my recent work is open source and, when I cut a corner, I always document the corner, why I cut it and when and how I will fix it.
This helps prevent variable shadowing when using :=, which is yet another weird feature of the language...

BTW, if you really want to make sure you don't make mistakes, use the compiler tools, or, better yet, https://github.com/alecthomas/gometalinter .
Google has very good geo-IP location detection, almost creepily good in some cases. Scroll down to the bottom of the search results on a desktop browser sometime and see for yourself.
This means they should know by now. Surely some of them got most of what's expected by age 14
Getting rid of free office snacks doesn't come cheap
Agree with this.

1. Have you determined the capacity, and cost of freemium vs paid users?

2. Your pricing should, at the least, cover your costs.

3. Before any large marketing push, make sure you can handle the estimated load, and have a plan to 'scale out' (add application servers, defer or async possible DB calls, etc)....
"So, candidate for offloading that's really commonly considered is "scrubbing". Essentially, protecting against passive bit flips by checking your data against your own checksums."

"Or even offload it to hardware--some custom host adapter, possibly, using custom ATA/SCSI commands to control it and query it. (and the `sg` driver)."

Now you're thinking. Chips like Octeon already do hardware acceleration of checksums and possibly other I/O boosters. So did mainframe I/O. There's many for FPGA's and ASIC's. Cray's ChipKill technology, implemented in Oracle SPARC CPU's, does something similar for RAM in combination with ECC RAM. So, an ASIC with several SATA connectors and logic for this should be able to do it. Might handle, partially or totally, the protocol for processing the data, too.

Wanted to see if I was really thinking ahead by Googling for academic papers. If it's a good idea, there's usually a few people that have done it for years already. Turned up some hits, including on your Reed-Solomon.

FPGA-accelerated decision-tolerant coding for reliable distributed storage
https://dl.acm.org/citation.cfm?id=1763276

FPGA-accelerated, flash store for analytics
http://people.csail.mit.edu/wjun/papers/fpga2014-wjun.pptx

DB acceleration
http://www.cse.buffalo.edu/~vipin/papers/2010/todd1.pdf

Filesystem in GPU. Shows GPU's or DSP's can be used for this. Probably Adapteva's chips, too, esp since they might negotiate for volume deals.
https://people.csail.mit.edu/idish/ftp/silberstein13asplos-g...

Tilera's were used in a 100Gbps NIDS that I recall. I expect your protocol and algorithms to be simpler. ;)
http://www.tilera.com/products/

So, goes to show either custom, FPGA, or better-suited chips can handle that part at great performance per watt. Cost varies with implementation strategy. Nonetheless, simple functions with streaming data model greatly benefit from this strategy.
Documentation can also be useful without working software.

For example, when you have to interface with others. They can work on the software that depends on yours before you have even written a single line of code, and it will work.

Software without documentation also can lead to serious issues – as in the "does the train continue running when the signal is broken" question I mentioned a dozen times now.

In actual critical projects, Documentation over software. The best software is nothing without documentation.

That’s the first point where I have to disagree with it.

In many other points, agile leads to teams just carrying the technical debt with them.
Do those other cards you mention push 1Tfps?
>we’re gradually rolling out the first set of these improvements with the latest version of Google Maps on Android //

Wouldn't it be nice if there was a version number so one could tell if it was worth updating yet. This is a big plus for me, the old option to cache a region of maps was very useful and this seems the moreso.
All of this smelled to me like a teenage power struggle from the get go.
Let's say that you're right about that.

What's the consequence, then? War of all against all, as the Yale students seem to want? Or we learn to coexist with people who have different fundamental moral axioms from us?

I vote for option B.
> Absolutely. This has no relation to the development process used to build those systems.

Yes, it has.

Agile encourages people adding features without previously planning every single interaction of the feature with every other piece of software. Which means, Agile encourages writing code without being sure it will interact safely with other parts.
Big data stories in seconds: Hacker News
It is not only value to the customer, but how closely your product fits the customers needs. Charge a lot and you are selecting for a very tight customer fit where all your features match exactly with what the customer wants. As you drop down the value curve you are selecting for a looser and looser fit.

The consequence of this is more of your features don’t work the way the customer wants and hence even if the overall value of your product is high for the customer, they experience many more annoyances using your product. Annoyances seem to generate far more complaints than lack of value. If I use a product that offers me little value I almost never complain about the annoyances I just stop using it, it is the high value products that don’t work the way I want where I bother to write a complaint.
Google is feeling the heat from open maps
well allow me to put a note here as someone who uses it successfully regularly.

Also I explain several times why he doesn't seem to understand it - having non-technical people running his scrums, working overtime and screwing up their velocity measurements, not being able to cope with changing requirements. These are things that scrum was built to _directly address_.

I say again, if you're criticising scrum as being too onerous, you are probably either using it wrong or using it where you shouldnt (where you dont need to track your progress.)
Probably the latter. In my view, Netflix (IBM, Amazon, Bloomberg etc) should consider what would happen if they were completely honest to their employees:

"You are a cog in our machine. We do not care for you. We only care for your work. We will pay you insofar as you can execute on our vision. Further, you will be paid according to how hard it is to replace you. If you can be replaced by someone who executes significantly better, relative to your pay, we will tell you to leave."

Needless to say, stating that would make many of their employees, especially the weak-minded and insecure (those who defend their terrible culture), unhappy. I imagine even those in charge of the culture, speaking those words, would feel bad.

And they should feel bad. While such overwhelmingly negative words should almost never be spoken with authority, these decision makers must at least be able to answer the question "What are we really saying to our people?" truthfully. And if the answer is something along the lines of "you're a cog in the machine", then something has gone very wrong[1]

In my non-expert opinion, if a company truly wishes to be a "good" place to work, it should know the distance between their words and the truth, and then focus on minimizing that distance.

Spoken more simply: the more dishonest a company is to its employees, the worse the culture.

[1] Or right, if the company requires joylessness to turn a profit.
IANAL and could be completely wrong on this, but I thought a judge would have to issue a temporary stay for them to continue without the threat of some sort of retroactive penalty for violating the cease and desist.
Here's a better idea:

Get rid of electronic voting entirely.

It's an incredibly hard security problem that hasn't been solved. Making the software open-source is putting lipstick on a pig.

(Somewhat reassuringly, a slim majority of the readers of the article agree with me: http://i.imgur.com/k5OZ7vB.png)
White has first-mover advantage, maybe your browser does not support asm.js? At least on Firefox blue won, but the page load so slow I don't care to repeat the experiment right now.
I spent a couple of years in Ontario, including a few months in Sarnia (about an hour and a half north of Detroit), and I certainly heard a lot of the "de-TROY-it" variant. I found it amusing.
> Ah good, now we're talking specifics.

Well, specifics within a hypothetical. Hypotheticals are always game to to discuss. :-)

> Does REPORT ZONES not point to this conventional section always?

Yep, REPORT ZONES includes the conventional zone.

> I cannot wait for a FORMAT ALL ZONES

I agree that would be nice, but there are no indications that anyone but the vendor will control conventional vs. sequential layout, sequential sizes, or maximum # of explicitly open zones, anytime soon (absent asking for special favors for a large batch order).
Nirvana was a thing before the band.
Which language has the best future in replacement of C between D, Go and Rust?
"Shhhh-eeet-hole"
No, it is not. Your software might be working later on

It might be, but it almost certainly won't be. See the errata to any set of documentation. But this is a digression – if the acceptance of your product or feature requires documentation of interfaces in advance, then that's a requirement that can be met regardless of the development process that you use.

Additionally, software without documentation leads to issues like "does the train continue running when the signal is broken?", and similar ones.

No, that's what incorrectly designed, implemented or tested software leads to. But again – if documentation is required, using an agile process in no way restricts your ability to meet that requirement
One possible explanation could be that the areas with high COL are also the areas contributing higher to the overall GDP which in turn implies that there are lucrative industries with relatively better enriched workforce. FWIW, Bay Area + NYC metropolitan regions alone make up roughly 15% of the overall US GDP.
I’ve worked on some agile projects from others that I picked up and had to "fix", where we, now, after 2 years of trying to work with them, have decided to completely rewrite them from scratch.

Every agile project I’ve seen yet was just a huge ball of technical debt. It worked, it had few user-facing bugs, but adding features was impossible, and the documentation was "whatever the software does". Completely matched the agile manifesto "working software over documentation" and "change over plan".
I was in my twenties, I was hugely turned on by the electronics I was learning, and I was bursting with creativity! There's a little bit of Back Story explained here, especially the "my KIM" section at the bottom of the page.
http://laughtonelectronics.com/Arcana/KimKlone/BrideOfSon%20...

Also I'm a Forth fan, and when when I realized the counter/timer of a 6522 could be tricked into serving as IP for a 9-cycle machine-code NEXT instruction, the idea amused me immoderately (LMFAO) and I had to build the darn thing! :oD Previous HN thread here:
https://news.ycombinator.com/item?id=3070169
I'm hoping to write an expanded post about this, but for now: we're using the 2009-2013 American Community Survey (a product the Census Bureau puts out yearly, rather than the every-ten-years Census). You can download CSVs of the whole thing here: http://www2.census.gov/programs-surveys/acs/summary_file/201.... We took those and TIGER data (geospatial data specifying what areas each of the stats in the CSV correspond to), and put them into a Postgres db with PostGIS.

If you're not looking to show the whole US at a granular level like we are, you might be able to skip the FTP server approach a few ways. They recently released CitySDK (https://uscensusbureau.github.io/citysdk/), which seems like a nice way to get at Census data from the browser, though I haven't personally used it. There's also a set of APIs (https://www.census.gov/data/developers/data-sets.html), which might work depending on what specifically you're trying to do. A third way to get at it is to use American FactFinder (http://factfinder.census.gov/faces/nav/jsf/pages/index.xhtml), which lets you drill in and search for whatever fields and/or geographies you care about, and export them.

If you just want to browse around Census data, I also love Census Reporter (http://censusreporter.org).
interesting - I recently heard someone call it a forecast and thought 'man why don't they use that term in scrum?'

Nice to know that they actually do (I havent read up on it in some time, probably should)
>> If your software is working, but there is no documentation

> This is not a prerequisite of agile development.

What I often see in "waterfail" projects is documentation that's inaccurate and reflects what once was the plan someone wanted to build.
But when you have to document and plan everything you write before you do so, isn’t that again waterfall?

Are you just telling me that waterfall is also agile?
The way you phrase it makes it seem like the parties involved are perpetually at risk of being compromised, as though they must retain and store the secrets necessary for parameter generation forever. When in fact it will be done once, and well in advance of any significant value in the currency which would incentivize crazy government yatta yatta.
Because users hate additional steps.

Because you can't expect the email server/client to index the invoice for it's search database.

Probably other reasons
It must be really expensive tho (even with discounts). But I guess they don't care.
My favorite example of this is deleting a draft in gmail. Go make a draft and try to delete it. There's no button to delete it. Unless you click the checkmark! Then the button appears where previously there was whitespace. Ugh.
> What possible benefit to New Yorkers is there to not allow them to take bets, if things like state lotteries are still legal?

Just because the state lottery is legal doesn't mean anybody can go and create their own lottery. Notice how you see "no purchase necessary" on every single promotional event where you can win something?
Isn’t Java the 21st C. answer to Cobol?
Russia’s Amazon for Prisoners Offers Online Shopping and E-Mail Behind Bars
UCSB Cylinder Audio Archive
"Working software over comprehensive documentation"

over != instead of:
"That is, while there is value in the items on the right, we value the items on the left more."

And no, you probably wouldn't use agile to manage the project of heating the ISS. That is a very static problem space with unique requirements. Using the same framework to plan and build anything related to heating the ISS to build an HR system would be overkill. Right tool for the job, etc.

I've worked on both good and bad agile projects - all have involved managing change. The good ones didn't involve throwing a plan out & doing what you want. They merely accepted that when you start building a solution, you lift rocks and uncover requirements that you never envisaged having. In an agile environment, you can deal with that - bring those things onboard, reprioritise and rescope, giving an accurate idea of when a product is going to be delivered. In a traditional waterfall environment, these same requirements get left until the now-woefully inadequate product is built, and useless to anyone.
"Agile works for web services, for small apps, but that’s it. Anything larger, or more complex, needs planning, thought, and design. And often needs refactoring."

I hope you discover the flaw in this logic sooner in your career than later.

I'll start with a hint: You are misreading the Agile manifesto. All successful teams and companies - Agile or not - do planning, thought, design. And the Agile community (which came out of the Smalltalk community) also invented refactoring (in the disciplined sense, along with the first Refactoring IDE).

Here's another hint: very few actively run systems in financial markets/brokerages were written with a waterfall method since the mid 90s. Not all were developed with great agile either, but let's just say they were "incremental and iterative". These are complex systems. They're not designed for 8 months on paper.

"And in any serious development, where your code is going to run critical systems for decades, you can’t just work agile."

This is somewhat true, assuming you have stable requirements. But almost no software, even for complex systems, runs for decades without an update. It just doesn't happen anymore except in the most constrained environments (space exploration, signal/control systems in dark territory, etc.)

If your career trajectory is working for the military building weapons guidance systems, or an FDA manufacturer building blood pressure monitors, you also may come close to this ideal.

But note even companies in mission critical healthcare, like Philips, are adopting cloud, open source, and agile in their next-generation health management systems that integrate with their MRIs and CT scanners.
Wow, people do this? I did have an error go unnoticed recently, but it was like this:

v1, err := doStuff()
if err != nil {
return
}
var v2 MyStruct
if value != nil {
v2, err = doMoreStuff(
some_param,
different_param,
one_more_params)
}
// ... use v1 and v2
err = doYetMoreStuff()

I didn't catch the orphan err because I absent-mindedly focused on the parameter list to doMoreStuff() and just didn't see it.

But I find it frustrating that Go will, on the one hand, angrily refuse to compile a program where a variable is unused, but on the other it will happily accept a program where a value is never used. Isn't that potentially as bad? I'd rather have it complain and force me to assign to _ if I really wanted to discard it.