Amazon to acquire video doorbell maker Ring - <AUTHOR> https://www.geekwire.com/2018/amazon-acquire-ring-video-doorbell-maker-cracking-open-door-home-security-market/ <comment><USER3> Not an original thought but its fascinating how much extra information Amazon has in these acquisitions than a normal company. When such a big part of Ring's sales are through amazon they can figure out things like

* How many people search specifically for the brand Ring

* If a knockoff appears first do people buy that instead

* What is the growth in searches and purchases overall

* Why do people return the product

These are things even Ring wouldn't know. Its not too far fetched to think you could build a valuation engine off the information Amazon has and compare the cost of cloning the product line to acquiring the company automatically.

<comment><USER4> Is it legal to manipulate the market to test signals?

Eg. We may want to buy this company. Let's make their product appear after competitors and see how strong sales remain.

<comment><USER5> Manipulating search results for any reason is illegal and Google has faced heavy scrutiny for it in the past, so I would think it would be the same for Amazon.

<comment><USER6> Illegal? There may be scrutiny in a monopoly context, but there is no law that states that search results have to be fair and equitable.

How could they even be? For example Amazon might only stock four of six brands of video doorbell, so they're not going to be able to return neutral results.

</comment></comment></comment></comment><comment><USER7> Ring was on the TV Show Shark Tank, and all the sharks passed on the deal. It was $700K for 10% of the company. And now it sold for more than 1 billion $.

<comment><USER8> You have the wrong idea about the show. It exists to promote the shark's own businesses and products under the guise of a contest reality show. To keep up the facade, they allow other companies to put their products up for a price, and intersperse a couple of silly products to keep people watching.

It's just dressed up advertising, it's not about investing or business by any flip of the coin.

<comment><USER9> This isn't true, the only thing that is "fake" is how much time they spend asking questions. From speaking to a "dragon", they spend about 45-60 minutes assessing the product/idea. After that, if they choose to invest, they invest.

<comment><USER10> Not true. Many deals change or don't go through. [https://www.forbes.com/sites/emilycanal/2016/10/21/about-72-...](https://www.forbes.com/sites/emilycanal/2016/10/21/about-72-of- deals-that-happen-on-shark-tank-dont-turn-out-as-seen-on-tv/#60b30bda4ed1)

</comment></comment></comment></comment><comment><USER11> Amazon and Google -- and Facebook and a handful of others -- seem to be in a never-ending race to learn everything about everyone everywhere: who you are, where you are, what you do, when you do it, and why do do it.

Having cameras and microphones in your house and your neighborhood is a small part of that.

<comment><USER12> Don't forget they're also monitoring people who interact with you (a.k.a. the user of services).

When I walk into a friends home who has an Alexa, or a Ring system, it is now tracking me too.

The purchaser consented, but I never consented to being monitored in a residence/dwelling where I would otherwise have the reasonable expectation of privacy!

There was a good Gizmodo article about this called The House That Spied on Me [1].

[1] [https://gizmodo.com/the-house-that-spied-on- me-1822429852](https://gizmodo.com/the-house-that-spied-on-me-1822429852)

<comment><USER13> Do you have expectations of privacy on someone else's private property? Seems fair to assume surveillance in retail establishments or banks. The only exception I can think of is rented private property (hotel rooms, airbnb's).

</comment></comment></comment><comment><USER14> Crap. I guess I won't be buying one then. Amazon also just gobbled up the maker of my home security cameras (Blink). I really would prefer my home monitoring devices to be separate from the giant tech companies that I'm trusting less and less.

<comment><USER15> You could always invest in IP cameras, and manage where the data goes yourself. No reason a 24/7 video stream of your home needs to be sent to a big tech company's data centers, anyway, or any data center for that matter.

<comment><USER16> This is the approach I take. It's not for everyone, but it can range from simple to complex depending on what you want to do.

I have a variety of WiFi cameras, all of which are on a dedicated WiFi network that cannot access the internet. I use Zoneminder to handle the recording, motion detection, etc. Zoneminder is pretty versatile, but it's ultimately up to the camera to provide a compatible method of access - RTSP works well for cameras that support it, but if you have a URL on the camera that will return a JPEG that will work too.

Most of my cameras are low-end D-Link models, they work fine with Zoneminder. I recently got an Amcrest camera which, after some cajoling, works very well with Zoneminder. Using a JPEG URL that Zoneminder polls never worked for some reason, but RTSP worked perfectly.

If you want to go this route, look for evidence that other people have gotten the model you're interested in to work with software like Zoneminder, Blue Iris, or iSpy. Generally this means that the camera supports open standards that you can use in your system.

If you don't want to go the Zoneminder route, some cameras can do a lot of the work internally. All of my cameras, for example, have some degree of motion detection and the ability to upload files to an FTP server or send an email. The biggest challenge here is that none of these cameras can be configured to do this without either a Java Applet or a vendor-provided browser plugin to view the live video and define the detection zones and parameters.

<comment><USER17> >I have a variety of WiFi cameras, all of which are on a dedicated WiFi network that cannot access the internet.

> All of my cameras, for example, have some degree of motion detection and the > ability to upload files to an FTP server or send an email.

Am I missing something?

<comment><USER16> The email and FTP features are available on my cameras, but I don't personally use them. I only included it as an option to use a camera without relying on the vendor's cloud service and without setting up something like Zoneminder.

Upon rereading my comment, it could have been structured differently to make that clearer.

</comment></comment></comment></comment></comment><comment><USER18> "How would you subject the world to constant monitoring at all times?" Winston asked O'Brien.

"I'll make them pay for it. Enjoy it even." replied O'Brien

That's how the book should've ended.

</comment><comment><AUTHOR> More details from Axios - "..although a source calls this Amazon's second- largest acquisition of all time (behind Whole Foods). That would seemingly mean it's above $1.2 billion (the amount Amazon paid for Zappos), which is in line with earlier reports that Ring was fundraising at around a $1 billion valuation."

[https://www.axios.com/amazon-buying-video-doorbell- company-r...](https://www.axios.com/amazon-buying-video-doorbell-company- ring-1519763306-7c7fb313-0bc7-4fbc-a50e-7dbe4a6ab0dd.html)

</comment><comment><USER19> What does this mean for existing Ring customers? Considering the privacy implications and the fact that Amazon can/will do a lot more with this data than Ring did, is there a way for Ring customers to opt-out of future integration into the Amazon ecosystem?

I imagine there are a decent chunk of Ring customers who would have not purchased the device had it been sold by Amazon in the first place.

<comment><USER20> >I imagine there are a decent chunk of Ring customers who would have not purchased the device had it been sold by Amazon in the first place.

I have a hard time feeling too much sympathy for these people. The inevitable conclusion for most of these heavily-vc-funded home automation startups is an acquisition by one of the tech giants. If you are boycotting the tech giants for whatever reason, you should therefore be boycotting any startup that might be an acquisition target.

also, if you're putting video cameras in your home that push footage to a server you don't control (or even one that you do) i'm not sure you can call yourself privacy conscious.

<comment><USER19> > _The inevitable conclusion for most of these heavily-vc-funded home > automation startups is an acquisition by one of the tech giants._

You're right that this was an obvious outcome, in retrospect. I wonder what percent of their customers saw this coming. My sense is that they're not just selling to early adopters now—my retired aunt has been telling me about Ring for quite some time.

> _If you are boycotting the tech giants for whatever reason, you should > therefore be boycotting any startup that might be an acquisition target._

Huh, so if I avoid FB then I shouldn't use anything that they might acquire? Seems kind of tough, since they go out and buy things like Oculus, which was a bit out of left field.

<comment><USER20> if you're going to feel betrayed when a startup gets acquired by FB then you should avoid all startups.

if you can be understanding about a company you don't like acquiring one you do, then buy whatever. just don't be shocked when a startup follows the same route as literally every other startup.

</comment></comment></comment></comment><comment><USER21> Perhaps a stupid question, but where does the $1bn. valuation come from? Amazon already make hardware, including cloud cameras, would it have been so hard for them to make a doorbell in-house?

<comment><USER13> Ring has some existing cash flow through their video monitoring business.

There's also some premium to be had for tight integration options - <USER2> Ring doorbell owners would likely opt for a Ring indoor camera (if one existed) versus competitor's, just to avoid the hassle of dealing with two apps and paying for two subscription plans.

<comment><USER22> Given that Amazon just bought Blink a few months ago you can see the shape of the Amazon smart home ecosystem coming together...

<comment><USER13> The Blink acquisition is less obvious to me, considering Amazon already had a branded Dropcam competitor at pretty competitive price [https://www.amazon.com/Introducing-Amazon-Cloud- Cam/dp/B01C4...](https://www.amazon.com/Introducing-Amazon-Cloud- Cam/dp/B01C4UY0JK)

</comment></comment></comment></comment><comment><USER23> Amazon now has Blink and Ring. I wonder how soon "You're out of paper towels" and "Your paper towels are on the porch" will come about?

Bonus points for "the neighbor kid just stole your package" alert.

<comment><USER24> They have the ability to unlock your front door, so "your paper towels were replaced on your holder" is a legit option.

<comment><USER25> When am I just going to have a person come to wipe my butt?

<comment><USER26> With 10000 baby boomers turning 65 every day, a butt wiping robot might be very successful.

</comment></comment></comment></comment><comment><USER27> Makes sense, as Amazon gets further into delivery this provides a complimentary service to help keep packages secure and let customers see who shows up at the door. It would be interesting if someday you could also let a courier in remotely.

<comment><USER28> Someday is long past, they've been offering to unlock your door if you've got their lock and cam for some time now. [https://www.amazon.com/b?&node=17285120011](https://www.amazon.com/b?&node=17285120011)

</comment></comment><comment><USER29> Sudden vision: you request Amazon home delivery -- the delivery person comes to the door, holds up a smartphone showing a nonce QR code, the Ring doorbell checks the nonce with Amazon, says, "Checks out" and unlocks the door.

<comment><USER30> Yes, this is an actual service they offer - [https://www.amazon.com/Introducing-Amazon-Key-In-Home- Kit/dp...](https://www.amazon.com/Introducing-Amazon-Key-In-Home- Kit/dp/B00KCYQGXE)

</comment></comment><comment><USER31> Didn't they just buy another remote video camera company?

Or was that Google? It's so hard to keep track of all the new toys that big tech companies keep buying. Either way, talk about a full-court press on getting devices into your home.

<comment> Digital-Citizen Perhaps it was about purchasing the copyrights and patents Ring controls, or purchasing the company most likely to cause problems for Amazon when Amazon rolls out more of their ridiculous home invasion plan marketed as an inside- the-home delivery service. This is the service apparently everyone has been perfectly fine to do without since Amazon began doing business.

</comment></comment><comment><USER32> RIP HomeKit Integration Promises

</comment><comment><USER32> This sucks... Ring has been providing subpar service and promises that remain unfulfilled. It was Cleary working on cutting costs to get ready for a sale.

<comment><USER25> Why wouldn't an acquisition from Amazon help them achieve scale and meet some of those promises?

</comment></comment><comment><USER33> Seems like a defensive move against Google's Nest Hello video doorbell [https://nest.com/doorbell/nest- hello/overview/](https://nest.com/doorbell/nest-hello/overview/) no?

<comment><USER34> Yes, clearly video doorbells are going to be the next smartphones.

</comment></comment><comment><USER35> We were just talking about this at a lock picking meetup (lots programmers there too). The consensus seemed to be that if it has all the security problems of IoT plus all the security problems of doors... that would be a lot of fun for us.

</comment><comment><USER36> There goes any hope of the HomeKit support promise coming through in the Ring Pro.

<comment><USER32> First thing I thought too... I'm glad I've been investing in real IPcams and setup my own security system. HomeKit will never come to ring

</comment></comment><comment><USER37> I had just recently purchased a Ring doorbell. I debated between Ring and Skybell. I should have gone with Skybell. Trying not have 1 company know everything about me (I know...probably impossible).

</comment><comment><USER38> I wonder if this is for their in home delivery. Have ring devices recognize valid amazon delivery employees and let them in to drop off packages/food. VIP service - stock your fridge.

</comment><comment><USER39> I'm surprised this isn't at the top of the frontpage. This is big vindication of all hardware startups. Will VCs go big in this category after this series of exits?

<comment><USER40> I don't think this validates this space at all. If your only exit strategy is to get acquired by a big 5 you're already in trouble.

Hardware is pretty freaking hard. Just look at recent examples of public hardware companies: FitBit / GoPro. Both doing like crap, struggling to maintain their grab on the market and looking for acquirers.

Honestly, I think this is a very unattractive sector, at least in this side of the world. Most serious hardware contenders are and will keep coming from China (DJI, Xiaomi, Yi, etc).

<comment><USER41> Business is hard, whether it's hardware or software. I think a lot of software-based companies wish they were "doing like crap" the way Fitbit is -- navigating through a couple years of unprofitability using a large pile of cash gained through years of profit.

Disclaimer: I work for Fitbit but speak only for myself.

<comment><USER39> I've generally been impressed of FitBit's business savvy. They get hw well (keep BOM/per-unit costs under control). It was particularly instructive to see the fate that befell Pebble (glad that fitbit hired a lot of those folks, etc.).

</comment></comment></comment></comment><comment><USER42> What is Amazon's angle here?

To get a video and photo ID of every person, living at an address? Then they will run this through a face recognition deep learning AI, to get a digital facial ID of everyone.

Now, they just one-upped Facebook. Where they know who lives where, and what type of person they are. Male, female, young, old, skinny, fat, short, tall, ethnicity, clothing style preferences, music preferences, healthy or sick.

Now, you don't even need to fill out those advertising questionnaires on who you are. Amazon will just collect it automatically from this Ring doorbell camera.

Now, they have a definitive demographic information on you, for targeted advertising. They can either email you, or snail mail you. Since now, they know exactly who you are. As well as who else lives with you.

And when you sign onto Amazon, the ads will be targeted directly at you.

1\. Hey, it looks like you have a daughter at home. Do you want to buy her a nice little necklace for Christmas? We have a nice selection on sale here.

2\. Or if you are black. Hey, if you spend $20 on Amazon today, we can get you free movie tickets to see the new Black Panther movie.

3\. Or if you are Asian. Hey, there is a new Chinese restaurant opening up in your area. Spend $50 on Amazon today, and we can get you a free lunch special.

<comment><USER43> This isn't an apocalyptic scenario to a lot of people... Facebook and Google are doing very well selling ads.

</comment></comment><comment><USER44> August Home really missed the boat:

[https://seekingalpha.com/news/3332326-information-amazon- off...](https://seekingalpha.com/news/3332326-information-amazon- offered-100m-august-releasing-key)

</comment><comment><USER45> While I do think I understand why Amazon would want to purchase Ring (the company), I don't fully understand why consumers would want to buy Ring (the product).

The number one use I seem to see from it is people taking video and posting it on nextdoor (package thief alert, car prowler alert, etc.) followed by other people talking about how the neighborhood is going downhill and lamenting about how the police don't do anything with their Ring video.

I guess this is my attitude on most of the home security field. It always seems like the devices have a ton of false positives that just give the owners something else to worry about, and the companies that sell these things continue to do so because it gives owners the illusion that buying these devices give them some sort of control.

<comment><USER46> Do you really not see the value of a live feed of who's at your door and a clear 2 way audio feed?

The current existing solution either have really poor quality, are complicated to install (require technician), and don't integrate with your smartphone.

I'm not talking about the Ring specifically, there are other competitors too such as Nest Hello, but the idea seems pretty straight-forward and valuable to anyone with a door.

<comment><USER30> How is it valuable, exactly? What's the gain?

<comment><USER47> 1) Theft deterrent. Not getting your house broken into is more about not being the most attractive target than anything else. Video cameras, motion detector lights, no bushes blocking vision to windows, etc, all make an impact.

2) Seeing who is at the door without potentially having let them know that you're there. In my house, there are glass windows to both sides of the door. I cannot go look through the peep hole without them know I am there. I purchased one after I had several days of a person (people?) ringing my doorbell in between 3 AM and 5 AM, then driving around the neighborhood slowly in their car. I certainly wasn't going to go answer it or announce my presence in case something sketchy was going on.

3) Communicating with someone at the door if you need to. I sleep late on weekends - sometimes I need to sign for a package. With the ring, I can let them know that I'm there and just need to throw on some clothes, rather than them leaving. Or if I'm in the restroom.

4) I want to keep an eye on the front porch while I'm gone, and get alerts on motion detection. I can catch some neighborhood kids being stupid, or something stealing a package, etc etc.

5) If they're leaving a package that isn't signature required, and I'm not home, I can ask them to put it behind the bushes, etc.

</comment></comment></comment></comment><comment><USER32> I assume Ring will never give the promised HomeKit support now...

<comment><USER48> I just asked them on Twitter and they said it was "coming soon"

</comment></comment><comment><USER49> Interested how this plays into the best in class vision that Amazon pursues.

Does this acquisition allows them to take their Amazon Key service (Cloud Cam + service + tech) to the next level?

</comment><comment><USER50> I had to return several of these after finally figuring out that the voltage on my doorbell was higher than the maximum supported by ring.

</comment><comment><USER51> On a side note, I believe this year we will see them acquire either RingCentral or Dialpad.

</comment><comment><USER52> the word 'privacy implications' gets thrown around here so much and I'm wondering what exactly can amazon do with a video of mailman walking up to your doorstep that could violate your privacy?

</comment><comment><USER53> i guess no google assistant support now for ring products

</comment><comment><USER54> Curious if amazon would buy irobot.

<comment><USER55> irobot has lots of sensors (spying potential)

</comment></comment><comment><USER56> safe to assume homekit compatibility is not going to be released?

</comment><comment><USER57> Home login system

</comment><comment><USER58> inb4 SkyBell stops being sold on Amazon.

</comment><comment><USER59> Wait, THE ring? Of another ring?

</comment><comment><USER60> So in the future it won't even be possible to visit a friend's front door without being tracked by Google/Amazon/Facebook/etc?

A while back a friend of mine bought one of these "cloud"-connected doorbells, and hadn't even considered the privacy implications. After I explained it to him, he thankfully returned it and went back to using a normal doorbell.

People who install these should be forced to install a sign just outside of the camera's view informing visitors that, by proceeding to the door, they agree to Amazon/Google/whoever's privacy policy and ToS.</comment>


Ask HN: What can programmers do to help with Covid-19? - <AUTHOR> <comment><USER2> Join a Pademic bootcamp. Dude people goto medical school for like an almost 10 year career path. Not everything is gonna be solved with a web app. Wash your hands.</comment>


The New High-Rent Districts - <AUTHOR> https://www.nytimes.com/2018/08/24/realestate/the-new-high-rent-districts.html <comment><USER2> Location. Location. Location.

It makes sense the gentrifying(-ied) are the ones with the greatest rent increases since they also have experienced the most change - in both renter demand and neighborhood economics.

Plainly put, the established, already-pricey neighborhoods on the list just aren't that "cool" anymore. Now that those who were previously priced-out of the pricey neighborhoods found a new place to settle into and revamp around them (i.e. Brooklyn), the prices of those new places significantly increased as troves of others followed suit and moved to the "cool, new, changing" neighborhoods.</comment>


Are there any five nines hosted database services? - <AUTHOR>

There are a few hosted database services around but the ones I've looked at cater for web apps. My app is a VoIP/telecoms one and I need a five nines SLA, are there any that meet that? <comment><USER2> Er, yes, but I'm not sure if this will be a satisfying answer:

If you contact IBM Global Services, they have a group that can put together a hosted database proposal with very stringent uptime guarantees. Most likely they'll push for you to be hosted on z10 (mainframe) architectures and DB2. They can run it across a multi-site SYSPLEX in multiple tightly controlled data centers. They've got a handful of customers who have been continuously up since at least the late 1980s in a config like this.

This topic came up at OpsU in SF a couple weeks ago. I think the consensus from all was that looking for "five-9s" is a very bad proxy for asking the question, "What is the cost-benefit of downtime mitigation strategies?" I've worked on systems that required (either because of regulation or health and safety) appreciably 100% uptime. The cost for near-perfect uptime almost never balances against the cost of downtime including lost revenue, lost customer confidence and the like.

Now, one of those applications did happen to be a telecom application (a switch), and there was, before deregulation, a universally accepted requirement that billing records must continuously capture 99.999% of the time. No clue if that still exists, but if that's you, there are about a kajillion preexisting solutions to this problem, and many of them are hosted.

The Magic 8-Ball says: Concentrate harder and ask again. :-)

</comment><comment><USER3> Better question is: Is there any hosted _anything_ that actually _delivers_ five 9's?

Most SLAs are crap. Yay, you get a credit of $50 for our 8 hours of downtime. If you're building a mission critical service based on Some 3rd party SLA, you're in for a world of hurt.

<comment><AUTHOR> For application layer servers the 5 9's redundancy can be achieved by deploying multiple servers. Deploying a multiple server redundant database is a difficult problem which distracts from the main application. Hence the desire for a hosted option.</comment></comment>


Rewriting a large production system in Go - <AUTHOR> http://matt-welsh.blogspot.com/2013/08/rewriting-large-production-system-in-go.html <comment><USER2> It's interesting to see that more and more internal projects at Google are getting redone in Go. However, this sentence stands out to me in the article:

"Before doing the rewrite, we realized we needed only a small subset of the functionality of the original system -- perhaps 20% (or less) of what the other projects were doing with it."

I'm guessing that a lot of the benefit of the rewrite came simply from the simplification of the core logic and dropping extraneous functionality. That said, having written a little bit of both C++ and Go, I can completely see why the author found that Go was both far more readable and more maintainable than C++.

<comment><USER3> OP here. It is absolutely true that we did not rewrite the entire original system in Go; I tried to be very explicit about that in the blog post. But, I feel confident that it could be done, in much less code, with greater clarity and modularization. The Go language by itself does not force good software design. A rewrite in _any_ language would have been better than the original system, but our decision to use Go turned out to be fortuitous in that we managed to do so in record time and with much greater programmer productivity.

<comment><USER2> I'm glad to hear it.

Was there anything about the language that you found particularly _forced_ clarity and modularity? I'm giving a talk comparing Go and Ruby next month and I'm curious as to what people with experience with larger Go programs find to be most helpful.

<comment><USER3> The Go module system for sure. Also I really like Go's interface model (as opposed to Java or C++ classes) as it is more flexible and in some ways more precise. Note that I don't know Ruby so I can't compare Go to that...

<comment><USER4> Thanks for the article, it was a very interesting read! Since this always comes up in Go discussions: did you miss generics in this project or was the lack of generics a non-issue?

<comment><USER3> I haven't found that I needed generics so far, though I can see places where they would be useful.

</comment></comment></comment></comment></comment></comment><comment><USER5> The number of strongly typed garbage collected compiled languages is surely shrinking. I can understand someone's disgust towards Java considering dwindling velocity in adding next-gen features and now sleeping in same bed as lawyer run Oracle. That pretty much had left C# in the arena until Go came on the scene. I was honestly hoping Go would give us head-to-head battle with C# but from initial looks Go pretty much feels like C# 1.0. No generics, no partial classes, no linq... C# 5.0 even has async and dynamic types. I like minimalism but these features are something we take for granted in languages that were created post-2000 era. So it all boils down to people choosing Go for singular reason: It's not from Microsoft! If licensing for C# wasn't a barrier and let's stretch our imagination by thinking C# was created by some other group in Google, would Go have a chance?

<comment><USER6> Yep, Go would be hardly mentioned here if it wasn't being developed at Google.

Having said this, Go can be a nice replacement for many use cases one would use C for.

<comment><USER7> Go seems to be gaining traction. Does it matter if that's because of where it came from? Maybe in a cultural, I-want-to-think-about-why-some-languages-get- adopted sense, sure, then it can matter. And I think it's worth having those discussions. But I get the impression that people think there's some absolute injustice in the idea that people are adopting a language, and it's partly because it's from Google. Consider:

"Yes, C would be hardly mentioned here if it wasn't being developed at Bell Labs."

<comment><USER6> > "Yes, C would be hardly mentioned here if it wasn't being developed at Bell > Labs."

Fully agree, most likely if UNIX hadn't been adopted at important American universities, C wouldn't have spread as it did.

</comment></comment></comment></comment><comment><USER8> > So programming in Go is making me soft.

Something similar happened to me years ago when I started picking up Perl. All the BS C++ and Java made me go through to get anything done seemed like such a huge waste of time I ended just writing lots of stuff in Perl until I had pretty much forgotten how to C++ and how to Java.

Go might be a new Perl in that sense.

I'd also add that as Google moves more and more production systems onto Go, it will literally become responsible for handling billions of dollars of business. That and because Google is using it (and everybody wants to work at Google so knowing some Go ahead of time will be useful) will lead universities to start covering it and before long this virtuous cycle will result in Go everywhere.

I've also noticed a number of posts here over the last few months extolling the virtues of moving off of slow frameworks built around slow scripting languages in terms of huge reductions in infrastructure costs. For each system that Google brings on-line with Go, even if it took a team of 10 6 months, they've likely saved themselves millions of dollars in new capex infrastructure acquisition. Imagine serving 40x the requests off of the same old hardware. Alternatively, you might be able to use slower, but more energy efficient hardware to serve the same number of users and save on power and heat management. All this combined with Moore's law means this is a fantastic idea at this kind of scale.

<comment><USER9> "For each system that Google brings on-line with Go, even if it took a team of 10 6 months, they've likely saved themselves millions of dollars in new capex infrastructure acquisition"

I thought the old systems were in c++. So, how did the infrastructure savings accrue? In fact, I don't recall anyone doing analysis on that front.

<comment><USER10> Matt linked to my course, but also: I did a tiny analysis of this with my pi searcher ([http://da-data.blogspot.com/2013/05/improving-pi- searchers-s...](http://da-data.blogspot.com/2013/05/improving-pi-searchers- speed-by-moving.html) ) -- it's a toy compared to the kind of system that Matt described, but my experience was extremely positive. Rewriting it in Go made it easier to architect the system right to take advantage of persistence. It's hugely faster.

We also have a paper accepted to SOSP this year (the academic weenies will understand that) where the system - a Paxos variant - is implemented in Go. We also implemented about four _other_ Paxos variants in Go to compare against them, a task that would have been absolutely grueling in C++. In Go it wasn't too bad. Our performance isn't super-blazing, but it turns out to be one of the faster publicly available Paxos implementations anyway. I'll have to write up a bit about our experience with it -- I'm with Matt 100% on this one.

<comment><USER3> We've done lots of load testing and the CPU and memory footprint of the Go version is better than the C++ version. Not surprising since we reduced the code size so much, but at least using Go did not involve significant bloat.

<comment><USER11> What about throughput and latency, how does your Go version compare to the C++ version?

<comment><USER3> Identical. The bulk of our system's latency involves making calls out to other services, so that is not the bottleneck in this case.

</comment></comment></comment></comment></comment></comment><comment><USER12> > If I could get out of the 1970s and use an editor other than vi, maybe I > would get some help from an IDE in this regard, but I staunchly refuse to > edit code with any tool that requires using a mouse.

So you've shown that Go is appealing to rigid curmudgeons. Personally I'm still hung up on the "every function (edit: that does _anything_ which might itself return an error code, which in large scale code is _quite a lot_ ) must return an error code" thing. Just like not understanding the purpose and usefulness of graphical editors, the creators of Go seemingly (despite their legendary status...) seemingly not understanding the purpose and usefulness of exceptions (waving them off as "they result in convoluted code" with no explanation) is keeping me pretty skeptical.

It just requires I take in some well written, idiomatic Go code so that I can finally "get it", how I'd live without exceptions, but I'm too busy being productive in Python (and enjoying Pypy's ever increasing speedups) to get that interested.

<comment><USER13> It is not the case that every function most return an error.

The Go creators do understand the purpose and usefulness of exceptions. They chose not to use exceptions with this knowledge. See [http://golang.org/doc/faq#exceptions](http://golang.org/doc/faq#exceptions) for their reasons.

<comment><USER14> I don't know. The quality of this FAQ entry is in my opinion narrowed by their inclusion of FileNotFoundException, which it seems they did not understand. The use case for this exception is _not_ to allow lazy programmers to use it instead of checking that a file exists, but to signal to a programmer that his world view of the state of his program may be _wrong_ despite his best efforts, e.g.

      if(file.exists())
      {
        //do something
      }

There's a race condition between the if and do something which invalidates the programmers world view (someone can delete the file between these two statements). And this is an exceptional situation the program has to deal with. Error codes _may_ tell the programmer this, but it is quite likely that the programmer will just ignore it, because "I've already checked that it exists - what could possibly go wrong?". Exceptions, especially checked exceptions (in my opinion the only good exceptions for "normal" program code)(1), force the programmer to deal with this problem. Or to say - deliberately - "Hey, program, I don't care for the stability of my software. Just explode if this happens!".

(1) Languages which have only unchecked exceptions do, in my opinion, cave in to the laziness of programmers: "but, but, it is so much WORK to deal with all of this. Can't it just go away? Please?" \- the result is code which can explode everywhere. This is even worse than no exceptions. With return codes you know at least that you have to check the code yourself very, very carefully all the time.

<comment><USER15> > There's a race condition between the if and do something which invalidates > the programmers world view (someone can delete the file between these two > statements). And this is an exceptional situation the program has to deal > with.

It's not an exceptional situation. It's a bug in your program. And it's not lazy to open() and check for existence. It's actually the _only_ sane way to check that the file exists, if you plan to open it.

> Error codes may tell the programmer this, but it is quite likely that the > programmer will just ignore it, because "I've already checked that it exists > - what could possibly go wrong?"

The following code is obviously wrong because of the race condition you mention. Nobody in their right mind would write code like this.

        if exists(file) {
            f = open(file)
            // do something with f
        } else {
            // handle "file not found" case
        }

This code is correct, to some degree:

        try {
            f = open(file)
            // do something with f
        } catch (file not found error) {
            // handle "file not found" case
        }

As is this Go code:

        f, err := os.Open(file)
        if os.IsNotExist(err) {
            // handle "file not found" case
        } else if err != nil {
            // handle any other error that might arise
        }
        // do something with f

The thing is, the above code is not me being extra careful about checking errors. It's just bog standard Go code. Checking error values is the only way to write even half-decent Go code, so everyone does it all the time.

No reasonable programmer would write Go code like this:

        _, err := os.Stat(file)
        if err != nil {
            // handle "file not found" case
        } else {
            f, _ := os.Open(file)
            // do something with f
            // (or explode if file doesn't exist)
        }

To my Go programmer eyes, the underscore (where I'm ignoring the error) in the os.Open line sticks out like a sore thumb. You wouldn't write it, and when reading you would certainly notice it as bad code (or at the very least extraordinary code).

</comment></comment></comment></comment><comment><USER16> You know, every time I see some Googler shocked at the effectiveness and various advantages of coding in Go, I wonder why Google never adopted Erlang. They could have been getting all these same advantages (and then some) a decade ago :)

<comment><USER17> (full disclosure: I work at google and also like erlang)

Erlang has fantastic facilities for robustness and concurrency. What it does not have is type safety and it's terrible at handling text in a performant fashion. So if you don't care about either of those things and only care about robustness and concurrency then Erlang is great. There were internal discussions about Erlang here but the upshot was. We had already basically duplicated Erlangs supervision model in our infrastructure, only we did it for all languages and Erlang didn't offer any benefits in performance for us. It's only benefit would have been the concurrency model. That's much less benefit than Go gives.

Go gives you Erlangs concurency model, a similar philosophy of robustness, type safety, all batteries included, and performance. Equating the two languages works in 1 or 2 dimensions but not on all the dimensions google cares about.

<comment><USER16> Interesting, thanks for that; it's pretty much what I guessed (especially the bit about the supervision tree and hot-code-upgrade advantages being mooted by your infrastructure.)

On a tangent, though:

> What it does not have is type safety

I've tried to work this out before (I'm designing a new language for Erlang's VM), but as far as I can tell, type safety is in practice _incompatible_ with VM-supported hot code upgrade.

If you have two services, A and B, and you need to upgrade them both, but you can't "stop the world" to do an atomic upgrade of both A and B together (because you're running a distributed soft real-time system, after all), then you need to switch out A, and then switch out B.

So, at some point, on some nodes, A will be running a version with an ABI incompatible with B. In a strongly-typed system, the VM wouldn't allow A's new code to load, since it refers to functions in B with type signatures that don't exist.

On the other hand, in a system with pattern-matching and a "let it crash" philosophy, you just let A's new code start up and repeatedly try-and-fail to communicate with B for a while, until B's code gets upgraded as well--and now the types are compatible again.

It's an interesting problem.

<comment><USER18> > type safety is in practice incompatible with VM-supported hot code upgrade.

That's not true.

First, it's very easy to hot reload changes that have been made to the code that are backward compatible. The JVM spec describes in very specific details what that means (adding or removing a method is not backward compatible, modifying a body is, etc...).

This is how Hotswap works, the JVM has been using it for years.

As for changes that are backward incompatible, you can still manage them with application level techniques, such as rolling out servers or simply allow two different versions of the class to exist at the same time (JRebel does that, as do other a few other products in the JVM ecosystem).

Erlang doesn't really have any advantages over statically typed systems in the hot reload area, and its lack of static typing is a deal breaker for pretty much any serious production deployment.

<comment><USER16> > As for changes that are backward incompatible, you can still manage them > with application level techniques, such as rolling out servers or simply > allow two different versions of the class to exist at the same time (JRebel > does that, as do other a few other products in the JVM ecosystem).

Neither of these allow for the whole reason Erlang has hot code upgrade in the first place: allowing to upgrade the code on one side of a TCP connection without dropping the connection to the other side. Tell me how to do that with a static type system :)

<comment><USER19> Out of curiosity, where/why would such an exotic feature be needed in today's internet architectures where you always front a group of servers with a load balancer ?

<comment><USER20> Not all Internet protocols are HTTP. If you're running a service where long- lived connections are the norm, "simply fronting a bunch of servers with a load balancer" can require a pretty smart load balancer. E.g. IMAP connections often last hours or even days, and are required to maintain a degree of statefulness.

</comment></comment></comment></comment></comment></comment></comment><comment><USER21> > Go's type inference makes for lean code, but requires you to dig a little to > figure out what the type of a given variable is if it's not explicit. So > given code like:

       foo, bar := someFunc(baz)

> You'd really like to know what foo and bar actually are, in case you want to > add some new code to operate on them.

The gocode utility (which works with several editors) does exactly this.

</comment><comment><USER22> Re: figuring out the signature of functions or the definition of structs, I've found godef useful: [http://godoc.org/code.google.com/p/rog- go/exp/cmd/godef](http://godoc.org/code.google.com/p/rog-go/exp/cmd/godef)

The Go emacs mode has godef-jump (C-c C-j) and godef-describe (C-c C-d): [http://golang.org/misc/emacs/go-mode.el](http://golang.org/misc/emacs/go- mode.el)

</comment><comment><USER23> It disheartens me a bit when people compare Go with C++. It gave me the impression that Go was created to be better C++ (or Java) mostly to make life easier for the thousands of developers at Google who are stuck with those two languages.

<comment><USER3> OP here. What do you think we should be using apart from C++ or Java?

<comment><USER24> Scala. Rust also looks extremely promising, though not mature yet. It is getting there quickly though.

<comment><USER25> If you use Scala in a way that has not a whole lot of extra cognitive load, it's a slightly prettier re-skin of Java. If you use it like it's Haskell, it has a cognitive load that's as bad as Haskell (or worse). And if you inherit a codebase from someone else, you can bet they've been tempted to be oh-so- clever. That's why I'd never let Scala near production.

Go has almost no cognitive load beyond the complexity of the algorithm itself.

<comment><USER26> It sounds to me like you're lumping things like writing for loops and mutating state in with the inherent complexity of the algorithm. I think reducing the ability to create abstractions like generic map/filter increases cognitive load. Reducing cognitive load is the whole reason I'm learning Haskell and currently use Clojure.

</comment></comment></comment></comment></comment><comment><USER27> Go is a nice language with awesome features except that it doesn't fucking allow unused imports/variables. It makes exploratory programming with Go annoying as hell.

<comment><USER28>
        don't {
            print x for {x : unused variables}
            x() for {x : function from unused imports}
        }

</comment></comment><comment><USER29> Interesting that Go's lack of HM type inference is that problematic. In, Rust or Haskell, one could simply use that value further on with some type and have it inferred correctly.

</comment><comment><USER30> Can you share your new system benchmarks comparing to the old c++ system?

<comment><USER3> Unfortunately, probably not. Hopefully one day.

</comment></comment><comment><USER31> "So given code like:

        foo, bar := someFunc(baz)

You'd really like to know what foo and bar actually are"

Wouldn't your editor, mouseless though it may be, provide for that? Does ctags not work with vi?

And why use vi over vim?

<comment><USER3> OP here. I do actually use vim but I have yet to adopt most of the fancy plugins that vim provides -- put me in a time machine back to 1977 and I would be very capable of programming on any UNIX system that you'd drop me in front of, provided it had vi installed. I'm not defending this choice of lifestyle; it's just how I learned to program :-)

<comment><USER32> Even in the 2010s I've found proponents of the UNIX console style of programming because, as you say, they can be dropped in front of any similar system and off they go.

However, tools improve and you're denying yourself productivity benefits. One of the advantages of a statically typed language is that the computer _knows_ the type of the arguments. I love environments that allow me to 'mouse over' a function or variable etc. and tell me exactly what it is (and allow me to navigate to its definition). You don't have to use a mouse but what's the disadvantage in having alternatives to keyboard shortcuts _where appropriate_?

</comment></comment></comment><comment><USER33> Unless it is open sourced, I can't validate the claims.

<comment><USER3> I would love to open source this system, but even if we did I'm not sure we'd be able to convince you that using Go was better than some other language in terms of developer productivity. How would having access to the source help?

<comment><USER33> You mentioned in the article that you read a section of code by one of the lead engineers and immediately you became convinced that using Go is the "way- to-go". Well, I would like to experience that eureka moment as well.

<comment><USER3> Good point. Maybe you could check out one of the many other open source Go projects out there as an alternative. I'm not sure reading our code would give you that eureka moment, since it only made sense to me since I was so familiar with the old code :-)</comment></comment></comment></comment>


Show HN: Yet Another Log Viewer - <AUTHOR> http://marsinvasion.github.io/yalv/ <comment><USER2> This question is of the utmost importance: how does one pronounce "YALV"? Yelv ("yell" with a 'v')? Ya'alv ('Ya'all' with a v)? Yalve (rhymes with "valve")?

<comment><USER3> If we're polling, I jumped to Yalve.

</comment></comment><comment><USER4> I submitted a link to HN and by the time the page refreshed, this link was posted and already had an upvote, seems fishy... (milliseconds between the submission and upvote)

<comment><USER5> I think that happens if someone else also posted the same link in some time window, and it didn't make it to the front page.</comment></comment>


A Man Who's Going to Save Your Neighborhood Grocery Store - <AUTHOR> https://longreads.com/2019/04/23/the-man-whos-going-to-save-your-grocery-store/ <comment><USER2> Article has a confusing title, it not about saving your small local neighborhood store. It is about how supermarkets can compete with Amazon, Walmart and online. His idea sounds a lot like Whole Foods, and not a neighborhood store.

 _The store that resulted is called Harvest Market, which opened in 2016. It's south of downtown Champaign, Illinois, out by the car dealerships and strip malls; 58,000 square feet of floor space mostly housed inside a huge, high- ceilinged glass barn._

 _Harvest Market is the anti-Amazon. It's designed to excel at what e-commerce can't do: convene people over the mouth-watering appeal of prize ingredients and freshly prepared food._

Since Amazon is Whole Foods, it doesn't sound at all like the anti-Amazon.

<comment><USER3> Exactly. I like the idea of "traditional American supermarket" for the irony content.

When I was a youngin', our town didn't have any chain stores, just a dozen or so family markets.

I miss the culture and environment, not so much the lack of selection. Since then, it's hard to take sides in a Safeway vs Walmart vs Amazon brawl.

The first chain fast food (aside from the ubiquitous Dairy Queen) came somewhat later. That's a thing I think we could do without.

<comment><USER4> Having shopped at family markets, I also don't miss their prices.

<comment><USER5> I do miss their higher quality and usually locally sourced products... and the friendly "customer experience" of local employees paid above minimum wage.

<comment><USER4> Your family market experience was clearly very different from mine. High quality, local sourcing, and friendly services were never hallmarks.

</comment></comment></comment></comment></comment><comment><USER6> Since my Vietnamese sister-in-law introduced me to Asian farmer's markets, I tend to only shop at them for anything fresh. Their produce selection is just so much better than traditional American super markets, they actually have a real butcher, and their seafood selection is much larger.

Their produce selection tends to be a lot cheaper than standard grocery stores too because they have separate supply chains and direct relationships with Asian owned farms.

Several local Asian chains have been moving into abandoned super market buildings in my area over the last 5 or 10 years, and I'm starting to see more and more non-Asian and non-Hispanic people shopping at them lately.

<comment><USER7> Yeah, I get all my seafood (except wild pacific salmon, for some reason Trader Joe's has by far the best) from Korean/Thai grocery stores. Great selection on fresh/frozen shellfish and fish.

I think most traditional major supermarket chains have a higher markup on the "fresh things" like produce/meat/seafood but low prices on processed things + eggs + milk. Meanwhile the Asian groceries tend to have a low markup on produce/seafood but high markup on the processed things.

I just need to find a place to get meat and nice-ish cheese (currently stock up on store-brand cheese every two weeks at Trader Joes) for cheap. I don't miss small grocery stores at all, usually they were too expensive with poor quality produce/meat and very poor seafood selection in my experience.

</comment></comment><comment><USER8> I live in a small town/village that has just had it's grocery store reopen after it being closed for five years. Based on my experience I don't see any need to radically rethink grocery store, people just need to experience shopping at a small store again.

It's not for everyone, the selection is going to be more limited, but it's so much faster and cheaper. We save around 20 - 25% buy shopping locally, there's simply less random items that go into the cart. While the large supermarkets have 5 minute lines and getting around results in shopping taking at least 30 minutes, the small grocery store reduces our once a week shopping trip to 10 minutes. Generally shopping at the large supermarkets have become extremely stressful, perhaps it always was, but now I know there's a better solution... And it's not online.

Online shopping for groceries currently doesn't work, shipping is to expensive, unless you only shop once a week... I do, but then they don't give me items that will last more than a few days. What am I suppose to do with 5L of milk that only last until Wednesday?

After having tried a small local grocery store I'm not sure I want to go back to the supermarkets.

<comment><USER9> My chief complaint about the small supermarkets in urban environments is that their produce just doesn't turn over very fast.

Especially for the larger pack sizes, if they even have them at all.

More generally, Am I willing to save 30% on bread crumbs or soap if it means buying a 6-12 month supply up-front? Yes, that's a great ROI!

4 or 5L of milk may be a problem (unless you freeze it). But I can go through a 10 lb bag of potatoes if I could only get them fresh.

<comment><USER10> > More generally, Am I willing to save 30% on bread crumbs or soap if it means > buying a 6-12 month supply up-front? Yes, that's a great ROI!

This depends on the size of your home and the amount of storage space you have. I am generally unwilling to buy a 6+ month supply of household goods because real estate is significantly more expensive than toilet paper.

<comment><USER9> People say that, but people have a hard time letting go of junk they'll never use to make space for stuff that they consume everyday.

<comment><USER10> I think people fit on a wide spectrum ranging from hoarder to absolute minimalist.

I was speaking for myself, and some of the hidden costs associated with buying in bulk.

</comment></comment></comment></comment></comment><comment><USER10> I live in a dense urban area.

I'd consider my neighborhood grocery stores to be the 5,000-10,000sqfoot places scattered around the area so no home within a three mile radius is more than a 10 minute walk to one. They survive just fine by being cheaper than Amazon Fresh and significantly more convenient than the Walmart/Costco that exist on the outskirts of the city.

<comment><USER11> Sure, right up until Walmart builds a Neighborhood Market a block away...

<comment><USER10> That's a fight we have fought before and won. I'm confident we can fight it again.

<comment><USER12> Why? Is the goal to have good groceries nearby or is it some kind of a war against "big" companies?

<comment><USER10> Personally? I've lived places where Walmart was the _only_ grocery store within 30 miles. I much prefer my neighborhood grocery stores and would rather they not have the competition. Walmart has a history of forcing other retailers out of business.

Yes, I understand that statement is antifreemarket and many people will disagree. I think people should take a more active approach to shaping their local communities.

</comment></comment></comment></comment></comment><comment><USER13> From looking around my city and noticing which grocery stores are thriving and which aren't, I've noticed a pattern. I readily admit that I am judging by how busy they are and have no insight as to their actual profitability. Also, my city seem unusual in that Whole Foods is not particularly popular here. People who would shop there have had better places along the same lines for years before Whole Foods came around, so there were already deeply entrenched shopping habits.

The very high-end grocery stores are doing about the same as they always have. The bulk/budget grocery stores are doing better than ever. It's the ones in the middle that seem to be dying.

I'm not sure how much of this can be placed at Amazon's feet. Amazon's grocery offerings seem to be geared toward the high-end.

</comment><comment><USER14> Article is about food produce stores, not typical grocery stores that small town have. I think food produce stores are relatively safe still, Amazon Fresh lacks choice, no free delivery and have higher prices. They have to deal with fundamental problem of everything must go before it expires and that prevents offering long tail choice.

However small town grocery stores which sell everything from toothpaste to cereals are in big trouble, I have watched 2 of them getting closed because of lack of customers. A big issue is also lack of smart software that can guide inventory decisions. They usually have ton of things that doesn't fly off the shelves while customers getting disappointed with not finding things. You would expect these stores to have optimization software that identifies losers and replaces it with better options but they don't. I would see them consistently run out of some product every Wednesday and not getting it replenished for rest of the week. I would think their software would detect this and get that item more but that would never happen!

They can probably still stay alive if they had smarter software.

</comment><comment><USER15> I grew up in the town Niemann Foods, Incorporated is headquartered in.

If anything, this strikes me as a response to Hy-Vee's continued growth. Much of Harvest Market takes aims at design themes Hy-Vee has bee pushing for a decade now.

I wish NFI luck but given their struggles in their home market, I'm not sure this is the Hail Mary they need.

<comment><USER16> Fun fact: Shook Kelley also did some research work for Hy-Vee. [http://www.shookkelley.com/work-detail/45](http://www.shookkelley.com/work- detail/45)

</comment></comment><comment><USER17> I love this sentence from the article: "I make my living convincing male skeptics of the power of emotions," he says.

</comment><comment><USER18> I live down the road from Harvest Market. It is nothing special, I'd trade it for a whole foods in an instant. It's just a high end supermarket with a nice seating area.

</comment><comment><USER19> Grocery is going in two directions: aldi and then Whole Foods/HyVee.

Short order meal prep is where the real money is.. the UK specifically London is a prime example.

<comment><USER20> Do you mention HyVee because of the midwest location of it, or a general employee-owned supermarket/restaurant/prep meal aspect?

</comment></comment><comment><USER21> I'm sorry for all of you that do not have a Wegmans.

<comment><USER20> I'm sorry for everyone that doesn't have a Price Chopper.

<comment><USER21> You poor soul. I grew up with Price Chopper in my hometown, and found the holy grail in Wegmans when I moved out for college/employment. Wegmans is leagues above them still today.

<comment><USER20> I suppose if I wanted a fancy, overpriced grocery shopping experience I could also stroll down to HyVee...

This was honestly a dig at leaving no evidence of why Wegmans was better. I'm sure it is.

</comment></comment></comment></comment><comment><USER22> Elorant, what is the one short paragraph summary of this article, please?

<comment><USER23> Heh. It's a longreads.com article, which should be a hint.

Basically it's about marketing firms trying to convince supermarket owners that inefficient layout and cute themes will save the day. All sorts of stuff is to be feared: millennials who prefer restaurants or Amazon (and won't age out of it by starting families), the giant Walmart monster, etc.

So make the customers zig-zag around a store, kind of like shopping at JCPenny or Macy's, or maybe even a casino. Take up space with weird stuff, like corrugated steel around the milk to evoke farm nostalgia. Create a mock up of an urban deli, complete with an awning that is hopefully useless under the supermarket's roof.

Evidently people like me are undesirable customers, because I hate all that stuff.

<comment><USER24> Joining your camp. I go to the grocery to buy food, not cutesy-pootsy marketing kitsch that somehow turns a chore into an "experience". And if the store does stupid stuff to make an identical list of items take longer to buy and transport back to my home than it took before, it is adding time cost to the money cost, while also making the store seem more crowded. It is reducing the value of me going there in the first place.

One thing that really irritates me is "lifestyle aisles". I do not organize my shopping list by whether the food is "ethnic" or "health-conscious". To me, hoisin sauce is not "Asian foods"; it is a condiment. It's the same as Worcestershire sauce, barbecue sauce, ketchup, or mustard. Canned frijoles negros are exactly the same as canned black beans, so why are they in different aisles? If I want Cap'n Crunch and also a gluten-free hippy cereal with a happy gorilla on the box, they should both be in the same aisle. Put the lo mein next to the spaghetti, and the golden syrup next to the sugar, and the matzoh next to the Wasa. I shouldn't have to bounce between different random aisles to complete a shopping list organized by the type of food, rather than by the type of person who typically eats it.

<comment><USER25> This is exactly why I don't shop at my local grocery/supermarket except when needed. TJs + Sprouts with occisional stops at Asian stores when I need more than hoisin/soy.</comment></comment></comment></comment>


A Cartoonist's Advice by Bill Watterson (cartoon) - <AUTHOR> http://zenpencils.com/comic/128-bill-watterson-a-cartoonists-advice/

<comment><USER2> I always enjoyed Calvin and Hobbes and I certainly enjoyed this message by Bill Watterson. It's hard not to let things bog you down in life so much and to be able to find that right balance between your passions, responsibilities and priorities. Thanks for sharing!

</comment><comment><USER3> Thank you thank you for posting this! This really inspired me and made my day...</comment>


SHOW HN: MY 24 HACK, just in time for valentines? - <AUTHOR> http://ilov3u.net ok...even though im a bit sleepy, i would love to get a lot of feedback from people regarding my website...also what are the ways I can protect myself from hackers in this situation? <comment><USER2> FTP as a means of interfacing with your product might be over-the-head for a Comic Sans-targeted audience.

WYSIWYG or change the font; or both.

<comment><AUTHOR> ahhhh!!! its not supposed to be comic sans...it was showing a different font in my machine..damnit!

</comment></comment><comment><AUTHOR> ok...im a bit sleepy..but i would love to get a lot of feedback on this quick hack i made..it basically allows you to rent a subdomain for your loved one...check it out at <http://ilov3u.net> in particular, i would like to know how i can protect myself from hackers in such a situation

</comment><comment><USER3> "Dear Katy, ever since I met you... Lorem ipsum dolor sit amet"

Aw, so romantic :)

Not bad, really.

</comment><comment><USER4> I love the idea! I hope it's not too late for valentines day though.

</comment><comment><USER5> Good timing, just in time for valentines.

</comment><comment><USER6> pretty good idea ... something i can use for valentines for sure!

</comment><comment><USER7> nice idea.. exactly what i wanted for my valentine!

</comment><comment><USER8> amazing stuff atehleb2! can i be your friend?</comment>


The Economist's blog: maybe we should make our data free? - <AUTHOR> http://projectredstripe.com/blog/2007/04/04/oddly-economist-readers-like-data/ <comment><USER2> It's hard to categorically state whether data should be free or not. A great book to read about this is Wikinomics: How Mass Collaboration Changes Everything (<http://www.amazon.com/dp/1591841380/),> which describes many cases of data being made free in order to elicit insight from the masses.

I think an interesting space, in particular, is those companies that distill large amounts of data into small relevant sets. Google is the first example that comes to mind, but search is not the only approach to this. Another example is YC's own LikeBetter, who sneakily collected lots of training data before launching this PAT thing. You can now figure exactly how your individuality personality compares to thousands of others, based on these millions of clicks they've receieved.

Are Google and LikeBetter making data free, or the opposite? There are trade secrets involved there, but we might not consider that "data". You can see interesting views and presentations derived from the data (search results, or personality tests), but you can never see all the data at once... nor would you want to.

</comment><comment><USER3> You say "our data", but whose data is it? Remember the big furor there was over AOL releasing search queries for some of their users, even after they attempted to remove identifying marks? Many users of your site will think it's "their" data, and depending on the legal/PR climate, they may be right.</comment>


Could the YCombinator idea submissions be shared with potential competitors? - <AUTHOR>

I personally do not feel ideas belong to anybody. They are more of a starting point to build products.<p>But just wondering if there is a possibility of the ideas that people apply with being shared with other ycombinator startups working in the same fields. <comment><USER2> There's no formal pledge of secrecy but you have their word that they won't share your app with anyone outside of YC - and that includes other YC startups. It says so on the first para of the app.

<comment><USER3> You should take that with a grain of salt. Sure, the YC crew will _try_ to not share your ideas -- but they're humans, and after reading five hundred applications, I'm sure there are ideas which stick in their skulls but which they don't remember came from a YC application.

In the end, the same rules apply to YC as apply everywhere else: If you have something which absolutely MUST remain secret, don't tell anyone.

<comment><USER2> True - but that's enough for most people. It is for me.

</comment></comment></comment><comment><USER4> It is answered in the FAQ: <http://ycombinator.com/faq.html> 'Will you sign an NDA? How do I know you won't steal my idea?'</comment>


Ask HN: What's the best way to spend 10k on a startup? - <AUTHOR> If you had gotten 10k for a startup, what do you think the best way to appropriate the money would be? My grandfather passed away, and left some money to all of the kids and grand kids, and that's my share. I need a new phone, since mine had seemed to have walked away, and I live in Vancouver, one of the most expensive cities to live. It is essentially a data company, and the product is saas. There are many ways to invest to maximize the use, including creating a sharespace office for other startups ultimately creating a free office space for myself and room for growth. I plan to crowd source later once the beta is ready in 3 months. We are also using the mean stack and aws. I would like to not mess up though, and spend it wisely.
How would you invest? Or how did you invest? Any thoughts? <comment><USER2> Spend as little of it as possible.

Continue building your product. Focus on sales. With sales you'll never need to touch that $10k. The $10k is end of the world money, for either yourself or your new business.

Do not create the sharespace office. At best it's a ridiculous distraction from focusing on your product. At worst it'll wipe you out.

Get yourself a phone.

</comment><comment><USER3> I go with the be lean advice. Spend as little as possible. Only spend money that is absolutely required to help you get the first sale.

The cellphone may or may not be in that category.

Other things may be a domain. For an MVP you can use a $1 for first year .info domain.

You don't need to pay for hosting, use Heroku or something on the free tier. Stationery and furniture can be free from friends / family that have too much. etc.

Live like a tramp.

 __Exception is if you are cashflow rich and time poor - i.e. you have a good job. Then you could invest into time saving tools and SaaS services (that you need to help you make the first sale more quickly). However such investments would still be a tiny fraction of the $10k. Actually it will be none of the $10k because you pay from your net salary.

</comment><comment><USER4> Why do you need to spend it. Keep doing what you are doing. Be tight with that money and just keep working and being resourceful. Why do you feel a need to invest it?

ONLY use that money as the last resource.

</comment><comment><USER5> Put the $10k into a savings account or S&P500 fund.

Continue your business as usual, until you actually know spending your money will net you a positive ROI.</comment>


Meetings.io now enables embedding rooms on any site - <AUTHOR> http://blog.meetings.io/post/27425701969/embedded-rooms-and-room-buttons

<comment><USER2> This is super cool. One of the things I find myself doing all the team is getting users chatting with me on Olark but then need to switch to Skype because screen sharing is needed for support.

Putting something like /support/video on our site could make it way easier to do this.

<comment><AUTHOR> Very cool - this is one of the use cases we've been envisioning, good to see it in action :)

</comment></comment><comment><USER3> What's the incentive for Meetings.io to offer this? Are there ads?

<comment><AUTHOR> no ads, we just want to make it really simple to have face to face communications on any site.

</comment></comment><comment><USER4> You guys keep amazing me. It saddens me when I see my job constantly talking about getting 'another' Glance account. I'll keep fighting the good fight for you.

<comment><AUTHOR> thx, very appreciated! we've only been live for just over two months now so we're still the new kid on the block, but every jab, nudge and slam dunk you have to give really helps us towards taking on the heavy weights :)

</comment></comment><comment><USER5> Is this possible to dynamically start rooms? Say, two people on my website want to connect to each other... so they start a room together?

<comment><USER6> Each room is tied to a unique URL; if they both jump enter the embedded room at the same time, they'll be connected.

<comment><USER5> Any API to make rooms? I need a button to start rooms by someone and then someone can join.

Situation: Number of people on the website. One of them chooses to start a room-chat with another targeted person. How can this be done ?

<comment><AUTHOR> this will be possible once we have our APIs available - you'll be able to create rooms on the fly and manage your users and their interactions directly by throwing new rooms up for any two people wanting to meet and then by keeping track of which room these people are in you can then prompt others to join these people in that same room. more to come very soon.

</comment></comment></comment></comment><comment><USER7> Is there an API to generate a room? Or do all embedded rooms have to be made manually beforehand?

<comment><AUTHOR> for now they'll need to be created manually, but we're in the process of building our APIs which we'll make available very soon

<comment><USER7> Neat - thanks for the great work.

</comment></comment></comment><comment><USER8> Please keep on inspiring the rest of the community to ship innovation faster.

<comment><AUTHOR> thx, much appreciated! we're moving fast and have lost of great things coming up - stay tuned for more.

</comment></comment><comment><USER9> Client still dies on my browser and forces a kill whenever I enable peer- assisted networking.

Linux / Chrome 20 user.

<comment><AUTHOR> Try enabling peer assist in your Flash Global Settings - this will fix some Linux crashes but not all, Adobe has confirmed it as a bug and will hopefully have a fix or workaround soon.

<comment><AUTHOR> you can also set it here - [http://www.macromedia.com/support/documentation/en/flashplay...](http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager09.html)</comment></comment></comment>


An All-in-One DAG Toolkit: The strongly-connected components algorithm - how-about-this http://vaibhavsagar.com/blog/2017/06/10/dag-toolkit/ <comment><AUTHOR> Yes! More "real-world" Haskell is always good. This seems like a good time to bring up Shake, Neil Mitchell's build system:

[http://shakebuild.com/](http://shakebuild.com/)

It can be used like CMake (as a build script generator) or like Ninja. For many projects (including building Ninja), it's faster than Ninja. Chromium is a notable exception: it has a huge set of Ninja files, and the Shake parser is not as fast as Ninja's parser.

From the docs:

> [...] compiling LLVM on Windows under mingw they both take the same time to > compile initially, and Ninja takes 0.9s for a nothing to do build vs Shake > at 0.8s. Shake is slower at parsing Ninja files, so if you have huge .ninja > files (e.g. Chromium) Shake will probably be slower. Shake does less work if > you don't specify deps, which is probably why it is faster on LLVM (but you > should specify deps -- it makes both Shake and Ninja faster). As people > report more results I am sure both Shake and Ninja will be optimised.

[https://github.com/ndmitchell/shake/blob/master/docs/Ninja.m...](https://github.com/ndmitchell/shake/blob/master/docs/Ninja.md)

A Summer of Haskell project is on to migrate GHC to a Shake-based build system.

PS. Wow, Annie Cherkaev's website looks really different now.

<comment><USER2> Shake is awesome! I've been thinking about moving as much of my personal infrastructure to Haskell as possible: XMonad for window management, Hakyll for blogging, Pandoc for documents and presentations, Shake for builds, Turtle for shell scripts etc. and it's been fun to contemplate at least. Propellor for configuration might also be cool but I think Nix is a better solution there. There's a lot of "real-world" applicable Haskell out there!

</comment></comment><comment><USER3> Where did the convention of storing variables local to the algorithm on the vertices/edges being processed, as opposed to in sets/maps local to the _function_ originate? You can see it with things like `w.onStack` and to a lesser degree `v.lowlink` and `v.index`. I see this convention all the time when it comes to describing graph algorithms, despite it being less generalizable (you can no longer run the algorithm on different graphs in parallel if they share any vertices, nor can you perform the algorithm over an immutable graph). Is this motivated purely by performance?</comment>


History of the browser user-agent string - <AUTHOR> http://webaim.org/blog/user-agent-string-history/

<comment><USER2> And now we have Chromium-based Opera which can't call itself Opera and has to use "OPR/16" instead, and pretends to be Chrome, which pretends to be Safari, which pretends to be KHTML, which pretends to be Gecko, which pretends to be Netscape.

On a related note W3C+Mozilla are trying to document use-cases for UA sniffing: [https://etherpad.mozilla.org/uadetection- usecases](https://etherpad.mozilla.org/uadetection-usecases)

<comment><USER3> I think it's lunacy to send do-not-track... with a user-agent alongside.

The user-agent header is an artifact of history, and should be abolished. I can see no use case for it aside from standards-avoidance.

<comment><USER4> _> I can see no use case for it aside from standards-avoidance._

That's true, but one's platonic idea of the browser does take a backseat to reality.

</comment></comment></comment><comment><USER5> My user agent is "Drakma/1.3.0 (SBCL 1.1.5; Darwin; 12.2.0; [http://weitz.de/drakma/)"](http://weitz.de/drakma/\)"). I like to keep webmasters on their toes.

<comment><USER6> The ad companies and the NSA can identify you easier than usually.

<comment><USER7> I pretended to use WinRAR (long time ago to make fun on some boards), until I've encountered [https://panopticlick.eff.org/](https://panopticlick.eff.org/)

</comment></comment></comment><comment><USER8> The real question is, is this still needed in the modern web? I have never used the user agent to serve different content. I do expect that some sites still use the user agent for detection of mobile browsers but that is also deprecated for people with common sense..

<comment><USER9> It's still needed in many cases.

For instance, I wrote an IndexedDB-heavy web app. It doesn't work in browsers that don't support IndexedDB. So I do feature detection and if IndexedDB is not supported, I show an error message telling the user that if they want to run the app, they have to use a more modern browser like Firefox, Chrome or IE10.

...except on iDevices, where it is literally impossible to install any browser that supports IndexedDB, despite the fact that it is possible to install something called "Google Chrome" that is not really Google Chrome. So I do user agent detection to display a different message to those users, so as to not give them false hope and confusion.

<comment><USER10> You can use a polyfill that falls back to WebSQL (Supported on iOS): [http://nparashuram.com/IndexedDBShim/](http://nparashuram.com/IndexedDBShim/)

<comment><USER9> I tried that and couldn't get it to work. Seems I'm not the only one with problems [https://github.com/axemclion/IndexedDBShim/issues](https://github.com/axemclion/IndexedDBShim/issues)

Admittedly I could invest more time to try to get it working, but iOS represents a relatively small fraction of my users and even a working shim could have problems (IIRC there are serious bugs with WebSQL in iOS 7, not sure if they've been fixed; also, I don't know what this shim approach would do to performance in an IndexedDB-heavy app).

</comment></comment></comment></comment><comment><USER11> A great explanation that also made me laugh. I've never really thought of the browser vendors trying to impersonate each other before; sort of, "competing" for content. I always thought they just did what they liked and we all had to hack around it.

<comment><USER12> And they've all been hacking around our hacks!

</comment></comment><comment><USER13> All this was meant to fund Senior JAVA Dev jobs like this one: [http://thedailywtf.com/Articles/The-Enterprise-User- Agent.as...](http://thedailywtf.com/Articles/The-Enterprise-User-Agent.aspx)

<comment><USER14> Why do you capitalize Java like that? It's not an acronym or an abbreviation. It's just a word - named after the type of coffee from the Indonesian island of the same name.

</comment></comment><comment><USER15> Actually this history has one minor mistake (there may be more); Microsoft didn't make their own web browser, well at least not initially, they licensed their code from Spyglass.

</comment><comment><USER16> _> And Internet Explorer supported frames, and yet was not Mozilla, and so was not given frames._

I don't think that is correct. IE 2 didn't support frames. IE 3 did, but 2 didn't. I remember waiting for IE3 to get more market share so that I could safely use frames.

I can't tell you what feature made them fake the user agent, but it wasn't frame support.

Yeah. Those were the days :-)

</comment><comment><USER17> The author reaches a trite conclusion uninformed by facts. The user agent string is used by at least 90+% of the Alexa 100 to improve user experience.

There is a silent evidence problem here. Successful use of the user agent string improves the user experience but goes unnoticed; failures are very apparent.

From the article:

"user agent string was a complete mess, and near useless"

vs.

[https://etherpad.mozilla.org/uadetection- usecases](https://etherpad.mozilla.org/uadetection-usecases)

His conclusion is a bit like saying "I don't see why I need ABS in this car because I've never skidded since I got it."

</comment><comment><USER18> Sounds like we could really use a "User-Agent-Features" header or something similar. Or we just say screw it and make a new standard for the User-Agent header, then users can run in compatibility mode when needed.

</comment><comment><USER19> I haven't had to deal with user agents in a while, thankfully. Except today; the client wants the user to be presented the mobile site we built, or the old desktop site, depending on user agent. I'm not going to parse no user agent strings though - there's an open source library / database called WURFL [1] that can do all those things. Hopefully.

[1] [http://wurfl.sourceforge.net/](http://wurfl.sourceforge.net/)

</comment><comment><USER20> The pseudo-Biblical writing style reminds me of The Book of Mozilla[1], perhaps the coolest browser easter egg in existence, which, sadly, Chrome decided not to implement.

1\. [http://en.wikipedia.org/wiki/The_Book_of_Mozilla](http://en.wikipedia.org/wiki/The_Book_of_Mozilla)

</comment><comment><USER21> Wow this is awesome, it answers so many questions.

I'm actually surprised that Mozilla didn't sue the other browser for using its name in their User-agent browser. This may have secured Mozilla's place as #1.

</comment><comment><USER22> And then mobile happened, and everything was fucked forever.

:(</comment>


Accurate Navigation Without GPS - <AUTHOR> https://spectrum.ieee.org/tech-talk/transportation/sensors/accurate-navigation-without-gps <comment><USER2> Clever. Was hoping for something useful for airborne drones, but in this case if it doesn't walk, it doesn't work.</comment>


Interview with raganwald about HN, writing, lean publishing and Leanpub - <AUTHOR> https://s3.amazonaws.com/leanpub_podcasts/LPP004_Reginald_Braithwaite_2012-04-05.mp3

<comment><AUTHOR> This is from my lean publishing podcast ([http://itunes.apple.com/ca/podcast/leanpub- podcast/id5171171...](http://itunes.apple.com/ca/podcast/leanpub- podcast/id517117137) for iTunes, or use <http://leanpub.com/podcast.xml> directly). I'm submitting this link to HN since Reg and I had an interesting discussion at the beginning of the interview about his recent fictional resignation letter and clarification (both of which caused a lot of HN discussion; see <http://news.ycombinator.com/item?id=3790378> and <http://news.ycombinator.com/item?id=3792793>), as well as because Reg is a really interesting interviewee...</comment>


Product Management Frameworks IO - <AUTHOR> https://www.notion.so/nag/50-Must-Know-Product-Frameworks-6ea624ffceb647d7b706598af472aedf <comment><AUTHOR> 50 Must-Know Product Frameworks Use these frameworks in interviews, your day- to-day PM Job, or in your daily life for decision making!

Benefits Utilize these frameworks for effective interview preparation

Uncover Secrets of Creating an Effective and Actionable Product Strategy

Learn How to Work Effectively and Deliver on Time

These Frameworks Help you Build the Right Product

Build a Reliable, Predictable Product Creation Process

Access Link: [https://upscri.be/ndmcd5](https://upscri.be/ndmcd5)

Portal Link: [https://www.notion.so/nag/50-Must-Know-Product- Frameworks-6e...](https://www.notion.so/nag/50-Must-Know-Product- Frameworks-6ea624ffceb647d7b706598af472aedf)</comment>