skysight-inc/HackerNews huggingface dataset:
Launch HN: Armory.io (YC W17) – We Make Deployments Boring and Self-Service
Hi HN, I’m Isaac, co-founder and CTO of Armory in the YC W17 batch.
Ever had a deployment fail only to find out it was impossible to rollback to the previous version? Or get paged at 2am when the user experience is broken?

Armory.io makes deployments boring (like ‘waiting for your code to compile’ boring), non-events that happen continuously, and always in the background. We do that by simplifying the installation and configuration of Spinnaker - an open source continuous delivery platform from Netflix.

We all worked together at our last company and experienced the pain of scary deployments with low engineering velocity. When I became the SVP Engineering there, I decided that needed to change. We broke a brittle monolith app up into microservices, started deploying with Kubernetes, and created a CI/CD pipeline that allowed us to go from deploying just a few painful times per month (taking weeks and multiple manager approvals to deploy) to 2,000x deployments per month, continuously. The cascading effects were that we started working on parts of the codebase that had been stagnant for years because we were afraid to touch them (the original developers had long left the company). Here’s a screenshot of a chart that shows the delta: http://drod.io/43452e3V0N28 — each color is a different microservice; you can see how those blossomed as we broke the monolith up and started deploying each microservice on the cadence that was best for it. And we had much happier engineers, too, because they could see their code running immediately in production, and they took ownership of it running successfully in prod (as a side effect we went from a traditional ops team to a no-ops approach).

We were so passionate about the transformative effect this had on the company that we started Armory to bring it to any company — which is especially needed in large, low performing organizations that typically deploy just 7x per year (compared to 4,000x per day at Netflix).

We’d love to hear your stories of deployments gone wrong, hear your questions about Armory, or anything else on your mind!
We may think that an automated system requires less understanding of it in order to operate it. But from the other point of view, you have to know what you are doing, consequences of even an small change are big.

This is one of the things that happens with windows, getting up a server is so easy, that people believe that they don't have to understand what's under the hood, and then, we get a lot of miss-configuration and operational issues.
It can validate inputs and not let you enter out of range data. You can know that an answer is wrong without knowing what the right answer is.
Guess you're not working in a very agile company. Enjoy your bankruptcy soon.
There's a parallel with the early film industry. In the early 1900s, when a film had completed its run at the theaters, no effort was made to preserve it. The amazing science fiction classic "Metropolis" was a famous example. We still don't quite have a complete copy of this groundbreaking visionary film, and until recent years (when missing scenes were discovered) DVD releases of the film had placeholders describing the action that was missing.

https://en.wikipedia.org/wiki/Lost_film

It sounds like we are doing a better job preserving our early video game history than we did preserving our early film history.
I can't wait until quantum computing lets us add a degree of simultaneity to fucking up. Fuck up in many ways... AT ONCE!
"I did."

That was CEO Robert Allen's response when the AT&T network collapsed [1] on January 15, 1990

He was asked who made the mistake.

I can't imagine any CEO now a days making a similar statement.

[1] http://users.csc.calpoly.edu/~jdalbey/SWE/Papers/att_collaps...
They have no choice in this situation.

CEO's all over the world just realized that they can't only depend on S3, and they might have to double up on their infrastructure and have a parallel env. on Azure or Google as well.
Yeah as soon as I read this I felt bad for the employee. I remember writing an update statement without a where clause and having to restore the table from backup. But that was at a company not as advanced as Amazon. Fat fingering a key like that is just crazy (but comforting that even at Amazon it happens) and I'm sure they've fixed that from happening again.
Fowler has probably received a letter from an Uber hired lawyer asking her to take down the blog and threatening to sue her for damages.

Why else would she hire a lawyer? I see no other reason why she would hire a lawyer except to respond to a scary letter on scary letterhead that was probably personally served to her doorstep. (Which alone is a horrible experience one wishes on no one.)

Everyone, buy that Microservices book! https://www.amazon.com/gp/product/1491965975/ref=as_li_tl?ie...

(I grabbed the link directly from Fowler's blog in case it includes any affiliate juice for her.)
> One doesn't need to train a deep nn for recognizing structured objects like a coke can in a fridge.

I disagree. Sure, you don't need a NN to recognize one Coke can in one fridge for your toy robot project. If you want to recognize all Coke cans in all fridges, for your real-world, consumer-ready Coke-fetching robot product? You're going to need a huge dataset of all the various designs of Coke cans out there, in all the different kinds of refrigerators, and your toy feature engineered approach is going to lose to a NN on that kind of varied dataset.
Java frameworks are made for very large enterprise systems operating at high scale. Not for startups or POCs or personal projects. Frameworks for that actually exist in Java too, but they are harder to find.

Once you know Spring, it actually makes you faster at building robust systems. Hibernate too, though SQL is easy enough I'd recommend against it, but c3p0 is a must for robustness, and hibernate does make it easy to switch to it.

Now, Java is akin to PHP in that a lot of devs use it at small to medium size companies that don't always value tech. This means a lot of Java is written badly, concepts are misunderstood, best practices like layered architecture, interface indirection, class inheritance are pushed to extreme nonsense and abused greatly.

Kafka and Zookeeper and Maven are hard to setup, but it's because they solve very complex prolems. I don't know any other open source dependency manager who offer the robust features of maven like self hosting, build and dependency resolution all in one and signed artifacts. Zookeeper is like the only coordination frameowrk that passes Jepsen. Kafka is unmatched in its special use case too. You're playing with framework handling highly complex problems, you shouldn't expect the easiest learning curves.

Why are you even playing with these? There's very little project that would need such beasts.
Do you like platinum style beat-em-up/spectacle fighters? If yes, then for what it is, its a great little game.

If you do not like those games, then no. I got it as a gift, but I would have gladly paid 20-30USD for it. Even though I'm not a massive transformers fan.
That's why I go by my own definition of defensive war, and not the government's ;)

And it's one more reason not to comply with conscription and sabotaging this authoritarian practice.
Show HN: Keep up on news, products, and Wall Street analysis around Snap, Inc
Marketers don't know WTF agile is
That's not how the Internet works. If your ISP is throttling, both upstream and downstream traffic is buffered on its router.

This is a consequence of how congestion is signaled in IP networks: by dropping packets. If the ISP is the bottleneck (it almost always is, due to throttling in both directions), it signals this to upstream equipment (i.e. the source of the packets) by dropping packets. They aren't sent back to some random router to be queued up.

Bufferbloat comes in because the ISP is trying to make use experience a little less crappy by hanging on to bursts of packets which would otherwise be dropped, with the intent of forwarding them on at the throttled rate. The consumer's router does not do this because it has no way of knowing this is happening. (But see below.) This is fine, except ISPs make their buffers HUGE.

There are two ways around this: one is, as you suggested, to use fq_codel, which monitors flows to infer packet buffering or loss at the ISP. So then, it is able to avoid sending packets which would be buffered or dropped by the ISP. The other is, as I suggested, to make your router the one dropping and buffering packets, which it normally does NOT do. It has no reason to: the links to the modem and the client are typically much faster than what the ISP throttles to, and those links are all it can see. (Though it's not unlikely that the user has subscribed to a higher speed than their wireless can handle, in which case inbound traffic is queued on the router, NOT outbound traffic.)

Yes, if your router is underpowered and you have a high-speed connection through the ISP, then your router could become a bottleneck and show bufferbloat. That is almost never the case, and when it is, it can happen in both directions.

The GP has "a way out", it is exactly to perform the steps I indicated. fq-codel is nice to have but NOT necessary.
> Why are goods even transported via trucks if rail is such a viable and cheaper alternative?

Multi billion dollar subsides subsidies. Markets are only rational when left alone, toss more than $425 billion dollars just to build something and then maintain it with government funds and efficiency takes a back seat.
You'll see that many European nations ended conscription during the last decade(Sweden in 2010)[1]. If anything this seems to signal a new trend: reactivating conscription.

[1] https://en.wikipedia.org/wiki/Military_service
Long-long-term it is probably going to supersede regular Visual Studio, which isn't (and without gargantuan effort probably never really can be[1]) cross-platform.

[1]: more effort than bringing VSCode up to feature parity
And people were asking why these women just don't sue. It seems people need to be careful and think twice even when writing a blog post let alone sue.
> What do you do with a conscript who never wanted to be there and possibly fundamentally isn't suited to military life anyway gives up? Threaten them with legal action?

Military jail.

> What do you do if they sort of do what they're told, but not really putting any effort into it?

Crap assignments (ex: peel these 1000 potatoes then go clean that latrine) or military jail.

Both are surprisingly motivating.
Lisp languages cheat on that by pulling relevant metadata from the image after you loaded the code in. So if you just open a project as text, SLIME won't help you find e.g. a list of places that call a particular function - but after you load it into your Lisp image, cross-referencing features become available.
There are several hop farms in Vermont, Addison being the largest probably. This article about the boon in hop farming there is almost six years old:

http://www.sevendaysvt.com/vermont/resurrecting-hops/Content...

Most of the US is in the wrong climate to grow coffee, do people drink it across the country just because it's "hip"?
With all due respect, this is exactly the attitude that will prevent enterprises from ever taking Docker seriously.

Why should enterprises trust you on backwards compatibility when longstanding issues with backwards compatibility were just fixed and then glossed over like this ("it never broke in practice because we forcibly made you update")? Docker has repeatedly made poor decisions with really poor optics both in the open source community and with their product, this is just one example, and asking enterprises to just trust you now while not even providing the support terms most of the enterprise world demands is doing the exact opposite of inspiring trust.

Do you honestly not remember sunsetting the python docker registry just a year and a half ago and then introducing a brand new golang registry product with an entirely different API? Because that's precisely what enterprises pay to avoid, they don't shell out absurd money for LTS versions to hit a constantly moving target. And please don't patronize me with "past problem", some of us lowly end users of your product had to clean up that mess just to get day to day operations working again. Forgive me if I'm gunshy.
I think 'simple' in this case means simple to use, not simple to install or maintain. In any case, it should get easier to install and maintain when it's widely used and in distro repositories.
I would be horrified if I learned that Amazon or any other company of such size in any way castigates employees for such very human errs. The guilt (don't beat yourself up) he or she likely feels is bad enough.

Anyway, to me this firstly sounds like a "tool" or command that was too powerful with not enough safeguards. Who knows, the command might even be ambiguous.
Ethnic cleansing by itself violates the non-aggression principle, but nice try.
I don't buy that sponsored content or hardware are that exciting in terms of monetization potential. Geofilters are interesting new ad product, but as an ad product they are not really that exciting as you lose virality(ephemeral) and sharing. They are limited to your immediate social network.

>it's actually been in international markets primarily

I'd like to know where you read this. I'd still be concerned because they've pretty much saturated the millenial market at this point. They need to grow in other demographics or internationally.
I'm not a CoD guy so I can't speak for it, but I don't think BF initial progressions hinder you much. It's a pretty well-balanced game in that the new weapons do more to add variety than give the player an advantage. I will say though that the new BF1 has some dark patterns that encourage you to keep playing (like progression meters that scale non-linearly, so it always looks like youre really close to getting the next level).

I get what you're saying though, and I would say most sustainably competitive games, the ones that really stick around, are ones where everyone starts every game from the same initial conditions.
> are there any copyright licenses that do restrict activities other than distribution?

Quite a few.

The JSON license prevents usage in weapons, the old Java license prevents usage in nuclear submarines (until RedHat lobbied to remove that part), etc.
His phone was confiscated and searched. The people doing the searches don't have clearance to access the information on his JPL phone, so on the contrary, the search constitutes a breach of national security.
Somehow, even at scale, "all press is good press" still rings true for Uber, as "bad press" has a way of reaching an unaware, untapped market for them. Uber would regularly experience their largest spurts of user growth during times of "bad press". Taxi protest in the UK? Record numbers across the board in Europe that week. Driver accidentally kill a child? Millions download the app to see what that's all about. Best yet is when a metro's city council poo-poo's Uber's model or regulations, you'll see record growth in that city based off of local news, and now Uber has a localized movement of riders they can lobby to campaign for Uber against the city council. There's a playbook for that.

The number of deletes rarely surpassed the number of signups during any given "PR crisis" or #delete campaign. Fowler wasn't the first time, and it won't be the last.
Nice card! So about 1500 write IOPS at 4K.
Performance might be worse (or better) at other queue depths though.
I think you're on the slippery slope here that lead to thinking Itanium was a good idea.
To me, the more important part would've been the solutions they'll come up with to avoid something like this happening again. Is it going to just be "add a line to the playbook asking the engineer to double check the command" or will they make big changes across the system to prevent things like this happening.
Posting on HN (or reddit, or...) will never die, because you get to correct people who are wrong on the internet. Snap not so much...
Continuous Discussions Podcast Ep 62: Coordinating CD and Traditional Releases
Great point. I know it's not the best comparison feature-wise, but look at the public reaction to Google Glass vs Snap Spectacles. Snap understands how to make the product sexy, not just tech-sexy. Snap understands how to make their innovation fit into the lifestyle of their users.

Anecdotally, it's been interesting to see GoPro take off over the years, spreading from "extreme sports pros" at the beginning to include more casual/recreational uses now. A lot of friends who wouldn't have considered buying a GoPro 5 years ago (because "they don't do anything exciting/dangerous enough to need it") are now considering GoPros to document the slightly more exciting parts of life. These same friends are even more strongly considering Spectacles, because Snap made a product that fits into their lifestyle (lowering the barrier of what is "interesting enough" to capture)
> In what perfect world? In the real world, triage is a thing.

And SD cards pretty come come in cracker jack boxes.

Storage is cheap. :)
I ended up just doing a one op conversion. Multiply by a manually eked factor which is the maximum value which the maximum-source-value can be multiplied by and not make 1. That just minimises the gap at the end of the unit interval which is caused by the limited resolution. I judged its not possible to get too close to 1, so just found the biggest float factor which doesn't get to 1. If that last 0.9999... value has a larger chance of occurring than any of the lesser, that seems good to me for numerical purposes as it hides the shortfall of not being able to express 1<
There will be irregularities in the meaning of the least significant bits anyway due to rounding 'noise'
Can confirm. I've noticed this social trend as well.

However, interestingly, there also seems to be critical threshold (different for every task) beyond which the opposite urge takes hold. Take, for instance, customer/technical support hotlines. The feeling of, "Please just let me talk to a human..." In that case there's a premium on the presence of human interaction. It almost seems like an "uncanny valley" of technological problem solving. In other words, machines are useful but usually brittle. Humans have a flexibility and creativity which won't be easy to replicate.
I don't go out of my way to ask about hobbies, but if they do somehow come up during the interview and you find you or one of your teammates have something in common with the candidate, that could be a positive sign. The more compatible the team is, the better.
Looking forward to that! Also would be nice see -j8 results.
tl;dr: Engineer fat-fingered a command and shut everything down. Booting it back up took a long time. Then the backlog was huge, so getting back to normal took even longer. We made the command safer, and are gonna make stuff boot faster. Finally, we couldn’t report any of this on the service status dashboard, because we’re idiots, and the dashboard runs on AWS.
For traditional providers yes, I dont think so for YT TV. Look at this Forbes article, it says:

"It has 40 or so channels of broadcast and cable TV, including NBC, ABC, the USA Network and Fox. ESPN is also a part of the bundle."

ref: http://fortune.com/2017/03/01/youtube-tv-underwhelming/
The scale of damage to the Oroville spillway
I didn't have a problem with it in chrome.
Good UX is important, even for things like scripts. Unfortunately a lot of tech people take pride in working with hard-to-use and error-prone tools.
Pythonic String Formatting
Магазин измерительных приборов – pH-метры, купить по низкой цене, Киев
> And any time you allow mutability in any form ...

Odersky often says that the mutability should be as 'contained' as possible in what is otherwise a largely immutable codebase. If you can reason cleanly about a black box and are sure that the mutable variables within are not going to 'escape', you get the benefits of both

1. easier to implement, imperative algos which have been around for decades. (the alternative in pure FP is to convert stuff to tail recursion, which is not always the easiest thing to do, let's just say.)

2. easier reasoning about state not leaking to the rest of the system.

I've found following these guidelines to be very helpful.
Just to nitpick ... 'on the (would-be) plaintiff.' ... IIRC, Susan has not made any indication she intends to sue. Her article merely commented on her experience at Uber and I didn't pick up any language which indicated she was still annoyed or angry enough to want to sue.
I'm not sure if it's a question of indoctrination; I'd prefer to think that it is much more a lack thereof. Many things are "developed" without any appreciation of elegance - and the bit of old, overdesigned and overcomplicated C++ code I've seen tells me that Java's culture problem just stems from everyone moving away from there and continuing their style in Java-Land.

No language will ever be able to combat this - the only strategy you can have is to make your language so different and confusing to regular people that they won't use it; but I doubt that would result in good languages being created.

If you have a look at how modern C++ is presented and explained nowadays, there's much more focus on readable/useful code and actual design. Many language communities go this route (Clojure, Python, what have you), but that doesn't stop the average Joe to ignore those advices it if he so desires.

Add in some crunch time where everything must be implemented ASAP and without consideration of the consequences and voilà: You end up shovelling snow around[1].

That being said, I especially like Clojure's approach to things. For example: Turns out good, maintainable C++ uses const almost everywhere - to avoid messes, you try to encapsulate mutable parts as much as possible (unless performance dictates otherwise). This is a thing that is still very clunky in C# and Java (and it seems very much overkill to use virtual inheritance for this. Say hello to IReadOnlyDictionary<T>). In contrast, Clojure makes almost everything read-only and uses mutation at very specific points. This is great - although of course you won't be writing any high fidelity videogames this way.

Edit: Of course, when I say elegance, I realize that it's very hard to get actual things done from the Tower of the Elephant Tusk[2]. But yeah, stopping once and a while to understand/consider your problem and possible implications of your implementation gets you a long way.

[1]: http://gizmodo.com/programming-sucks-why-a-job-in-coding-is-...

[2]: http://thecodelesscode.com/case/143
It's not a slippery slope if people are given access to resources, time on state owned TV stations, and hold positions of power they are part of Kremlin there are no alternative sources of power or resources.
> That doesn't sound like conscription

It's not, but the headline serves as a catalyst for a conversation people want to have anyways.

That's how it works, folks.
"People make mistakes all the time...the problem was that our systems that were designed to recognize and correct human error failed us." [1]

[1] http://articles.latimes.com/1999/oct/01/news/mn-17288
tl;dr: Uber will be the first trillion dollar company because people have been wrong before. Here are quotes of them being wrong.