Alabama police raid home, take money out of man's wallet over $50 of marijuana - <AUTHOR> https://reason.com/2019/04/12/alabama-cops-raided-their-house-seized-t <comment><USER2> This goes on all over the country. For every rotten officer that steals, there is a whole bushel back at the station that turn a blind eye and happily have bbqs with them on the weekends. Did you also know that when the police record an interview they do not have to preserve the tapes, the officers summary of the conversation is often taken as fact.

<comment><USER3> This is why you never say anything to an officer except, "I need to call my attorney."

If you have any kind of a discussion with an officer, they can say whatever they want, even say you confessed.

</comment></comment><comment><USER4> Here I am legally stoned out of my fucking mind while in my own country people's lives are being overturned on an officers subjective smelling of pot. I mean I wanna think there's more to the story. Like "OH really the dude is an alcoholic and was waving his pistol at the cop and the cop saw the guy selling pot..." Because at least if that's the situation then it's like ok the system is functional.

I can't believe how many people's lives have been ruined over this plant. So much pointless destruction.

</comment><comment><USER5> I am not sure what makes me angrier, the abuse of civil forfeiture, or the initial breaking down a door and use of a flash bang as initial contact.

Now, this is only off of one source, but I am of the opinion that the use of a explosive designed to cause hearing and vision damage on a civilian (without any other interaction) was blatant overuse of force, and needlessly endangering the nearby public, as well as the risk of fire.

The civil forfeiture abuse is bad enough, but using an explosive device on a civilian, while flashbangs are, in almost all cases, nonlethal, the do produce sound levels that cause instant and permanent hearing damage, and can sill cause burns as well as other injuries.

I still don't understand how task forces like this can start with this kind of interaction, where a normal warrant has to be served like any other legal demand. I assume there is some special provision that is meant for use when some level of danger is expected during the interaction, and is used to "skip- past" the usual formalities used for executing warrants, that was meant to be used where extreme expedience was needed, or the persons being served were assumed to be actively hostile...

</comment><comment><USER6> This behavior is the specific reason for the creation of the 2nd Amendment. Americans have the right to arm and defend themselves against criminal activity, and should do so if they wish to protect the livelihoods of themselves and their communities. Police are criminals if they engage in theft, and forfeit the special protections normally granted to them by the law.

<comment><USER7> Fighting back against police officers is both illegal and a death sentence, regardless of your innocence. Whether that should be the case is a matter of debate, but if you fire on police during a raid, you're going to die. If you somehow manage to survive, you're going to be in jail for a long time. It's as simple as that.

Again, whether it should be this way is a matter of controversy, but that's the way it is. As it currently stands, encouraging people to fight back with physical force against police is extremely irresponsible and shortsighted.

<comment><USER6> I don't think that retaliating against criminal theft is a matter of debate. If police behave criminally, they are subject to retaliation. This is the long sighted view, in that in the long run, fighting back against criminal behavior is a detterent against that behavior. Am I missing something here? Should we encourage thuggery and brigandry in our peace officers? Dangerous, yes, shortsighted, absolutely not.

</comment></comment></comment><comment><USER8> Such a strange country.</comment>


How blockchain can change the music industry - <AUTHOR> https://techcrunch.com/2016/10/08/how-blockchain-can-change-the-music-industry/ <comment><USER2> I don't understand the bit about music being unpiratable due to blockchain. Just because the music is there, doesn't mean it can't be taken from there and played somewhere else.

I do think the idea of micro-transactions could solve the problem of the convoluted rights contracts in music.

We currently work from the assumption that a song is recorded and a contract exists between the artist and maybe a label and that those are the two parties which get paid. In actual fact, the deals are much more complicated than that. Sometimes the studios get a cut, sometimes the graphic artist who did the cover work gets a cut, songwriters, managers, back-up musicians, it is very complicated.

If each song on the blockchain acts as a contract with the details of who gets what, this would make the buying and selling of music on a massive scale much simpler.

<comment><USER3> More than 1 million songs are released annually to the digital stores. How long would these contracts be?</comment></comment>


Show HN: Free Writing – Never stare at a blank screen again - <AUTHOR> https://freewriting.club/ <comment><AUTHOR> Free writing is a process where you set a specific time and just write without worrying about the content.

I found that it is a really useful technique to break writer's block. So I build this app last weekend. Definitely lot of improvements can be done. Open to feedback.

</comment><comment><USER2> It's an awesome tool. I love it. Though my writing get lost one I press "Done". It will be better if I got the option to read my writing later or browse through others writing to draw some inspiration. Thumbs up!

<comment><AUTHOR> Thank you Sushobhan. The idea behind not storing is to make users feel that they can write whatever they want. Probably I'll look into having an option to save locally or sending as mail, in case user feels the writing is too good to leave.

</comment></comment><comment><USER3> I like it.

Where did you get the prompts? Or did you create them yourself?

<comment><AUTHOR> Glad you like it. Some prompts are from Reddit (There will be a link to source for these prompts next to it). I created the rest.

</comment></comment><comment><USER4> I found this quite fun. The writing prompt was a good idea.

<comment><AUTHOR> Thank you Leon. Was there any difficulty in using/understanding the app?</comment></comment>


Google sued over claims that Waze stole rival's data - <AUTHOR> http://www.theguardian.com/technology/2015/sep/03/google-sued-paper-towns-rip-off-claim-phantomalert-waze

<comment><USER2> Nice to see a modern usage of trap streets.</comment>


New Study Seeks to Use Deep Learning to Detect Heart Disease - <AUTHOR> http://www.wsj.com/articles/new-study-seeks-to-use-deep-learning-to-detect-heart-disease-1458240739 <comment><AUTHOR> Hey all—I'm one of the machine learning engineers involved in the study. Let me know if any of you have questions on how deep learning applies to medicine, HealthKit, Google Fit, or anything else!

<comment><USER2> Do you have a _non_ -paywalled summary?</comment></comment>


Ask HN: How to generate interest/traffic for my open source projects? - <AUTHOR>

Just wondering what methods people have found success with for generating interest/traffice (read: usage) in their free and/or open-source projects/tools/etc? It seems like simply contributing to an existing, relatively popular project can be a little tough sometimes, as far as getting people to review/read and merge your patches, etc... it's often that much harder to generate any usage of a brand new project, and nothing is more de-motivating that writing something 'for the community', and then have no one use it... thoughts/suggestions/pointers/etc?<p>(shameless self-promotion: the current project I'm talking about is http://github.com/sandbender/antistink ... it's intentionally left as-is in a Minimum Viable Product/Alpha state, not because I don't want to spend time polishing it, but would rather spend that time on other stuff if no one is going to use it except myself anyways :s ) <comment><USER2> Successful open source projects need to be promoted just like for-money projects. They also need to be polished _much_ more than the standard, which is "write half a readme file and throw it on github." In this, what users _say_ they want is opposite from what they actually respond to -- which, if you sell software for a living, is something you are probably prepared to believe but may not have thought about vis-a-vis programmers.

1) Create a web page which promotes your product. Heresy: don't put it on Github. It should have attractive, professional design, market your software effectively, and have a clear call to action. Think "what would 37Signals do", and copy liberally.

<http://rubyonrails.org/>

2) Get a unique visual identity for the project. Same reasoning as #1. Humans are visual creatures, and projects with e.g. logos that do not look like they were made in MS Paint by a drunk chimpanzee communicate professionalism, safety, popularity, ongoing maintenance, etc.

See <http://www.abingo.org> (disclaimer: my site) for my take on doing this for an OSS Rails project. Points of note: professional logo, selling the product through benefits, 1-minute install guide, live demo, copious documentation, video, etc.

3) If you build it, that means absolutely nothing about them coming or not. "Make it so good they can't ignore you" is horsepuckey which engineers treat as a magic talisman to ward off evil marketing demons. If you want it used, you are going to have to talk to people and tell them to use it.

4) "Make something people want." Does it solve a problem which is preventing businesses from making money, in a fashion much better than currently existing alternatives? If not, it probably isn't going anywhere, since OSS adoption among end users is close to zero outside of a few headline projects.

</comment><comment><USER3> You need to network. Its not just about working on other people's projects as it is about being genuinely interested, and part of a community. Go to venues and conferences, or connect with people here, reddit, twitter, or irc. Its slow, but its a great way to understand what others are doing and be able to tell them what you're doing. Loic Le Muer, the founder of seesmic, has some good advice: <http://bit.ly/91NzmR></comment>


An Open Letter To Entrepreneurs and Mentors - <AUTHOR> http://tech.li/2012/01/an-open-letter-to-entrepreneurs-and-mentors/trackback/

<comment><AUTHOR> @pg I wrote this as a reflection of our conversation and where I was at in that moment. Thanks for taking those few moments to give me what I needed to push through.</comment>


Swiss E-Voting Public Intrusion Test (PIT) - <AUTHOR> https://www.onlinevote-pit.ch <comment><AUTHOR> \- Swiss Post, the provider of one of Switzerland's two e-voting systems, allows you to legally attack their dedicated PIT e-voting system from February 25th 2019 to March 24th 2019

\- They have committed to compensate participants for accepted findings (up to CHF 50.000)

\- Participants are allowed to publish their findings

\- Participants need to respect the conditions defined in the code of conduct [1]

[1] [https://www.onlinevote-pit.ch/conduct/](https://www.onlinevote- pit.ch/conduct/)

</comment><comment><USER2> ...and also: "PIT participants can access the source code and use it as an auxiliary tool to analyze the security of the target e-voting system and discover potential vulnerabilities."

[https://www.post.ch/evoting-sourcecode](https://www.post.ch/evoting- sourcecode)</comment>


How Google Search Dealt With Mobile - <AUTHOR> https://medium.com/backchannel/how-google-search-dealt-with-mobile-33bc09852dc9

<comment><USER2> This is all interesting and fantastic for users, but I can't help feeling that some day, maybe years from now, we will look at search and realize we don't have any good way to find information on the Web. Google is transitioning to an "answer engine" but a lot of things are getting buried that might have appeared on page 3. I can't count the times when I search for something specific and find no results only to change a word and see a whole new group of pages.

<comment><USER3> Absolutely agree with this. Over the years Google has gone from being a raw and powerful tool like awk to a curated 'experience' where what you're searching for is distilled to the lowest common denominator.

</comment></comment><comment><USER4> I miss the good old days when Google search used AND rather than OR. Now it uses some kind of heuristic that frequently overwhelms my own instincts about how to narrow my search. I just tried an arbitrary search for the first thing that came to mind and everything was going great until I added a word whose occurrence evidently dwarfed my original search space:

pistachio (18,400,000 results)

pistachio cookies (2,570,000 results)

pistachio cookies milk (1,220,000 results)

pistachio cookies milk chocolate (1,210,000 results)

pistachio cookies milk chocolate round (3,640,000 results)

Maybe this was detecting the semantics of my search, for example "pistachio cookies" and "chocolate milk" as two separate concepts and OR'ing the set. But I don't understand why it didn't detect "round pistachio cookies", but instead treated "round" as a completely different result set.

This combined with the fact that quotes and plusses don't always seem to make a keyword mandatory has really hindered usability for me. I sometimes find better results by typing keywords into domain-specific searches (sites like Stack Overflow). I wish there was a way to display Google's interpretation of the keywords as something like SQL, the way that wolframalpha.com works, so that I could learn how to format my queries.

</comment><comment><USER5> _Google recruits subjects who agree to report their information needs to Google on demand. Eight times a day Google randomly pings them, and they instantly respond with the questions they want answered at that moment._

It's pretty amazing how _hard_ Google works at improving. I can't imagine any other search engine running a program like this for years, just to find questions that they aren't even asking a search engine for (yet).

<comment><USER6> I guess it comes down to economy of scale. Only a company at Google's scale can afford to budget AND monetize such a project which would make little sense at a smaller enterprise.</comment></comment>


This Is the Scariest Statistic About the Newspaper Business Today - <AUTHOR> http://www.theatlantic.com/business/archive/2013/03/this-is-the-scariest-statistic-about-the-newspaper-business-today/274125/

<comment><USER2> Lost $16 in print for every $1 in digital... this applies to newspapers only, right? What about the rest of the online publishing world? You know, all those written news sources that began life in digital form such as blogs and written content aggregators?

</comment><comment><USER3> Man. I worked for newspapers for several years - it's so sad. But publishers have to adapt.</comment>


ISendr: Our New On-Demand Peer to Peer File Transfer Webapp - <AUTHOR> http://www.isendr.com

<comment><USER2> > To view this page ensure that Adobe Flash Player version 10.0.0 or greater > is installed.

I know nothing about your service because all I see is a little bit of text that might as well be a middle finger to the user.

and an adobe icon.

<comment><AUTHOR> This is definitely a usability issue that we will be resolving shortly. Thanks for the feedback!

</comment></comment><comment><USER3> Unless you've found a way round it, Flash P2P file transfers requiring loading the whole file into memory - so you can't transfer massive files.

</comment><comment><USER4> I've read yc news for about a year now and this is the 1st post I've upvoted. Nice app.

<comment><AUTHOR> Thanks! The app has been a great help internally and we're hoping other people find good uses for it as well.

</comment></comment><comment><AUTHOR> We've used this little webapp at work to move files around for a while now and just released it to the wild. Would appreciate any feedback!

</comment><comment><USER4> Few suggestions. \- Would like to see the tx speed. \- Long file names look wrong in the UI. \- Would like to see file size in GB/MB/KB instead of just bytes.

<comment><AUTHOR> We're definitely looking to add tx speed. I just pushed an update that should fix the long filename issue. Thanks for the notes!

</comment></comment><comment><USER5> I created a service nearly identical to this about a year ago.

<http://www.fileinaflash.com>

<comment><USER6> Why didn't you do more with it?

<comment><USER5> What else would you have expected me to do with it? I mostly built it as an experiment. I was playing around with the new P2P features in flash 10. My first idea was video conferencing (<http://www.boostcam.com>) which actually manages to more than make up for hosting costs in adsense revenue. If only I had thought to have it connect two random people! This was my second idea. I didn't really think there was much else to do with it. I have some ideas for features, but I have and always will be very limited on time.

</comment></comment></comment><comment><USER7> Is there anything special about the p2p features in Flash that couldn't be implemented with HTML5 WebSockets, WebWorkers, etc.?

<comment><USER8> Yes.

Web sockets are implemented on top of a HTTP verb, e.g.:

{Regular HTTP handshake} {Socket negotiation} {Data sent over the open connection}

Unless your browser also accepts incoming HTTP connections it won't be able to accept incoming requests. It's not UDP as you know it, so you can't just fiddle with DNS or a router and re-direct packets to another JavaScript P2P client.

Hopefully that'll get fixed one day. Direct P2P from the browser would be incredibly useful, but there are real problems with cross domain DNS abuse. For example it's possible to use IE6 visitors to run a search engine spider without their knowledge or consent because of the (reasonable sounding) same- domain-cross-iFrame-read permissions.

</comment></comment><comment><USER9> Did not work for me as I could not connect to my peer and my peer could not connect to me.

<comment><AUTHOR> We have an update going in today that will fix a number of additional firewall cases, can you tell me a little about your network setup?

</comment></comment><comment><USER10> Doesn't work for me. Still waiting. Firefox, Windows 7.

</comment><comment><USER11> name is very web2.0. So it's using the flash p2p functionality like chatroulette?

Like it a lot, there are tons of applications for this.

<comment><AUTHOR> Yes, it's server-assisted p2p. It's a great tech for getting around firewalls and serves as an effective solution to the "I can't send you the file for some reason" that we were running into daily with our various IM clients.

Glad you like it!

</comment></comment><comment><USER12> Please Wait...

<comment><USER12> Still waiting... In all of Firefox, Chrome and IE.

Our firewall is an MS ISA server. There is websense in between. The browsers are configured with an automatic configuration script (a .pac file).</comment></comment>


Russian Criminal Group Finds New Target: Americans Working at Home - <AUTHOR> https://www.nytimes.com/2020/06/25/us/politics/russia-ransomware-coronavirus-work-home.html <comment><USER2> > The malware, Mr. Chien said, was deployed on common websites and even one > news site. But it did not infect every computer used to go shopping or read > about the day's events. Instead, the code looked for a sign that the > computer was part of a major corporate or government network. For example, > many firms have their employees use a "virtual private network," or V.P.N., > a protected channel that allows workers sitting in their basements or attics > to tunnel into their corporate computer systems as if they were at the > office.

> "These attacks do not try to get into the V.P.N.," Mr. Chien said. "They > just use it to identify who the user works for." Then the systems wait for > the worker to go to a public or commercial website, and use that moment to > infect their computer. Once the machine is reconnected to the corporate > network, the code is deployed, in hopes of gaining access to corporate > systems.

...ppl care to speculate on the tools, processes, methods being used?</comment>


How do you raise money for start up? - <AUTHOR>

I am doing reserch on how people get funded. I read techcrunch everyday and see companies that raise millions of dollars. I also wonder how there do it. Anyone go thru this process before? Can anyone list step by step on how to raise 1 million dollar? <comment><USER2> Nice question, impossible answer to provide. I have raised capital for a few companies but have found the process different each time. Lets just assume you have a product/service/technology that has a viable market potential. My first step is to define the size of the opportunity and my best path to an "exit". These two components will determine if you begin @ Angel funding, VC funding or personal credit card funding (or Y combinator:)) If you have a big enough opportunity and the connection to go straight to VC, congrats. So now lets assume you don't, and you are seeking Angel money. Here's ONE model......

Get your company as far along as possible without funding, take it to alpha, beta or public launch if you can.

Build your advisory board and be very good at tracking your key data points that drive your valuation and prove your business plan.

Identify potential funding resources through every means possible. Every major city has an Angel Group it seems now. Reach out and learn what the group has shown interest in and what company's they've invested in. If you think there is a good mix, use every resource the group offers but avoid the pay to share your company models (in my experience that is).

Get your pitch down to under 10 minutes, and be unbelievably good at it. Angels tend to like ultra passionate, company consumed entrepreneurs, because thats a consistent trait in successful ones.

Pitch, tweak, learn. Repeat process.

If you want to see a good video of Tim Draper discussing how to get funded, try this link - [http://www.vator.tv/news/show/tim-draper-sings- fundraising-s...](http://www.vator.tv/news/show/tim-draper-sings-fundraising- secrets)

<comment><USER3> I like the link.

</comment></comment><comment><USER4> <http://www.venturehacks.com>

<http://blog.pmarca.com/2007/06/the_truth_about.html>

Read venturehacks in its entirety and pmarca's relevant posts.

<comment><USER2> I agree, v-hacks is a very good blog source.

</comment></comment><comment><USER5> If you want to raise $1M you need a product people will believe in and see value using. Focus on the product. Build as much of as you can without funding. Then once you have something tangible and working (even in alpha) you can seek out the investors and they may actually be interested.

<comment><USER3> what about less... me and my co-founder were talking and we were thinking that really for right now what we'd like is $50-100k between the 2 of us. So we can work on the project full time, relocate, and get any resources that we will need.

<comment><USER6> you can get 50-100k from a few places: either 1 angel (it won't be a very big deal for them), family, or friends of family.

<comment><USER3> definitely need to go angel hunting soon. I know in my case family and friends aren't an option. neither have that kind of money (even if I could spread it out I couldn't work 1000 out of them).

</comment></comment></comment></comment><comment><USER7> I smell a rat. It's pretty common for spammers to create an account on public forums, let it sit for 30-60 days, and then come in and create a generic, link-bait style post which they later use to post links in (once the post has been around a while). The advantage is that Google indexes the page, gives it a high page rank due to the density and good content.

I just have a tough time believing that anyone who reads this site and techcrunch would ask such a question.

<comment><AUTHOR> I actually need help. This is not a spam. click on my user, I have created my account over 2 months ago and never posted yet. I submit my start up to Ycombinator and Techstar this year but didnt get accepted. So I am looking for help. Techcrunch dont teach you how to get funded, there just tell you who get funded. This is why I asked. Sometime question may seem obvious. No matter how much you know, you can always learn more.

<comment><USER8> Don't worry - we believe you

:-)</comment></comment></comment>


Junior assigned to a 10 year old project - <AUTHOR> http://www.reddit.com/r/PHP/comments/3atawy/junior_assigned_to_a_10_year_old_project_thinking/

<comment><USER2> I find it strange that he says he's not learning anything. It sounds like he's in the perfect position learn everything he needs to embark on a nice long career in corporate programming.

More seriously, refactoring a neglected codebase and bringing up to speed with modern tools and best practices is probably one of the useful real world skills a professional programmer can have

</comment><comment><USER3> I feel your pain. But, really, that sounds like a typical junior starting point, at least to me. It's a major pain but most places aren't going to put a newly hired junior on a major project his/her first time at bat.

Consider it a learning experience, and make yourself available when/if other projects are mentioned. If nothing else, consider it training for a future position. Quitting right away will only look bad down the road to future employers.</comment>


Ask HN: What other news sites do you read daily? - <AUTHOR> I've noticed that more and more HN is becoming my default go-to news site when I have a few minutes. I don't submit new articles very often because it seems like the "new" page has more than enough help, and there aren't many other news sites that I frequent.<p>So what about you guys? Is HN your main resource for news, or do other mediums take up more of your time? <comment><USER2> RealClearWorld.com inundates you with quality information on world events - more than you can read and still be productive. They have sister sites regarding politics, market events, sports, and (maybe) some more areas. NPR is also a favorite

HN is still a default for tech news, but it intentionally doesn't cover a wide range of topics.

Also, even though I'm not a EE, I read the IEEE spectrum rss feeds daily. They're short and concise, but skip the junk that Wired and similar outlets include for mass appeal.

</comment><comment><USER3> I have techcrunch, readwrite web, and a few other tech news sites in a folder on google reader. I glance through the headlines two or three times a day.

I go to reddit occasionally, but besides HN and my subscriptions on google reader I don't use any other news sites.

For real-world (as opposed to tech) news I'm a big fan of NPR's daily 5-minute news summary in podcast form. I also have the NYT and BBC news in a folder in my reader, but even keeping up with the headlines is too much.

<comment><USER4> Definitely concurring on NPR; that broadcast is quick, informative, and gives you a pretty good view of what the average persons sees when they watch the news.

</comment></comment><comment><USER5> Well, I read HN by default and my news service and eat my own food at <http://www.mcsquare.me/> , those are my two starting points, mcsquare.me also helps me catch up on stories.

</comment><comment><USER6> I use google reader as well. Some of my favorite feeds are: SmashingMagazine, Lifehacker, Mixergy, Engadget, xkcd</comment>


Ask HN: Which industries will be transformed by ML in 10 years? - <AUTHOR> Which industries do you think will be transformed by ML within the next 10 years? Which ones do you think will be relatively unaffected? <comment><USER2> I'm far from an expert so the following is just IMHO. The bad industries ones will be transformed before the good ones. What I mean by that is that computer vision applied to medical imaging would be huge. But the detection/classification isn't accurate enough for that field, just yet. Yes, results are amazing on standard datasets such as ImageNet but they fail to become equally good when there are orders of magnitudes less amount of data. And in the field, accuracy is very important, a net classifying cancer correctly 90 % of the time is likely useless.

One exception is automated language translation which is getting very good. I'm noticing that some of the articles papers I'm reading are machine translated. They appear to apply machine translation to English articles and then have some editor doing manual touch-ups which seldom is enough.

The "bad" industries such as spam and SEO can definitely benefit from ML as it exists today. There are ML algorithms (LSTM) that can generate faked web sites with images that, from Googlebot's point of view, are completely indistinguishable from real sites. Another use would be to generate realistic looking accounts in social media to steer the conversation, perhaps for political purposes. Porn obviously, could also use ML due to the huge amount of data (the porn itself and user interactions) available.

I _don 't_ think (fully) self-driving cars will exist in 2028. But who knows? Ten years is a loooong time.

</comment><comment><USER3> I think it's pretty safe to say finance will be a big one. Finance has a large amount of individuals and firms researching the applications of ML methodologies to financial indicators. With the semi-recent rise of quant firms, I think this research is only going to get more aggressive, and HFT will become more lucrative and more automated as long as regulation does not get in the way.

<comment><USER4> HFT is not profitable. Its completely commoditized.

<comment><USER5> I would think commoditization of HFT is impossible by definition due to the fundamentally competitive zero-sum nature of securities markets.

</comment></comment></comment><comment><USER6> IMO, AI/DL/ML will be a feature of most products and industries in next 10-25 years. It will impact most products and industries in the similar fashion as first computers did in the past and then software is doing right now.</comment>


India launches 20 satellites in single mission - <AUTHOR> http://www.bbc.com/news/world-asia-india-36593855 <comment><USER2> Some more detail about the payloads:

[http://spaceflightnow.com/2016/06/22/pslv-c34/](http://spaceflightnow.com/2016/06/22/pslv-c34/)

This launch includes 12 Earth imaging satellites from Planet ([https://www.planet.com/pulse/flock-2p-launches- successfully-...](https://www.planet.com/pulse/flock-2p-launches-successfully- on-pslv/)) and a second generation satellite from Google's Terra Bella.

</comment><comment><USER3> > The chairman of the state-run Indian Space Research Organisation (Isro), > Kiran Kumar, told the NDTV news channel that launching 20 satellites in a > single mission was like "allowing birds to fly in space".

 _' What, what does that mean?'_

> "Each of these small objects that you are putting into space will carry out > their own activity, which is independent of the other, and each of them will > live a wonderful life for the finite period for which they have been > designed," he said, ahead of the launch.

 _' Oh! That was... surprisingly poetic.'_

</comment><comment><USER4> There will be naysayers when a second or third world country achieves a milestone. Inspite of similar feats done before by developed nations, this is huge for developing economies. Similar thing happened when the earlier Prime Minister of India announced that India will launch a Mars mission within a year at a fraction of cost at what NASA or ESA would do it. Most people laughed at it, and said it's impossible and what not. But guess what, India did send a successful Mars mission that's orbiting the red planet right now. Since then I take 'Expert' HN comments with a pinch of salt. Sometimes HN acknowledges a feat only when done by Elon Musk, NASA or ESA.

<comment><USER5> > Most people laughed at it, and said it's impossible and what not. But guess > what, India did send a successful Mars mission that's orbiting the red > planet right now. Since then I take 'Expert' HN comments with a pinch of > salt.

I've been on HN for many years and my recollection is that the community here has been very supportive and encouraging of India's efforts in space technology.

<comment><USER6> > I've been on HN for many years and my recollection is that the community > here has been very supportive and encouraging of India's efforts in space > technology.

Unless your memory is selective - you may recall that the support was far from unanimous. _I_ recall a number of HNers stating that the ISRO budget would be better spent on other 'more pressing' challenges India is facing (poverty, sanitation). In fairness, there was a lot of push-back against the naysayers, stating why the space program is money well spent (the most prominent benefits I recall were improved weather predictions benefit farming and cheaper/better telecoms)

\--edit: added stuff below this line--

The naysayers have made an appearance in this very thread. They are currently being downvoted (I expect nothing less from HN).

<comment><USER7> That's not being a naysayer. I think the same is true of the US space program.

If we really want to colonize space we need self sustaining habitats and highly compact and automated manufacturing from raw materials. Both can be done while staying on earth, and sending people up or yet another probe is mostly pointless.

<comment><USER6> > and sending people up or _yet another probe_ is mostly pointless

Good thing they are lifting telecom & weather sats too! It's reasonable to say those are not pointless.

It's unreasonable to put space programs on hold while we try to solve the human condition. There is no political will or even widespread support. People are horrible - they worry about themselves, their families, their neighbourhoods, towns and countries _in that order_. "Self-sustaining habitats, pffft, not with my hard-earned tax dollars. Build my kid's school a bigger stadium than last years'"

</comment></comment></comment></comment></comment><comment><USER8> Out of 20, only 2 are Indian, 13 satellites are from US and others, including one made by a Google-owned company.

<comment><USER9> The satellites themselves aren't that interesting; the cool part is supposed to be 20 at a time

</comment></comment><comment><USER10> Out of curiosity: how do you launch 20 satellites like this without danger of collisions? I guess you accelerate between deploying each satellite to slightly change the orbit?

<comment><USER11> perhaps like this:

[https://www.reddit.com/r/oddlysatisfying/comments/4omesk/pre...](https://www.reddit.com/r/oddlysatisfying/comments/4omesk/precision_bun_sorting/)

</comment></comment><comment><USER12> As an Indian and personal supporter of the Indian space program, I don't see this as a feat in the international sense.

What was the technological leap? ISRO could have done this few years back as well. Its just that the payload combination clicked this time.

By bragging about things like these we merely betray our jingoism. And what's more when a real technological feat happens it would be drowned out because we gloated over things like this.

Also I hope many of the posters here are seriously thinking about giving to ISRO or working for them. ISRO could seriously use more tech talent.

<comment><USER13> > As an Indian and personal supporter of the Indian space program, I don't see > this as a feat in the international sense.

It makes sense since the only other two agencies which were able to send many satellites were NASA and the Russian space agency. So this news shows ISRO is also a serious contender.

>By bragging about things like these we merely betray our jingoism.

Posting a BBC article here is not bragging. Though i wouldn't suggest people to go out and say we are the best, since we aren't, I don't see any harm in posting this kind of news on HN.

You seem to think things should be ground breaking to be appreciated, it need not be to appreciate the efforts of the scientists.

</comment></comment><comment><USER14> Anyone has cost/kg to LEO for this launch system?

<comment><USER15> the PSLV's payload to LEO is 3.25 tons. Wikipedia gives the cost of a launch at 15 million USD so that gives about $4600/kg to LEO. For context, that's nearly twice as expensive per kg as a Falcon 9 launch but they're difficult to compare because they serve different launch markets.

</comment></comment><comment><USER16> I wouldn't say that India is a "major player" in the satellite launch market yet, considering the reliability record of its rockets:

[https://en.wikipedia.org/wiki/Geosynchronous_Satellite_Launc...](https://en.wikipedia.org/wiki/Geosynchronous_Satellite_Launch_Vehicle#Launch_history)

They're uninsurable for commercial telecom satellite launches. The PSLV is slightly better but also has a much smaller market.

</comment><comment><USER17> People playing Kerbal Space Program [1] have been doing multiple satellite launches for a while.

But the more serious point is that we now have an entire generation of kids growing up learning about rocket science. It's exciting to see what they will do with this knowledge when they grow up.

See: * [https://youtu.be/4WP4yICiZno](https://youtu.be/4WP4yICiZno)

* [https://youtu.be/fEtgo4M7Z8g](https://youtu.be/fEtgo4M7Z8g)

* [http://imgur.com/a/WjGNH](http://imgur.com/a/WjGNH)

[1] [https://www.reddit.com/r/KerbalSpaceProgram/](https://www.reddit.com/r/KerbalSpaceProgram/)

</comment><comment><USER18> How can I get a job at ISRO.

<comment><USER19> Apply at the ISRO website.[0] They have vacancies for all kinds of positions.

[0] [http://www.isro.gov.in/careers](http://www.isro.gov.in/careers)

<comment><USER18> Do you have to be born in India?

<comment><USER20> Yes unless you can provide something Indian citizens cannot provide like expertise in some of the systems ISRO doesn't have proficiency in. I don't say these in demeaning way. India is a 1.26 billion people country and pays less when you compare to salaries of NASA in USD. There's also the aspect of ISRO also being important research organization for defence. It's more like US DRDO and NASA both in a single entity. As a national security risk it's mostly Indian citizens with SMEs on contractual basis

<comment><USER21> Not true. ISRO is not NASA and "US DRDO" (this should be a clue. DRDO is separate) rolled into one. ISRO has been a civilian program to avoid MTCR issues (although it did not help with GSLV) with DRDO running IGMDP ([https://en.wikipedia.org/wiki/Integrated_Guided_Missile_Deve...](https://en.wikipedia.org/wiki/Integrated_Guided_Missile_Development_Programme))

</comment></comment></comment></comment></comment><comment><USER22> That is an aged political view of the world. Nowadays, a third world country is where you can die of disease, infection, etc. by drinking water due to lack of sanitation. Where infrastructure is missing almost completely, and where the majority of people live below international poverty lines (no, US families with 3 bedroom houses and loans to pay are not below the international poverty line. People sleeping in their newpaper-stand that they also work from are below such line.)

Clean and safe menstrual pads, clean water, infrastructure, education, controlled agriculture. These are pillars of progress. Space programs are impressive, but are of very little consequence when half the population is so poor, they crap on the streets in plain sight at daylight. Meanwhile women are ashamed to hang their sanitary pads in the sun to properly disinfect them due to 3rd world superstitions about cleanness and evil spirits. There are grown men in India who don't even know that women have periods. Others bury their dead in the Ganges while downstream the same water is used for cooking and drinking.

[https://www.theguardian.com/commentisfree/2016/may/30/idia-s...](https://www.theguardian.com/commentisfree/2016/may/30/idia- sanitary-pad-revolution-menstrual-man-periods-waste-problem)

[https://en.wikipedia.org/wiki/Arunachalam_Muruganantham](https://en.wikipedia.org/wiki/Arunachalam_Muruganantham)

[http://hazlitt.net/blog/india-has-toilet-problem-not-poop- pr...](http://hazlitt.net/blog/india-has-toilet-problem-not-poop-problem)

<comment><USER23> Even ignoring all the factually false statements, that was an unnecessarily condescending rant.

<comment><USER24> Here we go again.

The statements are not false, burying your head in the sand is not going to make uncomfortable things untrue. Minus the menstrual-pad thing, I've seen the rest with my own eyes in India.

<comment><USER23> _" the majority of people live below international poverty lines"_

The international poverty line is ~$700/year. India's average income, adjusted for purchasing parity, is $6100/year. If you're going to make inflammatory, derogatory statements, at least get your facts right.

<comment><USER25> > > "the majority of people live below international poverty lines"

> The international poverty line is ~$700/year. India's average income, > adjusted for purchasing parity, is $6100/year.

The mean income (which is the average for which that statement is true) tells you nothing about whether the majority is above or below a certain point, unless you know independently that the distribution is normal, so that the mean is also the median (but that's unlikely for an income distribution in a country.)

<comment><USER23> Yes, I'm aware of the mean vs median distinction. But if someone states that the majority of the country has an income below X, and I find out that the average wage in the country is actually 8X, I'm going to be extremely skeptical of the original statement. The amount of income inequality that is needed to produce a situation like that, is so extreme that no one should believe it without supporting data.

As it turns out, I was right. The other person to reply to me, dug up evidence showing that only 22% earn below the intl poverty line. Not _" the majority"_ as was stated.

</comment></comment></comment></comment></comment></comment><comment><USER26> Has any country achieved this feat? [update] Has any country achieved this feat at this cost?

<comment><USER27> Read the article:

> The record for the most number of satellites launched in a single mission > belongs to Russia, which sent up 37 satellites in 2014.

Also, it's not exactly a feat. If someone really wanted, they could stuff a rocket full of nanosats but I imagine there's more risk in launching that much at once. (They could be released in sequence but still, more chances for something to go wrong.)

<comment><USER4> Yep, it's that easy.

<comment><USER27> It's not what I said. I meant that there probably are reasons apart from difficulty that people don't launch so many satellites at once.</comment></comment></comment></comment>


Show HN: I wrote a maze traversal program in Clojure - <AUTHOR> https://github.com/netb258/clj-maze/blob/master/src/maze/core.clj <comment><USER2> If you're learning about mazes you'll have plenty of fun reading "Mazes for programmers". I've been reading through it and it's a nice change of pace. I've thrown a few of the algorithms on my pen plotter site [https://plott.id/mazes](https://plott.id/mazes). I definitely encourage you to give the book a look.

Here's the source for the site: [https://github.com/blakedietz/plott.id](https://github.com/blakedietz/plott.id)

</comment><comment><USER3> PSA: please use clojure.edn/read-string instead of read-string. The latter can execute code when it parses the string (try running `(read-string "#=(println \"oops\")")`.

<comment><USER4> While you are PSAing, can you mention why this is useful, and how much it can enhance performance?

<comment><USER5> Performance differences are likely not that critical between reading small amounts of data using string I/O vs reading small amounts of data using a library routine that reads and evaluates the data. Runtime evaluation of a string as a language expression is often available in interpreted languages like Python, Ruby, or the Lisp family, and these languages are not usually used in the most performance sensitive programs.

Three factors _may_ make a difference between using the two aforementioned functions. First, performance can matter if the program is doing enough I/O. Secondly, the machinery needed to evaluate language expressions will have to be available at runtime, meaning that the executable will have to be interpreted by an interpreter capable of doing the evaluation (which Lisp, Python, etc. are—they have REPLs after all) or the executable in languages without a runtime interpreter will have to be linked statically or dynamically with code that does the evaluation, making it resulting executable larger. Third, there is the really important reason that programs should avoid reading and evaluating their inputs as expressions: security.

A process runs code within a certain security context, generally with the same privileges as the user running the program. If the data input to the process can run expressions not found in the code, the program's author can make few security guarantees about the results of running the program. Programs may receive input from the network and may even run at elevated security levels (e.g. setuid); these programs should not evaluate arbitrary input. For example, many security vulnerabilities come from database programs reading strings that are passed directly to the SQL interpreter. See the XKCD "Exploits of a Mom" [1].

[1] [https://xkcd.com/327/](https://xkcd.com/327/)

<comment><USER6> > interpreted languages like Python, Ruby, or the Lisp family

Lisp isn't an 'interpreted language'.

> have to be interpreted by an interpreter capable of doing the evaluation > (which Lisp, Python, etc. are—they have REPLs after all)

SBCL, a Common Lisp implementation...

      * (mapcar #'disassemble (list (lambda (a) (print a))))
      ; disassembly for (LAMBDA (A))
      ; Size: 28 bytes. Origin: #x226B7580
      ; 80:       498B4510         MOV RAX, [R13+16]                ; no-arg-parsing entry point
                                                                    ; thread.binding-stack-pointer
      ; 84:       488945F8         MOV [RBP-8], RAX
      ; 88:       488BD3           MOV RDX, RBX
      ; 8B:       B902000000       MOV ECX, 2
      ; 90:       FF7508           PUSH QWORD PTR [RBP+8]
      ; 93:       B8D8C35222       MOV EAX, #x2252C3D8              ; #<FDEFN PRINT>
      ; 98:       FFE0             JMP RAX
      ; 9A:       CC0F             BREAK 15                         ; Invalid argument count trap
      (NIL)

To me that looks like machine code...

A bunch of Lisp implementations use compilers for evaluation in the Read-Eval- Print-Loop.

<comment><USER5> I wasn't trying to insult Lisp.

Compilers for Lisp have been around in some form for many years—I can remember hearing Patrick Winston talking about them when I first learned Lisp in his class in 1973. There are both interpreters and compilers for many languages and translators that are in between that use JIT compilation at run time.

Lisp and it's offshoots (Scheme, Dylan, Common Lisp, Clojure, etc.) have a wider range of compilation and interpretation strategies used in their implementations than other programming languages. Perhaps this is due to the fact that Lisp has been around longer than almost any other important language or perhaps its due to its homoiconicity.

However my point was really about the availability of eval at run time, however it is implemented, and particularly eval that runs in the program's address space and security context.

It's true that the SBCL implementation of Common Lisp, by default, compiles eval's arguments at runtime, but it may also use interpretation at runtime depending on the value of the a global variable. Other implementations of Common Lisp always use interpretation, like CLISP. Also, Common Lisp has _eval-when_ which affects the compile vs interpret decision [1].

Readers interested in interpretation vs compilation can find introductory coverage of the topic in Wikipedia, see [2]. Lisp has an interesting and important history to computer science as the first interpreted high level language, see it's Wikipedia entry at [3].

[1] [http://www.lispworks.com/documentation/lw50/CLHS/Body/s_eval...](http://www.lispworks.com/documentation/lw50/CLHS/Body/s_eval_w.htm)

[2] [https://en.m.wikipedia.org/wiki/Interpreter_(computing)](https://en.m.wikipedia.org/wiki/Interpreter_\(computing\))

[3] [https://en.m.wikipedia.org/wiki/Lisp_(programming_language)](https://en.m.wikipedia.org/wiki/Lisp_\(programming_language\))

<comment><USER6> > I wasn't trying to insult Lisp.

Sure, just categorizing Lisp as an interpreted languages isn't correct.

> However my point was really about the availability of eval at run time, > however it is implemented, and particularly eval that runs in the program's > address space and security context.

Right, but technically Common Lisp doesn't requite eval to use a compiler and it can also load compiled code from the file system, at runtime.

> Other implementations of Common Lisp always use interpretation, like CLISP.

CLISP also provides a virtual machine with a byte code compiler (also optionally a JIT native code compiler), though the compiler needs to be called explicitly.

> Also, Common Lisp has eval-when which affects the compile vs interpret > decision [1].

Depends. In an implementation like SBCL or CCL, which use compilation for EVAL, it has no effect on such a decision.

</comment></comment></comment></comment></comment></comment><comment><USER7> First of all, thanks for sharing; it's a very educational piece of code!

I have some generic coding advice though. With slightly better names you can get rid of a lot of the comments. There is a lot of repetition in the code. If you factor that out, you will have even less need for comments. I highly recommend watching some Kevlin Henney talks on such topics, for example [https://youtu.be/ZsHMHukIlJY?t=487](https://youtu.be/ZsHMHukIlJY?t=487) (but he has even better talks recently)

The input of the program should be supplied in a more format more natural to humans and let the computer do the transformation into whatever data structure it's comfortable with. So I would propose a simple, multi-line text as an input:

        xxxxxx
        0x000x
        x*0x0x
        xxxx00
        00000x
        xxxx0x

Then the code would look like this:

        (ns maze.solver
            (:require [clojure.string :as str]))

        (def maze-filename "maze.txt")

        (defn parse [maze-str]
         (->> maze-str
              str/trim
              str/split-lines
              (mapv (partial into []))))

        (def maze (-> maze-filename slurp parse))

You can also just hardwire a maze during development into the source file, since Clojure supports multiline strings:

        (def maze (parse "
        xxxxxx
        0x000x
        x*0x0x
        xxxx00
        00000x
        xxxx0x
        "))

The result of `parse` function will contain character data types instead of 1 character long strings. I think in this case it's actually more readable and more concise too:

        [[\x \x \x \x \x \x]
         [\0 \x \0 \0 \0 \x]
         [\x \* \0 \x \0 \x]
         [\x \x \x \x \0 \0]
         [\0 \0 \0 \0 \0 \x]
         [\x \x \x \x \0 \x]]

Next `println` actually accepts multiple arguments and concatenates them with a space, after stringifying them, so you can drop the extra `(str ...)` wrapping around them.

Then again, the comment is superfluous. It's obvious that you are printing stuff. If you really want to tell what is it, just wrap it in a well-named function. Eg:

        (defn report [paths]
          (println "The maze has" (count paths) "paths.")
          (println "The shortest path in the maze is:" (count (first paths)) "steps long.")
          (println "The path is" (first paths))
          (println "The longest path in the maze is:" (count (last paths)) "steps long.")
          (println "The path is" (last paths)))

So you can just put `(report sorted-paths)` in your `-main`.

<comment><AUTHOR> I am shamelessly stealing your code.

</comment></comment><comment><USER8> Looks similar to A* to my non-Clojure using eye. How has your performance been? If I use a 1000 x 1000 grid in my A* Python implementation I wrote last night it takes forever.

[0][https://en.m.wikipedia.org/wiki/A*_search_algorithm](https://en.m.wikipedia.org/wiki/A*_search_algorithm)

<comment><USER9> I wouldn't expect performance to take forever (> 1 hr) for 1000x1000 in python. I know I have made not optimized path-finding that can solve 100x100 instantly (< 1 sec), and because the time complexity scales with # of vertices for planar networks that should mean that it would only take ~100 sec to solve 1000x1000.

<comment><USER8> I was being hyperbolic, run time was more in the two minute range. Thank you for the numbers it seems my idea of thousands of units pathfinding over long distances isn't feasible in this way.

My next idea is to "prerender" a series of interconnected waypoints across the map at the start and then pathfind to the nearest one before moving long distances using small bursts of pathfinding to move around obstacles and stay on track.

</comment></comment></comment><comment><USER10> Neat! I happened to finish a similar project in Clojure just this week:

[https://github.com/Torvaney/flow-solver](https://github.com/Torvaney/flow- solver)

Although I used a much lazier strategy for doing the solving (reduction to SAT).

</comment><comment><USER6> Common Lisp: [https://gist.github.com/lispm/145fc3e0967f42ff44a11e0670be1a...](https://gist.github.com/lispm/145fc3e0967f42ff44a11e0670be1aef)

</comment><comment><USER11> Related (not my repo): [https://github.com/joewing/maze](https://github.com/joewing/maze)

</comment><comment><USER12> Thanks for teaching me about the fn trampoline, which I had never seen/used before!

Really cool project!

<comment><USER13> It's very useful. I once had a codebase where we wrote two (parallel) variants of trampoline called tramampoline and trambopoline, and I'm not even a little bit sorry.

</comment></comment><comment><USER14> Just a nit-picky comment... your 'can-go-left?' and 'move-left', etc. functions would probably be more idiomatic by either passing the direction as an argument, (and maybe using multi-methods, though it might be overkill for this).

</comment><comment><USER15> I don't have a whole lot to say other than this looks awesome! Well done!</comment>


Ask HN: Is it possible to replicate 30TB from 20 DBs to PostgreSQL real-time? - <AUTHOR> If you had 20 databases spread across 20 servers, could you replicate them all into a single PostgreSQL instance? And can this be done on a server costing less than $100,000?
The databases total 30 TB on disk. There are ~30,000 tables. The maximum number of rows in a single table is 1.2 billion. The number of rows changed per second is modest (100s or less).
Some of the servers run PostgreSQL, some MySQL. The versions are different, but they're relatively current (PostgreSQL >= 9.1, MySQL >= 5.6). <comment><USER2> How big is a row? If you're saying the change speed is "100s of records per second or less" you could easily connect to each database as a replica and stream the change data capture to Kafka/Google Pub/Sub or Kinesis and stream the inserts into your destination table.

This should be possible for much less than $100,000. Assuming each database gets its own process for reading the change feed, you're looking at 20 (add more based on individual table/db needs) instances for the change data capture, 3-5 instances for Kafka/ZK brokers, and a handful of machines for reading the changes and writing them into the destination database.

The important thing here is not the number of databases or the size of the tables - its the speed at which inserts happen. 100 inserts/updates per second * 30k tables = 3M per second. That can be handled by the architecture I described above.

If this is a real problem you are trying to solve, I'd love to talk to you. I'm a co-founder of stealth company that is building better tools for engineers solving problems like this.

Our product can solve this exact problem very easily. I'd love to hear what you are working on and show you what we've built. Let me know how to contact you.

Edit: corrected my math.

<comment><AUTHOR> The size of the rows vary, but very few tables have large blobs, and there should be much fewer than 3M rows changing per second. Does the change capture use triggers or a different method?

</comment></comment><comment><USER3> [https://dba.stackexchange.com/](https://dba.stackexchange.com/)

<comment><AUTHOR> Thanks, posted. I am however also interested to hear from non-technical stakeholders who have supported something similar.

</comment></comment><comment><USER4> Good question. I am also interested as well.</comment>


Gryffin: a large scale web security scanning platform from Yahoo - <AUTHOR> https://github.com/yahoo/gryffin <comment><USER2> "At the heart of Gryffin is a deduplication engine that compares a new page with already seen pages. If the HTML structure of the new page is similar to those already seen, it is classified as a duplicate and not crawled further."

Does anyone know what definition they use to constitute "similar"? In particular I'm wondering if you have to do any sort of configuration on Single Page apps which could have remarkably similar markup but completely different behaviors/vulnerabilities.

<comment><USER3> Looks like it's simhash: [http://www.titouangalopin.com/blog/2014-05-29-simhash](http://www.titouangalopin.com/blog/2014-05-29-simhash)

</comment></comment><comment><USER4> I don't accept "coverage and scale" as the answer to why this was created. What problem is fundamentally being solved by scanning, or fuzzing, your web based applications "at scale"?

</comment><comment><USER5> Can someone explain for a newbie on how to practically use it in a project? I understand golang basics. The github documentation mentions what it does but not how to use it.</comment>


Is there a list of failed startups somewhere? - <AUTHOR> This question came about because I just moved to the Bay Area and am looking for cheap office furniture. I know that when startups fail, they often just abandon their furniture or sell it for dirt cheap.<p>However, I don't know how to find recently failed startups. I feel like this sort of list would be valuable for tons of reasons even beyond just looting for furniture. Any ideas? <comment><USER2> Some of the top law firms could provide such a list, such as Wilson Sonsini in Palo Alto, CA. Such a list could help inform future inventions, innovations and growth as well as founding team's corporate, fundraising and partnership strategies. Also, I would love to learn how companies that failed determined product/market fit. But getting such a list requires some coaxing. What's in it for the law firm? For the failed companies team members. Maybe we can create a channel/site called "lessons learned", and give these people a stage to share their experiences. Now that may be an incentive.

</comment><comment><USER3> I think such a list would be far too lengthy to be useful.

But I do have a recommendation about the furniture from them -- typically, all of that stuff gets sold off to a liquidator that then resells it (often through an auction). You might have good luck contacting the liquidators in the area.</comment>


Tesla Shakes Up Model 3 Lineup - <AUTHOR> https://www.thedrive.com/tech/27400/tesla-shakes-up-model-3-lineup-killing-35000-base-price <comment><USER2> Per the new lease:

"Please note, customers who choose leasing over owning will not have the option to purchase their car at the end of the lease, because with full autonomy coming in the future via an over-the-air software update, we plan to use those vehicles in the Tesla ride-hailing network."

Elon once again promising fully autonomous vehicles in 3 years.

Also, isn't this a rental? A lease normally has a residual, so you can choose whether to buy the car.

<comment><USER3> I have yet speak to any experienced embedded developer who actually thinks "full autonomy" is remotely possible in the near/mid term. The suggestions that it is possible, seems to come mainly from junior developers and snake-oil salesman.

We don't even have "full autonomous" trains, planes, or trucks yet.

<comment><USER4> Would an auto-car that crashed at a rate 1/10th of humans be a successful "full autonomous" vehicle? You could save 30000 lives a year in the US by deploying such vehicles and probably more due to knock-on effects. But that would be about 10 auto-car deaths/per day. No way that works with the current media.

Unfortunately, it seems many people are not going to accept auto-cars with less than airplane like safety levels. Of course that will never happen. So yes, "full autonomous" vehicles are a long way off (probably forever), unless someone (Waymo?, Tesla?) can show they are much safer and some kind of national or state level laws are passed to restrict the legal liability of the makers and owners of such vechiles. Sort of like how ski resorts would not exist without special laws restricting liablity.

<comment><USER5> > _an auto-car that crashed at a rate 1 /10th of humans_

This is incredibly generous assumption, especially given the fact that cars with advertised Autopilot features, like Tesla's offerings, actually make accidents more likely[1][2]. Compared to the driver fatality rate in other luxury vehicles, Tesla's offerings nearly triple driver fatality[3].

This is like theorizing about a car that survives 99.9% of all impacts at any speed. It doesn't exist, nor is there any indication that it will exist, and it doesn't serve a purpose other than to prop up a contrived argument.

[1] [https://arstechnica.com/cars/2019/02/in-2017-the-feds- said-t...](https://arstechnica.com/cars/2019/02/in-2017-the-feds-said-tesla- autopilot-cut-crashes-40-that-was-bogus/)

[2] [https://driving.ca/tesla/model-s/auto-news/news/iihs- study-s...](https://driving.ca/tesla/model-s/auto-news/news/iihs-study-shows- tesla-model-s-crash-more-frequently-than-other-luxury-cars)

[3] [https://medium.com/@MidwesternHedgi/teslas-driver- fatality-r...](https://medium.com/@MidwesternHedgi/teslas-driver-fatality- rate-is-more-than-triple-that-of-luxury-cars-and-likely-even- higher-433670ddde17)

<comment><USER4> No assumption, just a serious question. I agree no one is near that good yet. But it was a question that people should be thinking about. How good will be good enough to let the auto-vehicles operate on the roads?

</comment></comment></comment></comment></comment><comment><USER6> Here's the actual Tesla announcement:

[https://www.tesla.com/blog/update-our-vehicle- lineup](https://www.tesla.com/blog/update-our-vehicle-lineup)

"Given the popularity of the Standard Plus relative to the Standard, we have made the decision to simplify our production operations to better optimize cost, minimize complexity and streamline operations. As a result, Model 3 Standard will now be a software-limited version of the Standard Plus, and we are taking it off the online ordering menu, which just means that to get it, customers will need to call us or visit any one of the several hundred Tesla stores. Deliveries of Model 3 Standard will begin this weekend."

<comment><USER7> I don't understand. Will they be selling the standard then ? The quote and headline don't seem to match. And no, I haven't read the link.

edit: I did read the link and I still don't understand.

<comment><USER8> Confusing indeed. Are they just trying to make it harder to buy the cheapest model? That's the only thing that makes sense to me.

<comment><USER9> They use the cheapest model to try to lure customers in and upsell them. That is why it is not available online. They don't want to sell the SR; they are likely losing money on it.

</comment></comment></comment></comment><comment><USER10> I get the _strong_ impression that even as a loss leader, the $35,000 figure was based on some back of envelope calculations. We know that they have had to expand or increase the cost in several ways since they started production.

I know they really want to make the Model T of electric cars, but it took about a decade of development for Ford to deliver one under $500. And I don't think Tesla has quite mastered the science of car production yet.

<comment><USER11> I believe it was an outright lie, an effort to solicit deposits and lure people into a bait-and-switch of higher priced models. All evidence to date suggests I'm right. Of course, they're never going to come out and say 'we fooled you' but I don't know what level of evidence people need before they reach the conclusion for themselves.

<comment><USER10> 'Never attribute to malice what can adequately be explained by incompetence."

<comment><USER12> Deception and stupidity are merely implementation details of untrustworthiness. It doesn't matter.

</comment></comment></comment></comment><comment><USER13> Ah, another Tesla announcement that's backtracked after a couple of weeks.

Purely as an outsider looking in it seems like there's a lot of caveat emptor about buying a Tesla: wait times seem apt to increase, models seem like they'll be arbitrarily subject to conditions, and random conditions seem to get attached about which models can and can't use chargers.

There also seems a high likelihood of waiting a long time and paying $2,500 deposit for something which never arrives. And if you do get stiffed, there seems to be an attitude of 'it's your fault' (usually for not spending even more money with Tesla).

Not the kind of consistency I'd want when making an investment in a car, to be honest.

<comment><USER14> >There also seems a high likelihood of waiting a long time and paying $2,500 deposit for something which never arrives.

Any examples of this? Pretty sure everything has arrived at some point, albeit a delay.

</comment></comment><comment><USER15> Maybe if they hadn't included $5,000+ worth of (fake) "full self-driving" hardware _by default_ into _all_ Model 3s, they wouldn't have needed to do this, and maybe they would've been able to make the base Model 3 a little cheaper, too, which I'm sure would've positively impacted its popularity (I think a $29,900 base Model 3 would be far more popular than Standard Plus).

I could understand all the other carmakers being lured by the bells and whistles of "self-driving" marketing blitz over turning their cars into EVs, but I expected more from Tesla.

Making great EVs that are also affordable should have _always_ remained Tesla's #1 priority. Last I checked, Musk said he wanted the world to switch to EVs and the way to do that is through them making cheaper EVs with each generation. The priority shouldn't be to keep adding gimmicks to those Teslas and keeping them more expensive than they need to be. Has he forgotten that?

<comment><USER16> > _Maybe if they hadn 't included $5,000+ worth of (fake) "full self-driving" > hardware by default into all Model 3s_

FSD hardware is known as "HW3" (now known as "FSD Computer") and is not in any Teslas at the moment.

[https://twitter.com/elonmusk/status/1111788218142216192?ref_...](https://twitter.com/elonmusk/status/1111788218142216192?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1111788218142216192&ref_url=https%3A%2F%2Felectrek.co%2F2019%2F03%2F29%2Ftesla- full-self-driving-computer-retrofit-elon-musk%2F)

<comment><USER17> HW3/AP3 started shipping recently.

<comment><USER16> AFAIK we haven't seen it in the wild, only found the option codes - and only for Models X and S.

</comment></comment></comment></comment><comment><USER18> I've been considering a Tesla. Buying the base model with zero options just never really crossed my mind. Seems that's the case for a lot of Tesla buyers.

For me it's like buying a base laptop. For my personal one, I'll always max the SSD and memory.

<comment><USER7> For me, the base model is all I've considered. Mainly because I want a electric car without any bells and whistles.

<comment><USER19> Would love one with computers minimized and privacy as a first-class concern, just like Adama did in the newer Battlestar Galactica, haha.

(I do like the feature where the car slows/stops when it encounters an obstacle directly ahead. As far as I know it shouldn't require machine- learning/privacy invasion, but it is harder and harder to get one without the other.)

<comment><USER20> Plug-in mod for Toyota Prius?

<comment><USER16> Why the mod? It exists from the factory: [https://en.wikipedia.org/wiki/Toyota_Prius_Plug- in_Hybrid](https://en.wikipedia.org/wiki/Toyota_Prius_Plug-in_Hybrid)

<comment><USER20> Yeah, sorry, I was thinking about one of the old ones because the OP wanted "minimized computers".

</comment></comment></comment></comment></comment></comment><comment><USER14> Once again I gotta say the negativity is astounding. People are so stoked to be rooting for this American tech company to fail. I really don't get it.

The main gripe I see is that Tesla misses deadlines or makes promises they cannot fulfill. Is this not super common in nearly every industry? Have none of you missed deadlines?

I remember this article[1]from last year stating GM would release fully autonomous cars with no steering wheel in 2019! Yet clearly that is not going to happen and I never heard any backlash, but I guess it's not cool to hate GM.

I also am astounded to see people constantly saying Autonomy is a decade+ away. They already have cars driving people 95% of their miles, which would've seemed impossible 6 years ago, and yet here we are, and the last 5% is going to take a decade? How many times are people going to doubt Elon before they realize they're betting against someone whose done the impossible many times over.

[1]: [https://www.theverge.com/2018/1/12/16880978/gm-autonomous- ca...](https://www.theverge.com/2018/1/12/16880978/gm-autonomous- car-2019-detroit-auto-show-2018)

<comment><USER21> >They already have cars driving people 95% of their miles

I'm skeptical. I'd be surprised if more than 40% of my miles were freeway.

Call me when we have fully autonomous trains and then I'll start thinking about losing my skepticism about autonomous cars.

<comment><USER14> >I'm skeptical. I'd be surprised if more than 40% of my miles were freeway.

I didn't mean this was the average but I probably should have said commutes. My commute is nearly all highway and I basically don't touch the car from on- ramp to exit-ramp.

>Call me when we have fully autonomous trains and then I'll start thinking about losing my skepticism about autonomous cars.

[https://en.wikipedia.org/wiki/List_of_automated_urban_metro_...](https://en.wikipedia.org/wiki/List_of_automated_urban_metro_subway_systems)

<comment><USER21> I was thinking more freight trains, and I forgot this article was about a success:

[https://arstechnica.com/cars/2018/12/mining-company-says- fir...](https://arstechnica.com/cars/2018/12/mining-company-says-first- autonomous-freight-train-network-is-fully-operational/)

It did take 10 years to build and cost 1.3 Billion dollars. And it is still being remotely monitored.

</comment></comment></comment></comment><comment><USER22> Well it has been a few weeks since the last shakeup.

</comment><comment><USER23> So I guess jailbreaking Teslas will become a thing at some point in the future. If all the limits are software only people will find ways to use the car they own in the way they want...

<comment><USER24> And suddenly the true context of their hacking competitions around their software platform make even more sense...

</comment></comment><comment><USER25> When are they going to make an electric car that regular working people can afford?

</comment><comment><USER26> Here's a new interview with Musk on self-driving:

[https://m.youtube.com/watch?v=dEv99vxKjVI](https://m.youtube.com/watch?v=dEv99vxKjVI)

The podcast if you prefer:

[https://lexfridman.com/elon-musk/](https://lexfridman.com/elon-musk/)

</comment><comment><USER27> Prior HN post that included some discussion on this point: [https://news.ycombinator.com/item?id=12748863](https://news.ycombinator.com/item?id=12748863)

</comment><comment><USER28> Well, that offer lasted all of two weeks?

</comment><comment><USER29> Maybe I am missing something but the Standard Range Plus Model 3 with no extras is about $34,500 (That is including Federal and California rebates).

</comment><comment><USER30> Did they also dropped the price for a base model with autopilot by $1,500? It used to be $40,500 now it's $39,000

</comment><comment><USER31> It must be that Tesla is losing money on the base model.

<comment><USER32> The couldn't be as they haven't produced a single one.

<comment><USER33> Which is probably why they haven't built any. They did the math and knew they can't make profit on it so they "announced" 35k model is available but tried to upsell all people who ordered it to more expensive models, and now they quietly cancelled the 35k model without delivering a single one. So they can say "hey we released 35k Model 3 as promised" to save face. But I don't think they can make profit from it so they are forced to sell more expensive models.

<comment><USER9> This is an exact repeat of the Model S 40 version.

</comment></comment></comment></comment><comment><USER34> All I know is that Tesla is dominating the luxury car market right now.

<comment><USER35> As someone who owns both an I-PACE and a Model X, I can say that Tesla hasn't quite nailed the "luxury" part yet.

</comment></comment><comment><USER36> The lease doesn't look too bad but how much does insurance cost?

</comment><comment><USER37> And just look at what you get for your money: [https://twitter.com/Arronwu23/status/1116691772300599296](https://twitter.com/Arronwu23/status/1116691772300599296)

<comment><USER38> Man. That is Damning!

<comment><USER38> Why downmod? Why so sensitive.

</comment></comment></comment><comment><USER39> This article makes the change sound negative and confusing.

But reading the original Tesla announcement [1], it all seems reasonable. People were buying the Standard Plus model six times more often than the Standard model, so they got rid of it. Good.

[1] [https://www.tesla.com/blog/update-our-vehicle- lineup](https://www.tesla.com/blog/update-our-vehicle-lineup)

<comment><USER40> Baloney. I'm sure lots of people who even wanted to buy the Standard model were put off because they never saw any actual deliveries of the 35k vehicle.

<comment><USER39> As a Model 3 owner, I'm glad that they regularly shake things up. I want them adapting fast rather than waiting long periods of time to make changes.</comment></comment></comment>


In search of a simple consensus algorithm - <AUTHOR> http://rystsov.info/2017/02/15/simple-consensus.html <comment><USER2> The article abuses Kolmogorov complexity...

> When it is applied to the algorithms, it means that an algorithm with the > shortest implementation is simpler.

That is misleading. Kolmogorov complexity is the length of the shortest program (in a pre-defined language) that produces a given object. So, if the _shortest program_ that produces Algorithm A is smaller than the _shortest program_ that produces Algorithm B, then the Algorithm A is less Kolmogorov- complex ("simpler") than Algorithm A.

This does not mean you can take two existing implementations (in C, say) and compare the implementation length and declare one is "simpler," unless you are claiming that both implementations are as short as possible. Since Kolmogorov complexity is not computable, that seems like a tall order.

Maybe they are right that Single-Decree Paxos is simpler (either in the sense of Kolmogorov complexity or in some other sense, who knows), but invoking Kolmogorov complexity here seems totally unwarranted -- it doesn't add anything substantive.

<comment><USER3> Thank you! I'll rework this paragraph to be correct, I wanted to make an observation that the given data (two attempts to implement key-value storages with keeping the length of a program as short as possible) favour Gryadka but of course isn't wrong to make strong statements based just on one data point.

<comment><USER4> I would suggest just dropping Kolmogorov in general, and just referencing the human idea that shorter is generally going to be simpler. I wouldn't have a problem sticking with you through that. Sure, I can feed that to my pedant mill as with anything else, but since it's not really the core idea I'll roll with you on it.

<comment><USER2> Agreed. The section basically boils down to "despite maybe looking simpler, Single-Decree Paxos is still tricky." I don't think something particular and formal like Kolmogorov complexity even fits the tone there.

<comment><USER5> Right. There's no strict value to higher or lower complexity in the Kolmogorov sense, so you might as well assign the value to something more tangible (like pseudocode terseness or something)

</comment></comment></comment></comment></comment><comment><USER6> I have the feeling like this article is just bashing strong master consensus protocols. But the truth is, yes, they incur a penalty for electing a master.

However, this really gets amortized in most workloads if the leader changes only rarely. Additionally, in an environment with a good network connection between nodes (a few ms), you can set the timeout to be much less than a few seconds (could be less than a second actually), this way you have shorter unavailability.

There's another point he touches, about the unavailability of the whole cluster when the leader is down. Really, this isn't something dependent on the protocols, but on the applications. If you have one paxos/raft group per replica, you actually only get a small unavailability. Additionally, even consistent reads do not need a living master to be possible.

It's worth reading the spanner paper to get more insight into high availability/consistency achieved with a paxos based db implementation ( [https://static.googleusercontent.com/media/research.google.c...](https://static.googleusercontent.com/media/research.google.com/en//archive/spanner- osdi2012.pdf) ).

EDIT: And in my opionion, calling it a SPOF is missing the point a little bit.

<comment><USER3> > consistent reads do not need a living master

It's wrong. If you're fine with stale reads then you don't a living master, but if you want to have a guarantee that the read value is up-to-date then the living master is necessary.

Etcd has a bug related to this - [https://github.com/coreos/etcd/issues/741](https://github.com/coreos/etcd/issues/741)

<comment><USER6> It may not be up to date at the time of actually READING the data, but it will be up to date if the date is the moment the client requested it. You can actually achieve this using timestamps. (So basically, it's semi-stale data, you're right, because you have a guarantee about the timestamp at which it was up to date, where the timestamp can be recent)

(Not talking about etcd, check out the spanner paper)

<comment><USER7> In order to get a linearizable read in Spanner, you do need to have a heartbeat from the leader of the Paxos tablet for the data you are reading in order to know that all data has been replicated up to the time at which you are taking your read. This is not free, but can be cheaper than active communication. (referred to as t_safe in the paper)

<comment><USER6> As I understood it, if you are actually reading at some point it time (let's say 100 ms ago), then the non-leader node can check for himself, if he was in contact with the master after this point of time and give you an answer.

</comment></comment></comment></comment></comment><comment><USER8> It is my understanding that the motivation in seeking out consensus algorithms with strong leaders (or equivalent) as opposed to horizontally weighted peer- to-peer ones is due to the performance penalty imposed by the latter in the general case. Structuring the protocol to be a dissemination from the 'leader' node down to the followers as opposed to a bottom-up approach fares better when your leader is long-lived, circumventing the cost of determining 'consensus' every single time. It's readily apparent that this would lend to a performance penalty in the pathological case, as is demonstrated here, when the leader node is taken down repeatedly - but I'm skeptical if this is true for workloads that systems like coreos/etcd, cockroachdb/cockroach were intended to handle.

<comment><USER9> Funnily enough, there is a paper on _exactly_ what you're referring to from Microsoft Research called "Flexible Paxos":

[https://arxiv.org/pdf/1608.06696.pdf](https://arxiv.org/pdf/1608.06696.pdf)

The gist of it is that there are realistically 2 quorums to be had: One for read/write to a cluster, and one for leader election. Assuming leader election is a relatively uncommon event (as it is in Paxos), you can require more quorum nodes for leader election while allowing less quorum nodes for quorum read/write. This means you get strong consistency with better performance.

Distributed systems are one of my favorite things. I literally spent part of an evening with a beer reading a small handful of papers like this one. If you want an absolute treasure trove of similar works, visit the blog of Adrian Coyler:

[https://blog.acolyer.org/](https://blog.acolyer.org/)

He has a good writeup on the Flexible Paxos paper as well:

[https://blog.acolyer.org/2016/09/27/flexible-paxos-quorum- in...](https://blog.acolyer.org/2016/09/27/flexible-paxos-quorum-intersection- revisited/)

<comment><USER10> > I literally spent part of an evening with a beer

Just one? :)

Consensus algorithms are _fascinating_! And +1 for [https://blog.acolyer.org/](https://blog.acolyer.org/) , I'll often read his blog over lunch.

Another great paper is [https://research.google.com/archive/paxos_made_live.html](https://research.google.com/archive/paxos_made_live.html) which talks about what it's like to realistically run Paxos. There's a ton of corner cases, engineering realities, and optimizations to be done to make Paxos work well in practice.

Another good resource is the Raft GitHub page[1] which links to the paper, has an interactive visualization, and a plethora of talks by various people.

Raft is the backbone of opensource, I'd be curious to hear from any Googlers in the know whether there's deficiencies in Raft that lead to continued use of Paxos, or if it's experience (and already battle-tested code) with Paxos that leads them to continue deploying Paxos-backed systems.

[1] [https://raft.github.io/](https://raft.github.io/)

<comment><USER9> Great comments and links! Pretty sure Google wrote chubby before raft existed.

Chubby paper: 2006 [http://dl.acm.org/citation.cfm?id=1298487](http://dl.acm.org/citation.cfm?id=1298487)

Raft paper: 2014 [http://dl.acm.org/citation.cfm?id=2643666](http://dl.acm.org/citation.cfm?id=2643666)

If you've got something battletested, there isn't a lot of value to rip it all up if it works within the given business requirements. Also they figured out how to implement Multi-Paxos, which is known for being difficult.

</comment></comment></comment></comment><comment><USER11> When looking for a per-key strongly consistent but still highly available datastore I found Hibari, which uses chain replication. Really interesting rech which tries to solve the same problem: [http://www.snookles.com/scott/publications/erlang2010-slf.pd...](http://www.snookles.com/scott/publications/erlang2010-slf.pdf)

Hibari does have a master orchestrator, similar to GFS master server. But it's only needed in reconfiguration events.

</comment><comment><USER12> I think this overstates the instability of strong leader-based consensus algorithms, or at least over-generalizes Raft's instability to apply to all consensus algorithms with a stronger leader.

In Raft, it's possible for multiple nodes to prevent leader election progress by being overly aggressive when requesting votes. It is also possible for a follower to knock out a perfectly healthy leader by being too quick time out the leader and start a new term.

Both of these limitations stem from the simplicity of Raft's leader election algorithm. To compensate, most Raft implementations I've seen have more conservative follower timeouts that extend the time to detect leader failure and elect a new one.

It's possible for a more optimized algorithm to get sub-second latencies for detecting and re-electing a leader, even in a latent (e.g. geo-distributed) environment. In other words, well within the commit window for the replica set based on network hop latencies.

Also, while the latency for individual writes in single-decree paxos can be closer to strong leader protocols, it is non-trivial to achieve the same level of throughput that is possible in Raft et al when writing to an ordered log, as you cannot start a paxos instance for a new log entry until all prior instances have been resolved. Raft can just add new values in the next append call (or just spam out appends for new messages w/o waiting for the replies for previous ones).

IME, I'd say both single-decree paxos and raft are probably equivalent in terms of understandability, but raft is a better base on which to build a fast high-throughput consensus protocol.

<comment><USER3> > cannot start a paxos instance for a new log entry until all prior instances > have been resolved

It's wrong. In Grydka (Single-decree Paxos) all the keys are independent so it's possible to update them at the same time without blocking.

Grydka's throughput is comparable to Etcd on the same type of machines (4720 vs 5227 rps) and I never optimized for it (my goal was to fit 500 lines) so it's also wrong that it's "non-trivial to achieve the same level of throughput" \- I did it by accident.

So I don't understand why Raft is a better base to build a fast high- throughput consensus protocol.

<comment><USER12> This is true, but comes at the cost of not being able to preserve linearity across arbitrary keys, and you are still limited by the throughput on updates to a single key.

<comment><USER3> Assuming linearity is atomic multi-key updates:

1\. There are tasks which don't require atomic multi-key updates

2\. Atomic multi-key updates can be implemented on the client side (see RAMP, Percolator transactions or the Saga pattern)

3\. Once the data overgrow the size of one machine you need to shard the log and at this time you're in the same situation

<comment><USER12> Fair enough, though at that point, you're layering on additional complexity and getting further away from the goal of simplicity. (And to point 3, while this is true, using a log means this problem can be dealt with a lot later, and there are solutions that don't involve giving up linearizability, such as a dedicated set of log replicas apart from data partitions, or implementing something like Calvin.)

My main point was that the deficiencies of strong-leader-based consensus protocols are overstated, and despite a (minor IMO) level of additional starting complexity, a raft-like protocol is going to be quite a bit simpler than a paxos-based protocol of equivalent capability.

</comment></comment></comment></comment></comment><comment><USER13> I am surprised:

1\. I am technically pretty strong but I have no idea what this paper is about

2\. So many people know this is about that it shot up to #1 on HN

Can someone give a pointer (a link or two) to the lay, interested audience here about what the field IS. Just a sort of intro guide to someone who knows about programming and math, but has never heard the term paxos?

I am curious, and I am sure many others are as well.

edit: spelling

<comment><USER14> These consensus algorithms are awesome! They are the backbones of many highly available systems in modern DC's today. It's how people manage to get any sleep at all when taking care of systems that require very reliable databases.

Raft is a consensus algorithm that is touted as being easy to understand. It is well specified, compared to paxos, which leaves many implementation details up to the creator. Raft, however, is fairly explicitly specified on page 4 of this paper: [https://raft.github.io/raft.pdf](https://raft.github.io/raft.pdf)

Consensus algorithms allow us to build reliable castles out of constantly failing servers (sand). Systems like zookeeper, etcd, chubby, consul, and others use these algorithms to achieve high availability AND strong consistency (linearizability, the strongest possible) despite up to a majority of the cluster failing.

<comment><USER14> Whoops, I meant to say "up to the largest minority failing", if a majority is lost then the gig is up! Too late to edit!

</comment></comment></comment><comment><USER15> > For example, instead of using a distributed log as an Event Sourcing backend > for building a key/value storage as an interpretation of an ordered stream > of updates we can run a distributed log instance per key.

That is a key insight. I often wonder if people who implemented Raft and discarded Paxos right off the bat knew this? Also I think "Paxos Made Live" scared everyone away from Paxos for a long time.

But what is often missing is that Google implemented a distributed log system. Paxos doesn't do a distributed log by default and just deals with reaching consensus on a value. In practice there is often a need for a log, but not always. If a distributed log is not need Paxos becomes less scary.

</comment><comment><USER16> Good to see more leaderless consensus protocol implementations and that RAFT isn't be all and end all of all consensus problems.

One advantage not mentioned in the article, of leader based consensus algorithms is the ability to more easily implement read leases for faster reads.

Read leases can allow for fresh reads without having to run them through the quorum protocol, by trading off availability (due to leader failure) and also correctness in certain edge cases (since read leases will depend on ability for individual machines to measure time delta with reasonable accuracy, which may not be true on some weird VM scenarios).

</comment><comment><USER17> Maybe Aphyr can test it out between whiteboard interviews.

</comment><comment><USER18> I don't think that gryadka is correct, see [http://tschottdorf.github.io/if- its-not-paxos-its-probably-w...](http://tschottdorf.github.io/if-its-not- paxos-its-probably-wrong-gryadka).

<comment><USER3> I responded in the comments: [http://tschottdorf.github.io/if-its-not-paxos- its-probably-w...](http://tschottdorf.github.io/if-its-not-paxos-its-probably- wrong-gryadka#comment-3221871145) the analysis is based on a false assumption about the read operation

</comment></comment><comment><USER19> I've been curious to know if one could model performance constraints in a model -- or at least the probabilistic bounds -- and have the checker invalidate a design that steps over them.

</comment><comment><USER7> Paxos's complexity is often overstated. I made a simple implementation of Paxos for a key-value store as a proof of concept to demonstrate how you can simplify Paxos by removing leader election, multi-master management, and log garbage collection.

Here's my blog post on the issue: [http://hack.systems/2017/03/13/pocdb/](http://hack.systems/2017/03/13/pocdb/)

The entire implementation is 1100 lines of code including comments.

<comment><USER20> How heavily have you tested it? I haven't tried implementing Paxos myself, but anecdotally, it's very hard to get it completely right. And when it's being used as key low-level infrastructure, it has to be completely right.

This blog post we're discussing agrees: "I planned to finish it in a couple of days, but the whole endeavor lasted a couple of months, the first version has consistency issues, so I had to mock the network and to introduce fault injections to catch the bugs. [...] Single Decree Paxos seems simpler than Raft and Multi-Paxos but remains complex enough to spend months of weekends in chasing consistency."

Your approach of using many small Paxos instances is very interesting, though! I'd love to see some real world performance comparisons.

<comment><USER7> Indeed pocdb is not intended to be a fully "ready" implementation. There are likely liveness bugs (that can be mitigated by periodically calling work_state_machine on every write outstanding), but it is unlikely to have safety bugs stemming from protocol misunderstandings (any safety bug is likely a small typo).

My main projects using Paxos are Replicant[1] and Consus[2], both of which have consumed significantly more time to get Paxos correct.

[1] [https://github.com/rescrv/replicant](https://github.com/rescrv/replicant) [2] [http://consus.io/](http://consus.io/)

</comment></comment></comment><comment><USER21> It's strange that I can't find anything on implementing a CAS register this way. It seems like a relatively straightforward combination of single-decree paxos and the ABD algorithm. Of course, reasoning about distributed algorithms is never simple, and this still isn't...

<comment><USER3> I described it in this post [http://rystsov.info/2015/09/16/how-paxos- works.html](http://rystsov.info/2015/09/16/how-paxos-works.html)

With single-decree Paxos you can write a storage which provides the following API:

function changeQuery(key, change, query) {

var value=this.db.get(key); value = change(value);

this.db.commit(key, value);

return query(value);

}

By providing different implementations of change & query you can achieve different beviour including CAS.

</comment></comment><comment><USER22> Interesting. I wonder if the etcd API would survive being implemented this way?

<comment><AUTHOR> Something like that: [https://github.com/rystsov/perseus/blob/master/gryadka/src/e...](https://github.com/rystsov/perseus/blob/master/gryadka/src/etcd- like-api.js)

</comment></comment><comment><USER23> I've been implementing epaxos for a few years, slowly. It's decidedly not simple in recovery, but Iulian has been available and kind.

</comment><comment><USER24> Why test one store with wrk, and other with a js client? How do you know the load testing framework isn't skewing the results?

<comment><USER3> It can screw only to the worse side so I don't care about the true results as long as the lower bound is sufficient enough.

</comment></comment><comment><USER25> I didn't get anything out of this blog-post except a bunch of numbers based on the default parameters (such as leader election timeout) of various systems. Here is the link to the EPaxos paper it purports to discuss though:

[https://www.cs.cmu.edu/~dga/papers/epaxos- sosp2013.pdf](https://www.cs.cmu.edu/~dga/papers/epaxos-sosp2013.pdf)

</comment><comment><USER26> Maybe I'm missing it because I'm on my phone, but where's the code?

<comment><AUTHOR> The implementation they talk about (gryadka): [https://github.com/gryadka/js](https://github.com/gryadka/js)

</comment></comment><comment><USER27> I wonder what are the author thoughts on ZAB.

<comment><USER3> I don't have a deep understanding of how ZAB works but based on the documentation (initLimit) and prior experience with ZooKeeper, ZAB has the same issues as Raft when a leader dies.

Folk from Elastifile demonstrated it in their Bizur paper - [https://arxiv.org/abs/1702.04242v1](https://arxiv.org/abs/1702.04242v1)

</comment></comment><comment><USER28> Does every technical article need to be scattered with Impact font memes now?</comment>


PolyPassHash: Password storage scheme to prevent cracking passwords individually - <AUTHOR> https://github.com/PolyPassHash/PolyPassHash

<comment><USER2> Essentially, the password hashes are AES encrypted with a shamir secret key that is stored in memory, and on boot up can be unlocked by k of n administrators/power users logging in.

It also presents a technique to weakly verify normal logins between bootup and when the k admins log in by essentially leaking a few bits of entropy of the user's hashed password.

This only protects against attackers accessing the password database/file from disk, not from an attack that compromises memory and the key stored there on a running server. However, in the case that the key _is_ compromised, this is no worse than best practices used today.

Assuming the admins use strong passwords, this requires potential crackers to crack k strong admin passwords at once if they only have the file.

</comment><comment><USER3> _" How hard is it to crack passwords stored using this technique?"

Suppose that three people have passwords that are each randomly chosen and 6 characters long. A typical laptop can crack those passwords in about 1 hour.

If you take the same passwords and protect them with PolyPassHash, every computer on the planet working together cannot crack the password in 1 hour. In fact, to search the key space, it would take every computer on the planet longer than the universe is estimated to have existed._

If it sounds too good - it probably is. Can anyone with a strong cryptography background explain if this idea has merit or if it is simply pixie dust.

<comment><USER4> I'm not a crypto expert, but I like to think I'm relatively well informed and able to spot obvious bullshit when it comes to this stuff. Going on the description given on GitHub, but not the paper yet, it sounds plausible.

</comment></comment><comment><USER5> _" Extremely weak passwords are a bad idea. An attacker can guess things like password, etc. and just try them even if they do not have the database. So do not use them regardless of the storage technology.

Another thing PolyPassHash does not protect against is password reuse. Do not use the same password on multiple sites no matter how strong it is! We recommend using a password manager that generates a separate, strong password per site."_

If they recommend using a password manager then what additional security does this scheme provide? Presumably your password manager generates strong, unique passwords.</comment>


Show HN: NoStash, a simple, new, indie, future proof note taking app - <AUTHOR> https://nostashapp.com/ <comment><AUTHOR> Author here, if you got any comment I am happy to reply!

I created the NoStash because I wanted a small app, just like that for me.

I didn't find anything quite like it, and so I made it.

It is about being slow growing, simple to use, fast, and enjoyable.

Habits and discipline in note taking over strikes of inspiration and moments or motivation.

Enjoy!</comment>