How a Ban on Plastic Bags Can Go Wrong - <AUTHOR> http://www.bloombergview.com/articles/2015-08-18/how-a-ban-on-plastic-bags-can-go-wrong <comment><USER2> Klick and Wright have claimed that the San Francisco plastic bag ban leads to an additional 5.5 deaths in the city annually, the mechanism being food-borne diseases growing in unwashed reusable bags [1]. I understand that there have been objections to the research [2], but has it been definitively followed up on?

[1] [http://papers.ssrn.com/sol3/papers.cfm?abstract_id=2196481](http://papers.ssrn.com/sol3/papers.cfm?abstract_id=2196481)

[2] [http://www.sfgate.com/opinion/saunders/article/S-F-s- plastic...](http://www.sfgate.com/opinion/saunders/article/S-F-s-plastic-bag- ban-may-be-unhealthy-4264075.php)

<comment><USER3> My family has been using reusable bags whenever possible for several years now, and they do require frequent cleaning.

Bags collect condensation from cold products, which attracts mold. They collect dirt from raw vegetables and from other surfaces they come into contact with. (Imagine how the seat of your pants would smell if you rode a city bus for a week without washing it. American public surfaces are filthy!) Worst of all, some grocers just can't seem to keep the bottom of milk cartons and other dairy products clean. A hint of stale milk + condensation + fabric + time = a perfect recipe for food poisoning.

One problem is that most reusable bags aren't designed for frequent cleaning. Canvas bags get ragged after only a few cycles of typical washing & drying. Some bags are built much stronger and heavier, but they need to be hand washed and thoroughly air dried. I just can't see getting enough uses out of them to offset their carbon footprint.

<comment><USER4> In Hungary this thing is not uncommon for shopping:

[http://www.kosarhaz.hu/upload/product/44/2001401200004_adxn....](http://www.kosarhaz.hu/upload/product/44/2001401200004_adxn.jpg)

Although mostly the elderly use it. Arguably it's not as practical as a foldable bag and much more expensive too.

<comment><USER5> >it's not as practical as a foldable bag

That's why something like this [1] used to be popular in Poland. And I bet that in Hungary too.

[1] [http://retro.pewex.pl//uimages/services/pewex/i18n/pl_PL/201...](http://retro.pewex.pl//uimages/services/pewex/i18n/pl_PL/201305/1369989549_by_krzys_500.jpg)

[http://4.bp.blogspot.com/-xBJfAPwd83Q/UgZ11_Iw-9I/AAAAAAAACa...](http://4.bp.blogspot.com/-xBJfAPwd83Q/UgZ11_Iw-9I/AAAAAAAACa0/neRQ5ClHLck/s1600/zmniejszone+\(2\).JPG)

<comment><USER4> I have never seen it in Hungary.

</comment></comment></comment></comment></comment><comment><USER6> Strangely, the article omits mention of paper bags, which, in the context of checkout bags, doesn't signal a thorough standard of journalism.

Anyhow, I guess the problem is people are disposing of the re-usable bags too quickly? Well look at Austin's legislation: they're missing the nominal mandatory per-bag fee that San Francisco imposed (10 cents). It's not about the money, it's just how people think: if they must pay for something, they assign it higher value, and are less liable to throw it away [0] [1]

[0] [https://www.washingtonpost.com/news/wonkblog/wp/2014/11/13/t...](https://www.washingtonpost.com/news/wonkblog/wp/2014/11/13/the- surprising-reason-why-those-5-cent-charges-for-plastic-bags-actually-work/)

[1] (HN comments on [0]) [https://news.ycombinator.com/item?id=8602502](https://news.ycombinator.com/item?id=8602502)

<comment><USER7> The article's journalism is pretty pick-and-choose. For example, the author goes through a list of environmental issues that aren't just weight - biodegradability, animal ingestion, lack of recyclability - but when it comes to comparing canvas bags, suddenly the only thing that matters is carbon emissions.

Similarly, it's written as though the policy was a total failure and should be removed. There's no hint that a modification to the policy could possibly make it work just fine: adding a stronger public education commitment.

</comment></comment><comment><USER8> "...This could explain why well-educated, intelligent people, all across the political spectrum, so often make the unspoken assumption that good intentions and well-crafted words are sufficient for making good public policy"

[http://jaltcoh.blogspot.com/2015/04/what-are-we-doing- when-w...](http://jaltcoh.blogspot.com/2015/04/what-are-we-doing-when-we- teach-fiction.html)

</comment><comment><USER9> So living in austin, I can tell you that the source of these "highly durable reusable bags" is the local supermarket, HEB. They charge you $.25 per bag every time you ask for one. $.25 on a single bag isn't a big deal for most shoppers so, generally, I don't see too many people brining their reusable bags back in. The upside to this is that you actually have more people walking out with their groceries in their hands. But I bet that if you were to tell HEB to start using paper bags like everyone else you would see more paper bags in the recycler than plastic. Because I literally have not been to a single other store that sells plastic bags instead of paper ones.

<comment><USER10> I remember when the ban first came about, HEB would make you buy the reusable canvas bags instead of having those heavy duty plastic bags. I don't know why they switched. Like you said, every other store in town will give you recyclable paper bags if you forget to bring your own reusables. Unfortunately, since HEB is the only low cost grocery store in town (besides Super Targets and Walmarts), their decision to give out an alternative plastic bag is hurting the effort of the ban.

</comment></comment><comment><USER11> "That shouldn't deter the scores of other cities in the U.S. and elsewhere considering their own plastic bag bans."

Actually that's exactly what it should do. Austin should also repeal its own ban, at least, in light of the evidence showing that it's ineffective.

<comment><USER12> > Single-use plastic bags pose outsized problems in the form of visual > pollution on the landscape -- South Africans joke that plastic bags are > their "national flower," due to their propensity to hang on branches -- and > damage and delays at high-tech recycling centers. (Reusable bags usually > aren't eligible for recycling, but when they end up at centers by mistake, > they often wrap around and jam moving equipment.) Single-use bags can also > pose health hazards to wildlife and livestock -- during a recent trip to > Dubai, I heard a plastic recycler lament that ranched camels frequently die > from ingesting the plastic bags that are constantly catching flight in the > desert wind -- and even when they do wind up at landfills, they take > centuries to decompose.

If the desirable outcome is to reduce overall usage of plastic bags then banning them is absolutely the right decision.

The evidence shows that people don't value reusable bags highly enough. Which is understandable because stores only charge 10 cents for them (at least in the Bay Area). The solution isn't to repeal the ban: it's to raise the mandated price of reusable bags to something like $5. Tax undesirable behavior and it will go down.

<comment><USER13> There's an argument to be made that trying to tax undesirable behaviors is a form of corruption.

If you want to change other peoples behavior I have trouble supporting something that unfairly penalizes the poor.

<comment><USER12> > There's an argument to be made that trying to tax undesirable behaviors is a > form of corruption.

Yes there certainly can. I won't make it though; I like looking at a plastic- free environment myself.

> If you want to change other peoples behavior I have trouble supporting > something that unfairly penalizes the poor.

How exactly does a plastic bag ban unfairly penalize the poor?

I could make the argument that by reducing city trash and recycling costs, street sweeping costs and the store's costs in providing the bags, the poor actually benefit overall. Not to mention it's poor neighborhoods, which typically have more littering, that potentially stand to benefit more from less waste. Rich neighborhoods can afford to pay for street cleaning out of pocket if the city doesn't come through; poor ones can't.

EDIT: When you get to the bottom of it, plastic bags impose a negative externality on taxpayers (in the form of higher city trash costs), businesses (more littering makes the city less visually appealing) and animals (which get trapped in plastic bags). People are free to use plastic bags, but there should be a cost associated with all the negative consequences of this behavior to everyone else.

<comment><USER14> Raising the mandated minimum price of a reusable bag to $5 is what I presume click170 was saying penalized the poor.

<comment><USER12> I meant the mandated minimum price of a reusable bag _at the counter_ should be $5 (a number I pulled out of the air, with little thought). You do realize though, that it's otherwise possible to buy a reusable bag for less than $5 right? (Amazon shows me a pack of 10 for $12, or $1.20/bag).

Even most grocery stores sell reusable bags for $1-2 apiece; so in the overwhelming majority of scenarios people would be paying more than 10 cents but less than the punitive $5. And by consciously buying a bag (instead of just saying "Yeah, I'll pay 10 cents for a bag" at the counter), people might be less likely to throw it out.

<comment><USER14> And yet, people will occasionally get "caught out" at a grocery store needing to buy something without having their bag supply with them.

When that happens to me and you whack me for $5, I grimace a little, but basically don't care and my kids don't go hungry. If you whack someone for $5 who is poor and buying groceries with an EBT card, they're putting a gallon of milk back on the shelf to afford the bag. Or, they could ride the bus home, get their bags, ride the bus back, buy their stuff, and avoid the $4 fine ($1 for the bag and $4 for the convenience fine) at the cost of maybe an hour of their limited free time.

That's how it hurts the poor. That you or I could buy 10 bags for $12 and keep them in the trunk of our car so we always have them doesn't help the carless.

You asked how exactly it hurt the poor and I answered that question. I didn't come here spoiling for a fight over the issue.

</comment></comment></comment></comment></comment></comment></comment><comment><USER15> Feels like a PR piece to me.

Obvious alternative for plastic is Kraft paper, although I'm sure the retailers would be concerned about the "carbon footprint" \-- just like when Sam's Club was making a case that polystyrene cups had a lower impact than alternatives due to truck fuel consumption.

The other big costs are damage to wildlife and infrastructure. A family friend is a sewer foreman. He has a crew of 3 guys that roam around our little city clearing drains, sewage pumps and other sewer infrastructure. Anywhere from 40-60% of the clogs are caused by shopping bags. That's a lot of $$, borne by the taxpayer.

</comment><comment><USER16> Here in Scotland, and also nearby in Ireland, we have a plastic bag charge (around 5p). Immediately after it was introduced, I started taking far less bags. If it was just two small things, I'd carry them by hand. I'd usually bring my backpack and put things in there. Only rarely would I buy a bag (usually when I forgot the backpack).

Net result: I've chucked out far less plastic bags.

<comment><USER17> Ireland (ROI) is a bit different as most shops have completely got rid of the thin bags, meaning you have to buy the thicker reusable bags. I was living there just after they introduced the ban and hardly ever rembered to take the reusable bags (I usually got shopping on the way home from work), so had to buy a new one each time. The only thing I used the reusable bags for was storing other reusable bags at home...

I prefer that in the UK you can still get them but you have to pay a small fee. The thinner bags can be reused in rubbish bins etc and easily stored in your coat pocket.

<comment><USER18> > I prefer that in the UK you can still get them but you have to pay a small > fee

Which is a nice earner for some supermarkets.

For example Sainsbury levy a bag fee on orders delivered to your home, even though the groceries come in crates which you hand back to the driver. It's only 40 pence or thereabouts but cumulatively must be considerable.

This annoyed my wife considerably as she always specifies "no bags". When she complained to Sainsbury they said that this was an averaged fee as their system couldn't charge specific customers for the bags they received.

So she switched to their rivals Tesco who only charge a fee if you request bags.

<comment><USER19> The 40p is donated to local charities - [http://help.sainsburys.co.uk/help/company-values/carrier- bag...](http://help.sainsburys.co.uk/help/company-values/carrier-bags- scotland)

</comment></comment></comment></comment><comment><USER20> Mumbai banned plastic bags and ruled that shops levy a 3 rupee surcharge if you wanted a plastic bag. For comparison a cup of tea on the street is 7 rupees. Mumbai during the monsoon season faces 3 months of torrential downpour, and the plastic bags would clog up public drainage systems and was one of the main causes of small scale urban flooding. Post-banning the plastic bags, things have changed for the better - significantly so.

Edit: added reference below.

There are many articles around this and one of them is: [https://books.google.co.in/books?id=KyRzAwAAQBAJ&pg=PA571&lp...](https://books.google.co.in/books?id=KyRzAwAAQBAJ&pg=PA571&lpg=PA571&dq=plastic+bags+monsoon+mumbai&source=bl&ots=e8MQDtbulh&sig=UuP8LAlp-9ITWXagZweZglz8LDU&hl=en&sa=X&ved=0CDQQ6AEwBWoVChMImeO9_ZnDxwIVClmSCh1h2wD_#v=onepage&q=plastic%20bags%20monsoon%20mumbai&f=false)

<comment><USER21> Were plastic bags really the problem in Mumbai? To me, issues like clogging the drainage system felt like the obvious consequence from so many people throwing their garbage out into the street.

</comment></comment><comment><USER22> They just recently banned the bags here in Chicago. I was disappointed that when I went to the store today they gave me a thicker plastic bag with "re- usable" printed on it.

It seems like an idiotic misinterpretation of the entire point of banning bags. What kind of BS political spin-job have we gotten ourselves into?

<comment><USER23> I guess it means that the particular bag can be used more than once, a handful of times perhaps, before being thrown out. Not all reusable bags mean perpetual reuse, some just mean more than once.

<comment><USER22> I definitely understand that this bag _can_ be reused. I thought the point of banning bags was so people would bring their own bag, perhaps have to pay a bag tax or whatever.

I don't see how these bags made it better at all - in fact it's much worse. The bags will be used (or discarded) exactly the same as the cheaper ones - it's just wasting 3x the amount of plastic.

It just seems like a policy designed to reduce trash was twisted in it's interpretation and will actually generate way more trash. It's absurd!

</comment></comment></comment><comment><USER24> They recently implemented a similar ban in Chicago. Now stores just give out thick "reusable" plastic bags. The whole thing has been an all around failure: it's strictly worse for the environment and consumers indirectly pay for more expensive bags

<comment><USER25> It's not a failure if you make plastic bags or you're a retailer.

Do they charge you for a bag in Chicago?

</comment></comment><comment><USER26> I go to a thai place in SF that skirts the ban by using the heavy "reusable" bags as disposable ones. There's no difference between these and actual disposable bags other than that they are thicker. They're still small and worthless to reuse. And there's no chance to ask not to get one.

The problem in my eyes isn't how people use them, it's that the businesses hand them out in place of disposable bags as if they were substitutes. If we can't ban them from doing that, then can't we let the plastic bag surcharge be for the smaller less impactful ones and have the bag fee pay off carbon credits or something.

<comment><USER27> It's as if one can't legislate away every problem.

</comment></comment><comment><USER28> Another issue that nobody talks about: how to pick up dog poop without plastic bags.

<comment><USER29> Well, you don't (hopefully) need a shopping-bag size plastic bag for dog poop.

For dog poo, I buy dedicated poo bags which cost a few cents each and are biodegradable (and blackened, so you don't need to admire the content as with clear bags).

Over here (Finland), the shopping bags we use cost 20 cents each. That is not a tax, but money that the shops collect to their pockets and have thus conveniently avoided any specific plastic bag tax.

The grocery shopping plastic bags are typically something like 15-20 litres in volume and can carry perhaps 10 kg of groceries if you're careful. After carrying home, people often use them for household waste, and then they go with the contained waste to landfill or nowadays incineration.

Small, thin bags are free (for instance for packing vegetables) but they are useless for carrying anything in the sense of a shopping bag; they're just there for cleanly keeping different items apart within a shopping bag.

Myself, I often use a small blue IKEA bag for groceries (when kids were teenagers, we bought so much stuff that we actually used a large IKEA bag which might weigh perhaps 30 kg for a week's main shopping round...).

Or a rucksack or a bike bag if I go to shop on the bike. However, if I don't have one with me, I'm quite happy to get a thinner single-use bag instead of having to buy yet another more robust bag (of which we have many).

Plastic bags are around 0,2 % of household waste; not very much, but I prefer to avoid even that if possible.

Fortunately our local Greens finally suffered a complete defeat and we now have a waste incineration system instead of an ideological system of much talk about recycling and a landfill (even if the amount of waste we produce is generally lower than in the US; in most of Europe the figure is somewhere around 1 kg per person per day; in California it is 2 kg per person per day).

Making a plastic bag takes about 40 % less energy than making a paper bag, BTW.

</comment></comment><comment><USER30> I don't have strong feelings about a plastic bag ban, but the one thing that sort of surprised me after living in San Francisco the last few years is that I take far fewer plastic bags when I have a small number of items. I'll just opt to carry the few items in my hands instead. It's gotten to the point where every time I travel somewhere without a bag ban it just feels weird to get them for free.

Like I said, not something I have strong feelings about either way, but thought it was interesting that it did change my usage habits.

</comment><comment><USER31> We used to reuse our plastic bags for dog poop bags, for packing lunches, etc. Now we just have to buy plastic dog bags, etc. And then there's the annoying thing when I go to buy something small at the store and they have to put it in a large paper bag.

Also, our reusable bags, especially the ones for lunch get really gross, really easy. And there's no way I'm getting 130 uses out of it (see article link)

<comment><USER32> Eventually the paper bag makers will catch up and you'll see all the bag sizes I grew up with. There were large bag ("garbage bag" size), and a smaller version of that, a shorter version of that smaller version, a lunch bag size, and a penny candy bag (about a cup and half in volume).

I reuse all the plastic bags I get from the market until their shreds. There's a woodturner who lives on my street that recycles his plastic bags and the bottle caps from pop bottles into chisel mallets and pen turning blanks.

Paper is a step back, IMHO, but the plastic bags have to go. Too many people today litter and the things are blowing all over the place.

</comment></comment><comment><USER33> I live in a place that will never ban plastic bags and residents often fly giant flags from posts on their pickup trucks further reducing their fuel efficiency.

But it seems this is a sort of social game designed to trick people into doing the "right thing". Would it not be a better solution to mandate use of plant- based biodegradable bags or just regular old paper bags like in the good old days?

</comment><comment><USER34> Last para is sweet -- "Austin deserves to be commended for its candid assessment of what its plastic bag ban has actually accomplished ... it should encourage a more thorough and realistic assessment of what such a ban can actually accomplish"

Just as every other task, as long as the administrators are ready to monitor and calibrate their approach to environmental policies, good intentions matters!

</comment><comment><USER35> Can any one comment if paper bags (with handles) are batter, worse, or about the same, for the environment?

Also, single use bags do not have to be single use. I collect them and use them to collect my trash, pick up after my dog, and cover up food in the fridge. Do people really just come home and toss those plastic bags away? Just curious.

<comment><USER36> I'm not an expert, but they are obviously better. Paper decomposes fairly quickly (in comparison to plastic), and most paper products are made from paper tree farms, not hardwood forests. In addition, some of the paper used to make the brown paper grocery bags usually comes from recycled paper, not wood. Tree farms plant fast-growing trees, and then replant continuously, so the net effect on the environment of using paper is actually very low. Ultimately, the net impact of paper bags is the extra CO2 involved in transporting the bags around during shipment from manufacturing, recycling, and to their destinations, at grocery chains. This seems low compared to the footprint of plastic, which is made from oil products.

<comment><USER35> So, the cities that ban one time use bags, why not just legislate the use of paper bags. I mean, it's a win win, for the consumer and the environment. I know that reusing bags will always be preferable, but if it's not working because people keep buying the reusable bags and not reusing them, wouldn't it be easier to just use paper bags.

<comment><USER37> > So, the cities that ban one time use bags, why not just legislate the use of > paper bags.

At least the California ban that the plastic bag industry delayed for a referendum kinda-sorta did this (as to many of the local bans in California).

They _ban_ single-use, no-fee bags.

They _ban_ single-use, plastic bags, regardless of fee, for certain uses by certain retailers.

They _permit_ single-use, paper bags with a minimum fee, for similar certain uses by the same certain retailers.

They _permit_ reusable plastic, canvas, or other bags, with specified durability requirements, with a minimum fee when sold by the entities covered by the ban on single-use plastic and/or no-fee bags.

</comment></comment></comment></comment><comment><USER38> Boulder stores charge a few cents for bags, but give you the choice to keep or donate an equivalent credit when you bring your own. The system seems effective to me.

</comment><comment><USER39> We used to use free plastic shopping bags as trash can liners. Now we buy boxes of plastic bags as liners. Net savings of bags = 0.

</comment><comment><USER40> Australian supermarkets have recycling bins specifically for single-use plastic bags. Don't the U.S. supermarkets have them?

<comment><USER39> Yes many of them do.</comment></comment>


West Virginia Poised to Become First State to Allow Political Gambling - <AUTHOR> https://www.bloomberg.com/news/articles/2020-04-08/is-gambling-on-politics-legal-in-west-virginia-it-may-be-soon <comment><USER2> Does this mean that [https://www.predictit.org/](https://www.predictit.org/) isn't authorized to operate in any state?

<comment><USER3> Their website seems to indicate that so long as you are a student, faculty or staff a a participating university and you don't invest more than $850 then the federal government won't come after you.

> Provider has received a no-action-letter from the Division of Market > Oversight of the Commodity Futures Trading Commission. Without explicitly > asserting jurisdiction over Provider or any of its submarkets, this letter, > dated October 29, 2014, extended no-action relief to Provider's Political > and Economic Indicator Markets (the latter limited to students, faculty and > staff of participating universities). The letters are available at the CFTC > website as part of their Freedom of Information Act documents. Pursuant to > this letter, there is "a limit of 5000 total traders in any particular > contract", and "a limit on investment by any single participant in any > particular contract [of] $850".

[https://www.predictit.org/terms-and- conditions](https://www.predictit.org/terms-and-conditions)</comment></comment>


A computer you'll fall in love with - <AUTHOR> https://blog.vararu.org/computer/ <comment><USER2> My macbook pro running the latest MacOS does this mostly out of the box, or can be configured to do so. It is loud though -- suffering from the too-much- thermal-paste bug of 2013.</comment>


Who Discovered Why the Challenger Exploded? - <AUTHOR> https://emptysqua.re/blog/who-broke-the-challenger-investigation/ <comment><USER2> > But it wasn't Feynman's discovery. It was Sally Ride's.

This statement is contradicted later in the article.

> She figured she could trust me to give me that piece of paper and not > implicate her or the people at NASA who gave it to her, because they could > all get fired.

If someone at NASA gave it to her, Sally Ride clearly did not discover it.</comment>


Animal behaviour: Inside the cunning, caring and greedy minds of fish - <AUTHOR> http://www.nature.com/news/animal-behaviour-inside-the-cunning-caring-and-greedy-minds-of-fish-1.17614

<comment><USER2> This is not just about fish. It's research that challenges a lot of established beliefs about what sets primates apart. Not just observation, but testing. Great article, really interesting.

</comment><comment><USER3> I don't understand the suggestion that cooperation and complex social systems are the province of primates. Haven't they heard of dogs, cats, pigs, deer, or the countless other animals that hunt or defend themselves cooperatively, and which have complex hierarchies in group behavior?

</comment><comment><USER4> This is really mind blowing.

</comment><comment><USER5> This type of thing is why I have been saying for a few years that AGI researchers should really be trying to emulate the true capabilities of simple animals first rather than humans.

<comment><USER6> That's how OpenCog is designed to work, isn't it? Boot up primitive intelligences that learn over time by themselves.</comment></comment>


ELON MUSK: Killer Robots Will Be Here Within Five Years - <AUTHOR> http://www.businessinsider.in/ELON-MUSK-Killer-Robots-Will-Be-Here-Within-Five-Years/articleshow/45177105.cms

<comment><USER2> finally something that beats nuclear weapons</comment>


Samsung Announces Key-Value SSD Prototype - <AUTHOR> https://www.anandtech.com/show/14839/samsung-announces-standardscompliant-keyvalue-ssd-prototype <comment><USER2> IBM mainframes had key-indexed hard disks back in the 1960s – CKD (and later ECKD). Each disk sector could have a key field at the start, and rather than addressing disk sectors by physical location, you could tell the hard disk "give me the data of sector with key 1234", and it would go search for that sector and return it to you. (I think, you still had to tell it what disk track to search on, and it just did a sequential scan of the disk track...)

A lot more primitive than this, of course, but funny how old ideas eventually become new again.

<comment><USER3> It's also interesting that nobody implements CKD on storage devices. This complexity runs on a massive POWER AIX box in IBM's storage systems, or in a similar commodity powerhouse running UNIX or an RTOS in similar arrays of the past couple decades.

You have a comparatively weak CPU (think ARM Cortex M series) on an SSD and drive companies have been notoriously bad at firmware development.

Frankly, I don't trust Samsung to implement a file system. I prefer to not even use their enterprise flash based on past trauma, but those are usually harder fails than the subtle fuckups they can pull off in an opaque FS.

<comment><USER4> You already are using a translation layer in the SSD, most SSDs have wear levelling, error correction, compression, etc. What your OS things it's writing to disk is very different to what ends up stored in the flash chips. I think your are fighting yesterday's war.

<comment><USER5> That is exactly the reason I am using ZFS for important data -- one should not really trust the storage devices to be fully reliable.

Is is a real pity that so few filesystems systems have integrated data checksumming -- I'd love to use something other than ZFS for this.

</comment></comment></comment></comment><comment><USER6> This continues the trend we see in processors, that in a post-Moore's law environment, rather than trying to push physical limits for performance improvements, we're branching out into hardware optimized for specific purposes. Very neat to see it on the storage side, and something I don't think anyone could fathom back in the spinning disk days.

<comment><USER7> I think it's happening somewhat in the software space, where we pursue speed improvements by penetrating through sometimes literally decades of accumulated cruft layers to build something more modern. It is ironically harder precisely because it's easier; we've got a lot more software layers because it's so much easier to add another one. Wayland is probably one big example of it, but I often have this feeling in my Go code, too, where instead of a framework on top of a framework on top of a very framework-y core language like Python, we more-or-less just get on with it, both at the level of the code I type, and in the generated assembler as well. I imagine Rust programming feels much the same way when working with Rust-native libraries, I just don't have direct experience.

It's not all Electron apps out there.

Also, when I call something "accumulated cruft", it's not just vague "bloat" concerns I'm referring to; you have the problems of several layers of leaky abstractions, and those leaky abstractions may well date from an era of radically different hardware. It's true this can cause "bloat", but it causes other problems, too.

<comment><USER8> QUIC/Http3 could be another software example of this.

There is too much cruft in the TCP/IP + HTTP stacks, so the solution is to implement a new protocol on top of the lowest abstraction that can be practically used (IP+UDP) in user space; at least until kernels implement it.

I will delegate judging if this is a good idea to more knowledgeable parties though.

<comment><USER6> Isn't QUIC/HTTP3 the opposite? It's moving up the layers of abstraction, by moving something that would previously have been managed at layer 4 up to a higher layer.

Running everything that used to be done in the network layer up to the application layer and putting everything on top of HTTPS is the opposite of what the parent is advocating for.

<comment><USER7> If we consider it relative to HTTP1 just to heighten the contrast, it takes the layers of: TCP connection management and negotiation, plain text framing protocols, protocols too limited to deal with the greatly-increased use of or need for multiple streams at once, SSL layering its own negotiation in, rather hacky stories around websockets/SSE (which are usually used as text protocols framed inside of text protocols framed inside of text protocols... not really the best setup), and probably a couple of other things. All of these things were designed for a different era at the very least, and often designed independent of each other. HTTP3 slices through the whole thing and creates nearly an entire protocol stack for its needs, using only the minimum it needs from IP to work over the internet at all.

My software engineering instincts tell me this is all a bad idea and those layers should be kept separate as they were, if indeed they weren't already intermingled more than they should be (e.g., SSL & SNI; "why should SSL have to know anything at all about how HTTP deals with host names?" say my instincts). However, I intellectually realize that my software engineering instincts are not calibrated for the size of the HTTP world, nor the amount of resources that can be thrown at this problem. It's a great example of slicing through many layers that make sense independently, but just never _quite_ went together properly, to make something that's going to perform better without 30 years of mismatching layers stacked on top of each other.

(I'm not saying HTTP3 is perfect, only that it is a good example of someone at least _trying_ to do what I was talking about.)

</comment></comment></comment></comment></comment><comment><USER9> Maybe slightly off-topic but I've always struggled to understand the appeal of key-value stores like Redis and DynamoDB. I tried using it once as a substitute for shared memory in an embedded device, but you lose a lot of information (like type) and it seems like you can't represent or query complex data structures like nested structs without serializing it out to some data format first and then storing _that_ in in the store (but at that point it's starting to get slow/complex and you can't easily examine what's in the database and so it's easier to keep using shared memory).

But clearly I'm missing something because everybody loves them and uses them. Is this a technology I would only use when building websites at scale or something?

<comment> oh-4-fucks-sake I was in your camp for a long time until it clicked while attending an AWS summit presentation by the head DynamoDB evangelist/wizard Rick Houlihan.

He said (paraphrasing) "a lot of people repeat this mantra that DynamoDB (and by extension, NoSQL in general) is flexible--which couldn't be further than the truth--it's not flexible, but it's extremely efficient."

He went on to elaborate that relational DBs are not going away, and if 1) your data will never be huge and 2) you just can't predict the query patterns in the future of your app--a relational DB is still the way to go.

However, if your data is both huge _and_ you can spend the up-front careful planning of the queries you'll need to support _and_ can afford the risk of future migration efforts that could be needed if your query needs outgrow your model--then DynamoDB is a slam dunk.

If you fall into that category, then you'll need to spend the time learning the "advanced patterns" of DynamoDB which include key overloading, adjacency- list pattern, materialized graph pattern, and hierarchical key pattern--and then compose those patterns into a custom "schema" (in the parlance of relational DBs).

I'm building an app right now and it took me about 30 hours to collectively enumerate the 40-odd queries I'll need to support and the 10 iterations of overhauls of my design. But boy, was it worth it, because the DB is going to easily be the cheapest m'fu __ __* component of my app. Compare that to (taking an extreme alternative) paying for something like MS SQL server which is colossal money sink. Even compared to open-source like Postgres, my setup here will be probably < 1/10th the cost and if, for whatever reason, I see a drop in traffic or I need to shut down for a period, my DB isn't metering for compute--only storage.

In a drawn-out answer to your question of "would (I) only use (this) when building websites at scale or something?" the answer is generally "yep, probably".

<comment><USER10> Finely put!

</comment></comment></comment><comment><USER11> Would be interesting if this evolves into a full filesystem implementation in hardware (they talk about Object Drive but aren't focused on that yet). Some interesting future possibilities:

\- A cross-platform filesystem that you could read/write from Windows, macOS, Linux, iOS, Android etc. Imagine having a single disk that could boot any computer operating system without having to manage partitions and boot records!

\- Significantly improved filesystem performance as it's implemented in hardware.

\- Better guarantees of write flushing (as SSD can include RAM + tiny battery) that translate into higher level filesystem objects. You could say, writeFile(key, data, flush_full, completion) and receive a callback when the file is on disk. All independent of the OS or kernel version you're running on.

\- Native async support is a huge win

Already the performance is looking insane. Would love to get away from the OS dictating filesystem choice and performance.

<comment><USER12> _A cross-platform filesystem that you could read /write from Windows, macOS, Linux, iOS, Android_

I wonder if that is possible to implement right now... It's simple to adapt something like a raspberry pi to become a usb device, pluggable into another computer. It could emulate a USB drive, but depending upon the host computer's OS, it could present the raw drive data as a different file system, fat/ntfs/ext4/whatever, and translate the host's reads and writes back into the appropriate reads and writes of an internal 'universal' filesystem.

You'd have to make compromises to cope with FS-specific features (like how to translate users/groups onto a more basic FAT representation of the storage, etc) but in principle it could work.

...except I'm not sure if a usb device can detect the OS of the system it is plugged into?

<comment><USER13> I think that's partly what MTP was supposed to be, without the os detection - a way to present the files to a host OS without needing to expose the underlying FS

</comment></comment></comment><comment><USER14> This is huge. It's been obvious for a long time that the standard block-device abstraction isn't a great fit for SSDs. This development finally gives us a better abstraction that will immensely improve performance of a wide variety of applications (possibly even SQL databases).

<comment><USER15> Why isn't a block device a good fit for an SSD?

<comment><USER16> NAND flash has _two_ inherent sizes: pages and erase blocks. NAND flash pages are several times larger than the 4kB virtual memory pages that your OS prefers to deal with, and erase blocks are a few orders of magnitude larger than that. There's a lot of complexity involved in making it possible to do 512-byte or 4kB IO to NAND flash.

<comment><USER15> Block sizes can often be set to at least 65KB, does this not help the problem?

<comment><USER16> It helps a bit, but keep in mind that just because your filesystem is doing most of its allocation in 64kB chunks, doesn't mean it is issuing only 64kB IOs to the drive itself.

<comment><USER17> Additionally it doesn't mean that your 64KB chunks aligned to your current partition are also aligned with the 64KB boundary of the underlying block device.

</comment></comment></comment></comment></comment></comment><comment><USER18> Interesting. I remember a short period where Seagate was really hyping their own ethernet connected key/value hard drives back in 2015[1]. It seems like that project died and this appears to be a completely different API (and not ethernet based).

[1]: [https://www.theregister.co.uk/2015/08/17/seagate_kinect_open...](https://www.theregister.co.uk/2015/08/17/seagate_kinect_open_thing/)

<comment><USER19> Network attached HDDs were killed by ethernet. In their infinite wisdom, ethernet decided there was no need for speeds between 1GbE and 10GbE. They finally caved to reality with 40GbE, 25GbE, and 50GbE. They eventually ratified 2.5GbE, but it was too late for network drives.

The transfer rate of an HDD is well over 1Gbps.

<comment><USER20> > In their infinite wisdom, ethernet decided there was no need for speeds > between 1GbE and 10GbE. They finally caved to reality with 40GbE, 25GbE, and > 50GbE.

I'm not sure that's accurate. There were no intermediate steps to get to 10GbE, it was a straight jump from 1GbE and it was relatively easy.

To get to 40GbE, it involved running four lanes of 10GbE. To get to 100GbE, it involved running four lanes of 25GbE. 50GbE is just two lanes of 25GbE.

We've gone from a single serialised stream to multiple parallel streams in order to reach next order speeds. This is magnified when you start looking at 400GbE and 800GbE services that operate on 8 lanes (QSFP-DD or the confusingly named OSFP).

<comment><USER21> 10gbit networking gear is massively more expensive than 1gbit

<comment> amiga-workbench Its finally beginning to fall in price, Microtik are doing relatively inexpensive routers with 10gig SFP ports.

<comment><USER19> If I were going to sell a network attached spinning disk at scale, then I would probably target 2.5GBASE-T. The problem there is that no routers support it.

</comment></comment></comment></comment></comment></comment><comment><USER22> I don't understand the comments saying that this obsoletes databases, or that this is a good substrate for relational databases.

The interface is for random access. Quite a few database optimizations depend on sequential access, I.e. accessing records in key order following a random access. This is why B-trees are so important. Sequential access in key order does not appear to be a possibility with this technology.

<comment><USER8> > The interface is for random access.

I'm not sure where you are getting this idea. How keys are organized would be up to the device, and devices could support multiple schemes. Clustering keys in a sorted order and fast in-order iteration seems like an essential requirement.

Just scanning over the specification [1], I see an iterator interface for key groups (6.4) and a setting for ordering (5.4.3)

Edit: just to clarify, I agree that this would in no way obsolete databases. But software DBs could utilize key/value disks internally.

[1] [https://www.snia.org/sites/default/files/technical_work/KVSA...](https://www.snia.org/sites/default/files/technical_work/KVSAPI/Key%20Value%20Storage%20API%20v1.0.pdf)

<comment><USER23> See slide 43 here [https://www.snia.org/sites/default/files/SDC/2017/presentati...](https://www.snia.org/sites/default/files/SDC/2017/presentations/Object_ObjectDriveStorage/Ki_Yang_Seok_Key_Value_SSD_Explained_Concept_Device_System_and_Standard.pdf)

<comment><USER8> Very interesting presentation.

Slide 43 is for write performance though. RocksDB does a lot of clever things with writes, like delayed and batched flushing with a WAL for recovery. Would be interesting how that benchmark was written.

Other slides with read benchmarks show very significant performance improvements.

But comparing directly to a software DB seems inappropriate to me anyway. We can't expect (and definitely wouldn't want) a hard disk to offer something as complex as RocksDB/LLDB/etc.

I would rather imagine that the software DBs start taking advantage of key/value disks internally.

</comment></comment></comment></comment><comment><USER24> These have been built many times, and I have even been involved in the design of one (that was ultimately scrapped). The value proposition of these products is not what many people seem to be assuming, so I will elaborate. Under the hood, most implementations are just mildly modified LevelDB/RocksDB/etc running on an ARM processor.

In theory, there should be no performance advantages to embedding the storage engine this way. But there is -- back to that in a moment. Not only will a properly optimized storage engine run just as fast on the CPU but there are performance advantages to doing so for applications like databases. If you are designing a state-of-the-art storage engine for complex and high-performance storage work, these devices are not for you, you can always do better with bare storage.

The key phrase is "properly optimized". The I/O scheduling and management underlying a typical popular KV storage engine is actually quite far from properly optimized for modern storage hardware, with significantly adverse consequences for performance and durability. The extent to which this is true is significantly underestimated by many developers. From the perspective of the storage manufacturers, more and more theoretical performance of their product is being wasted because the most popular open source storage engines are incapable of taking advantage of it as a matter of architecture. The kind of architectural surgery required to address this is correctly seen as something you can't upstream to the main open source code base.

The software in these devices is typically an open source storage engine where they ripped out the I/O scheduler, storage management, and whatnot, replacing it with one properly optimized to take advantage of the hardware. This could be done in software but storage companies aren't in that business. Their hope is that people will use these devices instead of LevelDB etc, with the promise of superior performance that justifies higher cost.

In practice, these devices never seem to do well in the market. People that are using the KV stores these are intended to replace are the kind of people that do not have particularly performance-sensitive applications, and therefore won't pay a premium. And it adds no value, and has some significant disadvantages, for companies with serious storage engine implementation chops or software storage-engines that _are_ well-optimized for this kind of hardware.

tl;dr: These are like in-memory databases. A simple way to improve the performance of applications instead of investing in hardcore software design and implementation but providing no other value.

<comment><USER25> > The kind of architectural surgery required to address this is correctly seen > as something you can't upstream to the main open source code base.

Why is this?

</comment></comment><comment><USER26> What's the advantage of this over a simple hardware interface (which should be really simple since I thought NVMe was basically just a PCIe node) that directly exposes the flash and then let the application/filesystem/whatever layer handle it?

<comment><USER27> Nobody wants to deal with raw flash. It's awful.

The error rate of raw flash is incredibly high -- it takes loads of error correction to make it reliable, especially with modern MLC and QLC memories -- and the structure of flash erase blocks means that it doesn't support random- access writes. A proper flash translation layer, implemented in hardware, means that software can forget about all the strange features of flash and use it as general-purpose block storage.

<comment><USER26> I know how flash works. Linux, for example, supports all the "weirdness" of flash with an MTD module which is low-resource enough for single-core sub 1GHz routers with 16MB and 32MB of RAM to handle. I don't see how that is a burden to a 32-core or higher amd64 architecture CPU in a database server whatsoever.

And SSDs already abstract that without adding a key-value store on top of it.

<comment><USER4> I don't think my router's 16MB of flash are optimised for performance. Additionally, i will need an implementation for windows, an implementation for Linux, one for openBSD. Then there are many different kinds of flash memory on the market, do you really want to debug why your OS is loosing data with a new SSD that uses some weird flash memory?

</comment></comment></comment></comment><comment><USER28> Can someone tell me what the use case for this would be?

<comment><USER29> You can see for yourself in the third paragraph. Streamlines key-value storage and might replace database backends.

<comment><USER30> Why is this worth paying a premium for, though? Maybe a SQL SSD could get some adoption, but a simple KV store? How would that ever be a bottleneck (they are relatively easy to make blazing fast, unlike SQL) in your application? How many people/corporations actually want something like this?

<comment><USER31> > How would that ever be a bottleneck

Disk I/O is always the bottleneck.

<comment><USER32> Disk IO is far from the only bottleneck, or necessarily even the most common one.

Source: My day job has been as a DBA for ~15 years.

</comment></comment></comment></comment></comment><comment><USER33> This is a cool idea, and I'm excited to see what kind of perf wins it produces. It seems like the other solution would be to expose all the details of the SSD to the OS: wear leveling, GC etc, and make that a driver concern. Probably a lot harder to get right, but more debuggable and more opportunities to tune for your specific workload.

<comment><USER16> That's what the Open Channel SSD concept is. It's been getting a lot of attention in the past few years, but it seems like many potential users still balk at the idea of having that thin of an abstraction layer. The open-channel stuff has been influencing the addition of other new features to the NVMe protocol that expose most of the information an open-channel SSD would, but don't break compatibility by requiring the host to use that information.

Several vendors are also supporting the Zoned Storage concept of making SSDs that have similar IO constraints to shingled magnetic recording (SMR) hard drives. Those constraints aren't a perfect match for the true characteristics of NAND flash memory, but it does handle the problem of large erase blocks.

</comment></comment><comment><USER34> I understand how it can achieve better performance by bypassing the file system.

But I'd like to compare this to hypothetical key-value software that stores its data directly on a partition (instead of in files). Isn't this essentially the same thing? The only difference that I can see is that the software would be much harder to update, and you can offload some CPU on to the processor on the drive.

Am I looking at this correctly? I don't get why you would want this to be a hardware device.

</comment><comment><USER35> As someone on the periphery of comp-sci my whole life, I find myself wondering, is this similar in concept to content-addressable memory?

<comment><USER36> No, because we are addressing it by key.

</comment></comment><comment><USER37> How is this exposed to userspace? What interface?

<comment><USER38> It is accessible directly to applications through the SNIA KVS API (and Samsung has it's own API as well). There is no filesystem in the middle, if you are using the KV-controller.

</comment></comment><comment><USER39> On the one hand I think this is very cool. On the other, I think it's funny that Redis can fit in my RAM and not on my SSD.

</comment><comment><USER40> So now we will have yet another computer IN THE SSD too? Is this a good idea? [https://boingboing.net/2018/11/12/cpus-in-your- cpus.html](https://boingboing.net/2018/11/12/cpus-in-your-cpus.html)

<comment><USER16> The most active area of R&D in the storage industry at the moment is stuff falling under the umbrella term "computational storage". Everyone is looking into ways to make SSDs smarter, and move some processing closer to the storage where it can be done more efficiently or at least free up CPU time.

Some of the companies making enterprise SSD controller ASICs have decided to throw in extra ARM Cortex-A53 or similar cores for the customer to put software on, giving the application access to the data without a PCIe bottleneck. Some companies are putting machine learning accelerators on the SSD. Some are adding dedicated compression or crypto engines to transform data at wire speed. Some are just putting an FPGA on the drive, or implementing the controller on an FPGA and leaving leftover LUTs for the customer's use.

Almost any idea you can come up with about how to move storage hardware past the hard drive-like block storage paradigm has been at least prototyped and demoed at Flash Memory Summit.

<comment><USER41> It's like NFS 3 (NeFS) in hardware! (NeWS for disks: A PostScript interpreter in the kernel as a file system API.)

[https://www.donhopkins.com/home/nfs3_0.pdf](https://www.donhopkins.com/home/nfs3_0.pdf)

Network Extensible File System Protocol Specification (2/12/90)

Comments to: sun!nfs3 email@example.com

Sun Microsystems, Inc. 2550 Garcia Ave. Mountain View, CA 94043

1.0 Introduction

The Network Extensible File System protocol (NeFS) provides transparent remote access to shared file systems over networks. The NeFS protocol is designed to be machine, operating system, network architecture, and transport protocol independent. This document is the draft specification for the protocol. It will remain in draft form during a period of public review. Italicized comments in the document are intended to present the rationale behind elements of the design and to raise questions where there are doubts. Comments and suggestions on this draft specification are most welcome.

[...]

Although it has features in common with NFS, NeFS is a radical departure from NFS. The NFS protocol is built according to a Remote Procedure Call model (RPC) where filesystem operations are mapped across the network as remote procedure calls. The NeFS protocol abandons this model in favor of an interpretive model in which the filesystem operations become operators in an interpreted language. Clients send their requests to the server as programs to be interpreted. Execution of the request by the server's interpreter results in the filesystem operations being invoked and results returned to the client. Using the interpretive model, filesystem operations can be defined more simply. Clients can build arbitrarily complex requests from these simple operations.

</comment></comment></comment><comment><USER42> One of the comments to the article mentions [https://en.wikipedia.org/wiki/Lightning_Memory- Mapped_Databa...](https://en.wikipedia.org/wiki/Lightning_Memory- Mapped_Database)

</comment><comment><USER43> But who will be the first to use a Key-Value SSD to implement a file system?

<comment><USER16> Samsung has already published a Ceph backend for their KV SSD, so you can use CephFS to get a POSIX filesystem backed by these drives.

</comment></comment><comment><USER41> How flexible are the limits on key and data size? I imagine a lot of apps would need more than just 255 byte keys and 2MB values. Is there an efficient way to virtually increase the value size, at least?

</comment><comment><USER44> How would you do a backup of this KV store if it's not exposed as a filesystem or block device? You wouldn't (it's for ephemeral caching?), or you'd just walk the entire keyspace?

<comment><USER45> There are iterators in the API I believe.

</comment></comment><comment><USER46> This is really cool! I find it very interesting that moving the key-value store directly into the hardware could result in performance gains.

I suppose these wouldn't be as generally useful?

<comment><USER38> SNIA KV stack gets rid of the filesystem, and the disk is directly accessible by applications through the API. Hence, it won't be generally useful. The target is a very specific segment of the SSD market.

</comment></comment><comment><USER47> They need to make write once ssd /usb drives. So you can backup photos and not accidentally delete or be ransom-wared for them!

</comment><comment><USER48> This is incredibly interesting. Can't wait to see more application specific NVME hardware come out!

</comment><comment><USER49> What would a RAID-equivelant setup look like over this archetecture?

<comment><USER50> RAID driver would use it as a retarded object store based block device.

The absolutely last thing that any fs designer would want is to outsource to hardware vendor implementation of anything other than a basic operation. We already saw this in hardware RAID which sucks donkey balls compared to software RAID.

This is a pure value add play in a commodity market.

<comment><USER38> KV-SSD replaces the filesystem with Abstract Device Interface(ADI), that sits between the KV API exposed to the applications directly and the KV device driver. According my understanding, although some modern filesystems combines RAID and the file system, these are separate independent abstractions. However, it would be interesting to explore how RAID will work with KV-SSDs. You can take a look at a commercial implementation of Samsung's Mission Peak system to benchmark KV-SSDs (I am not sure whether the following one is an officially approved implementation or not) - [https://www.broadberry.com/performance-storage- servers/cyber...](https://www.broadberry.com/performance-storage- servers/cyberstore-136nf1-nvme-ssd)

</comment></comment></comment><comment><USER51> How does the cost of these compare with existing SSDs?

<comment><USER16> Same hardware, different firmware. Cost will be basically the same if the idea catches on.

</comment></comment><comment><USER52> A hello from the Samsung SSD developer :)

</comment><comment><USER53> Eh, what a title. Wouldn't it be better if it said key-value ?

<comment><USER54> Whining about titles is white-noise that contributes zero value to the discussion, and it's absolutely rampant on HN.

<comment><USER8> It definitely is not, because mods often change bad titles when it is pointed out.

Which also just happened in this submission.

<comment><USER54> The fact that the mods humor you doesn't make it not white noise, and in fact it makes them part of the problem since it encourages it.

It is incredibly tedious to see people arguing about titles on every single topic instead of actual discussion. On some topics with less discussion it is literally the entirety of the discussion.

</comment></comment></comment></comment><comment><USER19> Ok.... I can just store the mapping of content key to blkid. Then I can load the mapping into memory. Then I have a key value store on an SSD using cheap, available hardware.

<comment><USER55> Obviously, key-value stores aren't a new thing... but pushing that abstraction to hardware offers far better latency.

<comment><USER19> No it doesn't. The SSD lookup is measured in microseconds. The memory lookup for the mapping to blkid is measured in nanoseconds.

Unless they're putting some expensive, power-hungry CAM in these devices, they're doing exactly what I described above.

The only real advantages could be variably-sized values, and offloading CPU cycles. But a map lookup isn't exactly expensive, especially for an I/O heavy system. And variably-sized blocks aren't particularly relevant, since DBs are pretty good at packing in data.

There's not much there to justify an unusual, expensive device that's far more complicated than the alternative.

<comment><USER16> > The SSD lookup is measured in microseconds. The memory lookup for the > mapping to blkid is measured in nanoseconds.

Some people care about write performance, too.

<comment><USER19> It's the same in both cases.

You write a dirty mapping in memory. You persist the value, and you persist the mapping. Then you flip the dirty bit.

</comment></comment></comment></comment></comment><comment><USER56> I see these as pointless technology because you still have to deal with data protection explicitly at a higher level. Given that, what does KV per drive really get me?

<comment><USER45> You'll get benchmarks that show higher numbers compared to non-KV SSDs and Samsung may use them in its marketing. But yes, key-value APIs are not going to make durability (and security) any easier. It's easier with lower level APIs, i.e. raw flash or some primitive mapping around raw flash, not higher level APIs.</comment></comment>


Payout.py - A Startup Equity Simulator - <AUTHOR> https://code.google.com/p/startupequitysimulator/source/browse/trunk/payout.py <comment><USER2> Very nice. Can you turn it into a web app, say on Google App Engine?

Could be a fun thing to play with, in addition to the ability to tweak the code and play "what if" games.

</comment><comment><USER3> This is very cool, it would be neat to tie this to a term sheet generator/calculator and show the impact of different clauses and possible events.</comment>


Global Deaths Due to Various Causes and Covid-19 - <AUTHOR> https://public.flourish.studio/visualisation/2562261/ <comment><USER2> Would be good to see an "adjusted" version that keeps all other deaths at a level that would be most likely correct, and those deaths transferred to covid deaths, perhaps in a different colour</comment>


The Inflated Debate Over Cosmic Inflation - <AUTHOR> http://nautil.us/issue/48/chaos/the-inflated-debate-over-cosmic-inflation <comment><USER2> Then again, the entire observable universe may be just a speck undergoing through a local expansion ;)

It always amazed me that people just assumed observable universe is about all there is, maybe an order or two magnitudes less, and that's it, let's build all encompassing astronomy rules out of it.

<comment><USER3> Well that's because things not based on empirical observation are not science.

<comment><USER4> Empirical observations test our theories, but they not be always necessary to develop them in the first place.

</comment></comment></comment><comment><USER5> I think the writer needs to learn more about the scientific method before injecting their opinions into this kind of piece.</comment>


Attention  Turkish democracy needs you - <AUTHOR>

After a series of peaceful demonstrations for preserving a recreational area in Istanbul city center which is planned to be demolished for the construction of a shopping mall, Turkish police attacked the protesters violently with tear gas, water cannon and a chemical gas called "Agent Orange" which is illegal to use, directly targeting their faces and bodies. Dozens of protesters are hospitalized and access to the park is blocked without any legal basis. Turkish media, either directly controlled by the government or having bussiness and political ties, refuse to cover the incidents. Press agencies also blocked the information flow. Please share this message for the world to become aware of the police state created by AKP of Recep Tayyip Erdoğan, which is often considered to be a model for other Middle Eastern countries. Turkish democracy, our DEMOCRACY needs your help. Thank you!
#occupygezi #direngezipark
http://occupygezipics.tumblr.com/ <comment><AUTHOR> <http://occupygezi.com/>

</comment><comment><USER2> follow the white rabbit: #occupygezi</comment>


Traditional Real Estate Professionals Fight Zillow, Trulia and Realtor.com - <AUTHOR> http://activerain.com/blogsview/3476614/narep-forms-to-fight-abuse-of-the-big-3-in-listing-syndication

<comment><AUTHOR> Taken from their About page: "ActiveRain is not trying to change the real estate business model, unlike other technology companies. Rather, ActiveRain augments the existing one."</comment>


ThoughtSTEM Laser Tag Kickstarter - <AUTHOR> http://techcrunch.com/2013/04/14/savvy-socal-students-bring-their-take-on-laser-tag-to-kickstarter/

<comment><USER2> If you don't feel like reading Techcrunch's commentary on the Kickstarter project (which is awesome by the way), here is the Kickstart link here which explains what the project is: [http://www.kickstarter.com/projects/1143143303/laser-tag- for...](http://www.kickstarter.com/projects/1143143303/laser-tag-for-james- bond-not-robocop) — one particular interesting aspect of the project is a gun can be anything, you can set traps and even use your 38hz TV remote as a gun.</comment>


How to Structure React Projects - <AUTHOR> http://reactjsnews.com/structuring-react-projects/ <comment><USER2> Organize directories per-feature. What is a feature? Think of it as organizing by end-user value delivered. For example, "appointments/", with subdirectories "appointments/recurring/" and "appointments/import/" for those two really complex bits.

Don't make sub-directories by kind (screens/, controllers/, directives/, views/, styles/, etc), instead encode the kind in the filename (make it a suffix).

Don't end up with a system where you end up often making sub-directories that contain only one file. That's likely an unnecessary level.

The rationale is as follows: your system will never have a fixed number of components, but it quite likely will have a fixed number of "kinds of components." So as your system grows, you will _have_ to group files by feature to deal with complexity. When this inevitably happens, it helps not to have a per-kind directory structure to swim against.

By naming your files with name of concern as a prefix and kind as a suffix, you also get related files together by the virtue of sorting files alphabetically in the same folder (monocline grouping).

<comment><USER3> I don't get the benefit of this approach -- it's too subjective. Is reset- password part of auth or settings feature? What is the link between routes and features? If I'm on a page and see a bug, how do I quickly find the code behind it if it's not linked to the route hierarchy?

The easiest mental model for me is to just map files/folders directly to the route hierarchy. That way you can rapidly build out the overall navigation scheme while building functionality. There are very few subjective decisions besides the route name. New developers can immediately grasp how things are organized and where things belong by interacting with the actual site. If they see a bug, or somebody suggests an improvement on a specific page, they can immediately find the code they'll need to modify.

With features you have to say something like: "Find routes.js, find the route forgot-password within react-router component, see what component it references, now go to top of the file and see the location for that components import. If it's a folder with an index.js file, look in that file and see what component is actually being exported, once you find the underlying component, open that file and try to find the bug."

<comment><USER4> The reality of business is that it's subjective. That's what we're paid for - to exercise judgment, and make decisions where there isn't a clear right or wrong answer. Anything that's objective can & should be automated. (This also gives a good rule-of-thumb for when & how structure should be imposed on projects: do so when it lets you replace human work with computer work. This is the idea behind convention-over-configuration frameworks.)

Anyway, the practical benefit of a feature-first hierarchy is that it makes the changes you need to add a new feature local to a single directory. This means developers don't need to constantly switch between directories in their terminals & file explorer, it lets you implement mechanisms for automated OWNERS-checking or code review, and it means that commit logs will instantly show which feature they touched just from the filenames.

In practice, "feature" is defined by the org chart: it's one concrete improvement that a specific team is working on to benefit the user.

If you're worried about finding the code for a feature on the screen, add a system where if you hover over any component in the UI, it pops up an overlay with a link to the source code. At a previous workplace, an engineer built such a feature in a couple days and it was an absolute lifesaver.

</comment></comment></comment><comment><USER5> Just the other day I started with [https://github.com/fortruce/react- fullstack-skeleton/](https://github.com/fortruce/react-fullstack-skeleton/) as a minimal skeleton for a new project of mine. Having not developed with "modern" Javascript yet, and only having used React by itself this was quite a convenient way to get started. Most other skeleton projects were too much, too huge for my taste when getting started.

It has:

* react-hot-loader which causes your changed to get automatically loaded into the running webpage

* Webpack, gulp and redux all set up

* A sample api server integrated in the development process to be used with a SPA

* SASS/CSS loading, which also gets hot loaded into your page (once/if my pull request is merged)

* Production builds with minifying and no sourcemaps (once/if my pull request is merged)

I'm not entirely happy with the structuring, but that can always be changed once you're familiar with the technologies. I also just submitted pull requests to address the issues listed in the readme.

<comment><USER6> That's a nice setup. Only thing that is incompatible with our react redux setup is thunk. We use redux-promise to work with async/await from babel stage 0.

</comment></comment><comment><USER7> I have been using this:

[https://github.com/erikras/react-redux-universal-hot- example](https://github.com/erikras/react-redux-universal-hot-example)

It's a little heavy, but it includes react-redux bindings, webpack, Babel for ES6 support, mocha for testing, SASS/LESS for styles. There's more info on the GitHub page but it seems to be pretty comprehensive in terms of bundling next- gen front end engineering frameworks.

<comment><USER8> I have been using the same thing. I find the distinction between containers (aka smart components) and components pretty neat.

</comment></comment><comment><USER9> The Redux Devtools project has an example folder with already structured examples [1]. Cool thing is that it comes with all the webpack hot-reloading already setup, and with the ability to do undo/redo changes thanks to the devtools capability. In essence, it's the only project I found that comes with the ability to code your entire app without ever having to reload your browser, and/or having to reproduce the actions manually. When you find a bug, you go and fix it, and magically everything goes back to the same state you were into without you having to click through the various buttons/panels/whatever that brought you there.

1\. [https://github.com/gaearon/redux- devtools/tree/master/exampl...](https://github.com/gaearon/redux- devtools/tree/master/examples/todomvc)

</comment><comment><USER10> The samples provided by Facebook (for Flux) have a great example structure to them: [https://github.com/facebook/flux/tree/master/examples/flux-t...](https://github.com/facebook/flux/tree/master/examples/flux- todomvc/js)

In my experience, this structure scales very well, especially if you take the advice in the 'thinking in react' tutorial ([http://facebook.github.io/react/docs/thinking-in- react.html](http://facebook.github.io/react/docs/thinking-in-react.html) ) and create a mockup that clearly indicates what part of the UI will be handled with what component.

</comment><comment><USER11> This is great!

One of the most confusing things with React and Angular or in fact any other non convention-over-configuration framework is how you go about building your project.

Structure is super important, and this resource looks good.

I would add a demo application on Github that _does_ handle data (something super simple will suffice), just so people can fork the project and take it from there.

I know for me, when I started with Angular, the Yeoman generators were just life savers, I think it would be a great "next stage" for this post.

<comment><AUTHOR> Our post on building your first redux app has a github repo with the example code. It is a pretty basic structure. [http://reactjsnews.com/your-first- redux-app/](http://reactjsnews.com/your-first-redux-app/)

</comment></comment><comment><USER12> I've used a structure similar to the one suggested by Ryan Florence in this Gist [1] with some success.

The gist of it is:

> The file structure maps directly to the route hierarchy, which maps directly > to the UI hierarchy.

> It's inverted from the model that we've used in other systems. If we > consider all folders being either a "generic" or a "feature" folder, we only > have one "feature" folder but many "generic" folders.

[1] [https://gist.github.com/ryanflorence/daafb1e3cb8ad740b346](https://gist.github.com/ryanflorence/daafb1e3cb8ad740b346)

<comment><USER13> So basically, the default behaviour of ember.

</comment></comment><comment><USER14> My preferred boilerplate is [1], [2] is also pretty good. I think that the major issue is not React itself, but a bare minimum set of modules already pre-configured to work together, that for me are react-router, react- bootstrap, either flux or parse.

[1] [https://github.com/MadeInHaus/react-flux-gulp- starter](https://github.com/MadeInHaus/react-flux-gulp-starter) [2] [https://github.com/kriasoft/react-starter- kit](https://github.com/kriasoft/react-starter-kit)

</comment><comment><USER15> I like the idea, as this is something we struggled with when we rebuilt Expedia's "Viewfinder" client-side app in universal React (SEO being the main reason for the project, despite being a client-side web app...).

One thing that becomes interesting though, is that all of the advice in the comments here saying "Follow the router!" works brilliantly if you've got a website-style app that you need to build. For us, the router is rather confusing, and all params are optional; it's more of a filter than anything else!

Because of that, we followed the more "convetional" (heh) tree: top level _src /_ folder, _server /_, _client /_, _shared /_ underneath it. Server and client only hold their respective entry points, and a few modules for the server-side behaviour (middleware and so on).

Under _shared /_ we have _components /_ which are separated into folders based on grouped functionality. Like so: [https://i.imgur.com/9T0AX52.png](https://i.imgur.com/9T0AX52.png)

While that's slightly subjective, it worked in our case very well, and at the end of the day solid naming of your components means CtrlP becomes a lot more useful ;)

</comment><comment><USER16> This is great but it really only applies to SPAs. I know single pagers are all the rage these days but it often makes a lot of sense to structure your application in a hybrid way where you have full page reloads for different sections of a site and each section is a container for a different SPA. I've got a decent setup for this but I'll be damned if I can find anyone who shares their setup for this sort of use case.

<comment><USER17> > I've got a decent setup for this but I'll be damned if I can find anyone who > shares their setup for this sort of use case.

Could you release your setup somewhere?

</comment></comment><comment><USER18> Does anyone use React with RoR? How do you combine them?

<comment><USER19> I know of these two projects that offer some guidance to combining RoR with React:

[https://github.com/shakacode/react_on_rails](https://github.com/shakacode/react_on_rails)

[https://github.com/netguru/react_webpack_rails](https://github.com/netguru/react_webpack_rails)

Basically, you introduce webpack as part of your dev/build pipeline, it interacts nicely with the asset pipeline.

</comment></comment><comment><USER20> I'm not in tune with the whole web thing, but nothing says overbearing framework like "structure guides" and scaffolding tools.

I'm particularly in awe because I just visited the ReactJS site to find out what all the fuzz is about and it makes the bold claim "just the UI", and "the V in MVC".

<comment><USER21> This is not necessarily a React thing. When using React, or most front end frameworks, none of them care about how you structure your project. This is more about how to structure a project that starts getting really big. I've done it. Well over 100 views in a spa, with hundreds of components...your structure must evolve with the project. At some point you will probably need a dumb components and smart components separation.

</comment></comment><comment><USER22> So I use mocha and eslint, how do I configure those tools to allow test files in the same directories as the source?

The sticking point I found is enabling different lint rule for test and source in a way that doesn't require linting twice and that is automatically understood by my editor (vim + syntastic)

</comment><comment><USER23> How is a "component" different from a "view"?

<comment><AUTHOR> A view is made up of many components.

<comment><USER24> Most of your components should be made up of smaller components. I'm not sure why this distinction is useful?

<comment><USER25> I see view (or screen) as something that maps to a route. It's true it's definitely a component.

I feel adding vocabulary like this to a system can help with understandability. That's the point I made with a "feature". It's something that could fit between views and components.

Atomic design ([http://patternlab.io/](http://patternlab.io/)) is close to this idea.</comment></comment></comment></comment>


Show HN: React component for blurred backgrounds - <AUTHOR> https://github.com/javierbyte/react-blur <comment><USER2> Nice work!

I noticed that you're caching `this` as a variable:

      var Blur = this,

And it looks like you're doing so to avoid scope problems in anonymous functions:

      Blur.img.onload = function(){
          stackBlurImage( Blur.img, Blur.canvas, blurRadius, Blur.width, Blur.height)
      };

I personally don't like this style. It makes it harder to read the code. If someone misses that `var Blur = this` line, they could get confused and either not use it, or use it incorrectly.

Instead, since you're using ES6, I suggest using the fat arrow:

      this.img.onload = () => {
        stackBlurImage(this.img, this.canvas, blurRadius, this.width, this.height);
      };

(I'm used to writing Coffeescript instead of ES6, so sorry if minor syntax details are wrong.)

This is largely a stylistic choice. You can feel free to do things however you want, and if it works, it works. But generally I prefer to make sure things are really clear, and that the Javascript features aren't obscured.

<comment><USER3> > It makes it harder to read the code

I think it makes it _much easier_ to read the code. Assigning it to a variable gives a nice, short description of what you're actually working with.

<comment><USER4> By using arrow functions it's simply implied that the top level context is always being used. You don't have to define what "this" is, since it's always "this".

</comment></comment></comment><comment><USER5> Does this need to be a canvas-scribbling React component when you can do this with better performance using a couple of lines of CSS filters?

Is there some advantage I'm missing?

<comment><AUTHOR> Author here. As far as I know there is no way to do blur with CSS in IE10+ [https://github.com/Schepp/CSS-Filters-Polyfill#a-word- regard...](https://github.com/Schepp/CSS-Filters-Polyfill#a-word-regarding- ie-10) so we must use canvas to be cross-browser.

<comment><USER6> You can. SVG Filters are supported.

[http://blogs.msdn.com/b/ie/archive/2011/10/14/svg-filter- eff...](http://blogs.msdn.com/b/ie/archive/2011/10/14/svg-filter-effects-in- ie10.aspx)

Edit: to clarify, the image would need to be moved into the SVG (which could be a simple DOM manipulation of the original <img> tag).

<comment><USER5> Hm, if that's the case, then theoretically this component can be easily improved to support _any_ DOM container (not just images) by just polyfilling filter: with native or SVG.

<comment><USER6> I dunno about that. <img> has a pretty direct analog in SVG that you could create by adding it (and the SVG container) to the DOM in script. Arbitrary markup would probably be best to render into a canvas.

Of course, you could always just force IE9 mode... ;)

</comment></comment></comment></comment></comment><comment><USER7> Nice work.

Suggestion: Add support for frosted glass since it's an easy extension.

You would only need another parameter for an RGBA color for "tint". Then draw over the blurred area with this color.

For example, setting tint to rgba(255,255,255,0.15) will look like the iOS style frosted effect. Varying the rgb and alpha can show other interesting options.

</comment><comment><USER8> I'm not smart enough to know how good the performance is on this. Decent? Better than CSS?

</comment><comment><USER9> Thanks for the contribution! Minor point: It would be nice if the demo's slider would be draggable on mobile, iOS Safari can't see it in action.

<comment><AUTHOR> Sure! Fixing right now.

</comment></comment><comment><USER10> Eaaaa el niño! :D

</comment><comment><USER11> ...</comment>


Show HN: Visual Studio Code for ARM, submitted to core - <AUTHOR> https://github.com/Microsoft/vscode/pull/24943 <comment><USER2> Great to see. I use VS-code on my Arm Chromebook and it makes for a nice on- the-go dev environment.

Also nice to see ARM getting some attention. Still too many places offer Linux builds in 32 and 64 bit where It's like the Blues brothers line "we have both kinds of music here, County _and_ Western"

<comment><USER3> Out of curiosity, what's the performance of VSCode on ARM compared to X86?

<comment><USER4> Well, it's Electron...

<comment><USER5> I swear Electron is incredibly fast in every instance I've used it. Unless you're doing heavy computation with complex algorithms, it's really nice. I don't believe VS Code has to do any computationally expensive computations, and it enables many more people to work on a project (JavaScript being a truly universal language).

I'm currently working on a Mail application and my benchmark test case is an email account with 20,000 emails to be displayed. Noting we currently have no lazy loading and all these are loaded from an on-disk database and put inside their own Shadow DOM it truly did surprise me when it took just over 400ms for an entire page load on my development laptop (~3 years old with an i5, nothing special).

Even if you need to do complex algorithms, just write that particular part in C and use it in the rest of your JS code like normal.

<comment><USER6> Of course electron is fast, it builds on years of work making v8 fast.

My main issue is battery life. I just need to open one electron app (Discord, Slack, Spotify even though that's CEF, but close enough) to have powertop drop from 10 hours expected battery life to 3-4.

<comment><USER5> I'm sorry, what's CEF? I haven't come across that acronym before.

<comment><USER7> Chromium Embedded Framework

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> Wow, I haven't tried vs-code until today after I read this post. I'm surprised how well it works on my mac and it is so far awesome with VIM plugin. I might actually change from my exVIM environment to this one.

Btw, nice to have ARM support as well :)

<comment><USER9> Also just tried it on my Mac as well just a couple of days ago, and was pleasantly surprise. I am using it to do python and Javascript tom foolery at the moment and found its support for these two language to be quite good.

There are some quirks that I need to get use to, ie when searching, I had to click on the left and right arrows to go to the next found items. Intuitively, it should be the up and down arrow, unless the found item is literally on the left or right of current position of your cursor.

<comment><USER8> If you are used to vim, the highest rated vim plugin works like a charm with search etc.

</comment></comment></comment><comment><USER10> Thanks so much for this, headmelted. I've been using your ARM builds of VS Code on my Pine64 for quite a while now; glad to see it's finally made its way to the core.

<comment><AUTHOR> It's good to know that some folks are getting use out of the builds. Hopefully the releases can be a bit more consistent once it's in the main repository (sorry about that!) :-)

How do you find the performance of the Pine64? I looked at it previously and was interested in getting one, but wasn't sure of how well supported it would be with drivers etc.

<comment><USER10> The performance is tolerable on the Pine64. It would run much smoother if it had better driver support on Linux.

Sadly, I'd only recommend the Pine64 if you're going to run Android on it, or use it as a server/something to tinker with on Linux.

</comment></comment></comment><comment><USER11> Wow, very nice!

I think this comment on issues is also relevant: [https://github.com/Microsoft/vscode/issues/1031#issuecomment...](https://github.com/Microsoft/vscode/issues/1031#issuecomment-294782620)

<comment><AUTHOR> Thanks for the support :-)

<comment><USER12> > be to re-implement the Electron API's that Code uses in HTML5 Javascript > with local storage, such that VS Code could run entirely as a HTML5 web > application.

This does not look fancy. Microsoft uses VSCode for their online Editor in Azure and VSS: \- [https://channel9.msdn.com/Series/Visual-Studio-Online- Monaco](https://channel9.msdn.com/Series/Visual-Studio-Online-Monaco)

Or to say it differently, at least the Editor part is working directly inside the browser: \- [https://github.com/Microsoft/monaco- editor](https://github.com/Microsoft/monaco-editor)

(P.S.: I'm not related to Microsoft, I just tumbled upon while trying to work with App Services on Azure)

<comment><AUTHOR> Totally agreed, the Monaco component is already in place and pre-dates VS Code.

It raises queries about what you do after the editor is running though (i.e. where does your terminal live? What about your interpreters/compilers?).

It quickly gets to the point of looking at SSH to another box like Cloud9 does it, at which point you may as well just run Code there and remote to it.

<comment><USER13> Not really buying it. Sending each keystroke and paint update over the network isn't a great experience on slow networks; even just ssh has noticeable lag. (Mosh is designed to fix this, but it's not trusted in most places yet.)

Being able to run the UI locally and using ssh to load/save edits to files seems like a better way to deal with latency.

<comment><USER14> Huh? For an editor in the browser you don't send every keystroke and paint update over the network. The UI is effectively local, you would only need to send regular network updates for 'autosave', and it wouldn't be to keystroke granularity.

<comment><USER13> I meant the part about "may as well just run Code there and remote to it". Running in the browser reduces latency when it avoids a round trip.

<comment><USER14> Ah I missed that, sorry.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> While VS Code will support ARM, paid solutions such as Sublime Text aren't. This is why I love FOSS.

<comment><USER16> VS Code is subsidized by Microsoft. Sublime Text is a single guy. FOSS in this case is a big company copying a single individual and destroying their business by doing a better job than that single individual.

I'm using VS Code (and I also bought Sublime) but I am a little reserved about championing FOSS here. Maybe if Sublime had gone open source it might be different, but then what would his revenue source be?

<comment><USER17> >FOSS in this case is a big company copying a single individual and destroying their business by doing a better job than that single individual.

That's competition for you. Also, I like how you use the word "copying", as if the guy was _the_ original creator of the text editor.

<comment><USER16> Atom and VS Code are copies of the successful Sublime app. Although it may be more accurate to say that VS Code is a copy of Atom and Atom is a copy of Sublime.

<comment><USER18> Which ones copy TextMate and Notepad++ in this scenario?

<comment><USER19> Textmate yes, Notepad++ not a bit.

</comment></comment></comment></comment></comment></comment><comment><USER20> I adore VS Code and everyone on the team that is cranking it out has my deepest respect.

It really is a phenomenal piece of work and is just getting better and better.

Looking forward to see how it performs with Chakra Core as the script engine one of these days.

</comment><comment><USER21> Nice work mate!</comment>


I reverse engineered a motherboard - <AUTHOR> https://kazlauskas.me/entries/i-reverse-engineered-a-motherboard.html <comment><USER2> Seems like a misleading headline. He reverse-engineered some software to control some LEDs on his motherboard, I guess.

From the title, I thought he would be dumping the schematics+firmware+etc of a motherboard, which would be pretty interesting.

<comment><USER3> I agree the headline is misleading, but its a cool writeup nonetheless.

</comment></comment><comment><USER4> _> Turns out the motherboard uses a proprietary Super I/O chip: Nuvoton NCT6795D! ... This chip is apparently made exclusively for MSI and MSI refuses to provide the specsheets for the chip_

This is why exclusivity agreements suck for the user. It means the vendor gets to claim they can't release details of something for competitive reasons.

I'm glad OP was able to reverse engineer the driver to control the RGB LEDs. Now if only motherboard manufacturers would offer a cheaper board without an LED driver that most people don't care about...

</comment><comment><USER5> > Could I debug a driver in a live system? Turns out it is possible, but > not without a second computer with a serial header.

You can do kernel debugging over ethernet: [https://msdn.microsoft.com/en- us/library/windows/hardware/hh...](https://msdn.microsoft.com/en- us/library/windows/hardware/hh439346\(v=vs.85\).aspx)

</comment><comment><USER6> What I got from this is that I need to check out RWEverything and x64dbg... the former looks neat and the latter which looks a lot like a modern OllyDbg.

Congrats accomplishing what you wanted to.

<comment><USER7> I recently did some reverse engineering with x64dbg. Amazing experience. It has code flow graphing like ida, has selection decompilation, and a bunch of other features.</comment></comment>


Insights from FindTheMasks-US Data - <AUTHOR> https://findthemasks.com/blog/2020-04-21-Data-Insights <comment><AUTHOR> Corresponding author here -- happy to answer questions.</comment>


Using two (or more) git/GitHub identities - <AUTHOR> https://medium.com/@kjetiljd/using-two-or-more-git-github-identities-78f869adb069 <comment><AUTHOR> The coolest part is that git supports setting name/email for an entire folder. A new feature in git 2.15 (released late last year).</comment>


Zombie Chaser: A graphical interface for mutation testing - <AUTHOR> http://andrewjgrimm.wordpress.com/2010/04/12/zombie-chaser-its-alive/

<comment><USER2> Plus bonus points for new Thriller version. Next time do also some dancing please :-)

<comment><USER3> Definitely, the accompaniment was a great idea. Also, who _doesn't_ like zombies?</comment></comment>


Raspberry Pi launched. RS & Farnell to manufacture under license. - <AUTHOR>

Full details at http://raspberrypi.org/
Price remains at $35 (Model B) and $25 (Model A).
~10,000 Model B's available immediately to buy.
The Model A can also be pre-ordered and now has the same RAM as the Model B: 256MB.
Farnell/element 14 and RS Electronics will produce and sell the boards under license and accept pre-orders after the initial batch is sold-out.
This is so production can scale immediately to much higher numbers.
http://farnell.com http://rswww.com <comment><USER2> Real time news from their twitter account: <http://twitter.com/#!/raspberry_pi>

</comment><comment><USER3> RaspberryPi site is OK (switched to static) but the providers are down as of now. Must be thousands of people!

</comment><comment><USER4> Hmm, even Farnell and RS seem to be struggling.</comment>