YouTube CEO on Facebook video ambitions: 'They should get back to baby pictures' - <AUTHOR> https://www.cnbc.com/2018/02/13/youtube-ceo-on-facebooks-video-they-should-get-back-to-baby-pictures.html <comment> steve-benjamins YouTube has been an incredible place for building an audience for me. I started publishing videos in November of last year and growth has been dramatic (for me at least— my content is pretty niche, I review website builders): [http://s3.amazonaws.com/sitebuilderreport- assets/images/file...](http://s3.amazonaws.com/sitebuilderreport- assets/images/files/000/000/016/original/stats.png?1518544653)

Facebook on the other hand turned my Facebook "page" into a payola scheme where I had to pay to access my audience. Lame.

<comment><USER2> Assuming no new growth, in 10 months you will be able to make money from YouTube.

Do you think the 4000 watch hours in the past 12 months is too high or just right?

<comment> steve-benjamins I'm probably not a good person to ask. I make money through affiliate links in my video descriptions— so I have no plans to use Youtube's official monetization programs.

<comment><USER3> If your goal is affiliate clicks, why do views & mins of engagement matter?

Seems like the measure would be which platform generated more clicks that convert.

</comment></comment></comment></comment><comment><USER4> She may be right.

Facebook has a lot of problems on its plate right now, but one of the worst trends has been the poorly thought out march to video. It came from Zuckerberg (1 and 2) and was repeated by senior FB executives, and then became a mantra for publishers. Many made large investments in video programming for Facebook, only to find the money isn't there and Facebook later decided to demote publisher content (3 and 4).

This is not just large media companies that got burned, I know some smaller producers who believed the "five years the feed will be all video" baloney and shifted their efforts accordingly. Some were doing really important work, too, around causes or local news. What a waste.

Meanwhile, it seems that overall video consumption in Facebook is declining, and it's the one percent that get the most engagement, regardless of who the publisher is (5).

I personally would not mind if Facebook turned back the clock 10 years, when most conversations seemed to be personal and text-based, and the truckloads of memes, ads, gaming achievements, real and fake news, and videos of cats playing the piano had yet to be shoved down Facebook's maw and into our feeds. Old-school text discussions seem to work for HN, why can't it work for Facebook?

1\. [https://www.hollywoodreporter.com/news/mark-zuckerberg- faceb...](https://www.hollywoodreporter.com/news/mark-zuckerberg-facebook- news-feed-784376)

2\. [https://www.hollywoodreporter.com/news/facebook-shares-up- re...](https://www.hollywoodreporter.com/news/facebook-shares-up-revenue- growth-970957)

3\. [https://www.recode.net/2017/1/17/14269406/facebook-live- vide...](https://www.recode.net/2017/1/17/14269406/facebook-live-video-deals- paid)

4\. [https://digiday.com/media/digiday-research-publishers- making...](https://digiday.com/media/digiday-research-publishers-making-money- facebook-video/)

5\. [https://www.wochit.com/blog/social-video-performance- index-2...](https://www.wochit.com/blog/social-video-performance-index-2017/)

<comment><USER5> _> Old-school text discussions seem to work for HN, why can't it work for Facebook?_

People don't really read in the same way as you might have previously expected. ("Reading a short blurb or a tweet" is not the same thing.) Can't or don't want to, I don't know, but they don't. You see the edges of it here, too --tl;drs on HN posts, sometimes, that are less than a screenful of text. And people think you're "spending a lot of effort" when you bang out a post about as long as yours is--and, sometimes, try to frame it as a bad thing.

I tend to think Thomas Pettitt has a point[1].

[1] - [https://archives.cjr.org/the_audit/the_future_is_medieval.ph...](https://archives.cjr.org/the_audit/the_future_is_medieval.php)

</comment></comment><comment><USER6> That particular comment has generated a lot of appropriate snark in light of YouTube's recent controversies involving disturbing children videos and Logan Paul: [https://twitter.com/cwarzel/status/963268727646035968](https://twitter.com/cwarzel/status/963268727646035968)

</comment><comment><USER7> Facebook isn't going away. However it seems to be coming apart because its hard to argue that FB improves, rather than burdens, people's lives. Its simply easier, less distracting and often happier connecting outside FB's walled garden. For example:

      Messenger --> rampant competition from about a dozen apps.

      Community --> reported audience declines. From participation fatigue, privacy concerns, and competing sites.

      Publishing --> push-back from content providers and publishers who don't wish to be assimilated into the 'borg'.

      Payments --> no real competitive offering.

      FederatedID/SSO --> rampant competition from Google, LinkedIN, Github, etc.

I really believe Facebook is grossly overvalued as an internet property, much in the same way MySpace and AOL were in the 'old days'. I also suspect that Twitter remains undervalued in terms of influence and - importantly - 2nd/3rd order reach (eg. republishing).

There's something to be said for building products that make people's lives easier and truly happier, and I'm not sure that FB does either anymore.

<comment><USER8> > _I really believe Facebook is grossly overvalued as an internet property_

You could have made this exact argument in 2012 when FB was worth $20/share. Was this argument wrong in 2012 but correct in 2018?

<comment><USER7> Yes. Look at FB earnings per share and tell me where that growth is going to come from. I note FB is down today. The market is slow to catch on in both directions, but when it does...

<comment><USER8> Where did the growth come from in 2012?

</comment></comment></comment></comment><comment><USER9> IMO Facebook video is a non-starter because of branding. Facebook is not a destination for video.

Facebook is to video as youtube is to social networking.

<comment><USER10> This is true. There was recently a huge controversy in the Dota 2 community, because a major tournament exclusively moved to Facebook livestreaming (away from twitch).

One of the most common complaints was something like "I'd never use Facebook, because I hate the company!"

Also, frankly, the tech product for livestreaming isn't anywhere near feature competitive.

</comment></comment><comment><USER11> Oh my God. She just gave Mark Zuckerberg a rallying chant; he will write this on all Facebook walls and rally developers to improve Facebook video.

<comment><USER12> IMO that's probably good for Google because it's likely going to be a wasted effort. Even if they built great stuff, I can't see this being more successful than something like Google+ or Facebook's attempts at making an Android launcher. There's just no motivation for users to get on board with this. In terms of video, I think they may be able to do something similar to what Snapchat has done, but that's about it.

</comment></comment><comment><USER13> Disclaimer: Am Googler

My 2c is that for mass consumption, streaming is where the puck is going, not short-form videos. Kids are watching Minecraft streaming, they're not watching punks like Logan Paul until they are in their teens, and my guess is as those younger kids get older, tastes will change and Paul et al will be done. And even when you think about teens, streamers like Dr Disrespect seem to capture far more zeitgeist than YouTubers. Is Casey Neistat really a thing anymore?

IMHO Facebook really should be doubling-down on local sharing and improving that experience, Google Photos is far and away the best photo product for me. Replicating YouTube won't work, the quality of the platform and the network effects are too strong. Whether Facebook can do something disruptive like Twitch I don't know. Maybe IRL streaming of C-list celebrities like Snoop or Kylie Jenner?

<comment><USER14> > IMHO Facebook really should be doubling-down on local sharing and improving > that experience, Google Photos is far and away the best photo product for > me.

Do you mean that Google Photos is a better way for you to share your photos than Facebook?

<comment><USER13> It's better for my immediate family, worse for my social network as a whole.

</comment></comment></comment><comment><USER15> I actually think there is a huge opportunity for there to be competition with youtube... but not directly under the facebook brand. It'll have to be something like Instagram.

<comment><USER16> Why?

<comment><USER17> Because a lot of people don't want all the other stuff that comes with having a facebook.

<comment><USER9> Youtube gets this right and puts the content first, on all endpoints. I see a youtube video and click it, I get a video.

If I see a facebook link, there are many problems:

\- I don't know if it's a video

\- I don't know if I'll see a login page or if I'll get to the content

\- I don't know if the content is viewable by me because of privacy settings

And then this works the other way - why should I share a video on facebook when I can't tell if my recipient will be able to see the video? I don't know if they'll get a login prompt. I don't know if they have the permissions to see the video.

All this friction doesn't exist with youtube, or at least is extremely minimal.

<comment><USER18> Agreed. I'm always weary of clicking on a Facebook video because I don't want a history of that going on my wall or some other kind of trail. I don't want all the baggage that comes with Facebook.

And a small 10s commercial on a YouTube video is a small price to put up with in comparison to the rest of the shit that comes with being in the Facebook ecosystem.

Only reason I still have an account is to be in touch with some high school friends and that's something I barely do these days.

</comment></comment></comment></comment></comment><comment><USER19> Interestingly, we don't post any baby photos on Facebook because it's too toxic of an environment. We use WhatsApp, which is still owned by Facebook but much harder for them to monetize.

</comment><comment><USER20> Instagram is Facebook's attempt to dethrone YT as the dominant player in the video sector. Once they remove time limits and allow some form of basic player controls, we're probably going to see some sort of shift. Instagram's UX/UI is, in my opinion, smoother than that of the YT app.

<comment><USER12> If the content and discoverabilty isn't there, it's not going to matter. No matter what Microsoft does with Bing, they're not going to win for the same reason.

</comment></comment><comment><USER21> There is certainly space to compete with YouTube. I think YouTube ads are getting a bit annoying, especially when you can't skip them. If a valid challenger were to arise, I feel monetisation strategy is where this battle will be lost or won. The least annoying/intrusive will win every time.

</comment><comment><USER22> Oh man, don't be this smug. You be this smug, you regret it later.

</comment><comment><USER23> "I mean" said 7 times. Maybe that is the benefit of "umm" \- when you have that verbal tic, it usually isn't included in transcriptions.

</comment><comment><USER24> Facebook isn't a good contender, not on its main website, but YouTube is falling quickly and this talk just motivates competitors more.

</comment><comment><USER25> Youtube isn't perfect but the facebook video player is terrible.

</comment><comment><USER26> Underestimating competition is never a good idea, especially publicly like this. Horse carriage drivers also laughed about automobiles... initially

<comment><USER27> The early automobiles were a joke, so they called it like they saw it. You can hardly blame people for not seeing where it would lead, often beyond their professional lives. Take for contrast the reaction of French factory workers when automated textile production started to come online, or cabbies when automated fare metering hit.

</comment></comment><comment><USER28> I cannot believe I am saying this, but I am rooting for Facebook to build a competition against Youtube.

<comment><USER29> Youtube seems to be one of the more egregious parts of the Google ecosystem.

Like sure Gmail has its problems, but ultimately it is an excellent web based email system that's hard to beat because it's a great product.

Youtube's main strength seems to be primarily its first mover advantage, and the fact that building a video hosting site is a rather costly venture.

Neither of those are a very defensive moat against competitors like Amazon and Facebook

<comment><USER30> I do not think gmail is an excellent product. For me it's backed by a giant that guarantees its availability and functionality almost anywhere in the world (looking at you China). I would use something else in a blink of an eye.</comment></comment></comment>


Cities: Skylines Is Turing Complete - <AUTHOR> https://medium.com/@balidani/cities-skylines-is-turing-complete-e5ccf75d1c3a <comment><USER2> If anyone is looking to buy this game, it's currently on sale at Humble Bundle for $7.50. [https://www.humblebundle.com/store/cities- skylines](https://www.humblebundle.com/store/cities-skylines)

<comment><USER3> Any experience running it on Linux? Using Wine?

<comment><USER4> It runs on Linux natively. Works well for me (installed via Steam).

<comment><USER5> Same goes for all the extensions. The Linux version is really solid.

<comment><USER6> The performance is a fraction of that on Windows though, from my experience.

<comment><USER7> Might this be a memory issue? I run it on Xubuntu and noticed it sometimes uses all my 8GB RAM so the PC starts swapping.

<comment><USER8> It loves RAM (and probably RAM speed), but not necessarily in a bad way. Jumping to 16gb (2x8gb) from 8gb (1x8gb) on the laptop I first played it on was a big jump in performance even with a GT740.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> I think this has some meaning for the abundance of life in the multiverse. If most human-created systems of sufficient complexity turn out to accidentally support computation, then maybe most laws of physics support computation.

Hey, it's not better or worse than any other way to guess.

<comment><USER10> > Hey, it's not better or worse than any other way to guess.

Saying this is a kind of relativism that closes you off to receiving criticism for this view.

Here is some disagreement from the philosopher of information Luciano Floridi, "Against Digital Ontology": [http://philsci- archive.pitt.edu/4076/1/ado.pdf](http://philsci- archive.pitt.edu/4076/1/ado.pdf) and its sister paper "A Defence of Informational Structural Realism": [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.135...](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.135.5500)

You might to be tempted to ignore this paper for being too technical, but it would be technical only because these are real issues that become difficult when put under serious reflection.

If you can stomach it you will be rewarded with deeper understanding.

<comment><USER9> That's a paper about ontology, I'm talking about the actual physical reality of "the multiverse," you know, the one with the meta-landscape of all possible string theories, and all the different spidermans.

<comment><USER10> In what way can statements about a multiverse not be ontological? Are you committing to modal realism, Platonic realism, or are you just pulling my leg?

If you commit to the multiverse being physical, by extension you're making claims about ontological concerns, since all physical claims require there to be a notion of something existing, even if you're wanting to claim that something counterfactually exists. Then that gets into modal realism etc etc.

Likewise you can't be fully confident in multiversal theories since no physicist endorses a multiversal theory without also accepting it as interpretative, as no experiment has been performed to anoint multiversal theories as being correct. So you're still postulating something worthy of criticism even if there was nothing ontological involved.

<comment><USER9> Each universe gets its own version of Spiderman, and we live in the universe with the fictional Spiderman. That's one theory that matches our observations. Since basically every theory matches our observations, including the theory that there isn't a physical multiverse, every argument is equally specious and aesthetic.

<comment><USER10> Every theory matches observations _given interpretations of those theories_ , and it's impossible to engage in discourse without additionally engaging in interpretation. So some theories are going to be eliminated from view given one perspective or the other since interpretations must be chosen over others. I think where you're wrong is thinking it's possible to evade this and make the claim that all arguments are specious without simultaneously gesturing that you don't want to engage in the discourse anymore: it's a self-defeating claim.

Notice that none of this prevents there from being a singular subject that we can talk about, but there can still be substantial disagreement as to the nature of the thing be discussed. If we are disputing whether or not there is a multiverse I would just ask you, what are your grounds for accepting that we occupy a multiverse and what brought you to do so?

<comment><USER11> He watched Spiderman, and it was cool.

<comment><USER10> Oh fuck I forgot about that part.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> I remember that classic TDD (transport tycoon) was also turing-complete. You can make logical gates there using trains and railroad signals.

Minecraft is not only turing complete, there are multiple complete projects of calculators and microcontrollers done using red stone.

<comment><USER13> Redstone is by design made for implementing logic, so it belongs to slightly different category. Although I think Redstones introduction was prompted by people building logic without it in the olden days.

<comment><USER14> I think Redstone's inspiration was people building computers in Dwarf Fortress with floodgates and pressure plates, rather than Minecraft specifically.

<comment> munk-a Dwarfputers are a wonderful tangent of their own, with a not-unlikely possibility of flooding your entire computer with firey death in the form of magma in some of the more impressive approaches - this has been possible (but quite difficult) for some time, more recent game versions have made non-fluid based logic gates[1] more realistic and usable.

Someone has built an (admittedly simple) space-invaders game[2] using df which is rather impressive.

1\. [http://dwarffortresswiki.org/index.php/DF2014:Computing#Disc...](http://dwarffortresswiki.org/index.php/DF2014:Computing#Disciplines)

2\. [https://www.youtube.com/watch?v=j2cMHwo3nAU](https://www.youtube.com/watch?v=j2cMHwo3nAU)

</comment></comment></comment></comment><comment><USER15> The idea of creating computers out of virtual objects has always fascinated me since I first saw someone do it in Minecraft.

It really brings up some interesting scenarios that I like to day dream about sometimes.

For instance, in a real world simulation, you could build a processor with a gazillion transistors because you don't have to worry about the same physical limitations like size or heat. Could it take an input and compute an output faster than something in the real world?

Would you be bound by the speed of light in the virtual world? You control the physics in your virtual world, so technically nothing prevents it right? Information can travel faster than the speed of light relative to your virtual objects. Say you model the earth at 1:1 scale in the simulation and have avatars on complete opposite sides of earth. They could exchange messages faster than they could in the real world since the information wouldn't have to physically travel across physical space. (e.g. send message directly to memory address X instead of sending light through fiber optic physics simulator).

Essentially, in a simulation of the physical world that has tweaked physics, could information be processed faster than the processor running the simulation?

Is there some sort of conservation of energy law, but for information?

<comment><USER10> The information would "appear" to be processed "faster" to the digital system merely because the digital system would have no memory of there being a moment in between its current state and the next computed state. Even supposing that it's possible for there to be a subjective experience of a computer: this goes in to physical time and psychological time and whether the two bear a strict relation, as well as the relative nature of time in physical space.

On the first topic, if you can stomach having to reformat a PDF, the "No Free Lunch in Machine Learning" guy wrote a paper on thermodynamics and psychological time:

[https://www.researchgate.net/publication/226069884_Memory_sy...](https://www.researchgate.net/publication/226069884_Memory_systems_computation_and_the_second_law_of_thermodynamics)

On the second one... I think it's more interesting to think if there's a theory of relativity for computation. Imagine if two systems were updating one another's state but were separated by physical distance. Wouldn't you have to hold the state of one to only update when it a receives a message from the other, for the systems to "experience" instantaneous communication? That would mean there would be a third system for whom time would have to pass to transfer the message and compute it in such a way that the amount of updating required for the receiving systems are minimal.

Maybe we have to guarantee that at least one system has to experience time more slowly than the others, to compute the information necessary for instanaeity to be true for the communicating systems.

</comment></comment><comment><USER4> Somewhat related: turing complete (Open)TTD.

segment display: [https://www.tt- forums.net/viewtopic.php?f=29&t=37902](https://www.tt- forums.net/viewtopic.php?f=29&t=37902) (2008)

digital clock: [https://www.youtube.com/watch?v=mkQBGJeh12U](https://www.youtube.com/watch?v=mkQBGJeh12U) (2011)

binary adder: [https://www.youtube.com/watch?v=fwWo9fL- GZs](https://www.youtube.com/watch?v=fwWo9fL-GZs) and [https://www.youtube.com/watch?v=YyEzm1ghAsU](https://www.youtube.com/watch?v=YyEzm1ghAsU) (2015)

</comment><comment><USER16> Am I the only one who didn't enjoy Cities: Skylines? I played without any expansion (wasn't really hooked enough by the base game to go looking for them) and found the gameplay quite limited compared to the few old city building games I played as a kid. I still play Pharaoh to this day 20 years later and it's still challenging and complex and there's tons of gameplay to explore. In comparison, I played Cities: Skylines for about a weekend, got over the initial difficulty with managing finances, and then it became a matter of building pretty roads and forcefully read people's complaints on in- game-Twitter.

<comment><USER7> The game is most about traffic management. This is not very surprising because the company behind it was focused on traffic games.

I like the game a lot. But to be fair: you must download a good traffic control mod to setup traffic lights and road settings to keep the traffic under control.

</comment></comment><comment><USER17> Wouldn't you also need a way of storing information (preferably an unlimited amount of information) for Skylines to be turing complete? How would you implement the tape of the turing machine?

<comment><USER18> You can make memory out of logic gates.

<comment><USER13> Adders belong to category of combinational logic, which by definition excludes memory. So OP is right, they do not yet demonstrate Turing Completeness. I imagine, but don't actually know, that they would be about as expressive as dfa, which are few steps below turing machines

<comment><USER18> He builds the adders from ANDs, ORs and NOTs. With these, you can also build flip-flops, which are memory. (Actually, it's enough to have only NAND (or NOR) to build all logic circuits, including memory)

</comment></comment></comment></comment><comment><USER19> Trying to understand the excitement around this. Is it uncommon for games to be turing complete? I imagine a lot of modern games are complex enough to pass turing completeness check.

<comment><USER20> It's more or less an feat in problem solving. Given a specific set of limitations in simulation, can you recreate and solve this computation problem?

For some games, like Minecraft (redstone) and Factorio (logic gates) it's easy, but for others it's difficult enough that you get to see some creativity. This is one of those latter instances.

<comment><USER21> Interestingly, Minecraft only added redstone to explicitly allow logic gates after users had found out how to create them out of flowing water and other select blocks.

<comment><USER22> Minecraft construction is weird. Minecraft's reason for existing is that people think it's fun to make simple things mind-numbingly hard by using the crudest lowest-level building blocks, each block simualting with horridly monstrous gobs of computing powes).

So it's the worst of both worlds -- an expensive simulator for tediously manipulting low-level primitives. Why not manipulate primivitives efficiently, or use high-level constructs?

Then serious Minecraft constructors build mods and tools to automate the tedium back out anyway, so they design whatever nice things using high level tools, but then execute and inspect the builds on inefficient computing systems of cryptocurrency-level of wastefulness.

Why not just make whatever thing you want out of good (virtual or physical) materials in the first place, and then put it under the microscope/oscilloscop/decompiler/hex-editor to marvel at its complex structure?

<comment><USER23> To actually answer your question: Barrier of Entry.

<comment><USER24> Pretty sure the people building calculators in Minecraft are on a CS level where the Barrier of Entry is no problem.

</comment></comment></comment></comment></comment></comment><comment><USER25> I love how it combines dangerously antagonistic elements like water and electricity. Somebody's going to get hurt!

In that vein, can you build logic gates out of cars and pedestrians?

</comment><comment><USER26> Idea for the sci-fi story: after the civilization collapse, the only computing device that has survived is an arcade machine, with a difficult game that accidentally is Turing complete. People need to program it, so they can use the results to reboot the power/transportation/medical equipment/etc.

</comment><comment><USER27> A similar thing is described in Cixin Liu's "The Three Body Problem", where soldiers holding flags emulate the circuitry of a computer.

<comment><USER28> I really enjoyed that part of the book. If I remember correctly, the soldiers were just representations of the Trisolarans as they were too alien for us to identify with. The actual Trisolarans emitted light to build their living computer.

</comment></comment><comment><USER29> Doesn't Turing completeness require conditional loops? Considering the fact that he has AND and OR gates he can represent conditionals, but he doesn't show it. And the fact that it always terminates by design also means it solves the halting problem which by definition means it isn't Turing complete (I think?).

<comment><USER30> What do you mean by "it always terminates by design?"

However, as the comments to the post say, the author should provide a proof that the "game physics" allows to construct a functioning latch from these logic gates.

Conditional loops are not essential: the lambda calculus is TC despite lacking any loop primitives.

<comment><USER31> In theory you can build a latch using only NAND gates, so it should be possible unless the gates that are demonstrated are flawed somehow, see my sibling comment.

</comment></comment></comment><comment><USER32> I could very well be dead wrong about this, but isn't any game that allows you to construct the equivalent of a transistor turing-complete with enough work?

<comment><USER33> Kind of, but the interesting part is finding out how to make the transistor in the first place. These things usually take a few years to be found despite the popularity of such games.

</comment></comment><comment><USER34> What does turing complete mean?

<comment><USER35> In the most basic sense, you can make a computer with it.

</comment></comment><comment><USER36> Always wonder what happen if you are alone in a primitive society.

</comment><comment> em-bee so douglas adams was right, the earth is just a giant computer

</comment><comment><USER37> Intended link may be [https://medium.com/@balidani/cities-skylines-is-turing- compl...](https://medium.com/@balidani/cities-skylines-is-turing- complete-e5ccf75d1c3a) \-- an edit link was posted by mistake

<comment><AUTHOR> Argh! That's my bad, I can't seem to edit it now.

<comment><USER38> We've replaced the link above.

</comment></comment></comment><comment><USER39> Wait a tick. I can't open medium at all, says I _must_ log in. Is this a new thing?

<comment><AUTHOR> My mistake, it was an edit link I posted, it should be accessible without Medium, I also opted out of the monetized content thing.</comment></comment>


How to Deliver Amazing Support at Scale - <AUTHOR> https://segment.io/academy/how-to-deliver-amazing-support-at-scale/ <comment><USER2> If you're a small enough startup to have all of your support handled by one person part-time, I would hardly call it at scale.

They made ticketing systems for this purpose, so you don't need to remember to switch drip e-mails and juggle things, just log in and start helping. Ultimately, it's how well the user is helped that matters.

<comment><AUTHOR> Very true, I should leave the round-robin'ing out of the "at scale" pitch. But honestly, I think a single person being the load balancer for support scales pretty darn far into the future. Seeing as it takes about one hour of my day right now, it can easily scale to 8x our current growth. (And that's not counting fixing all of the obvious support issues, so we can grow past 8x.)

If you have a dedicated support load balancer, you don't need to switch up drip emails. Heck, I bet Customer.io and friends even get the switch emails part down to a single button at some point anyways.

The problem with ticketing systems is, well, they suck. Your customers don't want to get "tickets", they just want someone to solve their problem. And when you're doing it in a really personal way they'll give you tons more feedback, and they'll share your product with more people. Ticketing systems are especially despised when you're building developer-focused products.

<comment><USER2> Ticketing systems don't need to suck - you could set one up to work nearly identically (maybe even better!) to the system they have here. The workflow is pretty simple

* Customer e-mails the support@ e-mail (or even your personal support e-mail), it's thrown in the ticketing system.

* You read the ticket

* You reply to the ticket, it's sent from support@ or your support e-mail

There's no reason you need to have an obnoxious ticket generation e-mail, especially if you can get to it in time with a personal reply (generally because, at this stage, you don't have too many tickets to process individually).

</comment></comment></comment><comment><USER3> The first part of the article is missing the point. Sure, how you do support may become important when you have to scale. More important is improving your software/app/website in order to reduce the number of support requests.

The most important part of supporting customers for me is motivation. After thirteen years my motivation is almost zero. It's probably time to pay someone to do it but I wonder, what about their motivation.

<comment><AUTHOR> Seems like you didn't read the second part of the article. But if you really can't be bothered to offer support, you better be darn good at designing your product in the first place. And even then you're leaving huge amounts of potential on the table.

</comment></comment><comment><USER4> _Whenever anyone emails firstname.lastname@example.com, their question doesn't actually go to my personal inbox, it goes into our Help Scout account, so they are guaranteed a much faster response time!_

Interrogative: What happens when say, a tech is assigned to an internal project requiring email communication with a vendor? Here's a relevant example:

In 2011 I was hired as into a role that was half Jr. Project Manager, half Help Desk team lead (my door read "Support Operations Lead"). While I assisted when the load got heavy in daily HD work, more often I was working on getting new solutions into our support flow; implemented a new ticketing system, rolled out a backup solution, and handled the IT purchasing for the entire organization (this was a huge commerce firm of about 600 at the time. Daunting, but it got done).

All of these tasks required constant communication with vendors, who had my personal email address to send purchase orders and invoices to. Do those need to go into the support bin? I'd wager not.

How does HelpScout differentiate between the two?

<comment><USER5> From what I understood of the scheme, HelpScount doesn't differentiate between them - you do. If you want to communicate with someone on your personal email address, you can give it to them directly.</comment></comment>


Microsoft acquires Talko . But Why? - <AUTHOR> I just checked the Talko's Android app , they just have 1000-5000 downloads. Looking at the features and UI,there are far more better apps. Then why Talko? <comment><USER2> Cheaper than recruiting the engineers individually? I didn't see terms but if it's small, it could be a bargain to get the team and tech and roll it into Skype. Also, the better apps might not have been for sale.

<comment><AUTHOR> Talko is a start up by Ray Ozzie. He is one of the Microsoft Pioneer and Past Architect of Microsoft.</comment></comment>


Google Acquires Android Performance Startup FlexyCore For A Reported $23 Million - <AUTHOR> http://techcrunch.com/2013/10/22/google-flexycore/

<comment><USER2> Lesson learned: create a compelling product for Android developers and Google will acquire you in a heartbeat.

</comment><comment><USER3> I wish I could find more information about them. All I can find are videos showcasing the performance improvements but without any explanation.

[http://www.youtube.com/user/FlexyCore/videos](http://www.youtube.com/user/FlexyCore/videos)

<comment><USER4> From what I can gather, it seems FlexyCore generates more efficient, architecture specific assembly code at build time. This is where the performance gains come from.

A little deeper reading shows that it does this through the Dalvik VM, the VM on all Android devices.

I think the creator can say it better than me: [http://www.youtube.com/watch?v=tEAz9fRoDmA](http://www.youtube.com/watch?v=tEAz9fRoDmA)

<comment><USER5> So basically it caches the native code produced by the Dalvik VM? I'm surprised Dalvik doesn't already do this.

<comment><USER6> Dalvik's development has been stalled since Android 2.3, no new JIT or GC improvements since them.

No more talks about it at Google IO, either.

Of course, this is also related to the Oracle's suit against Google.

I wonder if this means Google will reinvest in Dalvik, as I am betting KitKat will again only bring more Google APIs and nothing else.

</comment></comment></comment></comment><comment><USER7> French startup at that. Happy to see that there's at least _some_ innovation going on in this country.

</comment><comment><USER8> Hoping it will appear in Android 5.0. Six months or so should be enough to implement this, right?

Also, they should probably acquire these guys, too:

[http://www.genymotion.com/](http://www.genymotion.com/)

The emulator is also one of Android's longstanding problems, and it would be nice if they fixed that once and for all, too.

I'm also hoping that with the arrival of powerful ARMv8 hardware in the couple of years, maybe they'll make their SDK for ARM, too, so it doesn't even need to be emulated in x86.

</comment><comment><USER9> wonder if it's similar to Linaro Android [1]

[1] [http://www.youtube.com/watch?v=F_NR_goi6iA](http://www.youtube.com/watch?v=F_NR_goi6iA)

</comment><comment><USER10> This feels like an "acquhire." I haven't yet seen a performance booster get any traction with OEMs. This sounds more-promising than Myriad's idea of replacing the whole VM with their Java VM.

Optimization in a battery powered device is tricky. After the initial work on Android's interesting JIT strategy, I have not heard much else about boosting performance. Developers who run into performance limits are stuck "doing it by hand" with native code and Renderscript. Maybe this signals a revival of interest in extracting better performance from Android's runtime environment.

<comment><USER6> I certainly hope so.

On iOS everything is native.

Since Windows Phone 8, Microsoft also went fully native, by pre-compiling MSIL to native code on the Windows Store servers. The devices only have a linker to perform the last step of replacing the symbols by effective addresses on load.

<comment><USER10> Everything being native isn't always a better way. Android's architecture keeps code small, makes sure nobody eats the global heap, shares common bytecode (really, anything) pages across processes, and provides memory- conserving modularity tools within each VM instance's heap. It's a pretty elegant system and the reason there hasn't been a lot of new work on the JIT may be that the JIT is as good as it can be without eating more battery.

<comment><USER6> > Android's architecture keeps code small, makes sure nobody eats the global > heap, shares common bytecode (really, anything) pages across processes, and > provides memory-conserving modularity tools within each VM instance's heap.

Global heap can be controlled by process in many OS, nothing special about VMs.

Sharing of code pages between processes has been done in mainstream OS since a few decades.

 _Memory-conserving modularity tools_ , whatever that might be, aren't VM specific.

The only issue you are right about, is that bytecode is much more compact than native code.

> ... the reason there hasn't been a lot of new work on the JIT may be that > the JIT is as good as it can be without eating more battery.

The current JIT is good enough for developers writing CRUD applications, HTML wrappers or the "fart app" of the month.

Those of us that care about performance use the NDK anyway.

<comment><USER10> > Those of us that care about performance use the NDK anyway.

If you had said "People porting game engines implemented in C use the NDK anyway" you might be right, and they do that because re-coding the game engine is impractical, not for performance. But the implementation of large systems in Android is best done in Java, for reasons of performance, modularity, and power efficiency.

Managed language systems exist for a reason. Dalvik bytecode is much more space efficient than native code, and Google has claimed it is about 2x as space efficient as Java bytecode, and 2x faster to interpret. Those factors reduce the need for a JIT in Android, and, until Android 2.3, Android didn't have one, and there were plenty of ambitious, performance-sensitive Android apps.

The Android component architecture enables a kind of code swapping that enables large apps to fit in a single process with a limited heap size. If you are not making use of component objects, you are not being memory efficient.

Android's Zygote and the use of copy-on-write goes beyond sharing pages of "pure" code. Any page can be shared between processes this way. This keeps global memory use down and makes it efficeint to start many more processes that would otherwise be practical with a VM language.

The Android base classes, Java toolchain, and runtime are the most sophisticated and efficient managed language environment for mobile devices. Ignoring them and going straight to NDK code without a specific performance case based on measurements of Android Java code performance, the effects of the JIT, and code size is a waste of time and a source of bugs that will be harder to find and fix.

<comment><USER6> Sorry, but your comment reads out as Google PR about Dalvik. Even with your published books I am not buying it.

The only thing you are right about is that bytecode is more space efficient than native code.

Everything else is easily done in native code as well, it is just a matter of the OS providing support for it, there is nothing special about having to be a VM.

<comment><USER10> Much of the Android OS's middleware layer is implemented in Java, and runs in a Dalvik VM instance. Many parts of the OS are implemented as Service components and accessed through remote procedure calls - the same way installable apps can provide APIs to other apps.

Contrast this with the history of the CLR in Windows mobile devices. It was not taken seriously as an application platform. None of the built-in apps used it, never mind it being the basis for system programming. Android is a Java OS in a more meaningful way than running a CLR for some subclass of apps, which certainly doesn't make Windows a "C# OS."

Try writing a non-game Android application with every Activity component as a NativeActivity subclass. It will be painful to code, more painful to debug, and it will disappoint in performance.

I'm not just shilling for Google's architectural decisions. Prior to Android being released, I was working on wireless device OS that used Linux and a Java VM for userland software. I am very familiar with the performance increment obtainable using a JIT in a mobile device, and, as an alternative, in using a precompiled Java runtime. As in Android, the heavy-duty pixel-pushing in that OS was done in a graphics stack implemented in native code. Much of Android's widget set is also in native code. Unless you choose to do heavy computation on an Android device, you are not going to get a large advantage from a JIT, especially if your bytecode interpreter actually does perform 2X better than Java.

As for heavy computation on Android devices that's what Renderscript is for.

<comment><USER6> So why do native Objective-C/iOS and native .NET/WP 8.x apps work faster and more fluid than Android ones?

<comment><USER10> Mainly due to differences in multitasking.

Android always enabled completely general multiprocessing and multithreading, initially at the expense of smooth visual effects, and Android was implemented on a variety of CPUs and GPUs. Secondarily, Android didn't used to have concurrent GC. Thirdly the animations were not tuned (q.v. Butter). Fourthly, the graphics stack was tuned to use more GPU-based operations as mobile GPUs improved. If you know you have only OS overhead when you are the foreground task, lots of things get more deterministic. But that does not mean you have more total throughput.

For that matter, Android didn't have low-latency audio until 4.2.

Try taking a look at how many processes, and Dalvik instances, are running concurrently at boot time on an Android device. Then try just starting that many VM instances, of any VM, on any other OS. The reason Microsoft has gone to pre-compiling "in the cloud" is that otherwise the CLR has a miserable startup time and mediocre performance. The CLR architecture is much more like a conventional Java VM. You can't build a whole OS on a managed language implementation of OS features with that level of performance.

I'd wager Microsoft has a much rougher road ahead stuffing a real Windows kernel into handsets and maturing CLR performance, memory efficiency, and battery life for comparable computing tasks that Android handles well in all performance dimensions.

<comment><USER6> > For that matter, Android didn't have low-latency audio until 4.2.

It still doesn't, [https://groups.google.com/forum/#!topic/android- ndk/qACobHa8...](https://groups.google.com/forum/#!topic/android- ndk/qACobHa8lNQ)

<comment><USER10> The person who posted that comment is behind the times re audio on Android.

Android can deliver very low audio latency and do it consistently, but the OEM has to test that their CPU power management and other kernel configurations have not screwed it up, and those tests are not baked into ACS.

The OEM should, at least, correctly use the feature flag for low-latency audio, leaving is off if they don't actually know. But specifying that flag in your manifest means your app loses access to devices where good enough is good enough.

Here is a low-latency polyphonic synth: [https://code.google.com/p/music- synthesizer-for-android/](https://code.google.com/p/music-synthesizer-for- android/)

This synth was the test case for development of low-latency audio.

<comment><USER6> > The person who posted that comment is behind the times re audio on Android.

No, that person has real life experience what means to develop for Android while targeting the majority of devices available to consumers.

All your answers so far were very good and I appreciate the time you took to answer them.

However, those of us that target all three major mobile OS across multiple OEMs, have a different experience of what Android's performance on real devices looks like.

And to conclude this thread, Google agrees with us, otherwise they wouldn't have spent $23 Million buying FlexyCore if Android's performance on real devices was so good as you have been defending.</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment>


Venture Capital, Angels or Bootstrap? - <AUTHOR> http://gigaom.com/2008/06/15/venture-capital-angels-or-bootstrap/ <comment><USER2> I am sure I read _exactly_ the same article about a week ago?!?

<comment><USER3> Yes, a week ago [http://anand.typepad.com/datawocky/2008/06/angel-vc-or- boots...](http://anand.typepad.com/datawocky/2008/06/angel-vc-or- bootstrap.html)</comment></comment>


Spidermon: Scrapinghub's Now Open Sourced Spider Monitoring Library - <AUTHOR> https://blog.scrapinghub.com/spidermon-scrapy-spider-monitoring <comment><USER2> That's awesome, great work from the ScrapingHub team. We had a similar approach at SerpApi. We write open source rspec tests and run them daily.

e.g.:

\- [https://github.com/serpapi/test-knowledge-graph- desktop/tree...](https://github.com/serpapi/test-knowledge-graph- desktop/tree/master/spec)

\- [https://travis-ci.org/serpapi/test-knowledge-graph- desktop](https://travis-ci.org/serpapi/test-knowledge-graph-desktop)

\- [https://github.com/serpapi/test-organic-results- desktop/tree...](https://github.com/serpapi/test-organic-results- desktop/tree/master/spec)

\- [https://travis-ci.org/serpapi/test-organic-results- desktop](https://travis-ci.org/serpapi/test-organic-results-desktop)

\- [https://github.com/serpapi/test-news-results- desktop/blob/ma...](https://github.com/serpapi/test-news-results- desktop/blob/master/spec/news_results_trump_spec.rb)

\- [https://travis-ci.org/serpapi/test-news-results-desktop](https://travis- ci.org/serpapi/test-news-results-desktop)

Producing reliable scrapers and parsers is very hard. Testing as much possible is the only way to go. Smart use also of JSON schema on Spidermon.

</comment><comment><USER3> As a Jamaican, I got a unique chuckle out of this. Clever branding!

<comment><USER4> Sim simma!

</comment></comment><comment><USER5> How does this handle sites that are rendered entirely or nearly entirely by JavaScript client side? My only real concern when looking at a new scraping solution, almost everything else can be worked with.

<comment><USER6> I haven't used Spidermon yet, but Scrapinghub has a Scrapy plugin called Splash which can be used to render JS pages within a Scrapy spider.

</comment></comment><comment><USER7> Great, now to figure out some way to use this with Batman.js ...

</comment><comment><USER8> Cool name :)</comment>


Black Death 'spread by humans not rats' - <AUTHOR> http://www.bbc.com/news/science-environment-42690577 <comment><USER2> Last author here. The paper itself comes out this week on PNAS, but the press embargo is lifted already. When it comes out, you can find it here: [http://www.pnas.org/cgi/doi/10.1073/pnas.1715640115](http://www.pnas.org/cgi/doi/10.1073/pnas.1715640115)

What we have done is compare the rise and fall of daily or weekly mortality levels during plague outbreaks against three models of plague transmission - two that are generally accepted (rat-borne plague and pneumonic plague), and one that has been speculated about for a long time (human ectoparasites like body lice and fleas). We allowed the models to achieve the best fit they could within biological parameter constraints, and see how well each of these models could mimic the observed mortality curve.

There is a bit more detail in this interview: [https://news.nationalgeographic.com/2018/01/rats-plague- blac...](https://news.nationalgeographic.com/2018/01/rats-plague-black-death- humans-lice-health-science/)

The code/models we used are available online for one of the outbreaks (Barcelona 1490) [https://zenodo.org/record/1043924](https://zenodo.org/record/1043924)

A pre-review version of the paper is available as a poster here: [http://www.mn.uio.no/cees/english/people/phd/katharrd/kd_yer...](http://www.mn.uio.no/cees/english/people/phd/katharrd/kd_yersinia_poster.pdf) Note that we changed the lice model a bit since then, on recommendation of one of the reviewers.

<comment><USER3> Could it be a combination of several transmission methods? Like rats + lice?

<comment><USER2> That indeed could be. We didn't test mixed models of transmission, but we took the first step here by testing all three models independently.

Xavier Didelot did some work on testing mixed models for two cities, 17th century Eyam and 19th century Cairo. He did have to further simplify the models though - there are some restrictions on how many floating parameters you can have while the models are trying to converge to the parameter set that results in the best match with the observations.

Epidemiological analysis of the Eyam plague outbreak of 1665–1666: [http://rspb.royalsocietypublishing.org/content/283/1830/2016...](http://rspb.royalsocietypublishing.org/content/283/1830/20160618)

Model-based analysis of an outbreak of bubonic plague in Cairo in 1801: [http://rsif.royalsocietypublishing.org/content/14/131/201701...](http://rsif.royalsocietypublishing.org/content/14/131/20170160.article- info)

</comment></comment></comment><comment><USER4> Attention-grabbing headlines and bad research has conditioned me to not update my beliefs based on anything that I only briefly stumble upon like this. There might have been a time when reading an article like this would blow my mind, and make me excitedly share it with others who had a similar belief, but now my first impulse is to just feel sceptical.

<comment><USER2> Not a bad first impulse :-). It often pays in science to wait a few years/follow-up studies before fully accepting something. What is thought to be true in plague is especially fluid now with ancient DNA studies on human remains coming out regularly, each with its own narrative on how to explain the phylogenetic tree.

That said, there are some long-standing questions in plague research, one of which is why the first and second plague pandemic were that much more lethal than the third plague pandemic. Prior to the aDNA work, people speculated that medieval plague was a different pathogen altogether, but that hypothesis has been put to rest now. An alternative theory has been that plague could spread through human ectoparasites, and we found a novel way to test that theory. That resulted in this paper.

<comment><USER5> Could it be that by the third plague more people developed immunity and therefore less were killed.

<comment><USER6> > more people developed immunity

Better yet, those who survived prior plagues were more likely to already be immune to the disease, and evolutionary pressure led to a more resilient population against this type of disease.

</comment></comment></comment></comment><comment><USER7> If you want to get into the mindset of what it was like to deal with the black death, check out Plague Doctors: [https://www.youtube.com/watch?v=oDz0OrRZOZ0](https://www.youtube.com/watch?v=oDz0OrRZOZ0)

<comment><USER8> On the upside, Black Death survivorship may explain Europeans' relative resilience to HIV (edit: smallpox) [1].

[1] [https://www.nature.com/news/2005/050307/full/news050307-15.h...](https://www.nature.com/news/2005/050307/full/news050307-15.html)

<comment><USER9> If the contention of this page's article is true (BD spread by humans), then the link you posted is more in favor of _smallpox_ being the cause of relatively greater resistance to HIV in Europe.

</comment></comment></comment><comment><USER10> I think this was already known in the 90s. At least a plaque in the Antwerp Zoo has already been stating this since the beginning of this millenium.

<comment><USER2> You are right that there have been people speculating about it for a long time, going back more than a hundred years. Some of the earliest reports are from the time of the Indian Plague Commission, and there have been some snippets of evidence since then.

One of the groups that is doing most of the research on body lice as vectors of plague is the group of Didier Raoult. Michelle Ziegler made a nice summary of that work here:

[https://contagions.wordpress.com/2016/11/17/the-case-for- lou...](https://contagions.wordpress.com/2016/11/17/the-case-for-louse- transmitted-plague/)

</comment></comment><comment><USER11> Research clearly funded by rats.

</comment><comment><USER12> This may mean good things for the outbreaks in remote parts of Madagascar and anywhere else one may occur, because the solution could be as simple as sanitation and delicing.

<comment><USER2> The 2017 madagascar one might actually have been a combination of rats and pneumonic plague. But yeah, it is good to pay attention to all possible routes of transmission and see where you can intervene.

</comment></comment><comment><USER13> There were several outbreaks in the centuries 14th-19th. Did the data used by the author cover all the major ones? My impression is that it is easier to recover data for the most recent outbreaks than for the older ones.

<comment><USER2> There were indeed hundreds of outbreaks during those centuries. The outbreaks we selected were the ones for which we could find daily or weekly mortality records, as that gives you an epidemic curve that you can fit mathematical model to.

We didn't use all of the cities for which we had outbreaks, but selected nine that covered a large part of the time period, and a large geographic region. Here is the list:

Givry, France, 1348. Florence, Italy, 1400. Barcelona, Spain, 1490. London, England, 1563-1564. Eyam, England, 1666. Gdansk, Poland, 1709. Stockholm, Sweden, 1710-1711. Moscow, Russia, 1771. Malta, Malta, 1813.

</comment></comment><comment><USER14> PSA: "Plague is widespread in much of California, including in the Sierra Nevada mountains and foothills. In a typical year, the Centers for Disease Control and Prevention (CDC) reports about ten cases of plague in humans per year in the western United States. However, during 2015, 16 human plague cases were reported."

[https://www.nps.gov/yose/planyourvisit/plague.htm](https://www.nps.gov/yose/planyourvisit/plague.htm)

</comment><comment><USER15> Does this shed a new light on the mystery of why the area of modern Poland was spared, remaining largely unaffected by the plague?

Also it makes a certain novel sound a little bit less realistic.

<comment><USER16> It seems to be an internet myth that Poland was laregly spared. Some guy over at AskHistorians actully dug into the evidence: [https://www.reddit.com/r/AskHistorians/comments/79dwua/why_d...](https://www.reddit.com/r/AskHistorians/comments/79dwua/why_did_poland_have_lower_rates_of_black_death/) \- it is a fascinating writeup.

</comment></comment><comment><USER17> So I guess, one question this would raise, is, of modern infection, what is the vector found?

Not that they must be the same, but at least they might have an explanation as to why modern infections would be different from historical ones, if they are any different.

<comment><USER2> There are some studies that looked at the ectoparasites found during plague outbreaks, but just finding an ectoparasite with plague-infected blood in it doesn't tell you much yet on the importance of the transmission route.

Piarroux R, et al. (2013) Plague epidemics and lice, Democratic Republic of the Congo. Emerg Infect Dis 19:505–506.

Laudisoit A, et al. (2007) Plague and the human flea, Tanzania. Emerg Infect Dis 13: 687–693.

Ratovonjato J, Rajerison M, Rahelinirina S, Boyer S (2014) Yersinia pestis in Pulex irritans fleas during plague outbreak, Madagascar. Emerg Infect Dis 20:1414–1415.

</comment></comment><comment><USER18> Boris, thanks for answering questions here.

One more: has this raised any doubts that the Black Death was a Bubonic Plague?

<comment><USER2> Depends on how you mean the question. ancient DNA analysis has settled that the first two plague pandemics were Yersinia pestis, so if your question was on what kind of bacterium caused the Black Death - that is Yersinia pestis.

If it is about the manifestation of the disease (the clinical symptoms), those we only know from historical descriptions and that is not something a model can change :-). So yeah, many infected people would still have had buboes. Buboes are also the expected result from plague acquired from fleas (whether they were human fleas or rat fleas).

What might be less known is that there is a pretty high chance (10-20%) that a person suffering from bubonic plague progresses to pneumonic plague. That basically is a death warrant for that person, but it also means that he/she might spread the disease further through air-droplets. If the conditions are right, you might get a pneumonic plague epidemic intermingled with a bubonic plague epidemic. Model-wise, that is one scenario we haven't looked into, but we have seen something like that play out in Madagascar last year.

</comment></comment><comment><USER14> Rodent Plague Surveillance in California

[https://www.arcgis.com/apps/ImpactSummary/index.html?appid=6...](https://www.arcgis.com/apps/ImpactSummary/index.html?appid=6627dfd8b7f1485cbdfda824965e49b3)

</comment><comment><USER19> I never really understood why people hate rats, but love squirrels. I think rats are cool too.

<comment><USER20> Most people hate squirrels, at least around here.

<comment><USER19> In NYC it's pretty common to see people watching them and taking pictures of them.

<comment><USER21> Those are tourists.

<comment><USER19> And what, they don't count as people?

<comment><USER6> They don't count as people who have to deal with squirrels. Bears are also cuddly.

</comment></comment></comment></comment></comment></comment><comment><USER22> Yet another paper discovers the obvious. The "cure" for the plague was 40 days off isolation of affected homes or cities. Rats and fleas don't respect human quarantines.

Another factor is rats. They are killed by plague just like humans. At least one person should have noted large volumes of rats dropping dead everywhere, but that isn't mentioned in writings of the time.

<comment><USER23> > " Rats and fleas don't respect human quarantines."

rats dont travel as much as you think, even within cities. only when the rats piggy back on human travel, could they have spread the disease.

[https://www.nytimes.com/2015/04/26/magazine/the-rat-paths- of...](https://www.nytimes.com/2015/04/26/magazine/the-rat-paths-of-new- york.html)

"But feral cats won't stray three blocks beyond where they were born, and few mice will venture more than a hundred feet from their burrows in a lifetime."

<comment><USER22> If rats don't travel, then how do they spread the plague? If they do travel, then quarantine would not work. If they travel with humans, then we would expect to see massively higher infection and death rates among travellers due to prolonged times with infected rats as they dragged them everywhere (where is this evidence?) The plague spread across Europe at an enormously fast rate (some believe that hemorrhagic fever with a separate bubonic outbreak in Italy).

</comment></comment></comment><comment><USER24> Maybe it spread from the sacramental bread eat in church ...</comment>


FlexBuffers - <AUTHOR> https://google.github.io/flatbuffers/flexbuffers.html <comment><USER3> So here's how I think this fits into all the other different types of data serialization:

Schema-ful, copying: Protobuf, Thrift, plenty more

Schema-ful, zero-copy: Cap'n'proto, Flatbuffers

Schema-less, copying: Json (binary and other variants included), XML

Schema-less, zero-copy: Flexbuffers (Any others? This seems new to me)

<comment><USER4> While it's true that XML is a generic serialization of angle-bracket markup that doesn't _need_ a schema for serialization (which was exactly the main motivation for its "invention" as a SGML subset), the reason it's being used in inter-party or long-term/loosely-coupled service payload serialization is because it has fairly powerful and well-established schema languages (XML DTDs and XML Schema) for validation. This is unlike JSON which thrives in ad-hoc serialization for tightly-coupled back-ends and web front-ends (and only in that scenario IMHO). So I don't think XML belongs into the "schema-less, copying" category.

<comment><USER5> Very true. IMO many people that hate XML config files just haven't used an IDE that validates schema. Its super nice to have auto-complete and property validation on config files, something not offered by JSON or YAML. A good reason to stick with XML for complicated configs.

Its one of reasons I don't mind maven. Yeah there's 1000+ line XML config file, but maven DTD is so tight nearly any syntax issue will be flagged. Something easy to appreciate when you're used to giant config files that don't get validated until runtime.

<comment><USER6> Visual studio does schema validation for JSON and gives errors inline. There is a big list of supported schemas built in and you can define your own. Never actually looked at the format personally.

<comment><USER7> Json schema is what vscode uses. It's a standard nowadays. Just as effective as XMLSchema.

[https://jsonschema.net/](https://jsonschema.net/)

[http://www.schemastore.org/json/](http://www.schemastore.org/json/)

</comment></comment></comment></comment></comment><comment><USER8> > if you supply a buffer that actually contains a float, or a string with > numbers in it, it will convert it for you on the fly as well, or return 0 if > it can't. If instead you actually want to know what is inside the buffer > before you access it, you can call root.GetType() or root.IsInt() etc.

I've started to prefer functions that are explicit about their error cases and have interfaces that make it obvious about what errors you'd want to handle. Unexpectedly getting a zero when you get garbage data may cause issues.

Thinking about it, zero is often used as a success code: ERROR_SUCCESS is 0x0 on Windows. So garbage in, ERROR_SUCCESS out??

Something like:

        value, err = root.AsInt64();

makes it clear you have an error path. You can still ignore `err`, like when you are moving fast and breaking things or it's somehow certain to always succeed, but it's clear that there's an unhandled error path.

<comment><USER9> As you can see from the documentation, `AsInt64` is a convenience method that either says, I know this is an int, or make it so. There are also ways to check the type before you access, if you prefer. You can even check if its unsigned, if you want that level of type-safety.

<comment><USER10> Right, but GP is suggesting that the requirement to ignore an 'err' value that would make the API user think twice about possible failure cases that could otherwise go ignored with the convenience API.

<comment><USER9> You are choosing to use a schema-less, dynamically typed representation (where a strongly typed alternative is directly available). I'd say, the convenience of being able to just say I am going to assume this is an int is fitting. If you wanted to be forced to error check (which needs an if-then in most languages), you might as well use the schema based, strongly typed version of the system instead, which would guarantee correct types for you, and requires no error checking.

</comment></comment></comment></comment><comment><USER11> [https://google.github.io/flatbuffers/flatbuffers_white_paper...](https://google.github.io/flatbuffers/flatbuffers_white_paper.html) has the "why", if anyone is curious.

</comment><comment><USER9> I made this thing! AMA :)

<comment><USER12> What do you think is the best buffer protocol to use for multiplayer games? We used Protobuf for a fast-paced .io game, but encoding-decoding turned out to be pretty slow and generated a lot of garbage in JS. We were in the process to switch to FlatBuffers (before the company went bankrupt), but the syntax made it feel harder to use compared to Protobuf, not sure about the performance though (we expected it to be faster and less garbage created because of the zero-copy).

So, would you recommend Protobuf, Cap'n'Proto, FlatBuffers or FlexBuffers for multiplayer games? The usual packets are game states or user input sent at high frequency.

<comment><USER9> I originally designed FlatBuffers for games (though admittedly more for things like level data or save game data than network packets), so I'd think it is pretty suitable. I had actually used Protobuf on a game project just before, and its performance problems led directly to the no-unpacking no-allocation design that FlatBuffers has.

So FlatBuffers will make an incoming packet waaay faster to work with than Protobuf. On the downside, Protobuf tends to be a little smaller, so if bandwidth is a greater concern than (de-)serialization speed, you might still prefer it. Additionally, receiving data over the network raises the question of how you handle packets that have been corrupted (or intentionally malformatted by an attacker), and in the case of FlatBuffers you'd need to at least run the "verifier" over the packet before accessing it if you don't want your game servers to crash when this happens. That slows it down a little bit, but is still fast, i.e. still doesn't allocate etc.

Cap'n Proto will perform similarly, though does have the downside that all fields take space on the wire, regardless of whether they're set or not. So which is better depends on the kind of data you want to send and how it is likely to evolve.

Frankly, for the absolute highest performance (and lowest bandwidth) game networking you still need a custom encoding.

<comment><USER13> > Frankly, for the absolute highest performance (and lowest bandwidth) game > networking you still need a custom encoding

This is really the truth here. The efficiency of a networking protocol for a multiplayer game is somewhat sensitive to the context; Are you trying to do a fast-paced game with lots of client prediction? Do you need to have guaranteed delivery? Do you expect your game to be used with highly-lossy networks, or mostly from stable connections?

It's not uncommon to find something like flatbuffers or flexbuffers available in a multiplayer game engine, but the high-performance systems like movement or ai will probably utilize a custom protocol better suited to their task.

</comment></comment></comment></comment><comment><USER14> I'm looking to replace our current Boost.Serialization code with something else. I have the following requirements:

\- serialisation cannot be intrusive (i.e. I don't want a class definition to be generated from a schema file)

\- zero copy

\- some sort of versioning so any accidental message version mismatch between sender and receiver doesn't cause a crash / undefined behviour.

\- many language support

Protobufs are intrusive, so that rules them out. JSON is just too verbose and slow. MessagePack looked like the most promising path to pursue at the moment. Flatbuffers look quite similar.

<comment><USER15> My predecessor has employed smile in all our m2m communication. As far as I have understood it, it aims to be a binary representation of json. I cannot speak for its speed but I trust him to a certain extent.

</comment></comment><comment><USER16> there's a lot of C++ around this FlexBuffer thing so I'm not sure how relevant it is outside of C++. Any idea?

<comment><USER17> We use FlatBuffers (the parent project) in our code @ FS... that means it has to work in C++, Rust, Java, and TypeScript. It's mostly the schema processing that requires a C++ compiler to make it work.

It's a pretty stellar cross-platform serialization toolkit and the zero-copy support for reading is no joke.

<comment><USER18> We've been using it across multiple languages too as the data serialization format between server and (web) client. It's fantastic.

</comment></comment></comment><comment><USER19> What does zero-copy mean in this context?

<comment><USER11> Normally, zero-copy refers to the fact that data can be decoded without copying it in memory. I.e. a pointer cast is zero-copy because there's no need to copy the memory elsewhere; that memory can simply be reinterpreted as the target type.

I'm not sure if that's the same meaning in this context, however.

</comment></comment><comment><USER20> I wonder how it compares to messagepack's zero copy serializer: [https://blog.treasuredata.com/blog/2011/11/21/messagepack- th...](https://blog.treasuredata.com/blog/2011/11/21/messagepack-the-missing- serializer/) ?

</comment><comment><USER21> I wish Google open sourced RecordIO instead (or in addition). People reinvent this particular bicycle, poorly, pretty much in every project where engineers are smart enough to introduce a _structured_ application log.

<comment><USER22> It looks like [https://github.com/google/riegeli](https://github.com/google/riegeli) might be what you're looking for? (from a search of "RecordIO")

<comment><USER21> Far too complicated for what it's supposed to do. Google's RecordIO basically just concatenates messages together, with a few additional provisions for compression and handling small messages. In contrast, Riegeli depends on three different compressors and Abseil, and its file format specification is quite elaborate: [https://github.com/google/riegeli/blob/master/doc/riegeli_re...](https://github.com/google/riegeli/blob/master/doc/riegeli_records_file_format.md). This could explain its lack of market penetration (only 221 stars at the time of this writing). The authors apparently don't care that it's not popular, since they don't even provide a code example on how to use it. It also apparently uses HighwayHash for integrity checking, which is overkill - <USER2> things should use crc32c, for which most modern CPUs have a dedicated, fast instruction.

</comment></comment></comment><comment><USER23> So, is this basically Android's Bundle semantics made standard and cross- platform? Are there differences implementation-wise?

</comment><comment><USER24> I'd rather use MessagePack. Clean, simple, small.

<comment> iso8859-1 It has worse performance though. Not zero-copy.

<comment><USER25> It depends what you mean by zero-copy. It can't be traversed without parsing the structure, but strings and binary blobs can be used in-place without copying. (This is also possible with JSON even, for example with RapidJSON's in-situ parser.)

This has worse performance for decoding, but far better performance for encoding. Encoding any traversible format is guaranteed to be expensive because you have to encode it inside-out, calculating the nested sizes of everything as you go. For messages that are only encoded once and read once, for example network messages, a format that is traversible in-place is a poor choice.

<comment><USER26> That's too general. Sometimes there's [almost] nothing to calculate, so no slowdown. Sometimes the traversible format can be used as your working data structure and then encoding is a no-op.

</comment></comment></comment></comment><comment><USER27> Java example is very weird.</comment>


Why I don't want Netflix of (tech) books - <AUTHOR> http://no-kill-switch.ghost.io/why-i-dont-want-netflix-of-tech-books/ <comment><USER2> I for one am looking forward to perhaps Amazon stepping in to the subscription-based technical library. Safaribooksonline's library selection is very vast - without an easy eBook-reader option to consume the books, one has to keep reading on lcd screens - goes without saying that the eyes are getting sore quite fast and reading is not really pleasant. Should Amazon join the party, I'd be more than happy to buy something like an oasis (but bigger) and read on that.

When it comes to the sole idea of subscription-based tech books, I'm a big fan, too - programming books get obsolete really quick nowadays. Python, GO, Kotlin etc. - all see minor or major updates making older titles outdated. Why pay $30-$50 for a book which will be partially or fully redundant in 2-3 years? Instead I am willing to pay those $20/month and have a big library at my fingertips, easy copy-paste of programming code when learning at the pc, checking out titles which I would probably not buy in retail on my own and many more.

</comment><comment><USER3> There's one already. It's o'reilly books.</comment>


Databases from finite categories - <AUTHOR> http://lambda-the-ultimate.org/node/5435 <comment><USER2> Slightly off topic - at Lambda Conf right now, went to Spivak's 6 hour lecture on category theory. Whenever they post the videos, I'd recommend it. He's an excellent instructor.

Others mentioned that his textbook on category theory was also really good, but I can't confirm.

</comment><comment><USER3> Similar: DPF (Diagram Predicate Framework) [http://dpf.hib.no/](http://dpf.hib.no/) A related paper: [http://www.sciencedirect.com/science/article/pii/S1571066108...](http://www.sciencedirect.com/science/article/pii/S1571066108004350?via%3Dihub) Gotta love this quip from the abstract: "In the engineering jargon, it is a modeling language design pattern that combines mathematical rigor and appealing graphical appearance."

</comment><comment><USER4> This line of work has been continued in the FQL project: [http://categoricaldata.net/fql.html](http://categoricaldata.net/fql.html) . The SQL analogy is discussed in the Relational Foundations paper there.

<comment><USER5> (From that page) This introductory video is intelligible to even me, with fairly little knowledge of category theory: [https://youtu.be/fTporauBJEs](https://youtu.be/fTporauBJEs)

</comment></comment><comment> tuna-piano Oh the irony. Paper about databases that just throws a database error. [http://imgur.com/a/OomMv](http://imgur.com/a/OomMv)

Cached mirror: [http://webcache.googleusercontent.com/search?q=cache:C-U5bLC...](http://webcache.googleusercontent.com/search?q=cache:C-U5bLCvFIIJ:lambda- the-ultimate.org/node/5435+&cd=1&hl=en&ct=clnk&gl=us)

</comment><comment><USER6> This is pretty interesting. The paper basically starts by talking about "Concept maps", or graphs of concepts and relations. These concept maps correspond to an SQL schema, and instances of concepts and relations correspond to table rows.

Then they go one level meta and discuss how to create "alignment mappings" between the concepts generated by different people. This makes me think about how math standards for different countries/school systems could be aligned. For example, using an "alignment mapping" between math topics taught in US and math topics taught in UK, you could repurpose a high-quality educational content source (e.g. Khan Academy) to be used in UK schools.

But wait, there is more! The space of mappings between concept maps can also be represented as a graph also a category, and somehow there is interesting structure that can be used to categorize and link the alignment mappings (15+ pages that I didn't understand). I wish they had continued the SQL analogy. What would a functor be? Is it a migration? Or an ETL script? And what is a flow?

<comment><USER7> Do you intend to say that mathematics is different from UK to USA? Do they have integers?

<comment><USER6> It's not that the math is different, but the order in which concepts are presented.

</comment></comment></comment><comment><USER8> The book "Big Data Integration Theory" also uses category theory to model database mappings: [https://www.goodreads.com/book/show/19361242-big-data- integr...](https://www.goodreads.com/book/show/19361242-big-data-integration- theory)

</comment><comment><USER9> direct link to paper, [https://arxiv.org/pdf/1102.1889.pdf](https://arxiv.org/pdf/1102.1889.pdf)</comment>


How do I provide value to my startup as a non-technical founder? - <AUTHOR> http://www.kilometer.io/blog/how-do-i-provide-value-to-my-startup-as-a-non-technical-founder/ <comment><AUTHOR> Lately, I answered a few Quora questions about the value a non-technical cofounder can provide during the pre-launch stage of a startup. My answers got thousands of views many upvotes; so I decided to dedicate a blog post to this important question.</comment>


Skimlinks raises funding to expand in Asia, starting with Japan - <AUTHOR> http://thenextweb.com/insider/2013/04/22/skimlinks-funding-asia/?utm_source=HackerNews&utm_medium=share%2Bbutton&utm_content=Content%20monetization%20startup%20Skimlinks%20raises%20funding%20to%20expand%20in%20Asia%2C%20starting%20with%20Japan&utm_campaign=social%2Bmedia <comment><AUTHOR> The site now also available in Japanese - <http://skimlinks.co.jp/></comment>


NMA Course Materials - <AUTHOR> https://github.com/NeuromatchAcademy/course-content <comment><AUTHOR> These are all videos, slides and Colab notebook tutorials for [Neuromatch Academy 2020]([https://neuromatch.io/academy/](https://neuromatch.io/academy/)) an online summer school on computational neuroscience that is currently taking place.</comment>


What's it like to get a "?" email from Jeff Bezos? [video] - <AUTHOR> https://www.youtube.com/watch?v=u1RD-UDE0rQ Hey HN: I've pulled together a video for one of the most common questions I get about Amazon: What's it like to receive a question mark email from Jeff Bezos?
https://www.youtube.com/watch?v=u1RD-UDE0rQ
I've never found any high quality info online for this topic save a few responses on a Quora thread. In the video I promise additional content, but I didn't realize that YouTube had certain thresholds to be able to post a link off of YT to another site, so I am including the link here: https://www.interviewat.com/pl/195251 (it's also in the video description text).
This is a good look at the process, deliverables, and outcomes when working at AMZN. For reference, I was the Director of Product Management for the Kindle sw platform. I probably handled no fewer than 10 question mark emails from Jeff over the 3 years I was there. <comment><USER2> Ah, the "myth" of Jeff Bezos. I only "met" him twice, in the hallways of PacMed, back when Amazon's workforce was so tiny compared to now.

I was at AWS, 2008-2014. In the early days, Bezos would frequently comment on AWS-related stuff, such as daily EC2 revenues, etc.

Occasionally, despite I wasn't an executive back then, I would also be one of the tens of email recipients that angry Amazon customers would use to shout their anger at the company (because my public facing role of tech evangelist, and my @simon Twitter handle).

I have to say, I don't think that Amazon's and Jeff's success has much to do with a "?" email, or the ":)" email I saw a few times. These are simply a shortcut for slightly longer sentences - "what do you say about this?", and "Nice work! :)".

Jeff's success, in my view, is an amazing capacity to hire excellent people, and being able to drive them to work crazy hours and feel like founders, despite not having share ownership in accordance to their work. Most of them, especially the early ones, are rich beyond any imagination. They could have been richer, sure... But they could also not.

Also, the organizational structure at Amazon, with every team having to provide APIs for their product, is also genius. AWS could have not happened without that.

<comment><USER3> I think you nailed it -that's why Amazon is a success..a culture where brilliant people working crazy hours for little reward (now).. obv that gets harder to translate when you have thousands of employees...

<comment><USER4> > Most of them, especially the early ones, are rich beyond any imagination.

Doesn't seem like they sleep on the street either. :)

</comment></comment></comment><comment> doopy-loopy2 Whenever I get passive aggressive or otherwise ambiguous emails like that I just ignore it.

If it's important, they'll follow up.

<comment><AUTHOR> Yeah, I'm wish it were that simple with the Bezos emails. :)

<comment><USER5> It's simple if you've made the decision not to work for FAAMG.

<comment><USER6> So, no Netflix, and who's M?

<comment><USER7> MongoDB

<comment><USER5> Meteor

</comment></comment></comment></comment></comment></comment><comment><USER8> Question I would have is, why didn't the product manager know that those reviews mattered to his competitor's marketing team and CEO as a differentiator, and why weren't those competitor features already tracked on their roadmap?

This PM seems like an A-player, but he was caught flat footed, hence the "?"

The "?" email means you dropped a ball. If I were doing an armchair RCA on it, I'd posit the problem was a disconnect in the relationship between Product and Marketing, where marketing would have already known they were getting hammered on reviews - and that they mattered - but Product was probably indexed on the wrong stakeholders, likely in the engineering org given, a) that the PM could code at all meant eng was still his comfort zone, and b) the focus on being seen to ship a release. My read of it was he dropped the ball because he backed the wrong horse and misunderstood the priorities of the company. Of course you drop everything to fix it, you f'd up.

Unfortunately, just sending "?" emails to staff doesn't create the culture where they are meaningful. Sending "?" messages doesn't make you Jeff Bezos. I'd argue they are an artifact of a very specific local culture in AMZN. If managers in other orgs imitated that aspect of it, thinking now they're doing the real Bezo-ing, they would be just doing a cargo cult management ritual.

</comment><comment><USER9> At this point in the App Store cycle, most app developers I know would aggressively "review flush". It sounds like the OP wasn't familiar with the growth strategies common at the time.

If your star average goes below 4.5, put out a quickie point release. That would reset the reviews, and the review prompt would drive a 5 star instantly.

IIRC, I'd also divide all the users into buckets, and stage out review prompts by week. You never want negative reviews stacked alongside each other in the review list. Multiple negative reviews is the kiss of death for conversion - rank drop could happen fast.

By staggering review prompts, you'd get positive reviews rolling in every single week, with a surge up front.

Obviously, that doesn't mean _ignore_ the negative reviews. Those are generally critical product failures. That necessitates response. We'd group and measure review categories, and reach out to affected users to see how they felt about potential and shipped solutions. Product quality is step one on good reviews.

None of that means setting your business on fire because of negative reviews. At the same time it's a critical signal to be dealt with, there's an immediate business problem of minimizing or eliminating the impact of negative reviews.

They're two different swim lanes requiring two different processes.

<comment><USER10> >You never want negative reviews stacked alongside each other

That's a funny thing to say, because as a user all I ever want from online reviews is the negative reviews stacked together. Positive reviews are only noise, in the way. The only question is what sort of negative reviews are there?

Strategizing as you describe is depressing to me because it suggests the public mostly uses reviews in the wrong way.

</comment></comment><comment><USER11> I think it's telling that his first hypothesis for why Barnes & Noble was getting more positive reviews was that they were paying for them. Honestly, my first thought was "maybe they're just asking more customers". I wonder if he thought that the competitor was doing something shady _because_ he'd been put on the spot and so his first response was instinctively the most defensive one.

<comment><USER12> He mentioned several times that asking for reviews wasn't common (in his opinion) at the time, and so there's little else that could reasonably explain the jump in review count.

<comment><USER11> I agree that asking for reviews was a lot less common at the time (2012), but he actually says "asking for reviews ... wasn't something that came to the front of mind ... it felt dirty at the time". To me that reads like he was aware it was something apps were doing but he wasn't comfortable with it. So when the CEO of the company asked him "why aren't we higher rated in the app store?" he probably wished the answer was "they're cheating" instead of "because I feel it's unethical to ask for reviews".

</comment></comment></comment><comment><USER13> To be honest, I think the world has bigger problems than "why is our kindle app not getting the most app-store reviews and stars".

<comment><USER14> which is perhaps why the email subject only got a single character

<comment><USER13> But it caused a team of apparently quite talented people to 'drop everything' and scurry for an answer.

Of course this kind of this kind of thing is important to individual businesses and needs to be done, it's just a shame to see "The Best Minds of My Generation Are Thinking About How To Make People Click Ads"

</comment></comment></comment><comment><USER15> This sort of ridiculous time pressure on a question that's basically of almost no importance seems unnecessary. It makes me think the culture around this is completely broken. It's also notable that they dropped everything, panicked, and triaged for 48 hours (which I presume is his way of saying that he has no respect for any of his teams' personal lives) for something which has no urgency _other_ than who is asking the question. Then having completely interrupted everyone's jobs for 48 hours, they then go on to completely refocus the team for 2 _weeks_ looking at why Barnes & Noble must be cheating.

And how does it all resolve? Oh right, the B&N App is pretty good, and they ask their users for reviews. Which the Kindle team would know if any of them had bothered to pay attention to what their competition is doing in the first place. Notice how the original point was that the B&N App had more _better_ reviews? And how the solution was not to build a better Kindle App - it was to juice the metrics.

</comment><comment><USER3> Ironic that this is about reviews of a product on an app store given Amazons legacy on product reviews...

Brandon here gives a great overview of his experience here. but I'm sorry that so many intelligent people have to be bootlickers to CEO whims and that we inculcate that lesson for our new hires and new engineers. (ie the CEO is 'GOD')

Of course a CEO gets to dictate policy..but if it happens on a whim or for certain empathy deficient folks like Bezos after another CEO eggs him on..

To me a decent work life balance is paramount..but ambitious people have other priorities -Life's to short to waste your weekend analyzing app store review data esp if you or your team of engineers is busy doing what the company wants in the first place.

Bezos, Musk, Jobs, Gates or our own CEO we drink the corporate kool-aid and keep worshiping these guys.. at what cost?

</comment><comment><USER16> It means that the sender is either illiterate, or that his time is to precious to spend on inferior creatures like us, aka an asshole.

I really do not get this religious approach to other pepole.

</comment><comment><USER17> > for the Kindle sw platform

Dang! As I understood, were you guys one of the teams with the craziest work hours over there?

How did you handle the work-life balance?

</comment><comment><USER18> This is a typical middle manager mentality of treating CEO as a messenger of God.

</comment><comment><USER19> !

</comment><comment><USER20> This isn't really a Show HN

> _" Show HN is for something you've made that other people can play with. HN > users can try it out, give you feedback, and ask questions in the thread."_

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

It's probably better posting either the video itself as a submission.

</comment><comment><USER21> Right. rich person sends email to another person.

Not sure why this person is giggling and feeling excited about this in the video. The sender doesn't care, I don't care, Who cares.

Move along now nothing to see here.

<comment><USER22> The cult of Bezos continues to wreak havoc on localities and workers.

</comment></comment><comment><USER23> ?

</comment><comment><USER24> I still can't downvote on HN but if I could, i'd downvote this.

<comment><USER25> I think it's pretty brave telling the world that you didn't think about a problem with common knowledge and went full engineer on this. I mean, I think at least 10% of us here could've hypothesized that they might be asking the user for a review. Even if that was not-done at that time, they should've just used the b&n app from the beginning and not after the multiple days of escalation.

Probably all due to the stifling effect of a single character email

I do get it though, in my own company we constantly compare ourselves to the competitor, but we never actually do a competitor analysis, it's like we're scared or something to use their product.</comment></comment>