Chinese government is working on a timetable to end sales of fossil-fuel cars - <AUTHOR> https://www.bloomberg.com/news/articles/2017-09-09/china-to-ban-sale-of-fossil-fuel-cars-in-electric-vehicle-push <comment><USER2> A common talking point from the right during the withdrawal from the Paris accord is that "It's just talk, China isn't actually going to do anything". I wonder what the new talking point going to be after this news? Something something developing country, coal power plants?

This seems like pretty good news in general though, combined with other smaller bans (like the UK+France ban on Diesel cars). But I'm not sure how I feel about China itself leading this green push.

<comment><USER3> This is _an announcement of a desire to set a target_ , not an achievement. Automobiles are not the core of China's emissions problems, they are still installing a large number of new coal reactors, to my knowledge.

<comment><USER2> > an announcement of a desire to set a target

Isn't it an announcement of a future target? Seems more that "we will set a target" than "we want to but these lobbyists are making it really hard"

</comment></comment></comment><comment><USER4> EVs in China produce two to five times the amount of smog as gas vehicles, because the supporting energy mix is so dirty.

[https://www.scientificamerican.com/article/in-coal- powered-c...](https://www.scientificamerican.com/article/in-coal-powered- china-electric-car-surge-fuels-fear-of-worsening-smog/)

Should be good long term, if China realizes other energy sourcing goals, just... EVs alone don't fix everything.

<comment><USER5> Yet somehow this study leaves out how much China is adding solar and wind energy to it's supply.

Infact China is closing down it's worse coal plants.

See: [https://en.wikipedia.org/wiki/Solar_power_in_China](https://en.wikipedia.org/wiki/Solar_power_in_China) [http://www.bbc.com/news/business-40341833](http://www.bbc.com/news/business-40341833) [https://www.bloomberg.com/news/articles/2017-07-19/china- add...](https://www.bloomberg.com/news/articles/2017-07-19/china-adds- about-24gw-of-solar-capacity-in-first-half-official) [https://en.wikipedia.org/wiki/Wind_power_in_China](https://en.wikipedia.org/wiki/Wind_power_in_China) [https://www.cnbc.com/2017/02/13/china-and-us-lead-way- with-w...](https://www.cnbc.com/2017/02/13/china-and-us-lead-way-with-wind- power-installations-says-global-energy-report.html)

<comment><USER4> > Yet somehow this study leaves out how much China is adding solar and wind > energy to it's supply.

Ahem...

> The good news is that China has shown a firm commit- ment to prompt > renewable energy use, improving energy efficiency and reducing pollutant > emissions from power plants. Great efforts have been, and will continue to > be, made by the Chinese government to reduce the emissions of power plants, > such as setting an aggressive target to reduce national SO2 emissions by 10% > from 2005 to 2010 by installing FGD and closing a large number of small > generating units.

They project out to 2030 and examine different international assumptions about realistic future energy mixes.

But yeah, it's still an optimistic story long term. They'll also need things like low rolling resistance tires and new braking tech to reduce pm 2.5, and reforms in ag, industry, and home heating. But every step is part of it.

[http://www.tsinghua.edu.cn/publish/ess/7778/2012071915174608...](http://www.tsinghua.edu.cn/publish/ess/7778/20120719151746087644973/%5B18%5D%2520Huo_EST_2010.pdf)

</comment></comment></comment><comment><USER6> First, I don't get it, Politicians pushing Electric Vehicle for PR or really to help locals with realistic setup in place? But this being china they can literally get anything running in a very short time. While this is all good, what would happen to car manufacturers, countries import and export in terms of Crude oil. What kind of impact will this bring on China's economy?

</comment><comment><USER7> I am pretty sure that electric cars are going to take over the car market. Tesla has shown that electric cars can be more desirable than combustion engined ones. They are also the best way to reduce the environmental impact of cars. Currently, the market share is limited by the higher price and more so even by the small number of different electrical models offered. The price does not matter if you cannot get the car model you want in the first place.

So any threats to fossil car sales is about accelerating the switch and push car makers into quickly offering a wider variety of electric cars. As soon as electric cars cross 50% market share, combustion engine cars probably will become less desirable and difficult to sell. So a total ban should not matter too much then, the trick is getting to 50%.

<comment><USER8> > They are also the best way to reduce the environmental impact of cars.

From an individual perspective, maybe. From a city-planner perspective, the best way to reduce the environmental impact of cars is to deploy public transit. (And the Chinese know that: [https://twitter.com/yicaichina/status/867494851511672832](https://twitter.com/yicaichina/status/867494851511672832) )

</comment></comment><comment><USER9> If everybody switches to electric do we have enough raw materials for batteries like lithium to supply the whole world?

<comment><USER10> >If everybody switches to electric do we have enough raw materials for batteries like lithium to supply the whole world?

This is a common misconception about batteries. Lithium makes up about 2% of the mass of a Li-Ion battery, and it is more abundant in the Earth's crust than lead or tin.

<comment><USER11> And unlike oil, Lithium can be recycled indefinitely

<comment><USER12> "As of 2017, the recycling of Li-Ion batteries generally does not extract lithium since the many different types of Li-Ion batteries require a different extraction process."

Source: "Battery Recycling > Lithium ion batteries" [https://en.wikipedia.org/wiki/Battery_recycling](https://en.wikipedia.org/wiki/Battery_recycling)

<comment><AUTHOR> This would change if there was a shortage. Nobody recycles it now because it's cheaper to mine more.

</comment></comment></comment></comment></comment><comment><USER13> Is the world really ready to push battery power this quickly? We need to install millions of charging ports.

What worries me is charge time. Say it takes 2 hours to charge my car I pull over and all the charging ports are taken.

I could be waiting 2 hours to get a port and then another 2 to charge.

<comment><USER14> Yes. The Nissan Leaf has a range of 107 miles. How is most of Florida supposed to evacuate before a hurricane if they all drive EV's? There already isn't even enough gas down there for everyone.

<comment><USER15> Bus or Train?

<comment><USER16> What about partially/fully immobile family members, larger than small physical things, supplies, lower income households (that use their car as a storage and live in a tent)...?

</comment></comment></comment></comment><comment><USER17> Whenever I see news like this, it just makes it seem like the US is going to become irrelevant in the future global economy if it doesn't get more serious about renewable energy.

</comment><comment><USER18> Holy shit! Maybe it is better if the west cedes global leadership to China. Western billionaires have figured out how to own our governments. China's communist party seems to be immune to their influence so far.

<comment><USER19> Why? There are many countries that already have such a timetable.</comment></comment>


25M Brits would struggle in a cashless society - <AUTHOR> https://www.which.co.uk/news/2018/12/25m-brits-would-struggle-in-a-cashless-society/ <comment><USER4> Another problem is that no society is perfect. And even if it were, it won't stay that way.

There is a need for a small grey area in any system to stay sane, where people can workaround the limitations of said system.

Yes, it will be abused, and also used for nefarious purposes. But it's better than the alternative.

You need people to sometimes be able to do things the state doesn't approve. You need children to be able to mess around without parent knowing. You need to be able to go to a gay bar without living a trace. You need to be able to give cash to a homeless without him being part of the system.

Also if you make it very hard to try new things that are illegal or immoral now, your society will get stuck and lose a lot of opportunities to evolve.

Yes, it would be better to change the system to make it better first. But it's a slow and unreliable process, especially if you can't prove that your way is ok. So having little pocket of experimentation is important, and cash allows that.

<comment><USER5> _There is a need for a small grey area in any system to stay sane, where people can workaround the limitations of said system._

There is a similar analogy to what is happening in the computing world, and I've heard it called "the insecurity that gives us freedom." I agree.

<comment><USER6> This comment and its parent are both excellent. I've often heard security and freedom described as a tradeoff; the idea of a causal relationship is intriguing.

</comment></comment></comment><comment><USER7> One of the problems with a cashless society is that the banks aren't required to give you a bank account.

If none of the banks will give you a bank account, and there's no such thing as cash... then you're just not allowed to have money. That shouldn't be a position that it is possible to get into.

<comment><USER8> A lot of people don't realize that in the US at least, there is a semi-secret banking blacklist, where banks will just deny you all services. I know because I managed to get on it, and then managed to get off it, no easy feat. How I got there is another story, but banks are not a friend of the people, and moves towards a cashless society give them even more power, something they already have too much of.

Sidenote: I was in on bitcoin back when you could generate blocks with a CPU... and came to the conclusion that privacy of transaction was too fundamental to a good coin and abandoned bitcoin. Given central banks ability to invent money at scale, I also always thought the 50% attack was something they would work towards... and so that's the story of how I almost became a millionaire.

<comment><USER9> I enjoy the "how I almost became a millionaire because of Bitcoin" stories. I've read a lot of them online and I know surprisingly many people personally that have such a story to share.

Those stories tell you a lot about the person in question. How it didn't work out and how they cope with that "loss".

Yours is the first where someone coped out because not being satisfied with the kind of privacy Bitcoin provides.

<comment><USER8> Sometimes having principles and sticking to them puts me in unfavorable situations like that, but to be honest I still feel the same way about bitcoin. Because of missing out though I never really got back into the coin scene, but I do like monero/zcash for their privacy features, but I have a hard time buying the idea that any coin based off wasting compute cycles and energy on arbitrary math is going to be a real coin of the future.

A coin that uses all that compute to work on protein folding or other big problems that also has privacy would be something I would really like to see.

<comment><USER10> What is your opinion of GNU Taler?

<comment><USER11> Not who you asked this from, but in my opinion it has a huge problem of any mistakes being unfixable - either you mistransact or get scammed - <USER2> provides no way to fix that.

<comment><USER10> I don't get it – if you could just take it back whenever, it wouldn't be "money", now would it?

<comment><USER12> It would be money, but not cash. I can absolutely take back a Paypal transaction with buyer protection.

<comment><USER10> And, just like money is a layer built on top of cash, I assume that one could build a third-party escrow service on top of GNU Taler which has this "buyer protection" feature, with the added bonus of not one actor having a monopoly on it – whereas if Paypal stops liking you, you are out of luck.

<comment><USER11> There are other alternatives to Paypal as well. This feature should be built into the currency instead of just forcing everyone to reinvent the wheel for __zero __benefit.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> I would _love_ to see a cashless society because carrying around dirty bills and heavy coins is just a nuisance, and adds real overhead for stores as well...

... _BUT_ , for privacy and the unbanked, I suspect this _necessarily_ needs to go along with credit-card-compatible "cash cards" that would have to be:

1) Anonymous (e.g. buy a card for $1 from any drugstore, swap them with friends, buy in bulk and give away, whatever -- don't need to show an ID)

2) Secure and robust (value stored on-card without the ability for the government to deactivate etc., or for transactions to be cancelled after-the- fact)

3) All ATM's and banks required by law to support transferring any reasonable value (e.g. <$10K) from one card to another anonymously (so if I need to pay you, the two of us can walk into any bank). Ideally be able to do this at any convenience store, etc.

For whatever reason, I rarely see the idea of anonymous cash cards discussed in these types of conversations.

<comment><USER14> > For whatever reason, I rarely see the idea of anonymous cash cards discussed > in these types of conversations.

Because it's really really hard to prevent forgery. Maybe impossible.

<comment><USER15> It's impossible to prevent forgery just like physical cash, but it's definitely a lot harder to crack a properly designed cryptosystem than make a counterfeit note.

</comment></comment></comment><comment><USER16> I've recently visited London for the first time. What really stunned me was the huge number of homeless people. They were practically everywhere.

And they all relied on cash donations. I wonder what will happen to these people as society becomes more and more cashless? What effect will it have on crime?

<comment><USER17> Begging is a controversial issue in the UK. Our welfare system is far from perfect (and it has been substantially denuded by the current Conservative government) but there are relatively few people who need to beg to survive - primarily non-UK nationals with no recourse to public funds.

The consensus view among charities who work with the homeless is that a) most beggars aren't rough sleepers, b) most rough sleepers don't beg and c) begging primarily serves to fund drug addictions. Though by no means universal, many people in the sector are of the opinion that giving to beggars has a net negative effect by helping to perpetuate addiction. Begging certainly isn't a sustainable solution to the factors that cause homelessness - mental illness, addiction, economic insecurity and a lack of social housing. It is entirely plausible that the diminution of begging by a move to cashlessness could see an increase in acquisitive crime.

<comment><USER18> That may be true - but on the other hand, losing access to money doesn't seem to be helping them either. Like, even if the opinions are true, the fraction of people that beg to buy actual food or try to improve their situation wouldn't be able to do that anymore either.

I can't imagine that this move would be particularly helpful for people _with_ addiction either. Their addiction won't go away, but they'd probably find other ways to fund it, which might involve entering into really unfortunate power dynamics.

</comment></comment></comment><comment><USER19> The implications of a cashless society on privacy are terrifying

<comment><USER20> The implications on life for the poor are terrifying!

Businesses would love to be able to exclude people too poor to use their services from society- It's a real ugly situation. Like a decentralized apartheid based on financial status.

Without the government stepping in and trying to prevent this discrimination, there is no one to stand up for these human being's lives

<comment><USER21> I don't see what any of that has to do with using cash vs using a prepaid debit card.

Are you thinking about credit checks to stop poor people getting phone contracts? Because that already happens and cash existing hasn't stopped it.

</comment></comment></comment><comment><USER22> It seems to me that a cashless society can have many advantages - <USER3> everything works well. Yet, cashless societies would be pretty disastrous in case of natural disasters, acts of war, acts of terrorist, industrial accidents, and any other circumstances that would take out electricity and/or telecommunications. To me that seems a good reason to kill the case for going cashless nationwide.

</comment><comment><USER23> Britain is not Britain in this regard.

London has a ton of places that don't accept cash already.

Go to smaller towns in the North and you'll hit minimum charges to use a card or broken machines.

<comment><USER21> Admittedly I've not lived in London for 5 years or so, but I never went to single place that wouldn't accept cash. Name one.

<comment><USER24> I suppose parts of TfL might be an example - you can't pay cash on a bus. Other than than, I haven't encountered one either, though I'm worried that they're getting closer. Probably past time to be thinking about an escape plan anyway.

</comment></comment></comment><comment><USER25> The Raspberry Pi store in Cambridge is the first place I've come across that is cashless. It struck me that for a Foundation that is trying to promote computing to children, they're exactly one of the main demographics that won't have access to cashless payments.

[https://www.raspberrypi.org/raspberry-pi- store/](https://www.raspberrypi.org/raspberry-pi-store/)

(Digressing, but I was also saddened that their tills are tablet EPOS systems and not home-brew with a Pi at their heart)

</comment><comment><USER26> Before talking about cashless society they should allow anonymous bank cards and anonymous cryptocurrencies. Otherwise it is an Orwellian surveillance state. The government doesn't want better and convenient payment system, they just want to be able to see all transactions between citizens and to be able arrest their money. Today you agree to the cashless society, tomorrow you are assigned a social rating.

</comment><comment><USER27> A cashless society would be a wet dream come true for intelligence agencies, Facebook/Google and other mass surveillance proponents or beneficiaries.

</comment><comment><USER28> You need to keep things off the books sometimes. Try saving up for a significant other's gift, if you can't keep a few things hidden.

<comment><USER29> The concept of not having your own private bank account that isn't shared with your significant other or anyone else baffles me.

<comment> frosted-flakes Why? It baffles me that a husband and wife don't trust each other enough to pool their resources.

<comment><USER30> Ditto. We each have our own JOINT account. We can use each other's accounts (including the associated credit cards) but it's easier to manage if we (generally) don't.

After all, if you are married you are jointly and separately liable for all assets and debts so why doesn't your banking arrangements reflect that fact?

<comment><USER31> > After all, if you are married you are jointly and separately liable for all > assets and debts so why doesn't your banking arrangements reflect that fact?

In countries with matrimonial property regimes, that isn't necessarily the case.

</comment></comment></comment></comment></comment><comment><USER32> Cashless society shouldn't be a thing in a democracy. It requires too many hurdles and money. It's inherently prejudiced to many poor people.

</comment><comment><USER33> Unless there were a state (consumer) bank, the implication of a cashless society is that it ought to be a illegal for people not to use private banks. In my mind this effectively make banks an extension of the state apparatus without the sort of accountability that would be expected.

</comment><comment><USER34> If the state doesn't issue cash then other items will become cash - as it did in Somalia.

</comment><comment><USER35> This goes alongside the campaign on protecting cash as a payment option: [https://campaigns.which.co.uk/freedom-to- pay/](https://campaigns.which.co.uk/freedom-to-pay/)

</comment><comment><USER36> If 25 million are dependent on cash then we won't be going cashless any time soon.

</comment><comment><USER37> How we/society/constitution stopping government from just create arbitrary number on some server to create money out of the blue ?

<comment><USER38> Banks do it under fractional reserve banking.

"Lord Adair Turner, formerly the UK's chief financial regulator, said "Banks do not, as too many textbooks still suggest, take deposits of existing money from savers and lend it out to borrowers: they create credit and money ex nihilo* – extending a loan to the borrower and simultaneously crediting the borrower's money account"." [0]

* hilarious use of Latin to make 'out of nothing' sound authoritative

[0] [https://en.wikipedia.org/wiki/Fractional- reserve_banking](https://en.wikipedia.org/wiki/Fractional-reserve_banking)

</comment></comment><comment> purple-again This reads very strongly like someone made a conclusion and then looked for every detail they could they thought might support that theory, some much weaker than others.

These types of articles are only useful if your looking for a starting point to get a conversation going on a topic. They are not good for supporting your conclusion one way or the other once you have analyzed the topic.

</comment><comment><USER39> Given the current technological landscape, we are not ready for a cashless society. People don't have the knowledge nor the equipment required to make it a good system. Avoiding this cashless thing seems like the correct move, until we have good social infrastructure (in my opinion, not likely to happen before 2060). We need what Richard Stallman calls digital extraction:

>Projects with the goal of digital inclusion are making a big assumption. They are assuming that participating in a digital society is good, but that's not necessarily true. Being in a digital society can be good or bad, depending on whether that digital society is just or unjust. There are many ways in which our freedom is being attacked by digital technology. Digital technology can make things worse, and it will, unless we fight to prevent it.

>Therefore, if we have an unjust digital society, we should cancel these projects for digital inclusion and launch projects for digital extraction. We have to extract people from digital society if it doesn't respect their freedom, or we have to make it respect their freedom.

[https://www.gnu.org/philosophy/free-digital- society.en.html](https://www.gnu.org/philosophy/free-digital-society.en.html)</comment>


How secret do startup proposals to Y Combinator need to be?  Should applicants avoid making any of their prototypes public? - <AUTHOR>

<comment><USER2> You don't have to keep anything secret for our sake. This batch we funded three companies that were already launched, Buxfer, Weebly, and Virtualmin.

<comment><USER3> boso was also launched and had an active community at the time of funding, though it subsequently evolved into auctomatic which we've only just launched.

<comment><USER2> Oops, true, make it four.

</comment></comment></comment><comment><USER4> I think except in very rare cases Derek from CD Baby says it best...

_Awful idea = -1_ Weak idea = 1 _So-so idea = 5_ Good idea = 10 _Great idea = 15_ Brilliant idea = 20

_No execution = $1_ Weak execution = $1000 _So-so execution = $10,000_ Good execution = $100,000 _Great execution = $1,000,000_ Brilliant execution = $10,000,000

<comment><USER5> So an awful idea with a brilliant execution will cost you $10,000,000? That's quite a bit of bail money, yes?

<comment><USER6> It'll probably just cost some dumb VC 10 mil, not you personally.

</comment></comment></comment><comment><AUTHOR> To complicate matters, what if your proposal is rejected in this coming round but you are thinking of applying again in the following round?

Clearly, not making a prototype public becomes more of an issue in that case.

</comment><comment><USER7> It's your company. Why would it be an issue whether or not it was secret?

<comment><AUTHOR> Because they may not fund it if it is not.

<comment><USER8> But haven't they funded people with existing products?

<comment><AUTHOR> Even if that were to be the case, it might still discourage them from funding your proposal.

</comment></comment></comment></comment><comment><USER9> This post says the wrong number of comments. Weird.</comment>


The Web Setup: Divshot - <AUTHOR> http://blog.meldium.com/home/2013/10/27/the-web-setup-divshot

<comment><USER2> Get a haircut. Shave the ironic mustache. Take off that fedora. And don't give me that "actually, it's a trillby" bullshit.

And for the last time, GET OFF MY LAWN.</comment>


IFTTT.com forced to pull Twitter triggers - <AUTHOR>

This is the email they've been sending out to users:
Dear robgough,
In recent weeks, Twitter announced policy changes* that will affect how applications and users like yourself can interact with Twitter's data. As a result of these changes, on September 27th we will be removing all Twitter Triggers, disabling your ability to push tweets to places like email, Evernote and Facebook. All Personal and Shared Recipes using a Twitter Trigger will also be removed. Recipes using Twitter Actions and your ability to post new tweets via IFTTT will continue to work just fine.
At IFTTT, first and foremost, we want to empower anyone to create connections between literally anything. We've still got a long way to go, and to get there we need to make sure that the types of connections that IFTTT enables are aligned with how the original creators want their tools and services to be used.
We at IFTTT are big Twitter fans and, like yourself, we've gotten a lot of value out of the Recipes that use Twitter Triggers. We're sad to see them go, but remain excited to build features that work within Twitter's new policy. Thank you for your support and for understanding these upcoming changes. If you have any questions or concerns, please contact us at email@example.com.
Linden Tibbets
IFTTT CEO
*These Twitter policy changes specifically disallow uploading Twitter Content to a "cloud based service" (Section 4A https://dev.twitter.com/terms/api-terms) and include stricter enforcement of the Developer Display Requirements (https://dev.twitter.com/terms/display-requirements). <comment><USER2> Sorry Twitter, but Fuck You. You went from being useless to useful then back to useless.

I had set up 10 different actions using the Twitter IFTTT interaction. These actions specifically notify me of emergency alerts and breaking news through the Pushover Channel.

I have alerts for breaking news from local media, I have emergency alerts from my university campus, and I have emergency weather/safety-related alerts.

Without much technical knowledge, I know of no easier way to receive these alerts, since they are being posted specifically to Twitter.

I didn't care too much about the restrictions on 3rd party clients. But this is directly influencing how I perceive my personal safety in this tech-filled world. As soon as we convinced people to post important messages to twitter, we remove the ability to notify ourselves of them? That's malicious.

<comment><USER3> I sympathize with how this inconveniences you and you make some excellent points about emergency information being trapped with inside Twitter... but from their perspective you're just not an engaged enough user. You should have your nose in your Twitter stream all the time so you don't miss these kinds of important tweets (or tweets from sponsors about the new Ford Focus).

That people can consume content without consuming it from them is _exactly_ what they want to avoid.

<comment><USER4> _You should have your nose in your Twitter stream all the time so you don't miss these kinds of important tweets_

\-- Signal to noise ratio. Needed in any emergency.

But this in conflict with Twitter's biz model/direction. That's the problem. This is a negative, step back for a use of the service more valuable to society. The "eyballs" to sell "stuff" biz model is not a great contributor to civiliation. Arguably, twitter has more potential.

</comment></comment></comment><comment><USER5> The terms in question:

"You may export or extract non-programmatic, GUI-driven Twitter Content as a PDF or spreadsheet by using "save as" or similar functionality. Exporting Twitter Content to a datastore as a service or other cloud based service, however, is not permitted."

So do I own my tweets or not? If I own them, can't I decide what to do with them, such as storing them in a cloud service? Twitter can't have it both ways.

<comment><USER6> My thoughts exactly. Do I own my tweets or not? I don't see how having a service outbound my tweets anywhere would be a violation.

<comment><USER3> You need to post them into a service that you have control over (maybe an open source microblog that runs on your server for example) and then cross-post _into_ Twitter.

</comment></comment></comment><comment><USER7> This is really annoying. I've been using IFTTT to e-mail all of my tweets and mentions to a dedicated e-mail address for archival purposes. Looks like I need to quit publishing via Twitter if I can't keep backups.

<comment><USER8> I've been doing a very similar thing (but appending all mentions to a note on Evernote). I found it pretty useful.

</comment></comment><comment><USER9> Suggestion for anyone pissed off (at Twitter) by this: Check out <https://rstat.us/> . It's a completely open microblogging platform, and at least for now, you can log in using your Twitter account (via OAuth) and cross-post all your Rstat.us updates to Twitter.

I've been meaning to try it for some time and this news compelled me to do it. Seems to work fine. You can follow me there if you like: <https://rstat.us/users/graue> (not really trying to promote myself though, my updates are pretty boring) Also, I have no relationship with the people who made this site, but they seem pretty passionate about open platforms.

I don't think IFTTT supports Rstat.us right now, but it would be great to see them add it.

</comment><comment><USER10> If I'm understanding this straight:

google+: a network that restricts that people _write_ via their website/apps.

twitter: a network that is now starting to restrict people to _read_ only via their website/apps.

technology does evolve and diverge in lots of directions.

<comment><USER11> Except Google+'s non-writeability is more a symptom of Google's crappy API support than anything else. They built a product, and didn't really put any time in to make it a service or a platform.

I think it's apathy rather than malice on Google+'s part.

<comment><USER12> Indeed, Google Maps is just about the only polished public API they have. It's really unfortunate that Google is so unfriendly to developers regarding their products.

<comment><USER13> Google derives their primary revenue from advertising. APIs allow developers to sidestep advertising in displaying Google's content. Ergo, it is not in Google's best interest to allow easy free access to their content, via an API or otherwise, in a place where they cannot control how the content is displayed.

I don't completely agree with this reasoning but I can see why they don't just throw build APIs everywhere.

<comment><USER10> yep. And honestly, I've been okay with google's model so far, at least until their websites and apps become littered with ads like facebook.

Aside from companies (and sociopath friends) using hootsuite, I've never really heard of anyone using a third-party facebook website or app to post.

</comment></comment></comment></comment></comment><comment><USER14> See also the discussion here:

<http://news.ycombinator.com/item?id=4550625>

</comment><comment><USER15> Net Neutrality is the reason the Internet has driven online economic innovation. It protects our right to use any equipment, content, application or service without interference from the network provider. With Net Neutrality, the network's only job is to move data — not choose which data to privilege with higher-quality service and which to demote to a slower lane.

This would be the same for APIs, which are too often driven only by business when investors strategies come in the place. Stay open for an API without discrimination and tiering on data access and re-use is giving trust to all your ecosystem for building future business on it. Don't respect it is enfrenging the API neutrality concept.

More on what would be API neutrality here : <http://api500.com/post/31465739810/what-is-api-neutrality>

</comment><comment><USER16> No new information here, surprised this didn't hit sooner when twitter first changed their policy?

</comment><comment><USER17> Presumably one can still get the content from <http://gnip.com/> just not directly via Twitter's API?

</comment><comment><USER18> It's war! Kinda.</comment>


VS Code Issue Tracker Meltdown - <AUTHOR> https://github.com/microsoft/vscode/issues <comment><AUTHOR> I think we can officially say that the majority of developers have mentally signed off for the rest of this year and are just going bonkers now. It's funny, I take it with humour, let's all just have a laugh and be friends!

</comment><comment><USER2> A guy named Christian complaining about Christmas being offensive to Jews and a Santa hat being comparable to a swastika?

Smells like a concern troll.

<comment><USER3> This was actually taken seriously. How many Christians have actually died for Christmas as well? Have a fuckin' spine Microsoft.

[https://github.com/microsoft/vscode/issues/87268](https://github.com/microsoft/vscode/issues/87268)

</comment></comment><comment><USER4> I can't believe Microsoft took it down. Just wow.

Apparently they will bend their will to every troll that strolls by</comment>


100 days of IPv4 left - <AUTHOR> http://www.infoq.com/news/2010/11/ipv4-exhaustion

<comment><USER2> I dunno about anyone else but this actually concerns me a little, its gunna be a significant amount of years before even half the internet is over to IPv6.

</comment><comment><USER3> Blah blah blah, the x thousandth article about how there will be no more IPv4 addresses in x days.

<comment><USER4> Once upon a time, useless comments like the parent and this would be downvoted.

</comment></comment><comment><USER5> > The key problem has been in the delayed roll out of IPv6 to end customers, > or for xDSL modems to be able to support IPv6 (most of which only support > IPv4).

The _real_ key problem has always been that there's almost nothing to do in IPv6 space. I've got IPv6 connectivity (via 6to4 and HE tunnel broker) for more than two years. All I remember is watching that dancing turtle, visiting Google search over IPv6 (once or twice, maybe, because typing "ipv6.google.com" is inconvenient and pointless), read Python docs and updated various GNU/Linux distros from IPv6-capable mirrors. Oh, the _only_ really useful thing is the ability to directly ssh/scp into any computer at my home without constructing additional tunnels to overcome limitation of having a single globally-routable IPv4 address per 6 devices.

It's not like most ISPs can provide IPv6 support easily, but even those who can see no point in doing so. NAT64+DNS64 is resourcewise worse than classic IPv4 NAT. Some (lots?) of clients will experience all sorts of strange client- side bugs with IPv6-only connectivity. And, more important, there're almost nothing to do in IPv6 Internet today.

I believe when hosting providers will start giving IPv6 blocks to every and each customer, ISPs will follow. Not the other way.

</comment><comment><USER6> > unlike IPv4, each network card can have many IPv6 addresses assigned to it > (including loopback) at one time.

IPv4 has no problem with multiple network addresses assigned to one adapter, I do it all the time in both Windows and Linux.

</comment><comment><USER5> > IPv4 addresses can be written as 0000:0000:0000:0000:0000:0000:18.104.22.168. > (This also helps demonstrate the massive increase in numbers that IPv6 > brings over IPv4).

Please, someone, make them stop telling that bullshit.

Only the first half of IPv6 address contains routing information. Okay, some routers _may_ accept even /128 routes, but that's non-standard and one should not depend on that — the subnet is always /64.

So, the proper address space increase comparsion should be: 0000:0000:0000:0001:: vs 0.0.0.1, i.e. 2^64 vs 2^32.

</comment><comment><USER7> Is there anything I can do to hasten IPv6, either as a guy who builds and runs website, or as a plain-old user? Or is it just a matter of waiting for the ISPs to roll it out?

<comment><USER8> I've been wondering this for a while - I can't seem to think of anything that's possible for the 'little guys' to do. This seems to be a massive infrastructure problem. The big guys have been sitting on the sidelines too long on this one. :/

Does anyone know of any hosting companies that offer IPv6 support? I have some clients on linode, but they don't support it either (<http://www.linode.com/wiki/index.php/IPv6> \- "Linode does not have native IPv6 yet.")

<comment> mike-cardwell Linode doesn't have native IPv6, but I set up a Hurricane Electric tunnel, and the tunnel endpoint is less than 2ms from my Linode VM.

</comment></comment></comment><comment><USER9> There should be a rule that every server can only have one ip address at most. Then introduce a new version of ssl which also works with a non dedicated ip. This would release millions of ip addreses.

<comment><USER4> I'm resisting the urge to simply mock you here.

What you are suggesting is technically infeasible, and does not address the issue in any manner of significance. Congratulations, you liberated a few million IPs and delayed the IPv6 migration by a few days. Actually, since you freed individual IPs instead of entire blocks, you really didn't delay the migration at all but I thought I would be generous.

I don't have any clever or pithy quotes about this, so I'll have to wing it: If you have no expertise in the problem area, and you think you've come up with a simple solution that all the experts somehow missed, then you should probably assume you don't understand the problem and are wrong.</comment></comment>


Money Really Does Matter – I'm an Admitted Code Mercenary - <AUTHOR> https://dennisforbes.ca/index.php/2006/11/05/money-really-does-matter-im-an-admitted-code-mercenary/ <comment><USER2> Without giving away too much info: I work in the upper midwest as a software dev. 3-4 years ago, I was working at a good company, but was underpaid with good benefits: $70-$75k a year (with about 6 years of experience), depending on bonus. Not where I wanted to be, and not enough to get my family into the city/schools I wanted them to be in.

So I looked around, adjusted my skillset, invested time into knowledge building, took a job as a contractor at a company where I would get better pay (without benefits) and a place to really work on my skills. I parlayed that into my current job, a fully time employee with really good benefits and (for my area) top pay, about double what I was making before.

It's doable, but it won't happen overnight. Work out a plan, adjust and improve your skills, and in a couple of years you can greatly improve your income/position. The people who you see doing this aren't special, they're just working on the things that need to be worked on.

</comment><comment><USER3> _Even if_ you genuinely don't care about money, recognize that when you work value is created, and that value, that wealth, has to go somewhere.

You could seize as much as you can get, then if you don't need it donate it to the local animal shelter, or you could leave it on the table for your manager to spend on his Rolex collection. Up to you. But think of the kittens.</comment>


On the opening of the Power ISA, and the chilling effects of proprietary ISAs - <AUTHOR> https://www.devever.net/~hl/opening-power <comment><USER2> MIPS and RISC-V based working systems are relatively hard to come by for early software porting. However, you can buy second-hand POWER-PC and Apple PowerMac systems cheaply.

Will be interesting to see if a market for refurbished PowerPC systems will emerge to cater to software developers.</comment>


Why does that website take forever to load? - <AUTHOR> https://www.theregister.co.uk/2019/02/15/javascript_delay_analytics/ <comment><USER2> And this on a site that is nearly unuseable because of ads.

<comment><USER3> Not if you use adblockers.</comment></comment>


Linux from Scratch – build your own Linux distro - <AUTHOR> http://linuxfromscratch.org/lfs/read.html <comment><USER2> I attempted this a few months ago. I'm comfortable around the Linux CLI and can happily edit files in Nano (or Vim if need be). I wanted to do this to improvide my knowledge of the inner workings of Linux.

What I found out was, the LFS instructions are out of date, or in places simply wrong. A lot of the linked-to packages simply no longer exist in the locations referenced, resulting in the user having to google the package names, and hope that the archives they find are complete and correct. As such, there are many false starts getting even the basics compiled, and that's before you even get to the chroot stage. After several hours of scouting around, and compiling the dependencies, I hit a fatal compiler problem with one of the correct packages which, not being a Linux guru, I couldn't solve. This left me with the only option of starting over, which I didn't do. If I had infinate free-time I would have kept working on it, but I don't, so the VM just sits on my server, abandoned.

I like the idea of LFS, but if you are going to present a tutorial on anything that depends on external resources, then that tutorial should be maintained so that as long as the end user follows the instructions, it will always work, all the time.

I might come back to it at some point, but not anytime soon.

<comment><USER3> What would be nice is if the LFS server cached copies of all of the packages it references.

<comment><USER4> That would be very nice and reliable! For extra reliability we could wrap the installation instructions into scripts (to save people from making typing mistakes) and provide them as part of the package download. Ideally the scripts would be able to handle deinstallation too, in case people want to experiment with newer components. And it would be good to provide some convenient central user interface for atomically managing which packages are installed - a "package manager", if you will...

<comment><USER3> Hmm.

That sounds sort of like [https://buildroot.org/](https://buildroot.org/). It's a bit full-on, and definitely provides a superset of what you're describing, but sort of wanders in that general direction.

I think that LFS is intended for people who want to really understand how Linux works, so there's no automation, and the user is required to have a hand in every step of the process. I mean to follow up on LFS at some point, but to deal with the intricacy and fiddliness I'd go very slowly, and the process would probably take 3 or 4 months. But the finished system would be better configured than anything else I've ever set up... lol

It's useful to know about issues like this though, now I can prepare to expect that.

About versioning, that's difficult - since this is entirely manual, the instructions have to match up perfectly with what the software actually requires, or confusion will result.

As someone who used Slackware for a couple years, I definitely appreciate the ability to easily install new software. :D:D:D

<comment><USER5> Buildroot is fantastic - I've used it to build single-purpose VMs before. I suppose it could also be used to build really small Docker rootfs tarballs, too.

</comment></comment></comment></comment></comment><comment><USER6> My first LFS was around 2001, which I think would be LFS v3.0. I can't begin to express how amazing the project was to my learning and development as a programmer.

When I started I was completely new to Linux and the command line. Everything I do today is rooted in the foundation that I learned by doing a close read of the book. The book requires no coding, just command-line, but soon after my first and second reads of the book I began to automate the build process that took me down the path of understanding how distros are put together.

I've only read the book end-to-end once or twice (I think that's all that is needed), but I've done hundreds of builds. Make no mistake: The book is difficult to get through. It requires trial and error as well as a close read of the book to understand why the build is done in the way that it is, which should be explained thoroughly, but if it isn't I'm sure the editors want to hear about the difficulty you are having. There are also bound to be problems bootstrapping from your <insert_favorite_distro>. That's always been a challenge and it's part of the build methodology that LFS uses to create a stable foundation to build a proper system (which relates to the efforts today regarding bit identical reproducible builds).

<comment><USER7> I went through the same process, at around the exact same time. I haven't done much with LFS since 2001/2002, but it was invaluable as a resource to learn how a system is put together, what provides what, and as an exposure to bootstrapping through chroot.

Building an LFS system is the sysadmin equivalent of a programmer writing their own DB, ORM, web framework or the like. The vast majority of the time, you don't want to use the result in production, but the process is an invaluable learning experience.

</comment></comment><comment><USER8> I went down the LFS path a year ago, but then I found buildroot ([https://buildroot.org/](https://buildroot.org/)).

I had a super old desktop system (running dos and jnos, an amateur radio packet bbs). We have repurposed it as an APRS node and no longer needed the PC to do anything, but wanted to have it run minicom and display the aprs activity. The bios only supported booting off of the hard drive or floppy drive (could not boot off of cd or usb).

I first tried attaching the hard drive via usb to a virtualbox vm so I could do a minimal linux install, but kept running into little glitches.

Then I found and used buildroot to make a small OS with just enough to run minicom. Installed this to the hard drive along with a bootloader and it amazingly all worked.

I wouldn't have put that much time into something commercially, but I saw it as a fun project/learning experience. I would definitely recommend buildroot for anyone looking to build a custom (tiny) linux os.

</comment><comment><USER9> I always ask this: do people feel LFS is more "learn sed and gcc build chain and error message" rather than about the OS ?

<comment><USER9> ps: After my first 'successful' LFS build. I find out I had strange network bugs, curl/wget wouldn't work, while elinks would but with console formatting bugs (offsets and reverse video). It was both frustrating and fascinating at the same time.

<comment><USER6> Yep, I think that's a pretty big part of the learning process. Realizing that you had a successful build but some things weren't stable. Naturally this would pose the question: What went wrong? To solve that problem you have to figure out a way to debug the system, make a decision as to how to rectify it, apply a fix, then figure out how to verify.

Now imagine the effort that has to go into making Debian work or what if the issue was related to sporadic kernel crashes. It's a lot of fun if you're into that sort of thing.

<comment><USER9> > What went wrong? To solve that problem you have to figure out a way to debug > the system, make a decision as to how to rectify it, apply a fix, then > figure out how to verify.

Agreed and that's exactly the kind of stuff I was looking for in LFS and I couldn't find. I don't blame the team too much it's already fun the way it is; but it's confusing nonetheless.

</comment></comment></comment></comment><comment><USER10> If you want to build a Linux from scratch, check Yocto Project. It allows to configure a mind-numbing number of options, from the package format to libraries used, to what's in the rootfs, to create read-only rootfs, etc etc. It is targeted at embedded, but it's good for desktop too.

Disclaimer: worked on it for a couple of years.

</comment><comment><USER11> Huge +1 for this resource!!

I have learned so much from this and I haven't even made much progress on this yet. I get so interested in the details I deep dive into everything. I know it will all continue to pay off in my career. It is a priceless resource!!!

Just one example, did you know there is a [https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard](https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard), go ahead and `man hier` for quick details!

Also, did you know the /usr folder is not really 'user'. Some say it means 'Unix System Resources' and their are plenty of discussions around this.

[http://askubuntu.com/questions/130186/what-is-the- rationale-...](http://askubuntu.com/questions/130186/what-is-the-rationale- for-the-usr-directory)

</comment><comment><USER12> I automated this using Docker, and talked about it here:

[https://www.youtube.com/watch?v=UGp16yvSrFE](https://www.youtube.com/watch?v=UGp16yvSrFE)

[https://github.com/ianmiell/shutit- distro](https://github.com/ianmiell/shutit-distro)

</comment><comment><USER3> I currently want to put together a cut-down, minimal userspace rootfs that boots a VNC viewer for some old laptops. Essentially busybox+wpa_supplicant+Xorg (for synaptics touchpad support >.>)+tigervnc, and a bunch of hand-written init scripts to boot everything.

I could go hunting and take my existing system apart until I have a bunch of binaries and libraries that coexist and don't cause nuclear explosions, but I can't help but think that rebuilding all the bits I need from scratch might get me a smaller initramfs image. (At the very least I could compile out all the features I don't need.)

My question is: how best could I build everything (on Arch Linux) in an isolated way, such that gcc/clang figures out that I want everything to link together, without going full crazy and building gcc inside a chroot (like LFS does), etc etc? I figure I want lots of PREFIX and manual specification of libraries to ./configure, but is there anything else I should take into account?

I also vaguely recall a single-floppy Linux distro from years back that came with a random shell or Perl script that would do code analysis for you and strip out never-used function calls in libraries so that the resulting library build was smaller. Is anyone aware of anything like that that's a proper application?

<comment><USER13> Check out Yocto Project. I've used it to build a minimal distro for Gumstix boards, but it also supports generic x86/amd64 targets as well.

It's built on top of bitbake and you essentially enable recipes for packages you want to have installed.

[https://www.yoctoproject.org/downloads/bsps](https://www.yoctoproject.org/downloads/bsps)

<comment><USER3> Hmm. Interesting, thanks.

</comment></comment></comment><comment><USER14> I did this around 2004-2005 in high school, and it was one of the more educational learning experiences I've had. Sadly the resulting system was nigh-unmaintainable, on the level of old-school Slackware, so my install only really lasted a year or so before I scrapped it because I wanted to run some newer software.

<comment><USER15> > _Sadly the resulting system was nigh-unmaintainable, on the level of old- > school Slackware_

What is unmaintainable about Slackware, unless by "old-school" you mean older versions that aren't supported anymore, i.e. not maintained? Slackware has been one of the easiest to maintain distros since the beginning; I would know, I've been using it since 1999, and it's one of the few distros that survived the early/mid 90's birth and adolescence of Linux.

</comment></comment><comment><USER16> I built and used this back in 2007 in second year of college. While it might be a bit tricky to get it working, it's a great way for new users of Linux to understand how Linux distros are structured and how the GNU packages work with each other. That being said, it's a bit time-taking to use as a day-to-day distro.

</comment><comment><USER17> We use LFS at work and its base OS for our firmware. I started working on LFS like 5 years ago and we still use it(transitioning to CentOS minimal). One of the reason, my senior devs choose to stay with LFS was it simplicity and small footprint. We have been using LFS for almost a decade now. It was perfect fit for OS on 30GB SSD. Too much room for other stuff. One of the drawbacks I did saw is packages. Not easy as "yum install <>" and be done. Moreover, It got really tricky to get LFS working on AWS.

</comment><comment><USER18> I'm running LFS 7.6 as a desktop development environment with Xorg and Awesome as tiling window manager. If I want to install other packages I systemd-nspawn the root of a distro like Ubuntu and use apt-get.

It started out as a server environment for an HP thin client. The only difficulty I remember was booting from a USB stick and having to set the rootwait/rootdelay kernel parameters otherwise mounting the filesystem would fail.

<comment><USER19> I do that with slackware running debian and ubuntu guest containers.

</comment></comment><comment><USER20> LFS Instructions are not up-to-date or well-maintained lately ....

Plus, most LFS installs will be abandoned sooner or later after the tutorial ends anyways ....

I would recommend the uninitiated to start with Gentoo/Funtoo install for similar experience (albeit not as low-level as LFS would be). The up-side here is that they are real up-to-date / well-maintained distros, which one would end up using after the install experience ....

</comment><comment><USER21> I did this on an xbox (using xbox-linux kernel) when I was a teenager. It was such an awesome learning experience. Between this and running gentoo is how I got all my commandline and linux internals chops. Glad to see it's still around! :) (I did it ~2004)

</comment><comment><USER22> This was actually my first experience with Linux about 13 years ago. I couldn't get the popular distros at the time to run on my machine and decided to try this. I never did get it working but I imagine the process has improved in the decade+.

</comment><comment><USER18> I'm running LFS 7.6 as a desktop development environment with Xorg and Awesome as tiling window manager. If I want to install other packages I systemd-nspawn the root of a distro like Ubuntu and use apt-get.

</comment><comment><USER23> rob pike compared using unix to listening to david cassidy every day for four decades. we don't need another unix. we need a dramatically different world- view.</comment>


A Web Retailer Buys The Perfect Domain Name. Then Comes a Letdown. - <AUTHOR> http://www.nytimes.com/2012/04/26/business/smallbusiness/newark-nut-company-buys-a-perfect-domain-name-yet-sales-suffer.html

<comment><USER2> I provided my advice via the comments on the post. I do not think this is an issue with buying a poor domain name. I feel this is an issue in execution. I have helped companies transition their domains from one to another without a huge drop in traffic from Google. This is because you really have to do things by the book on this. Google does provide a nice change of address form via Webmaster Tools. However, as Google states when submitting a request, you need to have your 301 redirects in place. This means, not just for your homepage, but for every page on your site. There needs to be a 1 to 1 301 redirect.

In the case of nutsonline there are some issues. As I stated in my comments there Google still has 52,300 pages indexed and some of those pages are from a staging sub domain. If we look at the pages that are not the staging ones for example: www.nutsonline.com/search?q=almonds&t=67+67+49+50 we can notice that while it redirects, it redirects first via a 301 to www.nuts.com/search?q=almonds&t=67+67+49+50 and then via a 302 to <http://nuts.com/nuts/almonds/organic-dark.html> This is a soft 404 and is a major contributing factor. There may be other issues, but this is a biggie.</comment>


How Silicon Valley trolled Mozilla's CEO out of office - <AUTHOR> http://venturebeat.com/2014/04/04/how-silicon-valley-trolled-mozillas-ceo-out-of-office/

<comment><USER2> So much for diversity, openness, and freedom. For me, this does nothing but make me hide my personal beliefs as I don't want to make some kind of mistake and offend the masses.

If a CEO cheats on his significant other, should we shame them and attempt to get them fired? After all, cheating on someone is a breach of trust and not a good quality in a leader. What about having an abortion? Many people believe this is murder......

If you tell me it's none of my business..I agree..and neither is this.

<comment><USER3> I think for a lot of people, their main issue revolved around Prop 8 being a civil rights issue. You are correct, however, in your example of a CEO cheating on their significant other, and for some people that is a breach of trust enough to not want to do business with that company. I agree completely that your business is no one else's but your own, but if your beliefs interfere with the rights and well-being of others, you can expect backlash.

<comment><USER4> All this will do is encourage people to give money in ways that can't easily be traced. Mob rule will lead to LESS accountability, not more.

I've given money to Lambda Legal Defense Fund for years, but that doesn't mean I support rule by the Booboisie.</comment></comment></comment>


Stop Waiting for the Magical Startup Fairy - <AUTHOR> http://onstartups.com/home/tabid/3339/bid/4874/Stop-Waiting-For-The-Magical-Startup-Fairy.aspx

<comment><USER2> What? Yer joking right? C'mon I've been putting my biz plan under my pillow every night waiting for the fairy!

Ok not really, I enjoyed the post, I think all of us start-up junkies have fallen into this trap a few times. My recommendation? Be ruthlessly hard on yourself and your product, if you can find flaws, users and money folks will too.

</comment><comment><USER3> So true. I spent years reading about entrepreneurship and organizing conferences about entrepreneurship, and that was all just missing the point.

Just create something and put it out in the world -- everything else is secondary.</comment>


Compiling an application for use in highly radio-active environments - <AUTHOR> http://stackoverflow.com/q/36827659/563941 <comment><USER2> Another place this use case comes up is supercomputing. Not because of the unusual levels of radioactivity, but because of unusual numbers of processors. When you have more components, a single bit flip somewhere is increasingly likely. Resilience has been a research area in HPC for a while now, and people have looked at fault tolerant algorithms, redundancy schemes, faster checkpointing, and other ways to make sure your HPC application running on a million cores won't die because one core gets a bit flip.

So far this has luckily remained a research area in practice, because the vendors tend to do a good job of hardening their machines against errors as they get larger (most of the gloom and doom predictions take the error rates of current hardware and extrapolate). It will be interesting to see if it remains that way.

Relevant article: [http://superfri.org/superfri/article/view/14](http://superfri.org/superfri/article/view/14)

<comment><USER3> Same reason RAID-5 doesn't work on for large disks. If you have a dozen 3TB drives in an array and one dies, the probability that you'll get a read error on another drive during the rebuild is quite high.

Given enough bits, random errors that individually are almost impossible become almost a certainty.

<comment><USER4> What level of RAID would you use for an array involving a dozen 3Tb drives?

If the drives can't be trusted, then you'd need some kind of error correction in software, I'd presume. I thought the drives should auto-correct any read errors.

I'm not talking about in a radioactive environment, just normal usage.

</comment></comment></comment><comment><USER5> I remember learning in my embedded programming class about state machines and how certain states cannot be reached.

In the lab, I accounted for every possible valid state with a transition out to another state.

I left my microcontroller running when I went to get lunch, came back and it was frozen. I did a dump, and discovered it was idling in a state that has no entry into it, and because I had no exit, it would just sit there.

I 'fixed' the problem by adding a transition to reset the controller from every state that shouldn't be reached.

<comment><USER6> This is considered a minor security feature. When a program unexpectedly finds itself in a routine, or a routine ends abruptly, it's possible it was a code jump, or the after-effects of a payload... Neither of which are good things.

<comment><USER7> If you use a switch(), have a default:, even if it's seemingly impossible.

<comment><USER8> and print "call Brian" in it (anecdote from a HN thread a month ago): [https://news.ycombinator.com/item?id=11397251](https://news.ycombinator.com/item?id=11397251)

</comment></comment></comment></comment><comment><USER9> So the use case here is particularly interesting.

Most of the answers are talking about spaceflight, because it is one of the only radioactive environments that has a particle distribution that can be effectively fought.

Most earthbound environments have particle distributions that are practically unsolvable in software, and should instead be solved by using mechanical and noise tolerant analogue methods of sensing and manipulating and then massively shielding your computation (normally by controlling from a different building).

*Note. By particle distribution I am refferring to both rate and charge

<comment><USER10> >> Most of the answers are talking about spaceflight...

Another place to look is in safety critical systems. IEC 61508 in general and the automotive variant xxx26262. There are several dual core processors available now that run two copies of the code and check for any errors. That doesn't tell you which one failed, but it does catch the error. There are methods defined for creating fault tolerant systems too.

We've been doing this shit for years - your electric steering system, brakes, even throttle control (with certain exceptions of course ;-)

The funny thing in cars is that most of those systems have mechanical backups or consider "shut down" an undesirable but reasonable failure (vs steering left or dumping brake fluid). Your car can coast to the side of the road under driver control without any power. All this self driving stuff will require fully redundant components for some of these systems (including LIDAR or cameras) to really be safe.

<comment><USER11> I once read that NASA control engineers have three independent teams code up three versions of their guidance systems. If the systems disagree, they go with the majority vote.

<comment><USER12> The jargon for this practice is multiversion programming. Its based on the idea that different people will make different errors when implementing a design. However, in practice we find that errors are actually moderately or even strongly correlated between different programmers. So this practice is rather uncommon.

<comment><USER13> It's one of techniques I used to recommend although for anti-subversion instead of safety. I was worried whst you said might turn out true. My solution and hypothesis is that using three, very-different languages should counter that effect. Hard to imagine the same error happening in PreScheme, SPARK, and C.

</comment></comment></comment></comment></comment><comment><USER14> These type of posts are what bring me to hacker-news.

</comment><comment><USER15> Another interesting case apart from spaceflight where radiation hardness is important: Particle accelerators.

CERN for example has a lot of material, a quick search leads to e.g. [https://lhcb-elec.web.cern.ch/lhcb- elec/html/rad_hard_links....](https://lhcb-elec.web.cern.ch/lhcb- elec/html/rad_hard_links.html) or the Radiation to Electronics workgroup [https://r2e.web.cern.ch/R2E/](https://r2e.web.cern.ch/R2E/)

</comment><comment><USER16> I'm reminded of an old game called Core War, where the object is to write code that corrupts your opponent's code while simultaneously protecting your own code. I wonder if people who are good at that game would be the best candidates for this type of fault tolerant programming?

<comment><USER14> Israel has had its own version called "codeguru extreme" that's been going on for the last 11 years. The rules are significantly different, but the idea and inspiration is from core wars. (Sorry, hebrew only: [http://www.codeguru.co.il/xtreme/about.htm](http://www.codeguru.co.il/xtreme/about.htm))

It's sponsored by IBM, A large Israeli college, A technological high school chain - And Several Israeli Technological Military Units (Air force, Communications, Cyber). So yeah, that's probably a really good indicator you might be on to something.

<comment><USER17> a few more resources

[https://github.com/codeguru- il/corewars8086-survivors/tree/m...](https://github.com/codeguru- il/corewars8086-survivors/tree/master/cgx2005)

[http://cyber.org.il/assembly/codeguru- guide.pdf](http://cyber.org.il/assembly/codeguru-guide.pdf)

</comment></comment></comment><comment><USER18> Doing any modification to the source code to prevent this is not a good design. C/C++ is not designed for this use case, so it's going to create a mess if one will try to work around this. This might lead to similar problems that premature optimization does to the code. Instead the solution should be on hardware level, like in airplanes. Put three computers in radiation environment. Then put a forth computer that'd analyze the computing results from the three computers and do action only when there 3 out of 3 or 2 out of 3 computers agree on the result. Or average / median can be applied, depending on the task. Ideally the fourth computer needs to be put in non-radioactive environment. If not possible, that still simplifies the problem somewhat. Because only the final forth computer who collects the data and selects the trustworthiness can contain bugs, not the rest of the code.

<comment><USER18> To clarify, each piece of the puzzle must do what it is expected to do, otherwise it will be hacky. It's not expected for C++ program to detect its underlying hardware problems, there are no tools, nothing for that. So any solution would then look like and feel like a hack, temporary workaround. It's however expected for the computer as a whole to produce buggy results, it's normal and there are many existing design solutions that can take that into account and work around that. So that's why you take three computers and judge their output. Then each piece of the puzzle does it what it is intended to do, it does what it is expected to do and it doesn't do stuff outside of its responsibility.

<comment><USER18> Sorry it looks like a flooding, but to add to that, having program self-check itself is also unnecessarily ties the program to its usecase in the radiation environment, it creates unnecessary strong dependency to its execution environment, and that just goes against all the good principles of design. It's like having a software for clock in the microwave machine be aware that it is placed in the microwave machine.

<comment><USER19> Good principles of software design are simply different in different environments.

The microwave clock knows it's a microwave because it controls the microwave. It would be wasteful to put extra layers of abstraction in such a small system.

Likewise, a system designed for radiation tolerance will expect a close coupling between software and hardware; the whole point of the software in that case _is_ the hardware.

</comment></comment></comment></comment><comment><USER20> As far as I can see, no one mentioned fluidic[0] computation so far. I am not aware of a fluidic processor that can run C++ compiled code, but .. if you want hardware that can withstand 1000 degree celsius, there's pretty much no alternative that I'm aware of.

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

</comment><comment><USER21> I write code that is executed in rad environments.

The fist thing I learned is that any plan that I come up with to help mitigate risks always ends up being proven less effective than I initially thought. The idea that the hardware can flip bits or latch up behind your back is rarely a consideration for most software design work, so it really requires an entire new way of thinking. In the end, it's all about reducing probabilities, but sometimes your mitigation techniques can be borderline useless. This could be because of my relative lack of experience though. I'm sure there are people who have been doing this a while and have converged on a design process that works well.

Couple this with the fact that code in the failure path very rarely gets actually tested with _real_ failures during design, and you end up with situations where your entire test/precaution/recovery technique is rendered useless by a single oversight.

It kind of reminds me of how some bootloaders perform a DRAM test during power up. The only problem is that these tests are usually executing after the bootloader is already running from RAM itself. Sure, it's better than nothing and may help to find some obscure errors like a bad address line pin or something, but the issue here should be obvious - if there was a real problem with the DRAM, it's likely you wouldn't even get to that test, so now what?

Another example: suppose you have a PI bus connecting to an FPGA, and you are relying on the PI_done line to pace transfers. Now, a common test to verify the bus is working would be to read some magic word from the FPGA or maybe use an XOR test register, but what happens when there's an actual failure like a bad connection to the bus or bad power to the FPGA? Well, the CPU throws an exception and resets because the timeout for the PI_done expires. This all happens before your test has a change to even print anything to the console.

I run into these kinds of issues all the time when designing software routines to self-test the hardware on our devices.

Everything is all good when the hardware works, but as soon as hardware starts actually failing, all of those diagnostic tests are suddenly useless.

I've gotten kind of off topic here, but the thought process is what I'm getting at.

It usually goes a little something like this:

Possible solution: Always have a backup OS image. Caveat: There's only one copy of the bootloader, so if that area of the flash gets screwed, we're done.

Possible solution: Scrub the contents of RAM to check for errors. Caveat: The scrub routine is running from RAM.

Possible solution: Use a watchdog timer to force a reset if the CPU runs away. Caveat: What if the watchdog timer latches up and the CPU hard locks? (Unlikely, I know).

In the end, you can do a lot in SW to make a system more rubust, but the ultimate solution is probably on the mechanical side. You're better off spending your efforts modifying the enclosure and submerging the thing under water than you are spending hours designing in software techniques to try to recover from HW errors.

TLDR: Most people agree that software techniques for mitigating risks in a rad environment are all about reducing probabilities, but I feel that such techniques have a good chance of being less effective in practice than people may think. I don't know what the point of this comment really was though, other than being negative. :)

<comment><USER22> Stupid question. For any other use than a satellite where weight is critical, isn't it easier to protect the computer with a heavy enough layer of metal and not worry about radiations, or are we talking about radiations that are so high that it wouldn't help?

<comment><USER21> Good question. I'm not sure about the specifics of the stackoverflow poster's application, but for my case, they're used in space.

It's my understanding that you would need a very thick layer of metal to actually protect a device. Generally, lead works, but the thickness required would mean that your device would be extremely heavy. However, like you said, this isn't a problem for ground applications.

Also, apparently water works well too.

This is all honestly beyond my knowledge though. Our customers do their own qualification since these are COTS devices, so any failures may be handled on their end by making separate enclosures or using another vendor's system as a backup. They haven't actually asked us to implement any software based risk mitigation, but I investigated it on my own.

<comment><USER23> Another stupid question, can you suggest a reading about reliable software development ? (I prefer book)

BTW thank you for excellent information in your comment.

<comment><USER21> Sadly, I don't know of any good resources. It's kind of a specific topic, and it wasn't really part of my task to consider these issues, so I only spent a small amount of time researching it myself.

I believe most of the studies were conducted by NASA, so incorporating that into a search should help.

</comment></comment></comment></comment></comment><comment><USER14> Interestingly - A lot of the advice here (such as having an "Active" module and a "Standby" module with a heartbeat between them, Watchdogs, reducing single points of failure, error detection codes) is applicable to a lot of other High Availability scenarios. Think load balancers, databases, routers and high scalability networking devices for example.

</comment><comment><USER24> I appreciate it may not be the right tool in an extremely resource constrained embedded environment, but the "my hardware can't be relied on" on problem is almost exactly what's described several Erlang guides.

[http://learnyousomeerlang.com/the-hitchhikers-guide-to- concu...](http://learnyousomeerlang.com/the-hitchhikers-guide-to-concurrency)

</comment><comment><USER25> I wonder if there's a specialized debugger that injects random faults into your code while its running (e.g. flipping booleans or IO to peripherals). Not just fuzzing the inputs to the program, but fuzzing the contents of memory and registers as routines run. You could set the fuzz rate at different levels to detect different kinds of errors (e.g. maybe one error happens frequently but another requires a timer to tick up to a certain level before errors can affect it).

EDIT: Thinking about this a bit more, for messing with registers, you probably need specialized hardware or you need to intercept the data on the way to the register.

<comment><USER26> You could do this with an emulator I'm sure. At my company we have fairly high-fidelity models of the hardware we use/develop which could probably include on-chip peripherals in the things fuzzed. Also I guess in irradiated environments you use very simple hardware (no caches, MMUs, complex memory bus/controller) so that would make it more feasible. Would probably be really fun to develop!

Edit: if you had the resources maybe you could even fuzz simulations of the RTL. Our systems take about a week to boot Linux on simulations but I guess that would drop dramatically for simpler MCU systems.

<comment><USER25> That does sound like an incredible start. I fear that for the kinds of applications we're talking about speed could be an issue. For instance, if the system has to respond to events it can't control, queues of events can build up or things that are likely to be synchronized might not be etc. I feel like in many situations, you'd want to run at full speed for official tests though early testing could use an emulator. Of course, if you're emulating a much slower hardware as you mentioned, the test is more realistic. ;)

<comment><USER26> Ah the timing thing is not actually an issue because you simulate or emulate the entire system, including timers and even the PLLs that drive them. There's a globally consistent timeline. Of course this places constraints on the things you can simulate (e.g. networking is out the window).

</comment></comment></comment></comment><comment><USER27> There was an interesting 2012 interview with John Muratore (SpaceX director of vehicle certification) about radiation tolerant design on SpaceX Dragon: [http://aviationweek.com/blog/dragons-radiation-tolerant- desi...](http://aviationweek.com/blog/dragons-radiation-tolerant-design)

</comment><comment><USER28> On a more trivial note, this reminds me of the radiation-hardened quine: [https://github.com/mame/radiation-hardened- quine](https://github.com/mame/radiation-hardened-quine)

Would be amazing if the method used for implementing it could be generalised somehow.

</comment><comment><USER29> Off the top of my naive head.

Have 3 or 5 or a dozen copies of the thing running in parallel. As many as it takes.

Every action calls for a vote among the copies. Majority rules.

Periodically validate the data. Again, majority determines what's valid.

<comment><USER30> Make sure that the code that does the "ballot" is not a single point of failure itself.

<comment><USER29> oh good point. That makes it more interesting.

</comment></comment></comment><comment><USER31> For ground-based applications, why can't this be solved by building a lead- shieled chassis? Like everything else in the software engineering world, abstract out the radioactivity problem and solve it separately. The other functional units shouldn't have to know or care about whether they are running in a radiactive or non-radioactive environment.

<comment><USER32> There are actually processors designed specifically to prevent issues like this [1]. They use ECC flash, ECC RAM, and dual CPUs that run in lock-step.

1\. [http://www.ti.com/product/rm48l550](http://www.ti.com/product/rm48l550)

</comment></comment><comment><USER33> Coolest SO question I've seen in a while.

</comment><comment><USER34> While not about radiation hardening or redundant hardware, this article shows how StarCraft's developers discovered and handled random hardware failure: [http://www.codeofhonor.com/blog/whose-bug-is-this- anyway](http://www.codeofhonor.com/blog/whose-bug-is-this-anyway)

The bug webpage mentioned in the article is dead, and clicking the link subtly redirects you. Here's the archived version: [http://web.archive.org/web/20140824005145/http://www.guildwa...](http://web.archive.org/web/20140824005145/http://www.guildwars.com/support/en- hardwarefailure.php)

</comment><comment><USER35> isn't this like trying to do numerical analysis while having alzheimer's? if the hardware is bad, your software will be bad.

<comment><USER36> you're pessimistic. the optimist would say 'how much numerical analysis can i do at varying levels of alzheimer?' and responses to the question are very well worth reading.

<comment><USER35> All good, except most of your mitigating code/tricks cannot be tested reliable to know they actually work.

<comment><USER37> Liberal arts types say engineers are not creative, but they're wrong. Find some creative engineers, it won't be much of a challenge.

Write 5 lines of perl that run logical AND and logical OR on a randomly generated bitmap emulating flash memory error rates at 1e-3, 1e-5, 1e-7, then run a billion emulation cycles (depending on code complexity this might take a long time, or maybe not).

If you're doing it right, you have the code for the emulator, never use closed source for this kind of work unless you trust it with your life (LOL) so implement statistical error injection in your emulator. Guess what, your CPU adder now has a 1e-5 bit error rate.

This is before the dreaded "programmer with a soldering iron" is unleashed. A white noise source is attached to pin D0 of the CPU and levels are increased while behavior of the system is analyzed in the test jig.

Simplistically, radiation is linear, so running at 100x intensity for a month is the same as running at design intensity for 100 months. Talk to your local nuclear physicist or radiologist. Especially about neutron activated decay products, LOL. In more detail, if it takes xenon 12 hours to build up to a problem level, you can't just test at 100x intensity for an hour and call it good because 11 hours after the test ends you'll finally have 100x the xenon decay product as a contaminant, but that's a weird situation.

<comment><USER38> One implementation of a single-event-upset testbed that I worked with used the valgrind infrastructure to inject faults in running code, purely in software. (Example: [http://www.sts.tu- harburg.de/research/fitin.html](http://www.sts.tu- harburg.de/research/fitin.html), earlier work: [http://dus.jpl.nasa.gov/projects/solar/Papers/granat-abft- sv...](http://dus.jpl.nasa.gov/projects/solar/Papers/granat-abft-svm-09.pdf))

Your larger point is right: some commenters are giving up on problem analysis or solutions "because the problem is hardware". That implication does not follow. Perhaps people are too used to highly abstracted software systems?

<comment><USER35> I think you guys just misunderstand. The question you should be asking should be "is this this right solution", rather than "can this be done?".

If you want to build robust systems, picking the right solution is paramount. In this case the consensus seems to be to fix it in hardware rather than messing out with software (it takes longer to implement a verifiable solution, harder to test, etc).

<comment><USER38> I wrote to push back against some sweeping claims that are made nearby, such as "if the hardware is bad, your software will be bad." This is simply not true for many values of "bad". Another comment nearby regarding testing also surrendered prematurely.

I worked and published in the area for a few years, so I have a definite POV. I find it appealing that software can, in some cases, make up for the failings of hardware.

The topic area is fascinating. It has some of the intellectual aspects of security research: you can get somewhere by breaking through abstraction barriers in surprising ways.

</comment></comment></comment></comment></comment></comment></comment><comment><USER39> Is it concerning, that I see a question like that on Stack Overflow or am I too pessimistic?

<comment><USER40> I'd personally rather it get asked in a transparent way (like this) vs some programmer making some stupid assumptions in some cube somewhere.

<comment><USER41> I think the implication was "why is it possible for a programmer to make a stupid assumption". In such a critical environment, one would hope there's oversight and understanding of all of this, eliminating the need to ask on SO.

</comment></comment></comment><comment><USER42> I goota say, this is the most fascinating thing I have seen all week.

</comment><comment> awinter-py genetic code has a lot of the same protective mechanisms (multiple copies of genes, for example), and is highly focused on radiation protection.

</comment><comment><USER43> An entirely different approach could be to make it more likely to crash to minimize the harmful effects of executing corrupt code.

I don't know how these corruptions manifest themselves, but if for example a single bit gets flipped every now and then somewhere (probably a naive assumption), a CPU that had a 0b11111111 nop instruction and 8 reset instructions at 0b01111111, 0b10111111, 0b11011111 etc., you could interleave your code with tons of nop instructions to minimize the possibility of executing corrupted code. You'd then be more likely to reset than to execute something that will lead to further corruption.

As for data, I like the idea of storing/reading it redundantly in 3 or 5 places and assume that the majority of a read to all of them (bit by bit) is correct and rewrite the supposedly corrupt data. Again, not sure how well a solution like this actually applies to radiation corruption. You can of course use any existing techniques for data error correction, like Hamming coding (used in for example teletext to correct errors).

<comment><USER44> > _I don 't know how these corruptions manifest themselves, but if for example > a single bit gets flipped every now and then somewhere (probably a naive > assumption), a CPU that had a 0b11111111 nop instruction and 8 reset > instructions at 0b01111111, 0b10111111, 0b11011111 etc., you could > interleave your code with tons of nop instructions to minimize the > possibility of executing corrupted code. You'd then be more likely to reset > than to execute something that will lead to further corruption._

I like this. It's functional, yet wildly impractical.</comment></comment>


30 Years of iRobot - <AUTHOR> https://www.linkedin.com/pulse/build-rover-send-moon-sell-movie-rights-30-years-irobot-colin-angle/ <comment><USER2> >> We built it to match the reliability standards of European upright vacuums, something of which we were very proud. Of course, we didn't anticipate that our customers would run their Roomba once per day, rather than the once per week average the European standard set – and as the first generation of Roomba robots broke down two years ahead of schedule

This is a super interesting insight for when you're building consumer products. When you make something super-easy to do, expect usage to 10x or even 100x. I've seen high-unit economics consumer products build with cost estimates that assume an average user doing task X once a month. If we make it possible to do the task with a free app, even though it costs us $Y to do this, our total monthly cost per user is $Y. These estimates then get blown out the water when users start doing the task 10 times a month.

<comment><USER3> This may just be my personal experience, but my Roomba does a pretty mediocre job vacuuming my house. As a result, I have to run Roomba 3-4x per week the get the equivalent cleanliness of using a traditional vacuum cleaner once per week.

<comment><USER4> A long time ago I gifted my parents one of the early mid-tier Roombas that had beacons that you can place to avoid certain areas. I bought the Roomba plus several sets of beacons.

They were really excited to use it. We put beacons all around the house and then activated the Roomba on the hardwood floor near an obvious pile of dust in the middle of the living room. I figured that would be the Hello World test.

After about 10 minutes of watching it randomly bump into walls, get jammed under the couch, we started to get disappointed. But then it made a direct path towards the dust. We all got excited and then watched it simply go right over the dust without picking up anything. At that point I picked up the unit and kept restarting it over and over until it would pick up the dust.

We tried it on maybe two other occasions and it would just continuously get stuck within a few minutes (usually either between piano legs or under furniture that was raised about the same height as the vacuum). They re-gifted it back to me where it sat unused until I finally gave it away for free. That was well over a decade ago and I now realize that I had unrealistic expectations and possibly didn't give it a fair chance.

Have they improved much since then? My home has lots of hardwood floors throughout and I vacuum daily. Even though there's central vac access everywhere I prefer to use a Miele canister vacuum.

<comment><USER5> > _I now realize that I had unrealistic expectations and possibly didn 't give > it a fair chance._

Sounds like it. We have one basic model. It also seems to stumble around rather randomly, but it doesn't, there is a movement patterns that makes it pass everywhere given enough time. It does not clean much with each pass, but it does not pass once. If you had let it run it would have cleaned the dust eventually.

> _it would just continuously get stuck within a few minutes (usually either > between piano legs or under furniture that was raised about the same height > as the vacuum)_

Mine gets stuck at the feed of an ikea chair. That's annoying and the only solution I have is to turn the chair around or to put it away. It's likely you have to prepare the space a bit before turning it on, but that's still a lot less work and time than doing everything manually.

> _My home has lots of hardwood floors throughout and I vacuum daily._

Definitely buy one and stop wasting your time vacuuming :)

</comment></comment></comment></comment><comment><USER6> I was in the market for a robot vacuum and went with iRobot over Xiamoi/Roborock or Neato, to a big part because of their stance to privacy, but also because of things like they stopping military robots to focus on the consumer markets, embracing 'hackers' with the create robots and their patented dual rubber brush design that's in most of their robots.

The product that I use right now, the i7+ (bought a 960 first and returned it) has been pretty fantastic. It feels like an actual smart automatic cleaning system that takes care of my place and cleans itself with the station that came with it.

Tech wise - other products use Lidar so they can run in the dark and create the map much faster and more accurately than vSlam that my Roomba uses, so that'd be a nice thing to have but I don't really run it in the dark anyway.

The Roomba exceeded my expectations so much that I went and bought their cheapest dumb mopping robot, the Braava 240 and even though it doesn't have smart navigation or maps, it's great. Just fill it up, put it in the corner, press start and it'll mop everywhere.

In total I spent a lot more money than I wanted to spend but my place has never been cleaner. No more cat hair or dust bunnies flying around, no crumbs in my carpet, I sneeze much less, everything gets mopped regularly, and for the roomba all I have to do is change the dust bag in the station once in a while (besides occasional cleaning of parts). If either of them breaks I would without hesitation re-buy them.

I'm excited to see what they'll come up with next, but I also hope they won't get left behind with innovation and tech. The others (esp Roborock) iterate much faster, cost less and pack more features that often get rolled out to their older robots as well (no-go zones for example. iRobot didn't add them to their older camera-based robots like the 960 and kept them for i7 and higher)

<comment><USER7> I have a similar combination, the i7 with a 240, and I also think they're great. I can't even remember life before daily automatic floor cleanings. I think you're right about iRobot's competition iterating more quickly, and I'm also concerned that they might get left behind. Another concern is their pricing. They're clearing trying to establish their robots as the premium models in the market space—ones that "just work"—but the price tags are astronomical. Their two flagship models, which were advertised as working best in tandem, cost nearly $2,000 together when they were first released.

<comment><USER6> Yes -- pricing. Just for reference, the i7+ costs 140.000 yen here in Japan, that's $1300 USD, while the competition costs the same as everywhere else. In the US the same product costs $700 and often has some discounts available. (I just imported mine because I ain't gonna pay that much). It's also currently 'sold out' on their JP online store.

</comment></comment></comment><comment><USER8> I don't own a iRobot but a Neato mainly because of cost. But I really like how iRobot sells the Create series [1].

[1] [https://store.irobot.com/en_US/create-programmable- programma...](https://store.irobot.com/en_US/create-programmable-programmable- robot-irobot-create-2/RC65099.html)

<comment><USER9> Besides the Create, iRobot also left an easily accessible serial port connector on various series of Roombas, and published the interface protocols, and sold a cable, for education/hobby purposes.

A lot of general info about this is collected in the documentation for a particular library that uses it: [https://www.neilvandyke.org/racket/roomba/](https://www.neilvandyke.org/racket/roomba/)

I wrote this library when I found a Roomba 400 in a Goodwill thrift store for $20. When, if living in the future of having your own robot vacuum cleaner was not cool enough, hey, what's this mini-DIN connector for... :)

(Also on the topic of liking iRobot: That same $20 Roomba was also the first time I met an iRobot person. I eventually bought a used 530, and was giving the 400 to a friend. Since I owned robots but not a car, I strapped the Roomba's retail box to my trusty little luggage cart, to meet my friend for lunch. Afterwards, as we're walking along the dirt path along a bank of the Charles River near Harvard Square, rolling the Roomba behind us, this jogger comes running along, and then stops. Turns out she worked for iRobot, was super-nice, and was tickled to see a vintage Roomba in nature.)

<comment><USER10> I tried playing around with the connector but my chip was getting superhot. So I gave up. What hardware component did you use? I might want to try again now. Thanks

<comment><USER9> Level converter chip? FTDI chip? I used various iRobot cables, plus sometimes generic FTDI-based RS232-to-USB adapter. If you're making your own cable, be advised that some of the pinouts are bad. Various cable-related tidbits are at: [https://www.neilvandyke.org/racket/roomba/#%28part._.Cables%...](https://www.neilvandyke.org/racket/roomba/#%28part._.Cables%29)

</comment></comment></comment></comment><comment><USER11> So here's my problem with them: large product line, large variation in features and prices, no idea which is the simplest machine that will clean my living room.

I don't want to buy the most expensive and then keep exchanging down to the simplest one that works.

Seriously, I don't know anyone who has this implemented across most of their house. They get one as a gift or experiment, and maybes it works.

I'd love to have these all over my house doing the work, but I have no idea what that actually requires.

<comment><USER6> Yes I agree, I had EXACTLY the same problem a couple of weeks ago when I decided to get a Roomba.

The website told me "e series", "600 series", "i series", "s series", "900 series" \- then even though they are called "series", most of them have only one product in them.

I wanted something mid-range to get started and the product picker tool they have recommended me the e5 because I have a pet. I went through dozens of reviews to finally learn that it doesn't have a camera and vSlam, so it just slams into everything and doesn't map my place over time.

I went with the next higher model that has a camera, the 960 and it has been doing a good job. As a techie I was a bit disappointed that I picked a model from 2016 and that they kept the smarter features like keep-out zones for the higher ones. Eventually returned it and got an i7 for a similar price and it's a pretty fantastic product, though I ended up paying much more for my experiment than I anticipated...

The product comparison page ([0]) is doing an ok job but I wish they'd make product selection a bit easier.

[0]: [https://www.irobot.com/roomba/compare- products](https://www.irobot.com/roomba/compare-products)

<comment><USER12> When you are faced with tons of badly named products page without any good comparison tool, its sign of internal disorganization and specifically that CEO is memely a fiannce/account guy. In such companies, you will have marketting department which is clueless about products, PR department which is clueless about marketting, sales department which only functions because of personal relationships with few thousand ton gorillas. For reference, check out virtually any computer manufacturer's website except Apple.

</comment></comment></comment><comment><USER13> Strange that the post never mentions iRobot co-founder Rodney Brooks. His academic work on the so-called "subsumption architecture" clearly influenced the Roomba so much.

</comment><comment><USER14> The biggest problem I have with iRobot is that all of the newer models _require_ an internet connection. I understand that some features like remote starting and notifications must depend on an internet connection but in the newer models almost everything depends on that connection, including scheduling. This means that if you don't want to connect your vacuum to the internet you are back to starting it manually whenever you want a clean.

Personally I don't want a robot that depends on WiFi mostly because I don't trust that their backend services will keep running for years as they release 8 newer models and want to clean up their codebase. Security is another issue but since their vacuums don't have cameras putting it on an untrused network mostly solves that problem.

<comment><USER15> The vacuum I have of theirs has a camera, but point taken. You can also disconnect from internet after setting schedule and it seems to work.

</comment></comment><comment><USER16> I would love to have a roomba. However, there is always some toys from the kids or Lego laying around. Is any of the robots smart enough to stay clear of the toys or maybe even gather them in a central place?

<comment><USER17> > stay clear of the toys There is a bumper, if pressed hard enough it moves > another direction. If its big enough it might show up on the laser scanner.

> or maybe even gather them in a central place? No.

The appropriate XKCD for that is maybe [https://xkcd.com/1425/](https://xkcd.com/1425/)

<comment><USER18> This XKCD reminds me of how far we got. Identifying objects on a picture quite easy nowadays. This conversation would be something like: I need 100000 pictures with birds and 100000 without birds.

<comment><USER17> There is a project (which I can't find now) to identify birds just on their birdsong, IIRC. My quick DDG search came back with [https://play.google.com/store/apps/details?id=com.isoperla.b...](https://play.google.com/store/apps/details?id=com.isoperla.birdsongid) but I haven't tried it.

</comment></comment></comment></comment><comment><USER19> We just bought the latest vacuum and mop robots, and they work fairly well. We had bought one 17 years ago and it didn't work well at all. They have made good progress in the control algorithms since.</comment>