I had a Pixel which literally slipped half an inch to the floor and the screen cracked. Verizon told me that it was damage that I did and thus they wouldn't replace it. I complained that no phone should just crack from such a small fall; that the phone isn't made right if that happens.
No dice. Had to replace the screen. Which I did. Then I returned it for an iPhone SE. And that iPhone has survived much harder drops with no damage whatsoever.
How much did you pay to get it replaced? Did you use ubreakifixit? My Pixel died in a similar way, fell out of my hand while pulling out of my pocket, fell on the floor, screen dead. I went back to my iPhone 6s but the day after my Pixel died my Daydream headset arrived and I'd really like to try it at least once...
ubreakifixit is the only place that can do a glass replacement and keep it with warranty. If your screen is dead, and not just your glass cracked, I don't know. A screen replacement was $160.
What? No! There's no indication at all these two libraries are compatible - why would you want two completely disparate projects to give some indication they support the same interface?
Because many of the base infrastructure libraries are compatible as long as they used interfaces (grumble grumble os.File). I would be very surprised if this doesn't implement net/http/ServeHTTP
There are cases where it makes sense, like https://github.com/pkg/errors which is meant to be a drop-in replacement for the stdlib `errors` package containing a superset of its functionality.
FWIW, having played around with Google's routers, they work pretty well, even from iOS. Chromecasts "just work" in the old Apple sense of the term: you plug it in, you find the thing you want to watch online that you want on your TV, press the button in Chrome and hey presto, you got your cat video on your OLED.
If you're OK with having Google store data on you[1], I'd say the Google hardware division has a lot of what you talk about here.
[1] Before the flood of angry HN replies come in, I get that is not everyone, but knowing what I know about Google's privacy practices, I am perfectly happy with that.
I spent about an hour last weekend getting a Chromecast working again but I agree that they're mostly pretty simple to setup and "just work."
I also really love the idea. TVs should mostly just be big monitors and decoupled from the source of content. Especially in conjunction with both tablets and web browsers on a laptop/Chromebook, this is precisely what Chromecast enables. I don't think I've used any of my "smart TV" features since I got a Chromecast. It was always painful to enter things like passwords anyway.
I use Google services where there’s clear value in them storing my data, but I’m yet to see an explanation for the value proposition in Google’s routers so I can make a choice as to whether it’s worth it to me. How will they use that data to make a better experience for me?
Unfortunately I've had a lot of trouble with the quality of the first and second gen Chromecasts (haven't tried the newest 4k ones). Whether audio cutting out or endless buffering over wireless its always felt a bit janky and unreliable, even after I got the wired ethernet adapter plug. The Chromecast Audio however has worked very well.
Last I checked, the google router thing didn't support IPv6. Has that changed? I've been using IPv6 at home with a previous-generation Airport Extreme for over four years.
> Chromecasts "just work" in the old Apple sense of the term: you plug it in, you find the thing you want to watch online that you want on your TV, press the button in Chrome and hey presto, you got your cat video on your OLED
I wish. Chromecast could not mirror or could not stream audio. Eventually, I was fed up and I bought an Apple TV.
On iOS, chromecast support is up to the app. This means no streaming movies you got from Amazon or Apple. This kind of behavior might make sense from a service, but not from an appliance.
That said, chromecast has probably my favorite interface for interacting with the set-top box. I mourned moving on to the apple tv.
The worst case scenario was 5x, which was a factor of 10 off. If you are that far off when you do your capacity planning, you can be pretty sure you've got problems throughout your entire stack.
There is literally no way anyone could have expected it to do this well. Nintendo has steered clear of mobile gaming because they expected all of their IP to flop in the mobile world.
That said, what you said is still true. If you're thinking you're going to have 100k users, you might be willing to allow a lot more data to be transmitted and/or processed than if you had 10m users. Just looking at tracker alone, having to transmit and measure distance between a dozen points and ordering them is a lot more work than checking whether a dozen coordinates are within a range and listing them in any order.
> Nintendo has steered clear of mobile gaming because they expected all of their IP to flop in the mobile world.
I don't believe this for a second. Nintendo knows where its goldmines are. IMHO it is far more likely that they steered clear of mobile because they didn't want to cannibalize their Game Boy sales. It's a classic case of a big corporation being slow to react to change or even trying to stop it because they hold a dominant position in the old system.
Nintendo would much prefer if "mobile gaming" still meant Game Boys but the world has already made their decision and they can't stop it. They can't ignore the sales figures on what would have otherwise been an obscure goofy spinoff fitness app on the Game Boy. They've ignored the mobile market for too long and now there is pent up demand. Without Pokemon Go I doubt you would have seen the sudden scramble to develop and release a Mario game for iPhone.
>> Nintendo would much prefer if "mobile gaming" still meant Game Boys but the world has already made their decision and they can't stop it.
I'm not sure this is entirely accurate. The Nintendo 3DS (I assume what you mean by "game boy"), has been a very successful product for Nintendo. And sales of the 3DS have actually spiked as a result of Pokemon GO.
While it may be a success, the 3DS has sold half of what its predecessor the DS did (~60 million vs ~130 million units worldwide). The NX will probably sell half again of the 3DS. The market for handheld gaming systems is dead or at least terminally ill. And I say this as someone who plays on a New 3DS daily (don't get into Monster Hunter if you want a life).
The reason Nintendo has avoided mobile gaming is probably down to fear of piracy. The DS was ruined (from Nintendo's POV) by flash carts, and with the changes they made on the next generation the barrier to entry for copying games is now lower on Android/iOS than on the 3DS. I think that when they do finally go mobile, the games will have a lot of server-side checks going on. The games will be a pain in the neck to play even if you are paying. For example, always-on internet required will only work on non-rooted devices, that sort of thing.
For sure - we're on the same page, although I'm a little more bullish on the future of some sort of hardware gaming platform, like the upcoming NX. I'll be the first to admit that could be wishful thinking, but I just can't go over the thought that my phone isn't a serious gaming device. Monster Hunter is actually a perfect example. When we get the crew together we'll rock for 5 or 6 hours, swapping out chargers. I can't see myself ever doing that comfortably holding a piece of glass.
That chart is not at all accurate. If it were, it would be telling us that over time, they expected no change in data volume? They set a single number as "Expected volume", and a single number as "worst case", with no planning for growth at all? That's what this chart is showing. Either they were so poor at planning that this chart is accurate and the fault is on them, or the chart is inaccurate and we can't really trust any of the data it represents.
I can guarantee you the chart is accurate as I created it. Yes they did expect change, but the only number that matters for this graph is "how big can we get" and then "if we get that big by the end, is there enough capacity". The answer to to the first one turned out to history making ; no-one in their right mind would bet on happening beforehand, and the second turned out to be "Yes".
Since you created the graph, could you provide more context as to the units of measurement and scale for the axes? Are you using the derivative of growth as biot mentioned below, or something else? This graph shows two lines that stay static over time (meaning that either Niantic started off on day one with their entire server infrastructure already running with no plans to scale up, or they did not plan to scale up as demand grew), and one upwards trending line that shows actual changes in traffic over time. I'm trying to discern what this graph is supposed to represent, and if it's supposed to represent the expected traffic over time versus actual, it's showing that there was no expected growth in traffic.
I cannot dive into too much more detail than is in the graph since it's still sensitive information. Y-axis is essentially traffic to Cloud Datastore (think: after layers of caching, etc), x-axis is date.
The 2 lines can be thought of as ceilings or upper bounds, hence why they are static - this are the numbers that traffic was expected to eventually reach at peak.So you can think of it as, "we thought we'd be looking at graphs that had this line as the top and traffic would be some curve underneath.
Obviously from the graph shown here, we/they needed a tall graph.
I think that my issue with the chart (and it's such a minor issue to quibble about) is that you're effectively treating your single dataset (actual traffic over time) the same way you're treating your annotations (expected and worst-case traffic). Both of these different things are represented the exact same way in your chart, which is a confusing way to structure things. I would alter the appearance of the ceilings/bounds to not be represented in the legend, and instead be on-chart annotations that show where those expectations were relative to the actual traffic. I would also recommend adding even the most rudimentary labels to the axes.
No arguments there. There's a balance that needs to be struck between technical detail and marketing appeal. Not everyone is going to agree on where that balance is, less so when you're trying to share sensitive information without giving too much away.
> The 2 lines can be thought of as ceilings or upper bounds, hence why they are static
I think this is the disconnect. This wasn't not obvious to me. It looked like everyone was expecting flat growth at either 1X or 5X. If there was a line showing what they thought would be the traffic that goes up (which would be expected) in addition to the ceiling lines then I think there would have been a lot less confusion.
I wonder if a single bar graph would have illustrated it better with overlaying colors for each ceiling.
> I cannot dive into too much more detail ... since it's still sensitive information.
Question: When should we start checking around for posts containing
A) High-level technical overviews with some basic implementational detail
B) In-depth analyses of the stack you built, the challenges you faced, what improvements you folded back into various open-source components, what you'd have done differently, etc etc
?
I'm thinking in terms of timescales - like n months or so. I suspect (A) will be a little easier (and quicker?) to publish than (B).
If one interprets the graph as "derivative of transaction growth" instead of "number of transactions" then it makes perfect sense. The derivative of linear growth is a horizontal line, whereas quadratic (edited, thanks acomar) growth would be a line that has slope.
Do you know how those estimates are made? As someone who only passively follows some Pokemon news it was obvious that Pokemon Go would be absolutely huge on launch. It was all over facebook, youtube, reddit etc since the day it was announced. I don't think I've ever seen so much hype for a game, including major AAA titles. It seem strange to hear that no-one in their right mind would think it would happen.
Yes, and I can tell you even though I spend every day working with extremely large scale systems I wouldn't have told them "you should expect 10x larger", yet alone 50x. Their initial estimates would still have been an very large launch.
The Niantic team did incredible things given the instant historic success that became Pokemon Go.
Sorry if I implied you did something wrong, not my intention at all. I'm just curious how someone comes up with an estimation at all for a game that doesn't have pre-orders, and where similar games don't already exist.
> Yes, and I can tell you even though I spend every day working with extremely large scale systems I wouldn't have told them "you should expect 10x larger", yet alone 50x. Their initial estimates would still have been an very large launch.
The generic 1X, 5X and 50X are hard to understand in this context I think. Pokemon is so popular it's very difficult in imaging what the real numbers actually are. For instance on launch day in America and Asia I would have expected insane numbers (many hundreds of million).
I also feel like the 1X, 5X and 50X number placeholders are useless in this conversation because it doesn't give a sense of scale at all.
There was no marketing? It was being talked about everywhere. If they didn't spend any money on marketing then good for them!
But in all seriousness this is Pokemon; they sold over 3 million copies of a remake of a game on a niche portable console in just 3 days; elevating its brand to an open platform for FREE that can be downloaded and installed on theoretically, what, a billion or more devices? Seems incredibly doable for Pokemon. Few other brands could do the same. Even Mario wouldn't be able to come close to competing with Pokemon's brand power.
I don't see how that data couldn't be used to argue either of our points (in fact I feel like you could make a strong case for my previous post using this very link). Ultimately though this conversation is a bit vapid without actual numbers which is a bit of a disappointment. Oh well.
I'm not sure I follow. Why are you only focusing on the US? This was launched in many countries. Granted not at the same time but that's why I said take the aggregate of each launch day.
You dropped the "Asia" from that. "America and Asia". Also looks like I forgot to mention the other regions in this comment (mentioned it in another one).
Sigh. This would have been easier if we had real numbers. Let us all test our hypothesis. Oh well.
The article says (in one of the only bits of real information) that they blasted past their estimates with only Australia and NZ just 15m after launch.
Whoever came up with those numbers must have had some serious methodology flaws. I know they couldn't predict that it would become the biggest online game ever for a while, but the initial demand prediction was clearly way off even before it started growing like a rocket.
No offense, but your comments are somewhat outrageous to me. I've been on the receiving end of one of those graphs (different scale) because suddenly things happen (we were placed above the apple logo as a feature with no warning AS WE LAUNCHED).
And you're sitting there as the engineering lead or staff going, "How do I even feel about this? Fortunately I have no time to feel because I am off to fight fires." I didn't go home for 2 days, I worked 82 hours that week and >70 the next.
Complaining that the estimates are bad for a product that literally broke everything we know about how to build a successful mobile game and has scaled to a truly unprecedented level is meaningless. Obviously no one expected this. Obviously the engineers wouldn't have wanted it. Obviously the world will respond the way it will to our work.
Show some compassion. But also some humility. None of us are qualified to make projections in the face of phenomena like this.
> Show some compassion. But also some humility. None of us are qualified to make projections in the face of phenomena like this.
You can't predict it will be the biggest game ever, that's not possible. But I feel like their initial estimates were still too low and you could predict it would have been higher. I don't know if it was based on how well Ingres did but...
Pokemon is a huge property. It's had tons of games, movies, sleeping bags, an incredibly successful trading card game, etc. Just having the Pokemon brand on something makes it VERY big.
In the game, you live out the Pokemon dream. This isn't just Pokemon Puzzle League. This isn't Pokemon Mystery Dungeon where you navigate cute little Pokemon around and play a top-down rogue like. You FIND AND CATCH Pokemon in the wild. It's exactly what Ash did in the TV show or comics.
Also, Pokemon are cute as hell. That plus the novelty of the AR stuff meant this had a lot of potential. "Look, I found a cute Eevee over here on my potted plant!" Those pictures were EVERYWHERE. That's tons of viral advertising.
But there is also the in-person effect. You want to compare what Pokemon you have with other people, and that encourages you to get your friends into it. But people were walking outside with their phones playing the game, and they quickly got spotted by people asking "What are you doing?"
All these things make it clear to me the this game had a high chance of success.
There's no way to know it would go to 50x what they guessed or would top the charts. Given their numbers I wonder if the expected should have been closer to 7x and the worst case at 20-25x.
The popularity they got would have taken basically anyone down. That was going to happen. I'm just surprised the estimates weren't much higher.
> Given their numbers I wonder if the expected should have been closer to 7x and the worst case at 20-25x.
What numbers? We know that their estimates and their realities were quite different, but not knowing the real numbers we have no way of even beginning to judge what's reasonable and unreasonable here. For all we know, they modeled directly after the most successful game in the Android market at that date as a baseline and then said, "At the worst case we'd expect 5x THAT."
You can write a ton of paragraphs about how cute Pokemon are, but the truth is that the Pokemon AR game was a massive risk. AR games have had extremely limited update. It seems incredibly unreasonable for me to expect that those folks should have realized apriori that they were about to release the most popular mobile game ever created.
I, for one, will not throw stones. I don't get why you feel the need to assert that you (or anyone) could have done a better job by setting a 20x or 25x target. Or that you could have not only forseen it was necessary, but convince everyone around you that the capex was justified.
Why are you so keen on assigning blame and shame in this scenario? Some of our peers made history. Can we be happy for them for 6 months before immediately backseat driving about how much better we all are in our armchairs?
From the article, it seems like a few million users/day is a typical expectation, but record-breaking isn't.
>Throughout my career as an engineer, I’ve had a hand in numerous product launches that grew to millions of users. User adoption typically happens gradually over several months, with new features and architectural changes scheduled over relatively long periods of time.
It's hard to estimate with no data. Nintendo had never released any other mobile games and the few NES/SNES ports had modest sales (at admittedly high price points for mobile).
When it comes down to it, the game is closer to a fitness app than a Pokemon game and can be described as bare bones. The fancy accessory wasn't even available at launch. Many of the players are people who have not bought a Pokemon game in over a decade, or ever in some cases.
If there is one area I can solidly criticize Niantic for it is rushing the other region releases so quickly. It's clear the servers were already badly overloaded and they just started adding countries left and right. I know it sucks for people who live in those countries to have to sit out while the rest of the world is having fun, but it's really not much more fun to sit at the eternal loading screen because the backend is entirely on fire.
I'm not sure why you're being downvoted into oblivion; you are completely correct. Yes, to address the other points raised, it's difficult to predict how popular something unreleased will be. But this is Pokemon. Their last game release, which is limited to the niche Nintendo 3DS console, sold over 3 million copies in just 3 days. And this was the Omega / Alpha games which were essentially just remakes of older games.
A mobile game, available to be downloaded onto hundreds of millions of phones, that is also FREE? I feel like they broke 100 million in the first day at the latest (counting totals from each region's first day). It wouldn't surprise me if it's significantly higher than that.
Media, users; everyone has been BEGGING Nintendo to release IP to mobile devices but they have kept it locked up in their own hardware. If no one had even a rough idea of the possible popularity they most certainly had a very, very wrong methodology.
Where did you get the idea it drives interviewers crazy?
a) I shouldn't ask questions that are in that book, any question found in the wild is banned.
b) I want my candidates to study and show me the best of themselves, and that they want the job and are not wasting my time by throwing their resume on the pile as an afterthought.
c) Cracking the Code Interview is really good at helping you through the algorithmic questions popular on whiteboards. I find the signal:noise ratio on those questions pretty poor, so I ask more straightforward questions that more closely represent things a software engineer encounters in their everyday life. CtCI is good for getting you up to snuff at the stuff you don't do all the time (if ever) just in case you get That Interviewer.
Admittedly, I am but one interviewer and there are many others who do many things many different ways, but I've never heard anyone denounce candidates studying.
> A hiring process that can be gamed by reading a book sold by the process giver is especially flawed and morally corrupt.
Hahaha, please tell me another one Mr. Trump.
> A hiring process that acts as if years of experience mean nothing and which reduces your career to a score on a web page generated by a terrible constructed test is especially flawed and inhumane.
Being old is not an indicator of success.
You seriously seem to live in some wonderland where the quality of a candidate just magically appears out of thin air.
I want candidates to have studied. Studying isn't gaming. Studying is being smart. I want candidates that studied. Those that didn't I don't want. They don't want the job badly enough.
I routinely test older candidates who can't program anywhere outside of the little box they made for themselves, and freak out when they see a programming language that isn't the one they've used for the last 20 years. Is that inhumane?
Gayle is awesome. Cracking the Code Interview is a really great book, and I credit it for getting me through some of my interviews. Everyone here poking at her are people shooting the messenger for delivering the inconvenient truth.
I have no idea why I am being compared to Donald Trump.
> Being old is not an indicator of success.
I didn't say it was. A history of success is an indicator of being successful though.
> You seriously seem to live in some wonderland where the quality of a candidate just magically appears out of thin air.
You seem to love in a wonderland where a candidate's aptitude can magically get turned into a score on HackerRank.
> They don't want the job badly enough.
Yeah, fuck them for not wanting to waste time on your startup that will likely bomb in a year. How dare these people want a personal life.
> I routinely test older candidates who can't program anywhere outside of the little box they made for themselves, and freak out when they see a programming language that isn't the one they've used for the last 20 years. Is that inhumane?
And I've met hotshot new grads who think they're the best thing since static typing, yet can't benefit from years of experience in how software is made in the real world.
> Gayle is awesome. Cracking the Code Interview is a really great book, and I credit it for getting me through some of my interviews. Everyone here poking at her are people shooting the messenger for delivering the inconvenient truth.
I only now realized the user who I am going back and forth with elsewhere in this thread was the author of these books. I am pointing out the flaws in these types of interviews and how they are very overvalued. The book's ability to get you through interviews means nothing about how those interviews select for people who can do the job, only that the book was designed to help you get through interviews.
People don't consider that not only does the software engineering process weed out those that don't know algorithms, it also weeds out those that don't have the discipline to sit down and study for a couple of weeks.
a) Big US enterprises are under attack from state-sponsored actors on a daily basis, so it's not that weird. It's not like the NSA weren't caught with their hands in the cookie jar either.
b) If you name the state you think is behind it, you better be ready for the diplomatic repercussions between the US government and the rogue state, as well as potentially stopping doing business in that state (see Google and China)
We can assume that the US government is not the state-sponsored actor in the OP, because their attack has already been publicly known for some time. This one is probably China or Russia.
FWIW Google Cloud Support != Google support in general. My interactions with Cloud Support on the other side of the fence has led me to believe they are very committed and working very hard. Yes, you have to pay for it. But once you do, regardless of the tier of support, I've seen them work tirelessly and escalate tickets to engineering quickly (order hours, not days) if they couldn't figure it out.
I'm looking at the postmortem now and without wishing to jump the gun and talk about things I can't, it looks like this is being taken very seriously and a number of improvements and bug fixes are going to result. In this instance, I think it's doing the Cloud Support people a disservice to call them "disingenuous".
Disclaimer: Used to work on Google Cloud, now on Google Open Source Programs Office.
> FWIW Google Cloud Support != Google support in general
> I think it's doing the Cloud Support people a disservice to call them "disingenuous"
The problem is that to us from the outside, they do look the same.
In fact, that email in the article, and the subsequent events, are in exactly the same style as the "ban hammer" Play Store publishers get. You really can't blame us (Google's actual paying customers) from equating one with the other.
I'm not entirely convinced that people who have a bad experience with Windows support would then assume Azure support was poor, similarly with Amazon and AWS... Why should Google [Product Area X] and Google Cloud be any different?
Nobody cares how hard you or your coworkers work. Results matter, nothing else.
Given the story so far, you offer adwords style customer service (we don't give a damn about you) while attempting to catch up from position 3 behind aws and azure in the paas race. Complete with automated emails with outdated documentation and no human anywhere without a social media outcry. I'm sure stories like this are damaging (seriously, just use aws), and there will be some postmortem damage control, but unless I see a human support sla for situations like this, I can't see why anyone would risk their business on you.
Seriously, a fix it or we shut you down email for reasons you won't share with an 2 business day response. Of course, you're issuing a 3 day warning, so if that fell on a Friday, you would be dark before anyone bothered to look at the support ticket (3 days expire Monday, 2 biz days Tuesday evening). Amazing.
Can you point me to instructions for this setup? I'd love to try F# (having dabbled in Haskell) on macOS, but I keep getting the feeling that F# really needs Visual Studio to shine... which is a feeling which may or may not be accurate.
If you don't want to use mono and want to use MS's new cross-platform version of the .NET Framework, you can use .NET Core [1] (then follow the sibling's advice on using VSCode and Ionide)
No dice. Had to replace the screen. Which I did. Then I returned it for an iPhone SE. And that iPhone has survived much harder drops with no damage whatsoever.