First time in the country, ED raids a Bitcoin seller in Ahmedabad - <AUTHOR> http://www.dnaindia.com/india/report-first-time-in-the-country-ed-raids-a-bitcoin-seller-in-ahmedabad-1941187 <comment><USER2> Oh man, here we go again. The amount of FUD in this article is absolutely shocking! The Reserve Bank of India has not declared bitcoin as illegal [1]. The article certainly does insinuate that it is:

 _A couple of days after the Reserve Bank of India issued an advisory to public not to indulge in buying-selling of Bitcoins, the first raid in India was undertaken in Ahmedabad by Enforcement Directorate (ED) on an entity that provide platform to trade in this illegal but virtual currency._

I'm 100% certain that the website in question however was in violation of several KYC and AML norms as well as money exchange regulations, so the fact that they shut it down does make sense.

It is sad more-so because the regulatory framework is extremely opaque and if I were to start a bitcoin business in India, I wouldn't know where to begin...

The RBI has done a shitty job so far of regulating the Indian Rupee. I'm an Indian and my personal savings are now worth 30% less since 2009 on a global level (USD->INR went from Rs. 43 to a dollar to Rs. 62 now..). Internal inflation is at 10% YOY and there's no practical way to protect your money. Of course, I'm not implying that bitcoin is the solution to all these issues, just saying that on a personal level I do have issues with the way the RBI has managed (mismanaged?) our currency.

[1] - [http://www.rbi.org.in/scripts/BS_PressReleaseDisplay.aspx?pr...](http://www.rbi.org.in/scripts/BS_PressReleaseDisplay.aspx?prid=30247)

<comment><USER3> RBI has mismanaged our currency?

Sorry the global crude oil prices are soaring, thanks to sanctions on India's major oil supplier(Iran). Major world economies are in a state of war since the whole past decade. None of these are under RBI or Government of India's control.

Yes there is corruption, but we are equal partners to that.

In case you haven't noticed bulk of India's import business depends on software. There is massive anti-outsourcing wave, and at the same Indian start up industry hasn't really compensated for that.

There is every reason why the government can be skeptical Bitcoin in India. We have massive tax evasion situation prevalent here. This is not a anti- technology anti-capitalism stance the government is having here. The public cheats on taxes so often, the government has 0 reasons why it should trust some thing new like Bitcoin.

<comment><USER2> You are right that the entire blame for INR depreciation does not squarely sit on the shoulders of the RBI. It is a problem with reasons that go far beyond the control of the RBI.

Yes, there is a huge current account deficit (export/import imbalance) and that is a big part of it.

However, as the agency that manages the circulation and control of the currency, ultimately I look at the RBI as the 'face' of the Indian Rupee.

That said, the government doesn't have to trust bitcoin. However, regulatory burden in India is extremely high regardless of the kind of business you want to start. India ranks poorly on several 'Ease of doing Business' indexes. [1] I'm bringing this up since you mentioned the start up industry. _It 's just not that easy to start something in India_.

Yes, tax evasion is a huge problem in India. But that's a cultural thing. The government has made it very hard to evade taxes (as long as you rely on existing banking channels) for now, but it doesn't really stop anyone. I can imagine that they are afraid that people will launder money by exchanging cash directly into bitcoin. However, why doesn't the government then go after the real estate business in India that normally takes 30%+ of the money in cash ? It is extremely hard to buy properties in resale unless you agree to pay a large percentage in cash. Oh wait, the government likes to put their black money into real estate.

For the same reason as Real Estate, I highly doubt that the Indian government will ban bitcoin or make it illegal. They have plenty of money they would like to sink into this new genius asset class. They might however make it harder for regular people to get into it.

Besides, you can always wire money to bitstamp and buy bitcoins as much as foreign exchange controls would let you.

[1] - [http://www.doingbusiness.org/rankings](http://www.doingbusiness.org/rankings)

<comment><USER4> The biggest concern they have is transactions which happen within Indian users. They will get absolutely no information about it. Although when finally someone realizes the money, it has to come to the bank, but taxes like Sales Tax/Service Tax (think chain of transactions), which are based on the transactions cannot be enforced.

<comment><USER2> But isn't that the same as selling something through OLX ?

I suppose the issue with buysellbitco.in was that it was missing some paperwork that it should have had because they were accepting people's money (INR) and selling bitcoins on a commercial scale.

I'm not sure why they said it violated foreign exchange acts though..

<comment><USER5> the statement issues by RBI earlier, said that anyone who would be found to be dealing in bitcoin, would be considered violating FEMA. As someone said above, money laundering is a big issue in India. On the financial side of things, it is very hard even for seasoned "hawala" operators to launder any money. Bitcoin is undoing that in Indian context, no matter how you see it.

And the fact the silkroad used bitcoin, doesn't help things either.

<comment><USER2>
        the statement issues by RBI earlier, said that anyone who would be found to be dealing in bitcoin, would be considered violating FEMA

Where is this statement ? I only have: [http://www.rbi.org.in/scripts/BS_PressReleaseDisplay.aspx?pr...](http://www.rbi.org.in/scripts/BS_PressReleaseDisplay.aspx?prid=30247)

Was there another statement from the RBI ?

<comment><USER5> Its there

"The absence of information of counterparties in such peer-to-peer anonymous/ pseudonymous systems could subject the users to unintentional breaches of anti-money laundering and combating the financing of terrorism (AML/CFT) laws. "

anti-money laundering = FEMA, there is no law called AML, there are two laws: FEMA & PMLA. As per the investigation, the right clauses are applied.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> I see random people confidently asserting that btc isn't illegal in India. Don't listen to them. Talk to a tax lawyer.

If you're in India, the sensible thing to do is to stay away from bitcoin. This is based on my conversations with my brother who _is_ a tax lawyer. According to him the legality of btc and the laws that govern its purchase/sale in India aren't clear at all and there is an expectation that the RBI will clarify the regulatory framework and the laws that they believe apply to btc. He also believes that RBI has historically favoured extremely conservative interpretations so they will likely shoot down btc. This is obviously not legal advice, not least because it's coming through a lossy channel (me).

<comment><USER2> This is interesting. So your brother thinks that in the near future the RBI will say that _Buying bitcoin is a crime._

Bitcoins will be the same as cocaine or .. well in India sex toys also share similar status.

I personally find it quite unlikely that a democratic country will prohibit it's citizens from transacting in something like bitcoin. But hey, crazier things have been known to happen.

However, I'd like to ask. Why preemptively assume that bitcoin will be declared illegal ?

I can understand that the RBI is conservative and they forced Paypal to create automatic bank account withdrawals, etc. Basically move everything into their system so that people cannot store huge sums of money in their Paypal accounts.

But how would they go about outlawing bitcoin ? I'm curious about the technical as well as political aspects of such an event.

I think countries like Germany and Singapore may have been the first to realize that there isn't really much you can do to 'ban' bitcoin. You just have to play ball and then come up with solutions as problems come up. A move like China wouldn't be possible in Germany (maybe in Singapore though.. yes..).

<comment><USER7> As far as I know importing/exporting any currency in India is controlled, so unless it's explicitly permitted by the regulators, buying bitcoin can be treated as smuggling currency over the border without declaring it and (IANAL) it's a crime in India.

How would they go about outlawing bitcoin? The same as cash deals, catch some of them and prosecute them harshly enough to scare others from making the practice widespread.

<comment><USER8> Well, a long-term ban on personal BitCoin usage (i.e. merely mining and sending/receiving) is unenforcable. More likely a ban would target the commercial means of acquiring BitCoin. So mining enterprises and exchanges and payment processors would be the targets of any ban just like in China with the latter two. If you make it impractical to buy or otherwise obtain BitCoins then you've as good as outlawed it, allowing only small, black market, person to person exchanges.

</comment></comment></comment></comment><comment><USER9> That DNA article has half-baked information. Here are some saner links:

[http://www.thehindu.com/business/Industry/bitcoin- exchanges-...](http://www.thehindu.com/business/Industry/bitcoin-exchanges- shut-shop-in-india/article5504407.ece)

[http://www.zdnet.com/in/bitcoin-exchanges-suspend- operations...](http://www.zdnet.com/in/bitcoin-exchanges-suspend-operations- in-india-amid-govt-warning-7000024648/)

 _> >>The central bank had, on Tuesday, issued a notice, warning the public of the risks involved with virtual currencies while claiming that it could be used for money laundering and funding anti-terrorism activities. It stopped short, however, of issuing a ban or any other restrictions._

But still, I don't know what "framework" RBI wants to bring in, to "regulate" Bitcoins. From [http://rbi.org.in/scripts/BS_PressReleaseDisplay.aspx?prid=3...](http://rbi.org.in/scripts/BS_PressReleaseDisplay.aspx?prid=30247)

 _> >>The Reserve Bank has also stated that it is presently examining the issues associated with the usage, holding and trading of VCs under the extant legal and regulatory framework of the country, including Foreign Exchange and Payment Systems laws and regulations._

<comment><USER5> The framework for bitcoin, is under consideration. until a proper system is thought out, and formed. Bitcoin would retain its current status.

</comment></comment><comment><USER10> So, can anybody clearly tell/explain me this ? 1\. Is holding BitCoin is legal/illegal in India ? 2\. What about those who bought crypto from these raided exchanges ? 3\. What if now I directly transfer BitCoin to a friend in USA as a gift. Is it legal after RBI Circular ? 4\. What is Foreign Exchange Management Act, and is it a violation of FEMA if somebody buys BitCoins and stores it with them ?

Sorry for asking questions in comments, but I'm a worried as hell :(

</comment><comment><USER4> I feel sorry for this guy.

I've bought bitcoins from him in the past and I think he was doing a good job, at least for ensuring that his services are not used for money laundering.

ID and address verification documents were needed and a copy of the PAN Card was also taken.

Since all payments are made via bank accounts, It won't be difficult for ED to list out the bitcoin traders even if they were not collecting this information. I wonder how the website's users would be impacted.

<comment><USER5> he is not arrested, he is under investigation. As you said, he documented all things, than, if there are no descrepencies, he would be allowed to function normally.

<comment><USER11> Do you honestly believe that's how things work in India?

</comment></comment></comment><comment><USER12> What about those in India who traded using localbitcoins.com? Is there any possibility that they too can get into legal trouble or affected in some other way?

<comment><USER4> I don't see anyone getting into trouble, as long as the money which you used to purchase bitcoins from them was not already stained.

Of course, people who bought using these sites might have the ED Scanner go over them, but again, nothing to worry unless you have undeclared assets or anything otherwise illegal.

Indians can still do a wire transfer to MTGox and purchase bitcoins.

<comment><USER13> I would not recommend mtgox, which is known about its delays with withdrawals, and has higher prices than other exchanges. Check out bitstamp, btc-e etc.

<comment><USER14> Mt. Gox's prices and delays tend to be specific to the US. I haven't heard of Mt. Gox troubles elsewhere.

</comment></comment></comment></comment><comment><USER5> So the question is, would Bitcoin or any other online currency, accept the removal of anonymity, in order to stay legal.

Legally, I do not know what law says, but logically, no country would accept such exchanges, unless they communicate the details of bitcoin exchanges, for tax purposes.

As for paypal, though first part of their failure was due to RBI restrictions, they could have made a solution around it. There problem is more related their UI/UX now, nothing else.

I would stand by RBI on this, regardless of what anyone thinks. Bitcoin, might be satisfactory enough for most tech savvy people, but for a average farmer, whose interest must be protected by RBI (as its duty), won't trust it.

the author uses the word "opaque" in that sense. Have you ever tried to explain, how bitcoin stores money to a average Indian?

<comment><USER15> There's a common view that the anonymity of Bitcoin is a design goal, instead of it being a design artifact. Making a non-anonymous currency is extremely difficult, not least because the notion of "identity" is hard to define in a decentralized manner.

Given that addresses exist and can be used to sign messages, Bitcoins are, to a significant extent, less anonymous than cash, which is already widely used.

<comment><USER16> This conversation is so fucking bizarre. Repeat after me: bitcoin is not anonymous. If anonymity _was_ a design goal (and it should have been, because otherwise you don't actually have _money_ ), it didn't even attempt to address this goal.

<comment><USER17> > If anonymity _was_ a design goal (and it should have been, because otherwise > you don't actually have _money_ )

Wait, what?

</comment></comment></comment></comment><comment><USER18> To alleviate poverty, each state in India should have separate currency. [http://www.lietaer.com/2010/03/the-worgl- experiment/](http://www.lietaer.com/2010/03/the-worgl-experiment/)

</comment><comment><USER19> They raided him even though everything was through banks and already recorded, and you had to provide ID. His problem is he didn't bribe the right people I guess and they decided to steal his money.</comment>


I Hate Pull Requests - <AUTHOR> https://email@example.com/i-hate-pull-requests-17836dd3cc38 <comment><USER2> We all do.

<comment> yjftsjthsd-h I like PRs; they let me easily solicit feedback without risking impacting master (or other "shared" branches). I could tay, "how do you feel about this change?", but it's so much easier to say, "I propose this exact diff, what do you think?". Now, caveat: I'm in a distributed team that's already async and operates nearly like a FOSS project, so even OP seems to accept that PRs might suit us.</comment></comment>


Ask HN: Measuring the Aesthetic Quality of a Set of Colors? - <AUTHOR>

For a side project I would like to automatically determine the aesthetic quality of a set of colors. I was wondering if there are metrics by which I could measure it.
For instance if I had these two 'color schemes':

  http://beta.dailycolorscheme.com/archive/2006/09/20
  http://beta.dailycolorscheme.com/archive/2006/09/19
 could I objectively (for some value of objective) tell which one is 'better'? The only metrics I found on the net so far seem to be rather ad-hoc measurements of how well the set of colors is 'analogic' or 'complementary'. Since I want to write a program to make the measurements, a more structured apporach would help me.
Do you have any pointers or ideas for this problem, HN? Thank you! <comment><USER2> This is going to be a little more technical than I'd like, but it should be concrete enough to implement on a computer.

So, start with the color sphere: a unit sphere, and each point in the volume represents a color. Around the equater is arranged the hues, roygbiv. Moving north or south changes value, by adding white or black, respectively. Moving inwards toward the north-south axis reduces saturation; the exact center of the sphere is a perfectly neutral 50% gray.

Traditionally a set of colors is supposed to be 'harmonious' together if, when one constructs a polyhedron inside the color sphere, with each vertex being one of the chosen colors, the polytope formed has it's center of balance at the center of the sphere.

That is a 'designer' set of colors --- emotionally flat but visually pleasing. Emotional content is added by moving the centroid off center, charging the whole color set with a color 'cast'.

This definition, of course, fails when monochromatic schemes are chosen, but monochromatic schemes are almost always highly emotional unless a suitable accent color is chosen (usually a complementary, so as to move the COB to the center of the sphere).

For more information, read Itten, Keely, Albers, &c.

<comment><USER3> How can we know if this method of choosing colours results in colours 'aesthetically better' than, say, generating rgb values by flipping a coin?

<comment><USER2> Re: gray. Yes. I didn't say it was a medium gray, I said it was a neutral gray (neither warm nor cool). But you're absolutely right, this model is merely an approximation of perceptual color. You could instead build a complicated manifold representing perceptual color space, and define a criterion for a cloud of points in that manifold that resulted in pleasing colors, but it would be a lot more work than using the sphere, and you'd not gain that much, I don't think.

Re: how do we know? Well, mostly this system is based on the work of a number of thinkers, starting with Goethe and running through Munsell, Itten, Kandinsky, and a bunch of others, who spent a great deal of time putting colored squares next to each other. They discovered physiological effects of color, like simultaneous contrast. They attempted to learn about psychological effects of color. They admitted that, while some color combinations are attractive only to individuals, there were other sets that seem to have universal appeal. One of the things that those universal combinations had in common was that they centered themselves on the color wheel.

We know, more or less, by science. It is a largely empirical question (put some colors together, see if people like it). You can repeat the experiments yourself, if you like --- you asked 'how can we know'? Either take their word, or try it yourself.

And finally, in reply to the my use of the word 'emotional' --- if I were to say that colors whose center of balance is far from the center axis of the sphere are more surprising, and less comfortable, is that acceptable? I don't mean to say that red and green don't evoke different emotions than yellow and purple --- but they are both comfortable, obvious, familiar combinations; while, say, magenta and brown is less comfortable and takes more work to accept.

<comment><USER3> Less by science, then.

It seems like a particular combination of colours, say a particular red and green, may be a comfortable, obvious, familiar combination right now, in a specific culture - but 100 years ago may have been shocking and outrageous. And, who knows, in 100 hundred years may again be 'less comfortable'.

Goethe, Munsell, Itten, Albers, Kandinsky may have spent a great deal of time putting coloured squares next to each other, but none of them ever conducted anything like an objective scientific study on the 'aesthetic quality' of a palette. Goethe's theory was based heavily on the work of Aristotle. Munsell's views on aesthetics seemed laughably conservative at the time, let alone now. Neither Albers or Kandinsky, ever put foward a 'theory' for evaluating harmonious colours. Albers said that each colour 'goes' equally well with any other colour. Itten & Kandinsky were obsessed by the occult 'meanings' of colours. Certainly they were genius colourists.. but scientists?

<comment><USER2> Absolutely true. They were all mystics and goofballs. But I'm not justifying the mysticism. I never mentioned 'blond types' and 'black types', I didn't touch on the 'passion' of red, or the 'purity' of white.

I'm talking about the bits that seem to have held up after 100 years. The bits these men found from observation, rather than mysticism. This is, more or less, the method taught to design and art students today. You can see it in paintings from around the world, and going back hundreds of years. Simultaneous contrast exists and is physiological, not cultural. The vibration of complements is build into our visual system, too.

Saying that these people had some bad ideas doesn't make all their ideas wrong. We all have head about Newton's alchemy --- but we praise him for calculus and optics nevertheless. Kepler had his Harmonices Mundi, but we still can call him a scientist; because sometimes he was.

And if someone comes along and makes color theory even more scientific, that would be great! I would be overjoyed, because so much of what's been written about it is absolute bunk. However, at the moment, this is the best answer to the question I can give; and I think it works pretty well when compared to randomness.

</comment></comment></comment></comment></comment><comment><USER4> First you need to understand the domain, then you can automate it:

<http://en.wikipedia.org/wiki/Color_theory>

Another challenge is what is it you want to achieve? Do you want people to say "ah, nice", or do you want them to "react" (click something for instance). Those two may be mutually exclusive in some instances, as generations of neon signage, "sales" banners and similar are living proof of.

</comment><comment><USER5> <http://colorschemedesigner.com> lets you choose a main color and then generates a color scheme based on semi-objective criteria.

</comment><comment><USER6> Hi there.

It's been quite a few years for me since I took color theory in college for my art degree. I think that you can automate color compliments with 2, 3, 4, or x colors by using "vectors" to compute the opposite hues... cutting the HSV model in halves for two colors, thirds for three, etc.

To get to the aesthetics, you'll have to use voting or surveys, and the reason is somewhat straightforward. Here are a few resons (not all):

The appeal of colors change over time with fashion and trends. In the US, mint green and canary yellow in the 1930s, white and cherry red in the 1940s, the list goes on for consumer goods and their colors. Think of vintage goods and their colors. Pantone produces color forecasts and tweaks their colors over time to reflect tastes.

Cultural differences. Color symbolism plays a large role - after all part of a designer's skill is selecting the right color for the specific context of an assignment. White for mourning in Asia != white for a wedding. One thought is that the region or location may be significant in the aesthetic judgment. If I remember correctly, the ArthurAnderson logo was orange because it was a color that could be used globally without negative meaning.

One last note, which comes from my training in a modernist driven school, is the form and the function of a design in black and while should be rock solid and work before adding color and the complexity... I think this was taught so that the novice students we were would learn the basics of typography, form, and balance before getting into colors.

As to the aesthetics: You can use the voting model like colorlovers (I hope that older votes are when tracking current color trends), use A/B testing if you are a web designer, or fall back to a company like Pantone to help you find current trends. Someone like google might be able to tie click paths to color schemes ... in other words data mine to establish what is a trend.

</comment><comment><USER7> Unfortuantely aethetics are subjective - the best you can do is some machine- learning to recreate a "subjective" mind. As you've discovered, some combinations can be ruled out immediately on objective grounds, but deciding why one set of colours is "better" than another when they have similar properties is something that is not objectively understood. Even more difficult, the context in which you use the colours affects their "aesthetic quality".

<comment><USER8> This is very true - despite phrases like 'colour theory' aesthetic quality is not a matter of fact. Colour choices are not only subjective they are also highly context-dependent. You can completely transform the appearance of a set of colours by adding an accent in another and colour choices that are great for one purpose may be hopeless for another.

</comment></comment><comment><USER9> There is an existence proof "for some value of objective": Your and my own subjective tastes are also an objective determinant. With enough data from people, one might find some function over the domain of colour that yields pleasing combinations.

I'd suggest you put your candidates up on <http://www.colourlovers.com/> and have them vote.

</comment><comment><USER10> Aesthetics is a silly metric. We evolved color combination reactions to find food, like fruits in a forest, or to find healthy mates.

Every situation is different. A color palette like on kuler or colorlovers doesn't represent the real environment those colors will be found in. It doesn't include amounts, gradations and lighting, all things our brains evolved to process. For example we need to compensate for changes in lighting on a forest with fruits, because we'll be there at different times of day.

You could develop an objective aesthetic rating for a domain like picking fruits, based on what time of day should you pick a fruit to get the best taste, nutritional content.

Giving arbitrary ratings to color palettes has already been done on kuler and by color theorists, but when the reasons behind the ratings are not understood, you might as well use a neural net to replicate those ratings, using the palettes and ratings as training data. Black box either way.

</comment><comment><USER11> I learned a lot with "Interaction of Color" [http://www.amazon.com/Interaction-Color-Expanded-Josef- Alber...](http://www.amazon.com/Interaction-Color-Expanded-Josef- Albers/dp/0300115954/ref=sr_1_1?ie=UTF8&s=books&qid=1273418129&sr=8-1)

</comment><comment><USER12> Color Theory for Designers: [http://www.smashingmagazine.com/2010/01/28/color- theory-for-...](http://www.smashingmagazine.com/2010/01/28/color-theory-for- designers-part-1-the-meaning-of-color/)

</comment><comment><USER13> Make a site that "learns" by asking designers.

Or just make a site that claims to, and then you have somewhere you can post your color schemes every time you need to test one.

<comment><USER14> You might be able to scrape color + ratings data from sites that offer downloadable themes / editor color schemes / etc. Or why not, a dataset of fine art paintings.</comment></comment>


Machine Converts Plastic Back into Oil - <AUTHOR> http://www.youtube.com/watch?v=R-Lg_kvLaAM

<comment><USER2> The nice things about this are:

a) From what I know, re-melting down plastic only works so many times till you hit a quality barrier, this can make use of the plastic that _that_ process can't use.

b) This can make use of trash that otherwise would not have been recycled. It seems pretty agnostic about what plastics it accepts which is good, but on the other hand it also makes me wonder about byproducts in the oil and if or how they are extracted / disposed of.

Of course, at this point the price of waste plastic is cheap but it seems like if this caught on, then the oil suppliers would raise their prices for the raw plastic manufacturers, who would then have to raise prices for bottles and such, which in turn would probably lead to bottled drinks costing more. Which might even incentivize people to buy less of things with plastic packaging!

This price increase doesn't really apply much for the ton of existing plastic waste that we already have though, which can be obtained cheap, converted back to oil, then sold. All in all, this sounds great!

<comment><USER3> It looks like it distils the oil which would mean that it is purified. It also would mean that the machine needs to cleaned regularly.

<comment><USER2> Distillation isn't magic. It works because different materials have different boiling points. When it's salt and water it's really easy since the boiling points are totally different but when it's something like this we're talking about hundreds to thousands of possible compounds all in the same mixture (also, there might be different compounds each time because of the different materials), melted up together. I doubt it's purified.

</comment></comment></comment><comment><USER4> Where's the catch? Energy efficiency? Patents?

Someone please fill me in why this is not-as-great-as-it-seems (or is it?)

<comment><USER5> Possibly the cost of energy to heat the plastic. But at some point that cost is mitigated by the environmental benefit. Many could argue that that point happened some time ago.

The cynic might point to destabilising the oil cartels and the general world economy underpinned by oil.

Funny you bring up patents. It's seems we already live in world fearful of the darn things.

Still, great video, and kudos to the folk who developed it. I really like the fact that the thing is so small and easily portable; killer feature.

<comment><USER4> I wonder if it being small is a problem. Converting some plastic to some oil is pretty nice, but does it scale? I have no idea

<comment><USER6> From the description of the video: "The Japanese company Blest has developed _one of the smallest_ and safest oil-to-plastic conversion machines out _on the market today_."

The first hit on Google for "Plastic to Oil" is <http://www.polymerenergy.com/>

They say: "System capacity can range from 200 tons to 400 tons of plastic wastes processed per month. Overall plant capacity can be easily scaled up by adding additional modules."

</comment></comment></comment></comment><comment><USER7> The real gain that I could see from this is that we could have a device like this in every home, similar to a waste disposal unit. Then, if the refinary tech is small and safe enough, we could create our own fuels (for vehicles or generators as the video suggested). That way we'd cut down dramatically on the CO2 footprint of fuelling these devices.

<comment><USER8> Processing plastic into oil just to burn oil as fuel is fundamentally still wasteful, because of all the great things you can do with oil (produce more plastics, for instance) you're still _burning it for fuel_. The presence of this technology might seem to turn useless plastic waste into useful fuel, but on the contrary--if you can turn plastic back into oil, and then back into plastic over and over again, the long term value of oil for making plastics is even greater, and so is the potential loss of burning this reusable, recyclable resource as fuel.

<comment><USER9> I got a kick out of this.

Being able to turn oil to plastic and back, that is true recycling...instead of converting plastic bottles into Old Navy fleeces (decycling).

</comment></comment></comment><comment><USER10> I wonder how much energy is need to create the oil vs. how much energy is then contained in the oil.

I'd assume that the net energy gain is positive, but it would be interesting if they said how positive.

<comment><USER6> It's efficiency is ~85%, according to the Wikipedia.

<http://en.wikipedia.org/wiki/Thermal_depolymerization>

</comment></comment><comment><USER11> Pretty sure this is Blest company's site: [http://translate.google.com/translate?hl=en&sl=ja&u=...](http://translate.google.com/translate?hl=en&sl=ja&u=http://www.blest.co.jp/&ei=xzBxTNOFG4e2sAOq9an8DA&sa=X&oi=translate&ct=result&resnum=1&ved=0CBYQ7gEwAA&prev=/search%3Fq%3Dblest.co.jp%26hl%3Den%26client%3Dsafari%26rls%3Den)

</comment><comment><USER12> Throw as much as you can into our magnificently superabundant landfills today. Future generations will thank you for it. The current recycling craze with today's tech is wasteful and harmful to the environment.

</comment><comment><USER13> Doesn't Envion do something like this? <http://www.envion.com/evp_envionoilgenerator.html>

<comment><USER14> It seems Environ is making a large-scale system whereas the system in the video is small-scale. As a small-scale system, it's a business opportunity for an individual in a developing country with lots of plastic waste - they could apply for a loan from Kiva to get started.</comment></comment>


Hilma af Klint: Painting the Beyond - <AUTHOR> https://www.nybooks.com/articles/2019/04/04/hilma-af-klint-painting-beyond/ <comment><USER2> The show at the Guggenheim was great; I would highly recommend it if you're near Manhattan. I particularly enjoyed her late watercolors.</comment>


A mighty torrent of news! - <AUTHOR> http://www.scripting.com/stories/2007/10/19/aMightyTorrentOfNews.html

<comment><USER2> Are we seeing a glimpse of what the NYT will be at decades end?

And what will we call this decade? The turn of the century, I guess.</comment>


Relativistic hash tables - <AUTHOR> http://lwn.net/SubscriberLink/612021/92c8ccb5b82d4d90/ <comment><USER2> I wrote the paper and dissertation this work was based on, and I'm happy to answer any questions people might have.

(Really awesome to see a production implementation of this.)

<comment><USER3> The application of a causally consistent model for hash table operations is brilliant; treating CPUs and memory as a "traditional" distributed system is brilliant.

I know I said it twice already, but: brilliant.

Reading your dissertation now.

<comment><USER4> I basically think of a single computer as a distributed system now. In other words, it's not a Turing machine / state machine any more; it's a network of such things.

Once you have multiple CPUs, you can't avoid concurrency, and message passing and immutability become common themes. The strategy for many years was to naively add locks to traditional stateful algorithms and mutable data structures, but this often leads to bad performance (and unpredictable performance)

There is an elaborate backward compatible illusion presented by the architecture, C, and most languages built on top of C. Internal busses and caches are not exposed to you as a programmer, but they are there and affect performance. But if you think of your app from the OS perspective rather than the language perspective, the distributed model becomes more clear and natural.

</comment></comment></comment><comment><USER5> In case people find it interesting, this is very similar to how one efficiently builds a search engine for high QPS and update rate (lockless realtime document index), though that example is slightly more involved than a hash map.

The basic premise is that the entry point to your data structure (or internal pointers) can change over time. You don't dismantle older entry points/pointers until all older readers release, though you don't have to wait for all concurrent readers to exit.

<comment><USER6> I'd be interested in learning more about this.

<comment><USER5> Oof, this may take a much longer blog post, but here is the very high level basic view.

The basic construction on one doc-sharded server looks like: 1) Maximum valid local_docid 2) A map of local_docid => state (valid, deleted) 3) A map of token_id (indexed term) => map of local_docids to positions in doc.

On document update, you increment the next local docid. You then rip through the doc and extract the tokens. For each token, you insert the docid,position into map (3). Then you add the document to map (2) with state "valid", and finally increment (1).

On query, you first copy (1), then do the typical AND/OR retrieval over (3). Any docids seen higher than (1) are ignored, and any docs retrieved are then filtered by (2).

In this model, (1) is a volatile memory access. (2) and (3) are very similar to this "relativistic hash map".

Deletions are complicated, and usually you filter out invalid docids from (3) as a background compaction process.

</comment></comment></comment><comment><USER7> Maybe I'm daft, but the growing and shrinking explained looks like how you'd do it for any hash table, is that not how a normal one works? Do normal hash tables "freeze the world" to change tables or something?

Looks to me like an "RCU grace period" (not sure what this is, sleep maybe?) is introduced to allow concurrent threads time to "finish reads" in between pointer changes.

<comment><USER2> With a normal hash table, you'd acquire either a table-wide lock or every per- bucket lock before resizing the table. With this algorithm, readers can continue to run concurrently with the resize, and the concurrent resize will never cause a reader to incorrectly fail to find a hash element.

<comment><USER8> This issue arises even in completely single-threaded programs that have hash tables. Suppose you're iterating over a hash, hitting a callback function for each element which has access to the hash and inserts new elements. During the callback, new elements could be inserted which trigger a growth. If you allow the hash table reorganization, then it has to be reconciled with the in- progress traversal, so that it doesn't miss some elements, or visit some elements more than once.

<comment><USER9> I think if you insert an element during iteration, it is unpredictable whether said element will be visited during the iteration or not, so it is probably a bad idea even if you wont have a resize.

<comment><USER10> It's a bad idea if you don't have a well-defined mode of operation; for example, you're fine if the hash table uses copy-on-write semantics.

</comment></comment></comment></comment></comment><comment><USER11> Forgive me if this is stupid, but this could work for implement a concurrent VM?

<comment><USER2> Yes, that's exactly the kind of program you might want to use this for.

</comment></comment><comment><USER12> Could someone explain all of the grounds?

<comment><USER13> Null next pointers?

<comment><USER14> Or 0x00000001 next pointers, if it's using a hlist_nulls. See [http://lwn.net/Articles/609904/](http://lwn.net/Articles/609904/)</comment></comment></comment>


Linux marketshare hits 1% (according to this site) - <AUTHOR> http://marketshare.hitslink.com/os-market-share.aspx?qprid=9

<comment><USER2> I wonder how much of that is because of netbooks.

<comment><USER3> It's certainly a factor. The just reported seven-fold rise in netbook sales this quarter certainly put a lot more Linux machines on the field. I don't know how many, though. I just ordered a Dell Mini 9 (it was $50 when purchased with the Latitude E6500 that I was already ordering), but it's got Windows XP on it from the factory. I'll certainly be reinstalling it with Fedora or Ubuntu the day it arrives, though (likewise the Latitude).</comment></comment>


Facebook with slowing growth in Asia. Is Facebook slowly running out of steam? - <AUTHOR> http://www.greyreview.com/2011/07/01/facebook-in-asia-more-than-150-million-users-but-slowing-growth-in-quarter-2-2011/ <comment><USER2> I think it was to be expected in Asia, with China blocking them, but the real surprise was that people are _quitting_ it in its core market: North America. And that was even before Google+ was announced. The launch of Google+ will only accelerate the exodus, because I believe there are a lot of Facebook early adopters who got tired of it, and they couldn't wait to move on to the next big thing. Unfortunately, until Google+ there was no such thing.

</comment><comment><USER3> Not sure where there is really the news. With a limited number of humans and a percentage of social media users of X% of human population, this needs to slow. The slowing down seems to come early, but only because FB is such a huge success.</comment>


Ask HN: How to build a Facebook-like newsfeed? - <AUTHOR> I was just discussing with a friend how to build a newsfeed like Facebook, Twitter et al that (seems to) take into account what you are interested in but also what is popular among users you are connected to.
Do you know any pointers on where to start may it be books, articles, tech talks, research papers or insights (e.g. related to user experience, weighing, …).
Any pointers more than welcome. <comment><USER2> This SO covers a lot of what you will need:

> What's the best manner of implementing a social activity stream?

[https://stackoverflow.com/questions/202198/whats-the-best- ma...](https://stackoverflow.com/questions/202198/whats-the-best-manner-of- implementing-a-social-activity-stream)

[https://buffer.com/library/facebook-news-feed- algorithm](https://buffer.com/library/facebook-news-feed-algorithm)

A simple SQL example would be this:

[https://stackoverflow.com/questions/31030818/mysql-query- for...](https://stackoverflow.com/questions/31030818/mysql-query-for-creating- a-facebook-like-newsfeed)

<comment><AUTHOR> thank you for the pointers</comment></comment>


Nature by Ralph Waldo Emerson - <AUTHOR> http://oregonstate.edu/instruct/phl302/texts/emerson/nature-emerson-a.html#Introduction

<comment><AUTHOR> "A man's power to connect his thought with its proper symbol, and so to utter it, depends on the simplicity of his character, that is, upon his love of truth, and his desire to communicate it without loss."

I think this sentence and those that follow are very insightful, when it comes to communicating our ideas.</comment>


Show HN: Router7 – A pure-Go implementation of a small home internet router - <AUTHOR> https://github.com/rtr7/router7 <comment><USER2> I want to look into adding support for sniffing and forwarding the 802.1x packets that the AT&T fiber modem/gateways use to authenticate. This is done to bypass the crappy performance and insecurity of their device. There are some hacky implementations of this but I want to do it in Go. I've gotten as far as sniffing the packets using gopacket under FreeBSD. Unfortunately, FreeBSD doesn't seem to support VLAN 0 so I was unable to implement this for PFSense. Perhaps router7 would be a better option for me.

<comment><USER3> This is a functional implementation of that behavior in Go:

[https://github.com/mjonuschat/eap_parrot](https://github.com/mjonuschat/eap_parrot)

<comment><AUTHOR> Neat!

In case anyone wants to use this on router7, where CGO_ENABLED=0, you'd need something like [https://github.com/google/gopacket/pull/470](https://github.com/google/gopacket/pull/470)

</comment></comment></comment><comment><AUTHOR> Author here. Happy to answer any questions you might have :)

<comment> init-as Where would a person even begin to learn how to do something like this? I'm a programmer but wouldn't even know where to start on a project like this.

<comment><AUTHOR> There are a bunch of tutorials out there on how to build your own router based on Linux or one of the BSDs. I'd recommend such a tutorial as a good starting point for a top-down view.

The lower-level is very visible through Wireshark, with which you can capture all network traffic.

Does that help?

</comment></comment></comment><comment><USER4> One of the owners of Netgate, the main company behind pfSense here...

Looks great! I'm impressed.

I'm actually about to be out of touch for a week, so I've cloned the code for Router7 to read while I'm offline.

<comment><USER2> For those unfamiliar with Netgate, they make fantastic little appliances for DIY routers (in addition to the commercial pfSense offerings). They're a great option if you are looking for an alternative to PC Engines. I don't have any affiliation with them, other than having run their 8-port model at home for the last two years without any issues.

<comment><USER5> Netgate is far, far more expensive than PC Engines (do you see anything near $100 or 100 EUR here? [1] No, you don't). It isn't even remotely in the same league. An 8 port model at home is overkill, and expensive. You're better off using a switch plus an appliance.

If we're casually mentioning alternatives to PC Engines (who provide, AFAIK, the cheapest solution and are using Coreboot):

[https://opnsense.org/about/about-opnsense/](https://opnsense.org/about/about- opnsense/) developed & supported by Deciso BV. Still supports x86-32, unlike pfSense. Their official hardware is also expensive though, just like Netgate.

If you want a cheap PC Engines alternative running Linux I can recommend Ubiquiti gear instead. The entry level products are cheap (ER-L, for example, has 3 ports and costs ~100 EUR), and the Unifi products are user-friendly, while the EdgeMAX allow more freedom/control at the price of user- friendliness. Although it isn't DIY like the other solutions, that could be an advantage. But if you're going the DIY route anyway, PC Engines gives the best bang for the buck _unless_ you _need_ 4G modem support.

[1] [https://store.netgate.com/](https://store.netgate.com/)

<comment><USER6> Appears the SG-1000 is $149. Only 2 GBe ports (WAN, LAN), but as you say, you can use a swtich.

<comment><USER5> Yeah, that's the cheapest device available. If you only need 2 ports, the apu2c0 is only $99 w/o case (~$10 for the case) [1]. An espressobin (w/o peripherals) goes for $50. EdgeRouter X (1 WAN, 4 LAN ports) goes for 50 EUR here, with SFP module it goes for 75 EUR. Those are competitive prices. Netgate's cheapest device is expensive by comparison. Doesn't say anything about the quality though!

[1] [https://www.pcengines.ch/newshop.php?c=4](https://www.pcengines.ch/newshop.php?c=4)

<comment><USER7> These are full x86 machines that can handle a much different workload than an EdgeRouter X.

Try and do any kind of meaningful traffic shaping, firewalling, with an ERX. Or, just make some configuration change which knocks traffic handling out of silicon and into the CPU: you'll quickly see where the extra money would've been nice.

My only serious complaint about pfSense is that BSD only has single-threaded PPPoE, which really does not work well at anything approaching gigabit speeds.

<comment><USER5> > These are full x86 machines that can handle a much different workload than > an EdgeRouter X.

These are x86-64 (AMD64) machines, running a 64-bit fork of FreeBSD. pfSense doesn't run on x86-32 anymore (even though x86-32 works perfectly fine as router). The argument is that its "ancient" hardware; yet here we are discussing single-threaded PPPoE...

EdgeRouter X is a bit weak, sure (though it also does not use a lot of power), EdgeRouter Lite (which I got) is already much better performance, sports a MIPS64 and more RAM.

> [..] you'll quickly see where the extra money would've been nice.

If I'd want the highest performance + bang of buck + got the time to maintain (including the hardware) I'd go for PC Engines plus OPNsense _or_ Router-7. But I don't want to put a lot of effort/time in maintaining my home router.

I'm positive we'll have loads of fun with RISV-V routers in the near future. If not the big corps, perhaps smaller ones. Amazon also appears to have plans to sell switches with AWS support.

There's also MicroTik/RouterOS.

<comment><USER7> For the record: I run RouterOS in ESXi on a Supermicro SYS-5018D-FN8T (1U, Xeon D1518).

Mikrotik hardware suffers the same problems as Ubiquiti (and most other manufacturers): it's very easy to lose gigabit routing performance with even the most basic of home firewall rulesets.

<comment><USER5> I got no throughput issues with my Ubiquiti hardware whatsoever as long as I keep using hardware offloading. Which doesn't work with bridging. Either way I use a DMZ on the third port of my ER-L on which I run a WAP for guests which I (or they) fire up when they're here. Latency is very low on these MIPS machines.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> Stupid question: why is all the code marked "Copyright 2018 Google Inc."?

<comment><AUTHOR> Have a look at [https://opensource.google.com/docs/releasing/](https://opensource.google.com/docs/releasing/) for details.

<comment><USER9> In California when you work at your time on your equipment you own copyright on the project.

<comment><USER10> In the US you only think so

<comment><USER9> It's written in my current offer and refers CA Labor Code 2870. I missed that author is in Switzerland.

<comment><USER10> From what I understand the burden of proof in Lab. Code, § 2872. falls on the employee. If they work on some code in their "spare" time and that code contains a license with the word "Google" in it it would seem the license is a first attempt to establish the burden of proof as opposed to the freedoms one might enjoy writing under the Expat or GPL, for example.

</comment></comment></comment></comment></comment></comment><comment><USER11> Any chance for split horizon dns? The ability to perma-name all my home computers is something I've always wanted in a home router.

<comment><AUTHOR> [https://godoc.org/github.com/rtr7/router7/cmd/dnsd](https://godoc.org/github.com/rtr7/router7/cmd/dnsd) already resolves computer names from DHCP leases. Is that what you mean? If no, can you elaborate on what the use-case is?

Edit: forgot to mention, you can use static leases, too, permanently assigning an IP/hostname to a MAC address: just remove the expiration field in /perm/dhcp4d/leases.json :)

<comment><USER2> Here's a use case that I am currently doing at home:

I have a live weather station [1] that pulls data from a Go-based service that I wrote and run on a server on my home network. When I'm outside of the house, mhkweather.com resolves to a Digital Ocean IP, where I run a proxy to forward requests back to home IP. However, when I'm at home, mhkweather.com resolves to a local 10.x.x.x IP and goes straight the the local service, no proxy. It faster this way. I want to be able to set DNS overrides for local things. I can do this with unbound but it would be nice if dnsd could do this for me.

[1] [https://mhkweather.com](https://mhkweather.com)

<comment><AUTHOR> Thanks for elaborating.

For the time being, you'd need to modify dnsd to install your custom handler. It should be as simple as adding another server.mux.HandleFunc call in internal/dns/dns.go.

If this turns out to be a feature which many people would like, I'll think about how to best structure the code to make this easier.

</comment></comment></comment></comment><comment><USER12> @secure: Are you using netfilter or nftables for the firewall / NAT services?

<comment><USER8> nftables

[https://github.com/rtr7/router7/blob/master/cmd/netconfigd/n...](https://github.com/rtr7/router7/blob/master/cmd/netconfigd/netconfigd.go)

<comment><USER13> So can you tell me what you think of nft? Details if you feel like it please. I'm a sysadmin type who has stared at way too much iptables and decided to start going full nftables. I haven't hit any showstopper yet but I figure it would be worth asking someone who has dealt with its complexities. I've been putting off Bpf because it feels like actual programming in yet another language. Did you try that?

One last comment, you might check out Dragonfly BSDs network stack if you haven't yet for ideas, the last benchmarks I ran were surprising.

To anyone listening, does Bpf enable us to get past the 10gbs dma issues on a Linux router?

</comment></comment></comment><comment><USER14> This is super exciting as I've had this on my "hobby to do list" for a while... now I don't have to do it! :)

</comment><comment><USER15> I am currently reading some source codes on tap-based IP/TCP stack and Babel. I have not wrapped my head around some of the concepts because I need to first understand some RFCs . I would be reading your code base soon, but can one fire it up to work on Raspberry Pi3 ? And can it work with something that is not fibre ?

<comment><AUTHOR> You can fire it up on a Raspberry Pi 3, yes. That's how I started developing it, to be sure the architecture works before I spend the effort of porting gokrazy to the apu2c4 :)

It can work with any ISP (not just fiber7) as long as you have an ethernet interface and the ISP uses DHCPv4 and DHCPv6 for configuration. If that's not the case, you'd need to develop e.g. PPPoE support yourself.

<comment><USER16> Do you have some docs wrt Pi3 setup (or - there's no "setup" other than installing Router7?)

<comment><AUTHOR> Unfortunately there are no docs, as the Raspberry Pi is not an actively used platform for router7 (I switched to the apu2 after prototyping).

That said, your guess is likely correct, this gokr-packer invocation should do the trick:

gokr-packer \ -hostname=router7 \ -overwrite=/dev/sdb \ -gokrazy_pkgs=github.com/gokrazy/gokrazy/cmd/ntp \ github.com/rtr7/router7/cmd/...

But note that you might need to rebuild [https://github.com/gokrazy/kernel](https://github.com/gokrazy/kernel) with some additional kernel options from [https://github.com/rtr7/kernel](https://github.com/rtr7/kernel), plus options for whichever USB ethernet adapter you're going to use.

Note that you won't have automated recovery (rtr7-recover), as that uses PXE boot, which Raspberry Pi's don't do by default (and rtr7-recovery-init has some hard-coded values which won't work on the Raspberry Pi, at least not when using an SD card for storage).

</comment></comment></comment></comment><comment><USER17> Nice work.

I would consider a router software stack, systems level coding.

</comment><comment><USER10> Go is cool and all. But what's the point of buried cable when one can get 50Mbps for $5 to $10 a month on 4G in Indonesia?

<comment><AUTHOR> 1 Gbps >> 50 Mbps, and I enjoy the faster speeds.

Also, 4G is a shared medium, so I prefer my dedicated 1 Gbps line. We should handle internet load on dedicated lines where possible, so that the shared medium keeps working well for people who have no other choice.</comment></comment>


Can anyone learn to code? - <AUTHOR>

Hey HN, do you believe everyone can learn to code or  are some people just not cut out to be programmers?<p>I would appreciate your thoughts. <comment><USER2> Programming requires a certain kind of thinking about things and methods of approaching problems. As with anything there are people who are inherently inclined to think about things in this way, but i do believe that anyone has the ability to learn the skills to be at least a half decent programmer.

Learning to break down a problem into smaller pieces, recognizing different situations in which something can occur, and being able to determine steps to accomplish a goal are some of the main components of programming and are used be most people on a daily basis to varying levels of success.

Now this being said there are a lot of fairly abstract concepts that need to be understood in order to be able to produce clean, scalable code that would be needed at most mid to high end companies. These concepts can be very dense for people to understand as there often are no good real world comparisons for them, and so these can prevent someone from becoming a highly skilled programmer.

So can anyone learn to program? For sure. Can anyone learn to program to the level required for a lot of jobs now a days? Probably not.

</comment><comment><USER3> From what I have observed in myself and others, I suspect coding is something that anyone can learn to do. Some people may be particularly predisposed, but for others, effort can go a very long way to compensate. A lot of programming knowledge can be built up in small steps, and I don't think there is any innate pre-requisite for being able to make these steps.

</comment><comment><USER4> I compare it to trying to learn a musical instrument: \- most people can learn to some degree \- hard work and dedication can compensate for a lack of ability \- for those of little talent, their end-point ability will always be very limited \- the truly talented can make mastery of their instrument look truly supernatural

As not all people should be musicians professionally, not all people should be programmers professionally. It's hard to put my finger on it, but in both cases some people just don't 'get it'.

Of course, if you are talking about having fun on your own - writing apps or making music - or 'jamming' code or music with your friends - you can do whatever you like.

<comment><USER5> how do you define "talent"? what is that "talent" thing you mention? where does it come from?

I'm asking because I don't believe in talent, I believe in practice (and everything you need to practice a lot – stuff like dedication and perseverance).

That being said, sometimes I'd love to believe in that concept called "talent", because "I've got no talent for music" would be such a comfortable excuse.

<comment><USER6> Clearly "talent" in programming has a tie-in to things like IQ and memory. While I appreciate the musical instrument analogy, it breaks down on these two elements specifically. I know guys who are "not smart" yet they are amazing jazz musicians - true leaders of the world in that regard. These are guys with probably a sub-85 IQ. Could be they programmers? No, not a chance. They don't have the mental capacity.

So "talented programmers" and "talented musicians" have a different type of talent. Both are simply luck of the draw at birth - if you were born smart and with a high IQ, you can accomplish both (music and programming by practice). If you were born with a sub-85 IQ, I don't think you have the option to become a "programmer" unless there is some other element at work (amazing memory, ability to focus, or something else).

</comment></comment></comment><comment><USER7> I volunteer as a tutor in a community college computer lab. I've seen people of all ages, intelligence levels and computer proficiency learn to program. In C, which isn't exactly the kindest language for beginners.

I've seen 50-60 year old men without college degrees, guys who work in construction, HVAC repair, physical jobs, learn C. I've taught them how to cut and paste, because they didn't know how. They hunt and peck, and they take awhile to. But they learn.

If they can do it, pretty much anybody can.

</comment><comment><USER8> Some people just don't make the cut, I believe the number isn't small of who can, but it isn't that large either

</comment><comment><AUTHOR> Thanks so far to everyone who answered. Some great answers here!

</comment><comment><USER5> not an answer, but a comment here:

your question suggests that somebody who can learn to code can be a programmer; I don't think that's the case.

</comment><comment><USER9> maybe not in every language, but most people can find a language whose logic fits their own.</comment>


Basic Income and Blockchain Courts - <AUTHOR> http://www.bloombergview.com/articles/2016-05-05/basic-income-and-blockchain-courts <comment><USER2> I don't know what cohesive point this article is trying to make. The writing is all over the place, jumping from one pop-finance idea to the next without exploring any of them in the depth they deserve. I've seen plenty of great pieces on both blockchain and basic income, but this isn't one of them.

The direction of the article deteriorates over time. The last section is an incoherent, unfocused mass of linkspam to Buzzfeed-quality stories. While I'm sure there are some great SEO reasons for Bloomberg View to do it this way, I think we're worse off as readers for it.

No upvote. Levine's work is arguably off-topic, and certainly not the quality I expect on HN.

<comment><USER3> It's not trying to make a cohesive point; it's a collection of short, unrelated posts bundled together. Many of Matt Levine's posts [0] are in this style, including his most recent post [1].

[0] [http://www.bloomberg.com/view/contributors/ARbTQlRLRjE/matth...](http://www.bloomberg.com/view/contributors/ARbTQlRLRjE/matthew- s-levine) [1] [http://www.bloomberg.com/view/articles/2016-05-06/hedge- fund...](http://www.bloomberg.com/view/articles/2016-05-06/hedge-funds-and- trump-treasuries)

</comment></comment><comment><USER4> Instead of a basic income, we could have Universal Jobs where anyone could make $X an hour in a government jobs center computing hashes by hand for a welfare cryptocurrency.

Roll the dice, use your government-approved paper to calculate the hash, and claim your prize if you're the first winner. Prizes and difficulty are designed to statistically provide a target $/hour.

<comment><USER5> Why do that when a computer could?

<comment><USER4> Because then rich capital-holders could buy up all the computing power and take control of all the welfare money. Chinese millionaires would end up taking money from needy Americans.

Using this system, we ensure that no single capital-holder controls too much mining power over the currency. Every working man is judged on his merits, using a system that is hard for any one actor to parallelize or scale. So many many distinct actors work to secure the underlying currency, and it is safer against large banks or governments.

<comment><USER5> Except that if I tell you I have "a million people" in my secret facility manually hashing and in reality there's a single GPU crunching, I'd still make more. How would you audit this?

</comment></comment></comment></comment><comment><USER6> Basic income is okay but it's missing non monetary rewards and education. Basic income needs to be tied to a system where users learn more about their natural behaviors and become incentivized to self improve in the ABSENCE of the government.

This can be done with libertarian paternalism/nudge theory concepts.

<comment><USER7> Why not pay a basic income to students for passing tests?

<comment><USER8> It would result in funneling government resources through gullible or cynical citizens into the test prep industry. Only a depressingly small portion would go towards actual education.

</comment></comment></comment><comment><USER9> Is blockchain doing anything other than keeping hacky fintech "journalists" employed?</comment>


New Audio Codec - <AUTHOR> http://listening-tests.hydrogenaudio.org/igorc/Public%20Multiformat%20Listening%20Test%20@%2064kbps.htm Greetings,
There has been significant advancement since the last 64kbps test. The Nero HE-AAC and Aoyumi Vorbis encoders improved, Apple added HE-AAC capability, and we have a new low delay codec with high quality: CELT.
http://listening-tests.hydrogenaudio.org/igorc/Public%20Multiformat%20Listening%20Test%20@%2064kbps.htm
The following codecs are presented in this test: Nero 1.5.4 HE-AAC Apple QuickTime 7.6.9 HE-AAC Ogg Vorbis AoTuV 6.02 Beta CELT 0.11.2
Even the single result is helpful. <comment><AUTHOR> Greetings

There has been significant advancement since the last 64kbps test. The Nero HE-AAC and Aoyumi Vorbis encoders improved, Apple added HE-AAC capability, and we have a new low delay codec with high quality: CELT.h

ttp://listening- tests.hydrogenaudio.org/igorc/Public%20Multiformat%20Listening%20Test%20@%2064kbps.htm
The following codecs are presented in this test:

Nero 1.5.4 HE-AAC Apple QuickTime 7.6.9 HE-AAC Ogg Vorbis AoTuV 6.02 Beta CELT 0.11.2

Even the single result is helpful.

Have fun!!!

</comment><comment><AUTHOR> [http://listening- tests.hydrogenaudio.org/igorc/Public%20Mult...](http://listening- tests.hydrogenaudio.org/igorc/Public%20Multiformat%20Listening%20Test%20@%2064kbps.htm)

you can get all_samples.zip from [http://listening- tests.hydrogenaudio.org/igorc/all_samples.z...](http://listening- tests.hydrogenaudio.org/igorc/all_samples.zip)

</comment><comment><AUTHOR> If someone doesn't want to download separate packages there is All-In-One package (ABC-HR and all samples) It should be more easy.

[http://listening-tests.hydrogenaudio.org/igorc/ABC- HR_bin_an...](http://listening-tests.hydrogenaudio.org/igorc/ABC- HR_bin_and_samples.zip)

</comment><comment><USER2> Why are the samples individually compressed in the package? Too much hassle to uncompress them on Windows. There should be a single package containing the software and the samples, and I should be able to run the test with a single click.</comment>


About Adobe's Flash Player Not Having Access to H.264 HW Acceleration on OSX - <AUTHOR> http://daringfireball.net/2010/02/flash_hardware_acceleration <comment><USER2> The facts that Flash performs just as poorly on Linux as on OS X, and _far_ worse on a fast PowerPC (youtube is painfully choppy on a G5 Quad) than a slow x86 (youtube is tolerable on an Atom) suggest explanations that differ from the Adobe party line.

<comment><USER3> In my experience flash under Linux was much worse than OS X. One of the main reasons I switched to OS X was to make flex development less painful.

<comment><USER2> The overall experience is worse on Linux, with sound issues and on 64-bit Linux, clickable areas that don't line up with the visible controls. I was just talking about CPU usage.

</comment></comment></comment><comment><USER4> Goddamnit, why do people keep taking Adobe's statements at face value -- shipping versions of Flash on Windows aren't hardware accelerated either!

The Windows Flash 10.1 plugin has been in public beta for less than 6 months, and only accelerates video decoding on minority hardware. A few percent of their install base has it, tops. Flash on Windows has decoded H.264 video at unaccelerated libavcodec speeds just fine without it going back to Flash 9 in 2007, and H.263 going back to Flash 6 in 2002. Neither of those codecs works nearly as well on OS X or Linux.

They're pushing this angle because it makes them out to be the heroes -- see the passive-aggressive spiel you get when you visit the Flash page on an iPhone -- they'd love to frame everything as "if only Apple would let us". Unfortunately it's not true in the slightest.

</comment><comment><USER5> Adobe ignored OS X for years and is now finding themselves in a position where they're losing a hold on Flash as the 'standard' for online video. Rather than fixing the technical issues they're focused on marketing. The last 3 years of iPhone sales have proven that people can live without Flash. All Apple has to do now is continue to ignore them and hold their ground while Flash slowly fades away.

<comment><USER6> Actually they are fixing Flash, although that doesn't excuse Doing It Wrong for all those years.

<http://www.kaourantin.net/2010/02/core-animation.html>

<comment><USER7> Yes, I think this is a little to late for them. It seems to me that they went along with something like "Apple has too little market share so it's not so relevant to us".

In the meanwhile Apple become relevant increasing its computer market share with the Mac, conquering the third place in the smartphone market with the iPhone and creating a device (the iPad) that is targeted to a big new audience and in my opinion will take a big share on of the pie (also considering that this is the "multimedia" pie, one very relevant to Adobe).

But in all these years they pissed of Steve Jobs, and he is the wrong person to have as an enemy when you will depend more and more on Apple platforms.

</comment></comment></comment><comment><USER8> _"Lastly, does anyone really think it would be a good idea for web content plugins to have direct access to graphics card hardware?"_ As if there's no secure way to allow it access? Of course there is, and it should have that access if it means the difference between being able to stream video from the web well or not.

I'm not clicking links to anymore of this guy's posts. He's the very definition of a mouthpiece. Nearly every post of his are bad rationalizations for Apple's policies.

<comment><USER9> > _Of course there is, and it should have that access if it means the > difference between being able to stream video from the web well or not._

Evidence seems to be strongly indicating that it is not necessary, unless you're Adobe and you need someone to blame for years of neglect.

Also, as pointed out all over the place, it hardly amounts to an excuse for everything else that Flash does that isn't related to h.264.

> _Nearly every post of his are bad rationalizations for Apple's policies._

Hard to argue that a browser plugin should have direct GPU access when it clearly doesn't need it.

Also note that Gruber is an Apple pundit and obviously a fan of the company, but he has also been very critical of them in areas (eg, App Store policies).

<comment><USER10> > Hard to argue that a browser plugin should have direct GPU access when it > clearly doesn't need it.

Straw man. Flash doesn't need direct GPU access, just access to video decoding APIs that are accelerated.

</comment></comment></comment><comment><USER11> I subscribe that at least part of the 'problem' is Adobe's (previously Macromedia's) attention to the Mac. Flash has always been subpar, and I'm not alone in that the majority of apps that crash Flash is the root problem. If Adobe would step up their game it would probably go a long way, but they may have already blown their chance. Jobs does not like that Safari crashes unexpectedly, especially cause the layman user doesn't realize it was really the Flash plugin.

<comment><USER12> Adobe's inattention to the Mac extends far beyond flash.

All their applications now basically use a cross-platform UI that mocks both Mac OS and Windows conventions, and defines their own bizarre little world. (Flash is just more of the same.)

Their Mac updater software is a Byzantine nightmare.

I could go on. Just read some of the irate Mac users' commentary on John Nack's blog at <http://blogs.adobe.com/jnack/> .

</comment></comment><comment><USER13> _Should Flash Player be a kernel extension, so that it can ensure it gets plenty of CPU cycles and have direct access to whatever hardware it wants?_

Yes, that way developers code for the proprietary platform Flash, and Apple joins all the other PC manufacturers in making commodity hardware with little differentiation except styling.

</comment><comment><USER14> I'd love to see someone come up with actual facts around this Flash on Mac issue. There seems to be somewhat of a shortage of facts. Gruber has mostly hearsay (although he is very convincing with that).

We'd need to do real benchmarking for various sorts of flash content. What about poorly written ActionScript in the SWF? Does it matter when you are running multiple instances of the player, etc.

These ongoing political speculations are entertaining, but they are getting us nowhere.

<comment><USER6> As posted twice in this thread already: <http://www.kaourantin.net/2010/02/core-animation.html>

They're currently burning a lot of cycles just drawing to the screen.

<comment><USER14> Yep, that is already quite interesting. He doesn't say how this compares to the situation on windows (and linux). Nevertheless - this is already far more substantial.

</comment></comment></comment><comment><USER15> If Adobe wants access to h264 acceleration, use the QuickTime libraries.

In fact, why isn't Adobe using QTKit? Why are they rolling out their own appalling h264 implementation?

<comment><USER6> Adobe claims there's a mismatch between QTKit and Flash Player's rendering model, so using QTKit would either introduce _more_ overhead or require a re- architecture of Flash Player.

<comment><USER16> How does Perian handle it?

<comment><USER17> Perian is just a set of decoders for QuickTime, not a full video player pipeline.

<comment><USER18> Yes. Perian mostly includes ffmpeg decoders that plug into the OS X Component Manager.

</comment></comment></comment></comment></comment><comment><USER19> I don't see how the fact that other developers aren't complaining is proof that hardware acceleration is not useful. There is a full spectrum of how much access you allow browser plugins and client-side code to features of the underlying OS and hardware. Apple has chosen a relatively conservative point along that spectrum, Microsoft chose a more aggressive one (ActiveX). There is an obvious tradeoff between capabilities/performance and security. Google, with its Native Client sandbox, static analysis tools, etc. is attempting to get the performance of ActiveX with the security of more stringent sandboxes. This is an extraordinarily difficult problem, and Apple is justified in not wanting to deal with it. However, they are not justified in saying they're not leaving performance on the table.

Adobe should be able to improve H.264 decode performance without HW acceleration, but it is unclear what the upper bound is on performance when running inside the browser sandbox. Certainly it can do no better than a native app.

EDIT: wmf is probably right; though there is no browser-specific sandbox that prevents third-party browsers from allowing plugins access to underlying OS APIs, such an API for HW-accelerated video decoding doesn't exist. It's unclear to me if acceleration is just not supported by the driver at all, or if the capability is only exposed via a private API, reserving it for first- party apps like Quicktime. Certainly many of the GPUs included in Apple products support hardware acceleration, so it seems to be primarily a software issue.

<comment><USER6> I don't think OS X has any browser plugin sandbox. The issue is not that browser plugins are denied access to the H.264 API for security reasons; _there is no public H.264 API_.

Edit: There is a private H.264 API that is used by QuickTime.

</comment></comment><comment><USER20> _Apple's own QuickTime on Snow Leopard only makes use of H.264 hardware acceleration with a single graphics card: the Nvidia 9400M. If you don't have that graphics card in your Mac, you don't get H.264 hardware acceleration, period._

Seems very surprising if H264 hardware accel is not also supported by the 9600M GT (which is an upgrade on some models of the MBP).

<comment><USER21> Those MBPs have a 9600 in addition to the 9400.

<comment><USER20> Right -- but as far as I know, switching between the 9400 and 9600 requires logging out. Seems strange if you'd actually see _worse_ H264 performance using the 9600 than the 9400.

<comment><USER22> The 9400 is still active when the 9600 is; you can use both at the same with with OpenCL for instance.

And I'd imagine that there's only one video decode ASIC between the two of them, no need to uselessly duplicate hardware.

<comment><USER20> Interesting. Thanks for the info!

</comment></comment></comment></comment></comment><comment><USER23> >Lastly, does anyone really think it would be a good idea for web content plugins to have direct access to graphics card hardware?

Well, since moving all applications 'into the cloud' seems to be all the rage these days, it's inevitable that browsers expose deeper functionality of the underlying operating system. So, no, its not that unreasonable to expect it.

</comment><comment><USER24> This is off-topic, but, why does Gruber ends his posts with open ended questions when there's no way of leaving comments?

Sites like CopyBlogger always suggest that ending a post with a question or two is a way to make sure that people will feel compelled to comment. What's the reason here?

Is he (ab)using sites like HN as his comment system? Or is this a new form of linkbait?

<comment><USER9> It was a rhetorical question.

<comment><USER24> I don't think so. Aren't rhetorical questions devices intended to reinforce a point whose nobody shoukd answer? Do we even need an answer regarding the access of a plugin to the hardware card?

See? that's a rhetorical question. Or isn't it?

</comment></comment></comment><comment><USER25> Is there some reason adobe can't use OpenCL to accelerate video decoding?

</comment><comment><USER26> What is mildly amusing is that Gnash has had H.264 HW acceleration available for months.

[http://www.phoronix.com/scan.php?page=news_item&px=NzU1M...](http://www.phoronix.com/scan.php?page=news_item&px=NzU1MA)

[http://www.splitted- desktop.com/static/en/pdf/actu/Linux_wit...](http://www.splitted- desktop.com/static/en/pdf/actu/Linux_with_Gnash.pdf)

</comment><comment><USER27> IMHO, Adobe should definitely act more responsible and finetune Flash Player to perform better across all platforms.

But i disagree with John Gruber.

#1) Flash is not "slower" on Mac . It uses up too much resources compared to its Windows edition. I switch between Windows(work) and Mac (personal) all the time and i have never seen anything Flash playing "slower" on mac.Flash makes use of GPU access (if required) not just for video playback. I assume Adobe's excuse for resource hungriness is , 'too much time marketing'?

#2) As <http://www.apple.com/quicktime/guide/hd/recommendations.html> suggests, without a card you are going to experience crappy playback for HD video on Quicktime,Flash plugin and everything.

#3)John is comparing native desktop video playback tools to a plugin that lives inside a browser.

Lastly.. read staunch's comment.

Why doesnt John have comments enabled in his blog?

<comment><USER28> > _Flash is not "slower" on Mac . It uses up too much resources compared to > its Windows edition. I switch between Windows(work) and Mac (personal) all > the time and i have never seen anything Flash playing "slower" on mac._

I think you'll find that, with regards to computer software "slower" and "uses more resources" are generally interchangable; it's a trade-off. And "slower" can be quite obviously observed when a "uses more resources" app hits a resource limit. For instance, there are flash games (not videos -- _games_) which are so choppy as to be unplayable on my dual core 2.5GHz MBP -- because it uses too much of "more resources," and runs out of cpu cycles.

<comment><USER27> "slower" means "choppy" and is not interchangeable with "use more resources" as you suggests. I have never seen any flash content that runs choppy on my 2 GHz Macbook. Post an example and back up your claim.

</comment></comment></comment><comment><USER29> Such constant extreme unfounded evangelism for Apple is making it very difficult to extract any true insight from John Gruber's "articles".

</comment><comment><USER30> IDEA: why not get Adobe's perspective before hitting "Publish"? Two views are better than rants.

<comment><USER30> Oh that's right. This is better as a one-sided topic...</comment></comment>