How I threw away a work of art - <AUTHOR> http://www.bbc.co.uk/news/world-europe-41850348 <comment><USER2> If it's just tiles in a regular pattern, how do you know one is made by Invader and not a random copycat? Asking seriously, someone paying 200k must mean they have something unique to hem right?

<comment><USER3> From [http://www.space-invaders.com/about/](http://www.space- invaders.com/about/) :

Are your mosaics being removed or stolen?

 _Lately, I have been facing this issue. A large number of the pieces are removed, damaged or destroyed by individuals who seek to resell them. Given the type of tiles I use, to steal the work is impossible. These individuals by removing the mosaics destroy the piece and then have to buy ceramics to repair or recreate the work. They even try to add a patina to make it look vintage. They then try to sell these bad replicas! I have hard time believing that anyone would buy any unauthenticated mosaic tiles as people could simply go to home depot and do it by themselves …I can only hope that soon enough nobody will be tempted to buy or steal pieces in the streets and therefore that this nonsense and painful destruction will stop._

Also insightful:

Is it possible to own a Space Invader? How do people acquire one of your works?

 _The most economical solution is to buy tiles and to create your own at home. It is not a very difficult assembly work and it is possible to find similar types of tiles I use.The second solution is to purchase an "invasion kit". It is a ready-to-use limited edition of a Space Invader. They are produced at the studio and sold in the Space Shop. It is at the same time a conceptual and functional object. Finally, for people who wants a unique art piece, they can seek for an Alias, which is the exact replica of the unique work in the street. There is one and only Alias for any past or present works present in the streets. Every Alias comes with a signed certificate of authenticity. Art Collectors should contact Over The Influence for any available pieces._

</comment></comment><comment><USER4> He fully deserved that.

He had the right to destroy the work since it was his and in his property, but to then whine about it just because he learned of its monetary value... It's just wrong.

Pfft, and calling it a "work of modern art" _after_ the fact.

<comment><USER5> I didn't get from this that he was whining at all. I took it as a fun cautionary tale.

9 years is a long time. I'm sure he's removed enough from the experience to be able to laugh about it.

<comment><USER6> Just as I am far enough removed from the experience to laugh about the 2500 bitcoins I "lost"...

<comment><USER5> I can't tell if you are being sarcastic or serious...

</comment></comment></comment></comment><comment><USER7> Seems like "How I threw away something that's currently trading for a lot of money" would be a more relevant title.

That reminds me to bring up art more in the conversation about the "underlying value" of cryptocurrencies.

Working title of the essay I'm not going to write: "The Store of Value in the Age of Digital Reproduction in the Age Following the Age of the Work of Art in the Age of Mechanical Reproduction".

<comment><USER8> What should he have done? It was literally stuck on his wall. Would it stay art if he ripped the wall out?

</comment></comment><comment><USER9> Street art is supposed to be ephemeral and free. The people who put it inside frames and sell it for $200,000 are the real destroyers

<comment><USER3> Invader has explained his business model here: [http://www.space- invaders.com/about/](http://www.space-invaders.com/about/)

"Is it possible to own a Space Invader? How do people acquire one of your works? -> [...] Finally, for people who wants a unique art piece, they can seek for an Alias, which is the exact replica of the unique work in the street. There is one and only Alias for any past or present works present in the streets. Every Alias comes with a signed certificate of authenticity. Art Collectors should contact Over The Influence for any available pieces."

</comment></comment><comment><USER10> Just because it's worth a lot of money doesn't mean shit. The original authors of the game are the real artists.

<comment><USER11> I agree with the first part of your statement.

The second part - it's not a zero-sum game. Why can't both be "real" artists?

</comment></comment><comment><USER12> The article woefully goes on about how the artworks are being stolen by thieves in high-viz jackets, but that's kind of the point of street art - it's ephemeral, it will get damaged, lost, etc, and in fact it's placed illegally in the first place. The author probably expects it to happen and doesn't mind. Of course, when people start spending 200K on the works it becomes a different matter, but then he should put his work in a museum - you know, something that has security.

<comment><USER3> "The author probably expects it to happen and doesn't mind."

-> He does mind: "I can only hope that soon enough nobody will be tempted to buy or steal pieces in the streets and therefore that this nonsense and painful destruction will stop" \- from [http://www.space-invaders.com/about/](http://www.space-invaders.com/about/)

</comment></comment><comment><USER3> I'm a huge fan of Invader. When I walk (or ride) in the streets of Paris and spot an Invader, it bring me a small moment of joy. I've trained my children to spot then too, and it's even better when it's them who find them first.

See:

\- [http://www.space-invaders.com/about/](http://www.space- invaders.com/about/) for a FAQ about the artist and his project.

\- [http://www.space-invaders.com/world/](http://www.space- invaders.com/world/) -> map of all the Invaders over the world (Europe, US, Asia, a couple of african countries).

\- [http://www.space-invaders.com/world/paris/](http://www.space- invaders.com/world/paris/) pictures of the ones in Paris.

<comment><USER3> More pictures: [https://www.instagram.com/invaderwashere/](https://www.instagram.com/invaderwashere/)

</comment></comment><comment><USER13> Well, it was just silly to destroy it, even if the author didn't like it.

In my parents house(which was built in the 80s) the original owner had an entire wall of the living room decorated with an absolutely stunning mosaic of a peacock, made out of tiny glass squares. He must have commissioned a local artist to design it and then the artwork must have been created over weeks with a lot of manual labour. However, try as you might, it would never fit into a modern house, as beautiful as it was - so what did my parents do? They put a thin plasterboard over it and just painted that. So the peacock is still there and we have a plain white wall in the living room. Don't understand why the author couldn't have done the same.

</comment><comment><USER14> See: Erased de Kooning, by Rauschenberg.

[http://www.npr.org/sections/krulwich/2012/03/12/148456099/tw...](http://www.npr.org/sections/krulwich/2012/03/12/148456099/two- ways-to-think-about-nothing)

</comment><comment><USER15> The author would never have been able to sell it anyway since it's impossible to authenticate.

</comment><comment><USER16> He could always go for some DYI restoration

[http://www.nydailynews.com/news/world/ruined-jesus-church- fr...](http://www.nydailynews.com/news/world/ruined-jesus-church-fresco-fixed- article-1.1178142)

</comment><comment><USER17> Video showing artist making the Space invaders:

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

Skip to one minute in.

</comment><comment><USER18> Cute pattern (an homage), nothing wrong with crafty stuff like creating fun tile patterns like that, but the whole "scene", the pretentious fluff and the stupid amounts of money being spent on this stuff is moronic and pompous.

</comment><comment><USER19> So once it was worth 200k it became worthy art, lol.

</comment><comment><USER20> It's contemporary art, not modern art.

<comment><USER11> Correct - modern art is an art movement during a specific time period.

Contemporary art is simply "made by living artists, now" \- and will inevitably be re-name with some -ism to help classify the common themes and styles.

<comment><USER21> Though the beauty of the English language is such that the word "modern" refers explicitly to _now_ but the word "contemporary" can refer to any time period at all, depending on context! With the ultimate fun being that contemporary can mean exactly its own opposite: "DaVinci's work surpasses all contemporary art." Does that mean DaVinci's contemporaries or the writer's contemporaries?</comment></comment></comment>


An entrepreneur teaching Japan how to take more risks - <AUTHOR> http://www.bbc.com/news/business-34122635 <comment><USER2> I didn't see anything about "taking risks" in the article. He's helping young entrepreneurs overcome obstacles like age discrimination and to succeed with their business plans. His own personal history is one of honing his own skills and finding meaningful ways to use them.

This whole "entrepreneurship = taking risks" narrative is getting a little out of hand lately. First and foremost, entrepreneurs should have a worthwhile business idea and the skill and capabilities to assess and realize it. Confidence in doing so comes with skill. Taking risks is for the casino, or for investors who lack the means to evaluate a business proposal.

<comment><USER3> He deviated from the safe expected route of being a doctor, even after he was one, and started his own business or had side enterprises.

That's seen as very risky, albeit he had a huge safety net when he decided to do so given he already had enough money to retire.

It's not so much about taking risks as being in a position to take risks.

</comment></comment><comment><AUTHOR> "His parents never actually said how long they wanted him to be a doctor for - just to be one." Nice example of finding and exploiting a loophole!

</comment><comment><USER4> Am I the only one troubled by the implicit racism within this article? :-/

<comment><USER5> I'm curious, what exactly are you talking about?

There are some pretty prevalent cultural attitudes in Japan with regards to toeing the line or knowing your place. Not to mention aversion to failure, saving face, and all that.

edit:typo

<comment><USER6> The notion the Japanese need to be 'taught' to take risks, that they don't take risks.

<comment><USER7> Read surge's comment. There is a difference between culture and race and I don't understand why some people are incapable of separating the two.

</comment></comment></comment></comment><comment><USER8> Whats going to be africa s fate</comment>


Sean Spicer targets own staff in leak crackdown - <AUTHOR> http://www.politico.com/story/2017/02/sean-spicer-targets-own-staff-in-leak-crackdown-235413 <comment><USER2> Oh the irony of leakers leaking information about an anti-leak meeting.

This is how a dictatorship starts in 2017.

<comment><USER3> Are you saying that the leaks are a bad thing?</comment></comment>


NBA commissioner Silver says Chinese government asked him to fire Rockets GM - <AUTHOR> https://www.cbssports.com/nba/news/nba-commissioner-adam-silver-says-chinese-government-asked-him-to-fire-rockets-gm-daryl-morey-after-tweet/ <comment><USER2> The NBA commissioner probably has the _power_ to do that. Note that he, essentially, fired the _owner_ of the Clippers. So, in principle, he probably could do it.

In practice, there is absolutely no way he could do so. He'd destroy the NBA for at least a decade, maybe a generation.

</comment><comment><USER3> > "We made clear that we were being asked to fire him, by the Chinese > government, by the parties we dealt with, government and business," Silver > said. "We said there's no chance that's happening. There's no chance we'll > even discipline him."

Okay fine, but thus far it's felt like the overriding concern here is the financial fallout. I don't know how else to explain LeBron's behavior recently. Maybe players are acting more independently now, hoping to get their _own_ China deals and that the Player's association would back them up?

<comment><USER2> LeBron is not the NBA, though. If he wants to not tarnish his personal brand in China (at the price of tarnishing it here in the USA), that's _his_ choice. Don't blame the whole NBA for it.

As for the NBA, I don't think that Silver _had_ to say this. By saying it, he's shining a spotlight on China's attempt to destroy anyone who says anything bad about them.

<comment><USER4> He wasn't going to say this and probably didn't want to bring it to light since it's possibly damaging to the NBA relationship with China but it's a calculated risk to try shore up the NBA's reputation in America. That's my take.

</comment></comment></comment><comment><USER5> When you have 100 million, getting only 50m is hard. That is how chinese ccp play the game. That is how at least one nba player play the game.

They will relax, tight, find some weaker ... they have taken control of 1.4 billion people. They know politics.

God bless America.

</comment><comment><USER6> So, they don't want us to think about lives in Hong Kong.

But they interfere with other countries to literally try to get lives destroyed.

Yeah, so people were wondering why i was Anti-China i suppose? :p

</comment><comment><USER7> The NBA is absolutely huge in China, while it would be a big hit to owners and franchisees, the NBA should announce they are pulling out of everything in China indefinitely.

This strategy would reverse the pressure back onto China, as Chinese citizens will be very upset to not have NBA games and merchandise available. It would shift the focus back onto the Chinese government from its own citizens.

<comment><USER8> Reverse the situation and imagine how you would feel.

Say China was running extensive media in favor of an increasingly China- friendly group within the US equally unpopular with both average US citizens and the US government, but quite popular with Chinese citizens and the Chinese government. And now a Chinese executive in charge of a Chinese product popular in the US, spoke out in favor of this group. Following US pressure with implied economic threats, he not only refused to retract his statements but chose to completely pull his company's product from the US - perhaps iPhones, which we'll pretend could be made nowhere other than China for the sake of the hypothetical.

Are you going to be mad at the US government? Most likely this would just work to further evangelize anti-China and anti-China-friendly group sentiment within the US. And I think this is true without even getting into the cultural differences in terms of things like nationalism. I think in your comment you're probably transplanting the average US citizen worldview onto the average Chinese citizen. In that case your idea would very much work, but that's not the case here.

<comment><USER9> > _Are you going to be mad at the US government?_

Yes, absolutely. I'd expect the US government to just shrug their shoulders and go about " _Whatever_ ", and not interfere in such petty issues.

It's probably a key difference between China and the US/Western hemisphere, concerning government. We don't want to be nannied and would be appalled, if so.

<comment><USER8> That's awesome to hear, but I expect you must see you would be a very small minority. Most people now a days seem to base their worldview not on any system of consistent ethics, but instead on who's being benefited and who's being hurt.

For instance on what precipitated this particular issue (the Blizzard stuff), many are framing it as an issue of free speech. But that's incredibly disingenuous because there's no doubt that many of the same people outraged ostensibly about a violation of free speech would have been the first ones lining up to cheer and rejoice had Blizzard chose to ban a player who chose to show up in a MAGA hat and screamed "Build the wall!" in an identical venue. It's safe to assume they also would have taken it further and done all they could to try to get said player banned from any other gaming venue as well, in an effort to kill his livelihood and, by proxy, him. In other words, they couldn't care less about free speech - but only speech that they support, or oppose.

This example here (in our reverso world China) would take this to an even bigger extreme since you would be expressing support not only of a group with next to no national support, but simultaneously expressing support of a deeply unpopular foreign government which could be framed as borderline treasonous. And all of this being done in a highly nationalistic nation? That's a tall order for sure.

<comment><USER10> > For instance on what precipitated this particular issue (the Blizzard > stuff), many are framing it as an issue of free speech. But that's > incredibly disingenuous because there's no doubt that many of the same > people outraged ostensibly about a violation of free speech would have been > the first ones lining up to cheer and rejoice had Blizzard chose to ban a > player who chose to show up in a MAGA hat and screamed "Build the wall!" in > an identical venue.

I've seen this argument so many times in relation to this and I don't get it - this isn't what happened and you can't presume to know what "many of the same people" would do. It's such a shit argument because you can state that "many of the same people" would do anything you want to frame as bad and it's impossible to disprove.

Why not just address what actually happened?

<comment><USER8> The original post I was responding to was pondering what would happen if the NBA pulled out. In order to try to predict this it's important to try to _accurately_ characterize how people would behave in response. In the US we ostensibly value free speech, but especially in modern times this is increasingly often set aside faster than you can blink when it becomes an issue where somebody says something we disagree with. See for instance practically every major social media platform that has been censoring increasingly loosely, largely to stabilize (and ideally increase) their profit by satisfying advertisers. When people dislike the groups censored they not only could not care less, but are often genuinely enthusiastic about it.

Think of the countless times people have, rather enthusiastically, argued that 'free speech doesn't mean you're free from the consequences of your actions'. Yet when it's a group that individuals ideologically align with they rapidly segue from free speech being a technical legal requirement as defined by the first amendment of the US constitution, to a value - an ethos. And we are not speaking in hypotheticals - this _is_ happening, right now.

In modern times people increasingly seem to not like defending the right of groups they disagree with. We could debate the reasons there, but I suspect a large part is because we now live in an era of never-ending social media virtue signaling. That's actually what makes what I wrote above so easy to show. If you are genuinely arguing in good faith and do not believe people are engaging in wide-spread hypocrisy, you could go obsessive-compulsive and digging through people's post histories and find many of the same people upset about corporate censorship today cheering it on not long ago. Because they felt that by cheering on nasty groups getting censored, that they were showing their own virtue in being so adamantly against such things. We are, in effect, living out the "First they came ..." poem. As always, what's new is old.

<comment><USER10> When the original poster didn't respond the way you wanted them to you then decided to switch tracks and claim they're in the minority.

Have you considered that in the public there are so many people that you can arrange people in to groups that say anything? You've not made a convincing case that 'the same people' 'rapidly segue' \- merely that groups of differing opinions exist and are vocal about different things.

<comment><USER8> I think you make a great point. From my perspective there are some things that cannot be reasonably proven that people may have different views on. For instance I'm sure you'd agree that social media "platforms" (as well as various other "platforms") over the past ~6 or so years have been engaging in increasing censorship. And that censorship has been not only accepted but applauded by some segments of the population. So where we probably diverge is on who are these segments of the population? How big are they? What are their views on this recent censorship?

I've been unable to find any sort of polling or other objective data (for that matter even poll data on Hong Kong is basically nonexistent) so we're left to rely on anecdotal data. When stories of censorship against unpopular topics came out in times past, what was the zeitgeist in your view? In the Hong Kong story as of today, does that vary? I took as an assumption people sharing a _roughly_ similar view on this question. But I think it's a fair point that perhaps this is an invalid assumption. If I've learned anything on the internet it's that we all live in our own little bubbles, try as we might to escape them.

Of course I'm certain I could dig up plenty of examples of people contradicting themselves but that no more proves your [implied] view incorrect anymore than you finding a examples of people remaining consistent would prove my view incorrect.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> That's admirable that he is showing restraint. But bigger moneyed interests might play into this over time.</comment>


Two Different Approaches to Saving Bees - <AUTHOR> http://www.npr.org/sections/thesalt/2017/05/27/530028003/two-scientists-two-different-approaches-to-saving-bees-from-poison-dust <comment><USER2> When we talk about "saving bees", most people think about honey bees. I'm a hobbyist beekeeper, and honey bees have a good chance of surviving thanks to people who care about them.

However, in most places, there are dozens or hundreds of other bee species. We don't know or hear much about them. They are solitary bees, various types of bumblebees, etc. They are the ones disappearing, and fast. Unfortunately, they are the first victims of growing urban areas, mono-culturing and pesticides.

<comment><USER3> I make mason bee houses(hotels, whatever) where ever I end up living (renting, moved around a bit). They're pretty awesome, no stingers, pollinate everything, and the houses are easy to build.

<comment><USER4> Does anyone have links to similar things for North American solitary bees? These houses seem to be UK specific?

<comment><USER2> I live in Colorado. We have mason bees around here. And you should be able to find mason bee houses in certain big garden centers, big home improvement shops and online:

[http://smile.amazon.com/s/?field- keywords=mason+bee+house](http://smile.amazon.com/s/?field- keywords=mason+bee+house)

</comment></comment></comment></comment><comment><USER5> Best approach: Use no poison. An alien may say: This humans seem to be bit insane - they put a lot of poison on their fields where they grow their food in order to protect their weak breeded plants against pets while they do everything that this pests have a easy run. Maybe we should search for another planet where the creatures seem to be more sane.

<comment><USER6> > while they do everything that this pests have a easy run

Which is exactly why we can produce so much food / acre. Land use would need to go up significantly, and thus the price of food, in order to be able to use "natural" methods of pest control. This would affect developing countries the most.

<comment><USER7> The article addresses this issue, it says that for soya bean there is no difference between treated seeds and non treated seeds. For corn there is a 2% difference but this was within statistical error for this study. The biggest way to boost crop yield is good quality fertiliser (organic or mineral).

</comment></comment></comment><comment><USER8> Does that mean that neonicotinoids are now confirmed to be a major factor contributing to the bee colony collapse?

<comment><USER9> 'One of the factors', yes. There are three causes, which are separate but related:

        - pesticide use (neonics, mostly)
        - 'varroa destructor' parasites
        - loss of bee habitat ('green deserts')

This triple-whammy is too much for bees, but that's not to say that solving just one issue (or even two) would be 'enough' of a solution.

The first one will be solved (I think) by public awareness. There is a clear direction in the public opinion against chemical pesticides (I know, 'everything is a chemical', I'm talking about public perception, for better or for worse). It won't be long before (the most damaging) pesticides will be squeezed out by on the one side regulation and on the other market pressures - consumers asking for food with certain origin characteristics (like, no use of certain pesticides, or none at all), thus farmers asking for treatment-free seeds, thus the manufacturers providing it. They might be resisting it now, but the invisible hand is hard to stop. It's just a matter of time - that's not a call for complacency, obviously, the pressure needs to be kept on.

The second one is a bee husbandry problem. There too the tide is turning - after 3 decades of researchers looking in the direction of chemical treatment, the direction is shifting towards _less_ treatment, and moving towards resistant bees through selective breeding, going back to stronger, locally adapted breeds, 'Darwinian management' and less invasive apicultural practices. How this will fit with intensive agriculture remains to be seen (will such apiculture be compatible with moving 10's of thousands of hives from orchard to orchard across great distances, following the blossom of various plants across large areas?); but then again, there is already a small move towards/experimentation with alternatives for bee pollination anyway (like bumble bees). Maybe a combination of measures will yield a workable solution at scale.

The last one is the most overlooked but (IMO) the real killer. The efficiency of machines today (compared to even just 2 decades ago) makes agricultural land so maximally occupied for growing food that there is no room for natural habitats for any sort of animal - mammals, birds, and insects including bees. Modern agricultural land might look 'natural' and 'green' when looked at from aerial pictures, or even when driving by, but because every last square inch is cultivated, no animals can live there (hence 'green desert'). Bees today do better in urban and suburban settings than in rural areas, because of all the plants in people's gardens providing forage all season long.

If we want results in the next few years, the only solution will be government intervention - be it through subsidies for leaving land fallow, or by plain requiring certain naturalzing management interventions (or rather, 'non- interventions'. The public pressure that is shaping up around neonics just doesn't exist (yet) when it comes to (ecologically) sustainable land use management. It's also much harder to quantify - either a farmer uses neonics or he doesn't; but what is 'sustainably managed land'? Everybody can define that the way suits them best, hence a lemon market for consumers who wish to influence producers.

(note on references to the above: this is roughly the state of the literature in apiculture and agronomics, interspersed with some personal observations and extrapolations; although there will be plenty of different opinions on different aspects of it. In fact, I'm pretty sure that everybody in one of the fields that are relevant will find something to take issue with. There is no single one paper that says 'look everybody we conclusively proved that these three issues account each for x% to the total problem'. On the other hand, I don't think anyone who reads the major journals and follows the major conferences (and who doesn't have an ulterior motive to push some fringe agenda) will disagree that some combination of the above is what is causing the difficulties that bees are facing the last decade, or two).

<comment><USER10> Thank you for the insights.

Are there any numbers comparing colony collapse between normal and organic beehives?

I imagine that bees used for producing organic honey will have access to greater variety of plants, since their immediate surroundings doesn't contain pesticides, which obviously also lowers their exposure to pesticides.

I'm aware that bees used for organic honey travels outside their designated organic habitat, but all things equal, they should be better of with regard to the 1st and 3rd factor of colony collapse, than non-organic bees.

<comment><USER9> Thing is, there is no such thing as _the_ colony collapse. Some colonies just disappear (abscond) and we don't know why, others are weak and don't survive winter, others are so heavily infested with varroa destructor that too many bees get deformed wing virus and fizzles out, ... It's a combination of things, which is what makes it so difficult to nail down. Furthermore, there are many more factors that make it hard to compare apples to apples (how many colonies in the area? How much forage? Weather? Disease vectors present? Etc...)

There are some monitoted experiments (google 'bond experiment' for example) but they cannot be used for 1:1 comparisons to say what is 'better'. Plus, what is 'organic'? Technically (legally), it's following Demeter standards, but who can fulfill those? Does that mean that all those others are 'non- organic'? No, there's a very wide range left.

And even more... What are the goals of the beekeeper? No commercial apiary can survive with 5 kg/year yield per hive. Should commercial honey production go away? Leaving aside the animal welfare aspect, I think there's room for a range of approaches, but it needs to be balanced. Of course, balanced by whom, that's the question...

</comment></comment></comment></comment><comment><USER11> Can't these seeds be treated with an additional protective coating that dissolves after planting?

<comment><USER12> It might be possible, but I'm guessing it's not trivial to make a hard coating which also has the ability to dissolve arbitrarily.

<comment><USER13> What about a hard coating that dissolves in the presence of water?

</comment></comment></comment><comment><USER14> I'm with the filtered approach. I dont really trust Krupe's work. yeah, statistically significant on 12 fields .... 2% is right in the range of the stated yield benefit, .5 - 5%, which farmers who actually do business seem to think is economically beneficial.

"In another study, Krupke found that the seed treatments weren't of much benefit to corn yields... the results from all the sites, the average yield from the treated seed was about 2 percent higher, but Krupke says that difference is not statistically or economically significant "

</comment><comment><USER15> Is the spread of African (aka "killer bees") a possible reason why?</comment>


Set Based Filesystem idea - <AUTHOR> http://www.aleveo.com/ideas/bsc-thesis-set-based-file-system

<comment><USER2> luckily, you can implement the idea on top of existing systems. e.g. fuse or plan9/inferno's 9p/styx fs protocol.

"File indexing and searching for Plan 9", <http://lsub.org/ls/export/tags.pdf> describes mostly text indexing, but the interface to searching is through a file system (unfortunately not described in much detail at first glance).

only now do i remember that wrote something related once: attfs, <http://www.ueber.net/code/r/attrfs>. that's for inferno, using the styx/9p protocol. i never polished it, am not currently using it, and the interface the file system provides is not ready for casual file browsing, though that's mostly a detail (from an amount of code point of view). the things stored are strings though, not files. but the illusion that it stores files is easy to build.

<comment><USER3> There's also libixp, a port of plan9's 9p to Unix. (<http://libs.suckless.org/libixp>)

I've only ever used it with wmii, but I've been looking for an excuse to write a Lua wrapper for it. :)

<comment><USER4> There are many 9P implementations (most of which run on *nix systems): <http://9p.cat-v.org/implementations>

I think somebody was working on one in lua, but I don't know if they finished it.

If you write a Lua implementation or a lua wrapper for an existing C implementation let me know.

<comment><USER3> Will do. (I'll probably wrap libixp.)

<comment><AUTHOR> Please let us know if you shoot some code. It could be a good open source project, according to the interest. I'd personally go for defining a community whitepaper / wiki maybe for the concept and solutions.

What do you think? In the mean time we can build some prototypes on different platforms.

The real reason why we don't know how and if this interaction model would work in practice - is the obvious absence of implementations.

<comment><USER3> I'm looking at it now. I'm working on OpenBSD, and just updated the port to libixp-0.5 - that'll get posted once I test it more.

A Lua _client_ library for libixp should be pretty straightforward, looking at the source for ixpc. I might have that together this afternoon (particularly if my fiancee continues napping ;) ).

As for a server library, I'm still thinking about it, but passing an init function a table with callbacks for the various messages would be pretty straightforward - similar to LuaExpat's design (<http://www.keplerproject.org/luaexpat/manual.html>).

I'm silentbicycle on twitter, FWIW.

</comment></comment></comment></comment></comment></comment><comment><USER3> To use more conventional terminology, that would be a relational filesystem. Since _a filesystem is a kind of database_ , this is another instance of the break between hierarchial and relational databases. Filesystems seem to have largely favored hierarchial DBs (with exceptions, e.g. <http://en.wikipedia.org/wiki/Pick_operating_system>), since following pointers to files from a containing directory is more direct than selecting from the whole filesystem. Filesystem extensions like symlinks are attempts to selectively add features that would come free with a relational filesystem, though.

Of course, a relational FS would still be broken up into namespaces (tables!), much like conventional filesystems frequently occupy multiple partitions. /sometable/tag+tag2+tag3 , for example, so searching for a file wouldn't necessarily mean searching every drive. There's no reason that making lots of small tables couldn't be cheap (they don't have to be disk partitions), and that would help constrain searching quite a bit.

Also, research into journaling filesystems has major parallels to database transactions.

<comment><USER5> That's an interesting way of looking at file systems. I think among the pipe dreams of reiser4 there was a plan to make the fs itself more relational-like (but I also think this was relegated to a plugin and then promptly forgotten).

</comment></comment><comment><USER6> I recall this was one of the original goals of "namesys" (the file system that eventually became ReiserFS) but the paper describing it seems to be lost. The only reference I found after a short search are a few pages in a power point presentation[1] comparing it to Cyc. For the curious, the set "grouping" construct is on slide 7.

1- <http://psy.st-andrews.ac.uk/foldiak/NamesysAndCyc1.ppt>

</comment><comment><USER7> > _no one_ dares to reevaluate the underlying concepts that bound those > layers. One of those underlying concepts is the hierarchical file system > found on every personal computer of today as well mobile device.

I see someone hasn't read a single thing that Ted Nelson has written just yet.

<comment><AUTHOR> The text is a bit too strong, and should be revised from the arrogance of 2006 :D Just copy-pasted it.

Indeed I haven't. I have to change that, thanks for the tip.

</comment></comment><comment><USER8> "Obviously, with sets, the location can be described in several ways, so it is not a Unique Resource Locatior - only RL."

Wouldn't it be possible to implement the filesystem with tags and then specify an ordering of the tags to map the graph into the usual hierarchy? The first part of the URI would specify the mapping (maybe just a name for a particular mapping), and the second would traverse the hierarchical view in the usual way.

This way, legacy apps could still think in terms of a tree while exposing a more powerful structure to new apps.

<comment><USER3> I think worrying too much about reverse compatibility may be a bad idea. With access to relational features, the filesystems would probably be organized completely differently. Probably better to have a clean break.

<comment><AUTHOR> I agree, but it seems natural using the same paths. No patches to the concept would be needed.

</comment></comment></comment><comment><USER9> Actually, you can write a wrapper in your favorite language around your favorite database and call it your favorite filesystem, which is really a CMS.

<comment><AUTHOR> not really. CMS is essentially different than a fs, but I see your point. While I won't go into explaining why it is, I have to say that some concepts from both should be brought closer. File should not be seen as a unit, but a set of tightly bound data. I wrote about this too recently, I'll post soon for opinions.

</comment></comment><comment><USER10> You want to make your way in the CS field? Simple. Calculate rough time of amnesia (hell, 10 years is plenty, probably 10 months is plenty), go to the dusty archives, dig out something fun, and go for it. It's worked for many people, and it can work for you.

\-- Ron Minnich

</comment><comment><USER11> I am not sure if the paths would be compatible.

<comment><USER3> It's a set of tags, not a hierarchy of directories. They're unordered, so the "paths" (which are really tag sets) would be equivalent.

</comment></comment><comment><USER12> That indeed might be a good system for storing user documents, but not in general...

<comment><AUTHOR> Why do you think so? I am trying to do a use case and it seems that the usage would not differ that much. The sets are still seen as folders, and have subfolders. The only thing is that the subfolder also owns the parent, but that is not noticeable due to the unique direction.

What I want to say is that Documents -> University or University -> Documents is the same, thus it makes sense. In real life the order doesn't matter.

Thus it opens a path for better HCI: computer, give me all documents from the university (all university documents)..

I am curios in what perspective you see this failing?

<comment><USER13> I've heard of this concept of 'set-based' filesystems (although with different terminology), and I think it's brilliant. And not just for documents either. Generally speaking, websites have moved away from storing data in a hierarchical matter (e.g. old-school Internet directories), and on to flat, tag-oriented categorization (e.g. delicious) because of the abundance of information to categorize. Hierarchies do not scale and are difficult to change, whereas free-form categorization do not suffer from this.

Personal systems have more files on them than ever before, and fitting them to hierarchies that were invented decades ago can be tricky. These issues have been abated for now with things like OS X's Spotlight and Win7's Libraries, but my suspicion is that set-based filesystems would be far simpler than the current paradigm.

A good example off the top of my head is resolving what command-line executables are available. In most operating systems, this is done by setting a PATH variable with a list of directories that contain the executables. While this is trivial for the type of people on HN, it is far from for your average user. Instead, command-line executables could be given a specific tag, and the command-line would be able to execute any application that has that tag.

Now, whether set-based filesystems could replace hierarchical ones is a different question. Such a filesystem would diverge so greatly from current assumptions that people might be too aversive to change. It wouldn't be the first time; I think Plan 9 was light years ahead in so many respects, but it never took off because it was such a radical departure.

<comment><AUTHOR> That's what I'm thinking too. However, those are assumptions (which I share). I am thinking maybe it would be interesting to see this simulated in the web environment and get feedback on that - web file system.

I started playing with tags on Aleveo for that reason, maybe I should take it further on a separate test project. It makes a big difference using it and thinking how it would be used.

Also, I am not sure what would be best for executables but how are those currently seen - as having an "+x". Having an executable tag is not much different. That also means, tags are a bit "smarter" than the regular ones seen on the web.

I am mostly thrilled by the ability to see the relations of files and folders to others. Those are not folders anymore as "storage units" but "meanings".

Also currently a file can exists only in one place. Having symlinks is cruft in my opinion, compensating for the need of multiple context presence of data. Symlink is a separate file, a pointer different than the original. Windows is excluded completely :) I think file can be in several places depending on the need. After all this is not the physical world.</comment></comment></comment></comment>


Wired Magazine Coming to Germany - <AUTHOR> http://www.spiegel.de/international/zeitgeist/0,1518,785341,00.html

<comment><USER2> _The recycling principle is part of Wired's approach to its international expansion. But it also reveals what the German edition is lacking: Being up- to-the-minute is clearly not the top priority. For a magazine that deals with the extremely fast-moving digital world, that can sometimes be a problem. Several months ago you could, for example, already read elsewhere -- including on SPIEGEL ONLINE -- that Tetsuya Mizuguchi's video game "Child of Eden" is an abstract masterpiece. True digital hipsters will not find much that is new in the German Wired_

Isn't that also true of the English-language version? How can a print publication compete with what's on-line for reporting what's he latest and greatest?

That was one reason I canceled my subscription some years ago. The other reason was that it had become a catalog of toys and bling for the well-off, with what seemed like more ads than content.</comment>


Airbnb: Building a Visual Language, Behind the scenes of our new design system - <AUTHOR> http://airbnb.design/building-a-visual-language/ <comment><USER3> Author here. I also answered few questions on designer news: [https://www.designernews.co/stories/69628--ama-karri- saarine...](https://www.designernews.co/stories/69628--ama-karri-saarinen- designer--creating-design-systems-at-airbnb)

</comment><comment><USER4> Surprised they didn't develop something like this earlier, as part of their rebrand (when they significantly redesigned the website and app.)

</comment><comment><USER5> As a digital designer, I can second this... hopefully Sketch or InVision will make maintaining asset libraries easier in the near future.

"We initially tried to create these components as symbols in Sketch, which resulted in a mess. Even now, our Sketch files are sometimes challenging to maintain. Moving forward, we hope to find better ways of maintaining and creating new components."

<comment><USER6> I agree, I really, really hope design tools and practices evolve more in the direction of building a design language and components.

As a developer, it would make my life easier as well, when I try to split designs into components / css.

</comment></comment><comment><USER7> Embarking on a similar process at my company, and hit a similar wall using symbols in Sketch. They're great, but are a pain to maintain for a pattern library project.

We had a breakthrough last week when InVision updated their Craft plugin for Sketch to include Library [1]. Well worth a look, we've tried poking holes and it's held up. Syncs seamlessly across Dropbox/etc and allows for on-the-fly updates that go out to the team "magically". Requires education to make sure our junior designers aren't accidentally updating styles cross-team, but outside of that works as advertised. Very impressive for a v1!

[1] [http://blog.invisionapp.com/cloud-connected-design-assets- li...](http://blog.invisionapp.com/cloud-connected-design-assets-library/)

<comment><USER3> At Airbnb, we also started building the library with symbols but noticed that it didn't work, at least before Sketch 3.5 or something.

In our case, we want that people can change the symbol sizes (eg. you need to fit in more content in to a header). If you need resize or accidentally resize something, Sketch would automatically resize every instance of that symbol. That would kill your sketch for few moments and probably mess up your file permantently (sometimes you couldn't undo the damage you had done.). So we ended up putting the components in Layer Groups, and let people copy and paste them.

Newer Sketch symbol support have gotten better, but I'm still hesitant to change to it, since it seems something they haven't nailed down yet.

</comment></comment><comment><USER8> TL;DR I like Airbnb but there's lots of poor experiences that affect 2 people. Design is hard. I have experienced frustration related to the design of Airbnb. I complain.

This seems really interesting. If it can help improve the Airbnb UI/UX - I'm ALL for it. I've been hosting for over 5 years and travelling for 6 on Airbnb. I like the 'voice' of Airbnb in general and love the company and service. Take the following rant as feedback - because I've experienced the changes in your app over the years. And some of them have driven me crazy. Also - every time I have to call Airbnb or send in suggestions I say "I'm happy to speak with a PM or designer about how I use the app/service" but never get taken up on the offer (As a PM myself - I understand why) so this will act as my feedback outlet :)

A challenge Airbnb faces is that many interactions on the site are SCARY. This post from a few weeks back was really insightful about designing to address users implicit fears of screwing up. [http://product.hubspot.com/blog/designing-for- anxieties](http://product.hubspot.com/blog/designing-for-anxieties)

The comments below are coming from frustration with a service that brings me almost $30k each year and has opened new possibilities for my family (pre- emptive note to Airbnb haters: my place is not in SF). I write this comment from an Airbnb loft I'm currently staying at.

Still, to this day - I am occasionally shocked at how poor certain experiences are within the app. Not just that - but as changes roll out - there are some serious issues that just don't seem to be "thought about".

### New Features

The most recent example - I realize it is a beta feature - "Smart" pricing (I use quotes because I would more likely use 'dumb'). Who thought it would be a good idea to let a user shoot themself in the foot by allowing the combination of Instant Book AND Beta 'Smart' Pricing together? Result: July 4th weekend booked for less than half of what it was booked for last year (I suspect the algo doesn't evaluate previous data for my property, whatever etc.) The result is: I never trust ANYTHING about pricing from Airbnb. It is so consistently off base, and I consistently get booked when I have prices twice as high as the system suggests. The other result - an unhappy traveller I need to apologize to. User Pain within Airbnb is sometimes doubled - because TWO people are experiencing something shitty.

### Navigation on Web

What inspired he navigation pane on the left - and then the placement in the top right corner of sub-navigation (ie: go to calendar, change the pricing) - in non-differentiated colors so it conveniently blends in, in an area you wouldn't expect as navigation?

### Incentives/Penalties

So, I need to cancel a reso because your system screwed up (this has happened multiple times - most often because of an unclear or ambiguous UI) I get where the penalties are rooted in - you need to punish cancellations, etc. However, by not letting me get a new booking on those days that got canceled - <USER2> incentive is now to basically wait on a reservation request from HomeAway/VRBO/CL that is twice as much as the original booking - and THEN cancel closer to their reservation date. That's bad dis-incentive. Bad experience for me AND the guest.

### Help

I get it - Airbnb doesn't want people calling the support line. Have you ever evaluated how many clicks people hit while they are looking for help and want to contact a human (not even by phone, try to find where you create a case - this has been improved recently). Then, the help is fragmented too. Oh, have an issue that needs resolution go to entirely different place (oh, and no link to the resolution page on the case submission page - another 8 clicks of exploration). In fact I have navigated Airbnb before by using google to search for the page I know existed in the app, but can't find it.

### Contexts

So, your iOS app has a handy - "Switch to Travelling Mode". I like. I don't like that it is now completely inconsistent with the web version - as in, I go to my dropdown menu and it shows new messages and has a "View Inbox" link, then within THAT screen I have a toggle between travel and host mode. It messes with my Mental Model of your navigation when alternating between the app and the web. Either make an aggregated inbox on the iOS app OR have a 'host mode' on the web version for example. Since launching the app a while back, having separate apps for distinct functions has become a 'thing' and I could see that working out well in this situation too.

### Transparency/Clarity

I get it, Airbnb doesn't want to bring attention to the fees they charge both me AND my guest. Showing the fee you extract doesn't make a user feel good. HOWEVER - when I am making a deal with someone with a new price, Airbnb only displays to me what fees _I_ will pay. If I tell someone, yes, I'll give $100 off: so new price is $300. Airbnb only shows MY total...so i click "Send Offer" the guest receives it and it is NOT $300 - it's something like $326 because the fee charged to the guest is invisible to me as I adjust the price. The UX does TRY to tell me on emails 'what the guest pays' \- but it's not true: I only see what they pay BEFORE the fee is tacked on. Once again a shitty experience for TWO people compounding the annoyance and crappy feelings. Just show me in your neat little price calculator what the actual total price my guest will end up seeing/paying. It makes me look like an idiot otherwise. I send too many messages to guests saying "Sorry Airbnb has confusing XYZ, this is why it happened...". Several have complained to me - once I actually fiddled with my price to get it to the exact number a guest and I had agreed upon. I had to send them special offers 3 times to get to the right price, even then it was off by a bit.

### SuperHost One feature of the program is that "Superhosts get priority support when they call Airbnb.". Ah, Shucks - that's so nice! I challenge YOU to find Airbnb's phone number anywhere on the internets. For me - when typing a search in Google for "Airbnb" \- the suggestion "Airbnb phone number" shows up as the as item number 5, which leads me to believe I'm not the only one who is frustrated. Pro-tip: @airbnbhelp works faster than submitting a case very often.

As I'm sure you're aware - there is so much more to do!

I want to end on a positive note! Airbnb has:

\- courteous support people, they call back and are understanding. They feel human. Not a cog in the machine.

\- The service has greatly improved its capabilities over time, I am actually confident many issues above will eventually be fixed by airbnb - I appreciate their iterative approach.

\- Opened new travel possibilities and enabled me to own a house where my child can learn about, enjoy and appreciate the wonder of the outdoors

\- Design thought leaders and puts effort into their improvements - and is shaking up the status quo.

Coolest Airbnb place I've stayed at: Tiny House in Redmond, WA. 320 sq ft. If you go to visit Microsoft campus for a business trip - it's 8 mins from HQ: [https://www.airbnb.com/rooms/3603003](https://www.airbnb.com/rooms/3603003)

If you've read this far, Thanks! If you work at Airbnb and want to chat about anything regarding your service - hit me up.

</comment><comment><USER9> Awesome! I'm a big fan of design languages and systems. Mobile & web designers have had too much freedom during the past years. Some streamlining and standards will only do good for the scene.

<comment><USER10> I keep repeating this lately :) : check out tachyons.css and react-native- tachyons (the latter is a port by me)

It uses fixed scales for spacings, typography etc. which are relative to rootfontsize.

<comment><USER11> Thanks for the link to tachyons css. Was just searching for a modular system exactly like this. Plus, great name ;)

[http://tachyons.io/](http://tachyons.io/)

</comment></comment></comment><comment><USER12> Out of Topic: .design TLD is new to me. I wonder if new and obscure TLDs like this will be familiar to non power-user.

<comment><USER13> People use search engines to find websites, no one types out URL's anymore.

<comment><USER14> What about email addresses?

<comment><USER13> In the corporate world? Nope. Outside of that, people text each other.</comment></comment></comment></comment>


The EU's new copyright laws threaten to destroy the internet - <AUTHOR> https://www.zdnet.com/article/the-eus-new-copyright-laws-threaten-to-destroy-the-internet/ <comment><USER2> When the law comes into being, everyone should start posting copyrighted poems (limericks, ideally) as comments on any website that allows it and supported this directive, i.e. every newspaper.

This should exemplify the silliness of this.</comment>


React Tetris – built with redux, immutable - <AUTHOR> http://www.gitlogs.com/repos/chvin/react-tetris <comment><USER2> [https://github.com/chvin/react-tetris](https://github.com/chvin/react-tetris)

</comment><comment><USER3> This is surprisingly complete... it has i18n support, uses webpack [1], ES6, sound, I can't find any gameplay mechanics that are missing...

Good job. I can't help to be a little envious they were able to find time to build this.

[1] I personally don't like webpack but to each their own

</comment><comment><USER4> There's something quite... strange... about showing off how you can use your framework to reimplement games from the 1980s that ran on computers millions of times slower than modern computers.

<comment><USER5> Tetris is my go-to and my #1 recommendation when someone asks how to get into game programming. It's such a simple game conceptually but surprisingly difficult to actually implement.

<comment><USER6> I've never tried building a Tetris but if it's as difficult as you say, I guess this must be doubly impressive [https://gist.github.com/aemkei/1672254](https://gist.github.com/aemkei/1672254)

<comment><USER3> It all depends on how much of the gameplay mechanics you implement. That implementation has very few of the gameplay mechanics.

Still very impressive none-the-less... I bet most coders couldn't do tic-tac- toe in that little code.

</comment></comment></comment></comment><comment><USER7> Nice. Just played it. Works perfectly.</comment>


Tinycoin: A small, horrible cryptocurrency in Python for educational purposes - <AUTHOR> https://github.com/JeremyRubin/tinycoin <comment><USER3> The 'dumbcoin' jupyter notebook is also a good reference: "Dumbcoin - <USER2> educational python implementation of a bitcoin-like blockchain" [https://nbviewer.jupyter.org/github/julienr/ipynb_playground...](https://nbviewer.jupyter.org/github/julienr/ipynb_playground/blob/master/bitcoin/dumbcoin/dumbcoin.ipynb)</comment>


Latest Video Games in Japan - Photos - <AUTHOR> http://thefastertimes.com/videogames/2010/01/05/video-games-in-japan-a-photo-blog-post/

<comment><USER2> I know I've gone native (in Tokyo) when these images are no long Lost In Translation.</comment>


Freebase mashup: restaurants ordered by health department score - <AUTHOR> http://blog.freebase.com/2008/08/15/put-down-the-burrito-and-step-away-slowly-where-not-to-eat-in-san-francisco/

<comment><USER2> Freebase is a truly awesome idea...but I haven't seen a lot of useful ways to make use of it, to date. Now if only it covered Mountain View...</comment>


Ask HN: Submitting english iOS app, select only certain countries or "all"? - <AUTHOR>

I have an English iOS app and wanted to know if I should select only certain App Store territories when submitting my app (e.g. primary English speaking countries like UK, Australia, New Zealand, etc.) or if I should make it available to all territories. I would like to have time later to localize the app and it's app store materials (screenshots, keywords, etc.) but I don't have the time at the moment. Has anyone done this before? Any advice on what to do? I want to get my app in front of as many people as possible but I don't want them to have a bad experience either. <comment><USER2> You should add it to all countries. English speakers will see that it is in English. You can localize later.</comment>


Ask HN: Is there a better way to find out if there are competitors than Googling for it? - <AUTHOR>

Hi,<p>Usually after you came out with an idea, how do you find out if there're already companies executing the same idea? Is there a better way than just Googling for it? <comment><USER2> If Google doesn't know about them, they are not a threat to you yet. Launch fast, get customers, and move fast. You'll then be the one to beat. I'm not saying you don't want to know about early stage competitors...but I've been amused to note over the years that 90% of my "new competitors" have disappeared within a year or two.

My first company actually had a company that _hired_ me to do some of their development work (it was on Open Source software, so I would get the benefits, as well...they were just paying me to do something I was going to do anyway). They had several million in VC money. They also hired my current co-founder to do UI work and some other stuff (he did contract work for me on a regular basis back then). Clearly they'd read all about what I was doing, since I was never too shy about how I was building my products and my company, and decided to spend their way into the market in direct competition with me. I let them (though I didn't let them use my name, or my company name, in any way to imply endorsement or involvement in their products). They were out of my market in less than a year, and completely dead within 24 months.

What I'm saying is that competition is rarely as scary as they seem, so don't obsess over it too much. It can make you give up on a good idea and something you're enthusiastic about before you really even know anything.

</comment><comment><USER3> If you can find at least one, spyfu.com can be pretty helpful in finishing out your list.

</comment><comment><USER4> Crunchbase.com very very helpful

<comment><USER5> I just followed your suggestion and found a competitor I didn't know about before, that hasn't launched yet. Thanks for the tip!

<comment><USER4> Yea I don't know what I would do without crunchbase

</comment></comment></comment><comment><USER6> Though for different purposes (usually just research or shopping tools), I use these Google phrases almost every day:

"better than $thing"

"like $thing"

"same as $thing"

</comment><comment><USER7> Well - I'd recommend that you use all the channels that you'd expect a prospective customer to use.

If you'd expect Google to be a main channel - then any serious (established) competitor should be represented there.

</comment><comment><USER8> You can list 3-5 general terms (keywords) that best describe your concept, and search for those keywords in Google to find anything close to your idea.</comment>


gRPC-Web is going GA - <AUTHOR> https://www.cncf.io/blog/2018/10/24/grpc-web-is-going-ga/ <comment><USER2> I'm still not sold on gRPC vs JSON/REST.

.proto offers me little over a decent development environment around JSON, and it seems to be pretty Google-specific.

I'm also wary of adopting standards that come out of Google.

<comment><USER3> disclaimer: I work for the gRPC team.

gRPC lets you use other data exchange formats or IDLs as well, such as flatbuffers. However, the protobuf codegen experience we have spent most of the time and energy on.

I see two sides to this - on one hand, there are folks who want a 'contract first' development experience, in which the service contracts are defined first, and the business logic is implemented later. gRPC lends itself to this model very well. Admittedly, this is also the way services are developed in Google.

On the other hand, there are folks who want a model whereby you evolve a service and generate the specs from that service. Currently, this is not the experience that gRPC is optimized for. Time and effort are the main barriers to making this work well alongside a contract-first experience. FWIW: I believe both models have merit and it really depends on what you want to adopt as the source of truth for how your services interact. Ideally, gRPC would be good at both.

<comment><USER4> IMO json+REST works just as well for contract first workflows. Just write up the contract in an IDL, have both sides agree on it up front, then use codegen tools to generate client SDK(s) for your client language(s) of choice. Same workflow as as with gRPC, though you're probably less likely to get generated server stubs (which you don't really need with json+REST anyways).

<comment><USER5> Could you recommend any codegen tools that generate bindings in Typescript or Go? I suppose there's some tools around swagger and various GraphQL libraries, but I'm not seeing any great options though a quick google search.

<comment><USER6> I have made negative experience with using a custom swagger-codegen [0] template - the library is quite diffuse with no clear direction in which PRs are merged and which aren't, making it a mess to read and extend. I have however, managed to generate the exact Typescript bindings I wanted using it.

In contrast, I have been using NSwag [1] to generate C# client code with far greater comfort, and it seems to support multiple Typescript clients already.

[0] [https://github.com/swagger-api/swagger- codegen](https://github.com/swagger-api/swagger-codegen) [1] [https://github.com/RSuter/NSwag](https://github.com/RSuter/NSwag)

<comment><USER7> Sorry to hear your negative experience with Swagger Codegen regarding the PRs. Having been "managing" the project for a few years, I agree with you that I've not done a very good job in reviewing and merging all the PRs (239 open PRs as of today) contributed by the awesome community.

Myself and 40+ top contributors have decided to fork Swagger Codegen so as to maintain a community-driven version called OpenAPI Generator [1] with a better governance structure to move the project forward. Now there are 10+ core team members and contributors with proper rights to merge PRs so I think we've better PR management in OpenAPI Generator. Please refer to the Q&A [2] for the reasons behind the fork.

For TypeScript generators, we've recently added the TypeScript Axios client generator [3] and there's an ongoing project to consolidate the TypeScript generators into one [4]. Please check these out and let us know if you've any feedback.

We hope you will find OpenAPI Generator useful in your projects.

[1] [https://openapi-generator.tech](https://openapi-generator.tech) [2] [https://github.com/OpenAPITools/openapi- generator/blob/maste...](https://github.com/OpenAPITools/openapi- generator/blob/master/docs/qna.md) [3] [https://twitter.com/oas_generator/status/1041939441109983232](https://twitter.com/oas_generator/status/1041939441109983232) [4] [https://github.com/OpenAPITools/openapi- generator/projects/4](https://github.com/OpenAPITools/openapi- generator/projects/4)

</comment></comment></comment></comment></comment></comment><comment><USER8> Can someone describe _why_ gRPC-Web needs a proxy?

I recently had trouble deciding between the official gRPC-Web and Improbable's gRPC-Web[1]. In the end I decided on Improbable's, because it seemed to not require a proxy. In practice, it's working very nicely.

Yet, I'm still not clear on what exactly the Proxy serves to do, in either case. If a browser supports HTTP 2, why is a proxy needed?

[1]: [https://github.com/improbable-eng/grpc- web](https://github.com/improbable-eng/grpc-web)

<comment><USER3> gRPC needs access HTTP/2 trailers, which is not supported in browsers today. This necessitates translation in a proxy of some form. It is possible to support in-process or local proxies, but instead starting with this in n languages, we are starting with a proxy, with the intention to build in- process support on languages or use cases where there is real need for it.

<comment><USER9> Note that trailers have existed since HTTP 1.1.

<comment><USER10> The answer--as I recall--from the Chromium team was that they see trailers access as a security issue. HTTP/2 multiplexes many connections and it was a security risk, they said, to allow one client process to access trailers for connections that may be used by different processes or even entirely different sites behind the same load balancer/reverse proxy/etc.

What I don't understand is _why_ gRPC was designed to depend on trailers. Web gRPC is the killer app for this technology. If they could build a new version of the protocol that doesn't rely on trailers, I would be thrilled.

<comment><USER11> I believe trailers are because you could start streaming a response and end up having an error than you need to communicate out of band. Hopefully someone has a better answer though.

<comment><USER12> I've been trying to read the HTTP2 spec and I can't figure out whether it's allowable to return or modify the HTTP(2) status code in a trailer instead of in the header.

After some re-readings, I decided it wasn't allowed.

But then, gRPC definitely needs to be able to signal an error even after it has already streamed data. So gRPC would need to use some end-of-connection message, like a trailer.

</comment></comment></comment></comment></comment></comment><comment><USER13> Can people share their experience and success stories with gRPC and/or GraphQL?

I've tried both in the past and found that APIs are rarely as static as typed API systems require. Many APIs have fields that are required conditionally based on the value of other fields. Other times the schema is dynamic and workarounds are required like stuffing things into a JSON object and making it a "string" in the API. This added a bunch of work to marshall it in and out of a custom workaround format.

In both cases (gRPC and GraphQL) we've run into so many issues that the technology was abandoned and we fell back to plain JSON REST.

<comment><USER4> Have used both, and don't like either. I actually DO like very statically typed schemas, but you can easily do this with json over REST, and using IDLs to generate SDKs.

For gRPC vs. REST, I just don't see the benefits. Performance wins of gRPC are extremely minimal for most backends, "push based" workflows can easily be handled with webhooks (or message queues), so why am I throwing out extremely mature technology (and tooling/middleware!) that every dev is very familiar with?

For GraphQL, reducing client/datacentre round trips is nice, but can also easily be achieved with RESTful "coordination" services, that serve the front end specifically, and do nothing but stringing together calls to backend services. Why force people to learn another complex technology for that? "Returning smaller payloads" makes minimal impact in practice, and GraphQL requests are MASSIVE compared to REST requests, so you often end up with a performance loss, not gain. Also, GraphQL requests are way harder to glance at in the browser, you can't just look for GET /dog/123, you have to peek into all the request bodies. And again, all the great REST middleware stops working, because you're doing RPC.

Basically I see them both as extra complexity with little payoff.

<comment><USER14> Curious to know if you would count "ecosystem" as a point towards either? Afaik there isn't a standardized way of creating statically typed schemas for REST. A standard statically typed schema like GraphQL's allows a community to create and maintain tooling around it. A person would create"[some tool] for GraphQL" instead of "[some tool] for [specific api]"

<comment><USER13> In theory, yes, but in the case of GraphQL, I found it was very difficult to generate schemas dynamically. Factoring out common fields was not possible. Common fields in schemas had to be duplicated and there was no concept of an include/mixin/extends/etc. Best technique was generating plaintext strings of GraphQL programmatically (losing any editor or type checking support). Dropping down to the AST layer of GraphQL is a bit more programmatic but not really an ideal level of abstraction to work at. It was too verbose and low level.

REST integrates well with native JS constructs (it's just data) so it's much easier to compose and use metaprogramming techniques.

</comment></comment></comment></comment><comment><USER15> What does GA mean? The article uses it a few times but doesn't define it.

<comment><USER16> I think it may be aligned with GCP terms here: [https://cloud.google.com/terms/launch- stages](https://cloud.google.com/terms/launch-stages)

General Availability (GA) GA features are open to all developers and are considered stable and fully qualified for production use.

<comment><USER3> I've taken your phrasing and addressed OP's question in the blog. Thank you. :)

</comment></comment></comment><comment><USER17> I prefer twirp's model of no http2 requirement and supports JSON. [https://github.com/twitchtv/twirp](https://github.com/twitchtv/twirp)

I do think twirp code could be refactored and made a lot better though.

<comment><USER18> If twirp had more existing backend implementations, I would certainly use it for more things.

<comment><USER19> Check out Thrift: [https://thrift.apache.org/](https://thrift.apache.org/)

</comment></comment></comment><comment><USER20> Anyone willing to share experiences using gRPC-Web vs. GraphQL?

<comment><USER21> gRPC is lightweight, highly performant, difficult to debug, difficult to detect breaking schema changes, lots of magic going on to learn compared to REST or GraphQL.

GraphQL is much heavier, easier to test and debug and has some performance optimisations like data loader and is better for multiple clients to consume. I'd say it's easier to manage schema changes but it's probably not empirical. I guess huge overheads by comparison to gRPC but I'm guessing data over the wire is a much larger piece of the pie.

Personally think GraphQL is far superior for web clients and I think gRPC for services in general can be a pretty large overhead for most teams... at least initially you are going to get things done much faster with restful services.

<comment><USER22> as someone without experience in gRPC but interested to use it, I am curious why it was difficult to detect breaking schema changes?

thanks

<comment><USER21> Because the schema is based on a numbered position rather than a field name. This means you need to never rename positions - if you want to deprecate fields you just loose the numbering. Numbers 0-15 use less space in the message than others for example.

</comment></comment></comment></comment><comment><USER23> This is all well and good but examples only ever show localhost quick projects. I'd like to see the demo game upped a bit to include some basic auth and HTTPS stuff

<comment><USER24> There is a gRPC-Web on Kubernetes example here: [https://github.com/salrashid123/grpc_web_with_gke](https://github.com/salrashid123/grpc_web_with_gke)

</comment></comment><comment><USER25> I think GraphQL makes more sense here, at least in terms of unifying backend services and presenting them to a user—aka an API gateway—but this could be a very useful way to transmit GraphQL queries and subscriptions and for sidecar services like authentication, or just very simple services.

</comment><comment><USER26> I am using the HTTP Gateway and generating OpenAPI from that for type-safe access [1]. The downside is that this introduces an additional build step in your project.

The upside is supporting a JSON API and not requiring gPRC(-Web) for clients. Even for non-browser clients, GRPC tooling can still be a little heavy-weight to pull into your project compared to OpenAPI. On the other hand, not all languages have good OpenAPI integration.

But its also quite possible to use both.

[1] [https://github.com/gogo/grpc-example](https://github.com/gogo/grpc- example)

</comment><comment><USER27> I thought this was interesting from the roadmap:

"The binary protobuf encoding format is not most CPU efficient for browser clients. Furthermore, the generated code size increases as the total protobuf definition increases.

"For Google's Web applications (e.g. gmail), we use a JSON like format which is comparable to JSON in efficiency but also very compact in both the message size and code size."

I wonder what the benchmarks look like? It seems surprising this hasn't changed with newer browser optimizations.

<comment><USER28> Proto encoding makes the unfortunate choice of more-bit variable-length numbers which are hard to decode. JavaScript engines and browser all have very well optimized decoders for the unary length-prefixed variable-length numbers (i.e. UTF-8). So you can imagine how an encoding very much like proto but with the proper style of varints can be faster.

Generated code size is a huge problem of all protobuf-supporting languages, not just js. Code size issues on Android have constrained development of the official (google) protobuf libraries in various ways over the years.

</comment></comment><comment><USER29> Anyone here knows if gRPC-Web provides performance benefits as opposed to using REST?

<comment><USER30> RethinkDB switched away from Protobufs (which underly GRPC) in favor of JSON when talking with both Python and Ruby clients because it was so much slower than using JSON. My guess is that this is still true, and even worse for JavaScript (that last is pure speculation). But I would be happy to see real benchmarks done now.

<comment><USER31> Python protocol buffers can use either a native or a C++ implementation. The latter is more than an order of magnitude faster. I'm wondering if they tried that. It doesn't solve the Ruby case, of course. Or JavaScript. gRPC can also use Flatbuffers, by the way.

</comment></comment></comment><comment><USER32> What's the advantage of gRPC-Web to someone in the .NET world that uses Typescript, and generates TS schemas from .NET POCOs ?

<comment><USER19> Protobufs (the transfer format of gRPC) include not just a schema, but a transport format that may be more efficient than a serialized POCO.

gRPC also allows you to encode communication semantics (i.e. "What does this endpoint want as arguments? What does it return?") and generate both client and server code that complies with (and automatically [de]serializes and validates protobuf data for) those semantics.

It's the difference between a schema definition and a schema definition + serialization format + _service_ (not just data) definition/codegen.

</comment></comment><comment><USER33> Has anyone gone from plain text JSON to protobuffer (over Websocket) ? How much bandwidth did you save, and was it worth it ?

</comment><comment><USER34> How does this compare to JSON-rpc or GraphQL or just using JSON to send custom messages over HTTP 1.1 or HTTP 2?

</comment><comment><USER35> Isn't this just WCF reborn? Contracts, codegen no one will use, etc

<comment><USER19> Awww, man. I _like_ WCF; wish more people would use it (and use it right).

So much of the stuff I've had to do there is untangling the work of people that fundamentally don't want what WCF provides (quick, one-size-fits-all- imperfectly prototyping with an option for greater flexibility later on), and instead want 'automatic contract enforcement, but I still get to write the client/server code from scratch the way I used to', which is a recipe for sadness.

</comment></comment><comment><USER36> [https://xkcd.com/927/](https://xkcd.com/927/)

</comment><comment><USER37> Thus ends REST.

<comment><USER36> Cue the relevant xkcd standards comic.

</comment></comment><comment><USER38> Personally I don't think that gRPC is a good step forward.

However, if the community at large moves away from REST + JSON to gRPC I'll follow.

Why?

\- I don't want to be like the guy who refuses to use anything but XML + SOAP

\- I want to be valuable on the job market. Putting gRPC may get you in the door

\- Avoid bikeshedding

Anyone who's been in the industry a few years knows that "the way" to do things changes often. Going with the flow and completing the actual job is what matters.

<comment><USER39> I found gRPC to be exciting when I was writing something in Go. The tooling around that is pretty decent and it sets a certain expectation about how it works.

Then I had to write a client in a different language, and the generated code was utterly intuitive. gRPC itself adds extensions to Protobuf to handle code- gen nuances but of course they're deployed in Go-land, not relevant-language- land.

That's a small niggle that's easily solved one way or another. What was frustrating was that the `protobuf` CLI could handle language extensions, but you couldn't make use of that without a hell of a lot of faff. If you want to add a gRPC client to your Rails app you can't use the protobuf CLI, that you might already have.... you have to add a gem that includes a different version of the protobuf CLI that is guaranteed to be not compatible. Even the command and its args aren't compatible.

When I found myself working against that I just gave up. It's a solution that sounds elegant, but you're going to get a feature out of the door much quicker if you steer away from that layer altogether. There's nothing wrong with an ad-hoc HTTP API if you're confident about the interface.

Technical purity isn't technical excellence and nor is it user value. Just like K8S, you're not gonna need RPC on the web unless you can justify the scale and have the firepower to handle it.

</comment></comment><comment><USER40> I think that if we're going to have a full blown typed RPC system, we need to at least be able to represent generics/parametric polymorphism. As far as I know, protobufs do not support this feature! Why are we settling for using a subpar interchange format when the alternative (polymorphic sum types) is so much better?

<comment><USER41> Can you give me an example where generics would be helpful? I'm not doubting you, my brain is just a little slow today and I'm struggling to think of a scenario where I feel I would NEED them for gRPC.

<comment><USER42> Option<T>.

Protobuf "supports" this particular case via other means: messages are always implicitly nullable, and the WKTs cover primitives, which don't count as messages.

Map<K, V>: Protobuf has dedicated syntax for this case.

</comment></comment></comment><comment> lost-theory It's interesting to watch Google's moves to control every part of the stack. Browser: Chrome. Frontend: Closure compiler -> obfuscated SPAs. Transport: gRPC. Backend: Proprietary Google software written in Golang. Orchestration: Kubernetes. Hosting: Google Cloud. Etc. You can imagine a future where Google services are no longer just web apps on the same footing as anything else in the web ecosystem, but where every step of the development, deployment, and end-use is managed by Google. Can't blame them for doing that, I'm sure it's more efficient, but it's definitely moving the web in a different direction, one where Google has more control at the expense of everyone else (end users, competitors).

<comment><USER43> They're not controlling anything by releasing open-source libraries/languages such as gRPC, Kubernetes and Go. Releasing these things don't give them control over anything that can negatively impact users; this is not Microsoft's embrace-and-extend.

Chrome, on the other hand, is worth worrying about. Unlike the other technologies you mention, it's a consumer application that legitimately lets Google apply Microsoft-style embrace-and-extend tactics, monopolizing the web and steering it in a direction that benefits Google more than anything (e.g. ads and tracking).

Kubernetes may have come out of Google, but it isn't even in their control anymore. If anything, Kubernetes is a strategic play to democratize cloud orchestration, undermining competitors such as AWS.

<comment> lost-theory Good points. I don't see anything wrong with these individual open source releases. See my other comments about the larger trend this represents.

"Releasing these things don't give them control over anything that negatively impacts users" and "undermining competitors such as AWS" contradict with each other if you believe competition is good for users. The decision to release something as open source doesn't happen in a vacuum. Open source doesn't automatically make corporate activity morally good or neutral.

</comment></comment></comment><comment><USER44> This is going to enable so many people to find-replace "Thrift" with "gRPC" for such an easy solution to updating legacy Slack messages, GitHub issues, and message board threads.

Updating your outrage at a stupid tool nobody should use has never been easier!</comment>


First Functioning Touchable Quantum Model: Many-Worlds For High School - <AUTHOR> http://www.science20.com/alpha_meme/first_functioning_touchable_quantum_model_manyworlds_high_school-125081 <comment><USER2> ... what?</comment>


Emails while commuting 'should count as work' - <AUTHOR> https://www.bbc.co.uk/news/education-45333270 <comment><USER2> They do to the person reading/responding.</comment>


Alternatives to popular social media platforms, websites and services - <AUTHOR> https://aschatria.github.io/alternatives-to-popular-social-media-platforms-websites-and-services/ <comment><USER2> "Facebook: Gab Until I found Gab, the Facebook was left without the alternative. I still have my Facebook and my Facebook page, and I tamper with Developers console there, but the actual social side of it died for me a long time ago. For some reason I find the Gab to be exactly what and where I want to be."

...so you're comfortable with being on a site that was founded by extreme right-wingers after Twitter kicked them off for being hatemongers? Well, have fun then.

<comment><USER3> Seems to be the endemic problem to all of these alternative social media platforms. See also reddit -> voat.

Mastadon (and the fediverse) seems to be trying to fight the nazi-flight problem. But they have their own problems that keeps it from being viable.

</comment></comment><comment><USER4> would be nice to have links to the alternatives</comment>