JSFuck – Write any JavaScript with 6 Characters: []()!+ - <AUTHOR> http://www.jsfuck.com/ <comment><USER2> I saw a very cool security talk a few years ago about how you can use the browser to do all kinds of evil things (did you know that the Same Origin Policy does not prevent you from making the request, but just seeing the response? And even then, you can guess at what kind of response you got).

One of the great points in the talk was JS obfuscation. Now, there are many techniques for doing this, but I really like this one as it just looks cool. Since you can translate most functional JS into ASCII, you simply encode every character into a binary coding using spaces for 0 and tabs for 1. Then you write a very simple converter + put an eval() around it, and viola, you are running arbitrary code. To a casual observer it would look like you have delivered a mostly empty file, while in fact you are delivering perfectly valid JS. Not unbreakable, but certainly fun.

<comment><USER3> I am worried about the file size.

<comment><USER2> Don't worry about it? :)

Realistically, how big is your exploit? 30KB? So it'll be 30*7 = 210 KB (JS is actually 7 bit ASCII). That's plenty of code to do something malicious. Nothing is preventing you from minifying the code before converting it to this whitespace encoding.

I suppose you could make your encoding include other whitespace chars, like newlines, carriage returns, etc. Then you could use base 4 instead of base 2.

</comment></comment></comment><comment><USER4> Currently, there is only 5 characters in the HN headline: "[]()+". Maybe a mod removed the "!" because they thought it was being used for emphasis. It could be placed before the "+".

<comment><USER5> A human would have probably noticed the "6 characters" part. I bet this was done automatically.

</comment></comment><comment><USER6> That's a pretty awesome hack of JS's (rather insane) semantics. It's probably worth understanding at least the primative examples though if you're a JS programmer, because this actually happens sometimes to expressions you write.

For a little bit of insight into why []+[] === '', for example, check this out: [http://www.2ality.com/2012/01/object-plus- object.html](http://www.2ality.com/2012/01/object-plus-object.html)

</comment><comment><USER7> I was interested in how this might be shrunk to something more reasonable... I got this far before getting bored: [http://pastie.org/8324713](http://pastie.org/8324713)

That code, run as-is in your browser, should alert 'hi'.

It's constructed with the intent of replacing the variables a-e and various named parameters with short sequences in the given character set that can be cast to strings. For legibility, I shortened many of the encodable sequences to strings (such as []["slice"])

The table holds 5^3 characters, which is 125; you could start the loop at 2 instead of 0 to get 2-127 as target characters, or use 6 input arguments. The 5 I chose were ![], [], +[], +{}, ~[] -- this should let you encode anything after overhead at a ratio of 12:1 with high repetition that gzip can take advantage of. This could be awful, I don't know; but maybe somebody will find this interesting.

</comment><comment><USER8> Here's an article [0] explaining more about how this works from the author of Hieroglyphy.

[0] - [http://patriciopalladino.com/blog/2012/08/09/non- alphanumeri...](http://patriciopalladino.com/blog/2012/08/09/non-alphanumeric- javascript.html)

</comment><comment><USER9> I put in alert('hello') and it worked. That's awesome. But how? I searched the code it made and didn't see 'hello.' I understand the stuff below, how it uses JS's weird properties to the basic types... but how does it encode characters?

<comment><USER10> Try it letter by letter.

For instance, to get the string "a":

        (![]+[])[+[[+!+[]]]]

Take the first part, `(![]+[])`. `![]` evaluates to `false`. Then `+[]` coerces false into a string, so the expression is `"false"`.

The rest of the expression (more complicated) evaluates to `[[1]]`, which will grab the `"a"` from `"false"`. Now why there is the extra surrounding brackets, I'm not sure, because `[1]` would have worked as well.

<comment><USER11> It looks like the generator is suboptimal, but still really cool.

(![]+[])[+!+[]] evaluates to "a" as well. It looks like it turns it into an array twice.

It goes +!+[] === 1 then [+!+[]] === [1] then +[[+!+[]]] === 1 then [+[[+!+[]]]] === [1]

<comment><USER10> Ah! You're right. Confusing.

Also confusing that "false"[[1]] works.

</comment></comment></comment></comment><comment><USER12> While funny looking, what is the ingenuity behind it?

<comment><USER13> Many people here on HN never took compsci in school, so strictly speaking it's just a translator - [http://en.wikipedia.org/wiki/Translator_(computing)](http://en.wikipedia.org/wiki/Translator_\(computing\)) .

It's more a showoff of a js idiosyncrasy - they found an ugly looking subset of characters that is Turing complete and wrote a translator to it.

If you're new to the concept of Turing tarpits, then this should blow your mind. On the other hand, this is a sufficiently advanced bit of CS thinking that no future employer should question the author's basic competency. _I_ certainly have never written a translator.

<comment><USER6> I'm not sure it's a translator by that definition. The input and output are legal Javascript. It's moreso a demonstration of a functionally complete subset of the language.

You can get all the primitive values by taking advantage of unary plus, binary +, empty arrays, array dereferencing, function calls, and the standard strings returned by some basic expressions. The numbers are straightforward. The strings are dereferenced with numbers to get some individual letters. You can get methods by using array dereference on objects with strings. You get the rest of the letters with btoa and atob. Then you get eval, and you're off to the races!

I'm sure, but I think the encoder just goes token by token, eval'ing string conversions to get identifiers. You'll notice that for pretty simple expressions you get absurdly long strings out.

<comment><USER13> >I'm not sure it's a translator by that definition. The input and output are legal Javascript. It's moreso a demonstration of a functionally complete subset of the language.

Well, okay, so it's still strictly speaking javascript but if we consider the functionally complete subset to be our 'target' language we end up in the same place, methinks :).

</comment></comment></comment></comment><comment><USER14> "JSFuck is an esoteric and educational programming style"

How exactly is this educational?

<comment><USER15> I took the 'educational' to mean 'this should never be used in a real application' :)

<comment><USER14> If someone cogitates to use this for real... it shouldn't be doing it anything at all.

</comment></comment></comment><comment><USER16> How are the performance impacts?

<comment><USER17> Huge.

Tested a simple "for" loop: [http://jsperf.com/jsfuck-perf- testa](http://jsperf.com/jsfuck-perf-testa)

Vanilla I got 225k ops/sec. JSFuck, 4.5 ops/sec.

So about 50000 times slower.

</comment></comment><comment><USER18> This is interestingly reminiscent of swearjure[1], clojure without alphanumerics. The IRC log in that post is very enlightening to see how the idea evolved into something absolutely frightening. I would like to see the history of JSFuck.

1\. [http://hypirion.com/musings/swearjure](http://hypirion.com/musings/swearjure)

</comment><comment><USER19> meh. i prefer Acme::EyeDrops

[http://search.cpan.org/dist/Acme- EyeDrops/lib/Acme/EyeDrops....](http://search.cpan.org/dist/Acme- EyeDrops/lib/Acme/EyeDrops.pm)

[http://www.99-bottles-of-beer.net/language- perl-737.html](http://www.99-bottles-of-beer.net/language-perl-737.html)

</comment><comment><USER20> I don't think this was written with the output size of the code much in mind. In one example, there was: [+[[!+[]+!+[]]]]

Which breaks down to: [!+[]+!+[]] === [2] +[[!+[]+!+[]]] === 2 [+[[!+[]+!+[]]]] === [2] //again

So I think there might be quite a bit of scope for compression even within the parameters it's built in.

Highly impressive, in any case.

</comment><comment><USER21> Here are two more javascript encoders that are useful for getting around filters:

[http://utf-8.jp/public/jjencode.html](http://utf-8.jp/public/jjencode.html) [http://utf-8.jp/public/aaencode.html](http://utf-8.jp/public/aaencode.html)

</comment><comment><USER22> This is quite funny. I learned about JSFuck in 2012 when I took some of my fellow students to a JavaScript meetup in Hamburg. JSFuck has since developed to be a kind of running gag among the students at our computer science department when it comes to things with a high WTF factor.

</comment><comment><USER23> IE 10 gives me "alertr1(" clicking on the "run this" link (eval source deactivated). But interesting nevertheless!

</comment><comment><USER24> This 'code' reminds me of the gobbledy-gook exchanged between the supercomputers in _Colossus - The Forbin Project_.

</comment><comment><USER25> I dont get it :/ if it says: 1 => +!+[]

Then why does it still translate to 1128 characters? :/

<comment><USER26> Uncheck "Eval source".

</comment></comment><comment><USER27> Seems like it would be interesting to use as a cheap form of JS obfuscation.

<comment><USER28> Even 'alert(1)' produces over 500 chars. Imagine running a proper app trough this. It's hardly cheap.

<comment><USER16> It's probably easier (and much smaller) to put all js in a file, convert it to a data-URI and add it into the html.

<comment><USER28> That isn't obsfucation though.

<comment><USER16> I don't know if the stuff mentioned here isn't reversable. I never tried it (just with images), wouldn't this not just show a big blob in the HTML file?

</comment></comment></comment></comment></comment><comment><USER29> Here's a quick explanation:

      > []
      []
      > +[]
      0
      > !+[]
      true
      > +!+[]
      1

Lesson: + as a prepend coerces things into numbers

      > 123
      123
      > 123+[]
      "123"
      > ![]
      false
      > ![]+[]
      "false"

Lesson: + as an infix operator between incompatible types coerces everything into strings

      > Function("alert(123)")
      function anonymous() {
      alert(123)
      }
      > Function("alert(123)")()
      [alerts 123]

Lesson: the Function object can be called with a string to make a function that evaluates that string

      > [].constructor
      function Array() { [native code] }
      > ({}).constructor
      function Object() { [native code] }
      > (function(){}).constructor
      function Function() { [native code] }
      > (function(){}).constructor("alert(123)")()
      [alerts 123]

Lesson: the constructor property returns the type of an object, and this gives you access to the Function object

      > [].filter.constructor
      function Function() { [native code] }
      > []["filter"]["constructor"]
      function Function() { [native code] }

Lesson: an array's "filter" method is a function and has Function as its constructor. Well, duh.

      > [][[]]
      undefined
      > [][[]]+[]
      "undefined"
      > !![]+[]
      "true"
      > ![]+[]
      "false"
      > (!![]+[])[1]
      "r"
      > (!![]+[])[+!+[]]
      "r"

Lesson: we now have the letters adefilnrstu, so we can construct []["filter"].

      > [].filter+[]
      "function filter() { [native code] }"
      > ({})+[]
      "[object Object]"

Lesson: we now have acdefijlnrstuv, so we can write []["filter"]["constructor"] and thus call our pseudo-eval on anything we can make as well.

      > Function("return console")()+[]
      "[object Console]"
      > Function("")+[]
      "function anonymous() {

      }"
      > 0["constructor"]+[]
      "function Number() { [native code] }"
      > '0'["constructor"]+[]
      "function String() { [native code] }"
      > Function("return assert")()+[]
      "function assert(condition, opt_message) {
        'use strict';
        if (!condition) {
          var msg = 'Assertion failed';
          if (opt_message)
            msg = msg + ': ' + opt_message;
          throw new Error(msg);
        }
      }"

Lesson: we now have all the letters we need to make ""["constructor"]["fromCharCode"].

      > String.fromCharCode(74)
      'J'

Lesson: Enjoy the rest of the alphabet. We can now construct arbitrary programs and eval them.

</comment><comment><USER30> How long will it take till we see a decompiler? :D

<comment><USER31> Essentially it just builds a new function of a given body text, then eval's it. You could easily check out that source code before eval'ing with a log statement.

</comment></comment><comment><USER32> That's ridiculous. Gotta give you props....

</comment><comment> vezzy-fnord The woe that is Atwood's Law.

</comment><comment><USER33> IMPORTANT QUESTION:

Why aren't the six special characters defined as follows?

      fuck()

<comment><USER34> Because that would not be a Turing-complete subset of JavaScript, and this is.

</comment></comment><comment><USER35> Brainfuck flavor

</comment><comment><USER36> ihihihih... neat how it deals with gzip?

<comment><USER23> I just tried it with ZIP format using WinRAR. "alert(1)" encoded and zipped ("best" compression) is 216 bytes vs. "alert(1)" zipped is 162 bytes.

<comment><USER30> and unzipped it's 8 bytes ... ;)</comment></comment></comment>


Lesson from Old India: When an Economy Just Doesn't Get Better - <AUTHOR> http://www.nytimes.com/2014/08/24/upshot/lesson-from-old-india-when-an-economy-just-doesnt-get-better.html?hpw&rref=upshot&action=click&pgtype=Homepage&version=HpHedThumbWell&module=well-region&region=bottom-well&WT.nav=bottom-well&abt=0002&abg=0 <comment><USER2> I haven't read the paper and probably won't get to it until after the weekend. So I'd be interested in getting a summary of their main claims.

But I do know a little about this subject and my understanding is:

(a) the essential claim is right that living standards in India declined in the 19th century.

(b) I believe this was largely caused by British interference and mismanagement. One egregious and well known example of this is the salt tax which made it more or less illegal for Indians to mine salt in India. This eventually was the catalyst for Gandhi's salt march.

Another example is the British East India company raising land taxes from 10% to 60% during the great bengal famine of the 1770s. The famine caused the death of about 30% of the population of Bengal.

(c) Art, culture and handicrafts were a big part of the Indian economy in the pre-British era. These were primarily supported by the kings and queens of the era. The British had no interest or use for Indian arts and culture and they got rid of most of this. And most of these people fell into subsistence farming with the obvious repercussions on the rest of the economy.

In general, most colonized countries had this terrible scenario where the rulers could set economic policies that had no repercussion on them personally. So they focused primarily on extracting as much wealth as possible with no regard whatsoever for the consequences of these policies because _there were no consequences to bad governance by the colonizers_. And it was precisely these policies which led to most colonized economies falling into mostly subsistence farming and the inevitable economic decline. I think the figures for India are something like 40% of the population doing agriculture before the arrival of the British ending up in about 70% of the economy being just agriculture a hundred or so years later.

I think talk about the lack of industrialization is a big smokescreen. Lots of developed countries industrialized really late - Russia, Japan, Korea, even Germany to some extent. The difference between these countries and India is not late industrialization but colonization. Because colonization systematically drained the country of both material wealth (i.e., capital) and technology (subsistence farming doesn't leave you with much time for educational accomplishments).

<comment><USER3> Might the deindustrialization of the United States have similar causes? Bad governance by stateless corporate colonizers?

<comment><USER4> I'm certain that it does; the argument is whether it is "bad" in a global sense. (It's bad for the US in the short term, and in the long term, we're all dead.)

The US got very good at producing food, and the result is low farm employment, low food prices, and too many monocultures and high-intensity operations that trade a few years of profits against long-term fertility. Corporations have few incentives to look many years into the future, and no incentive to clean up anything that can be externalized cheaper.

The US got very good at mechanization, and then at building tools for mechanization, and then at selling plans for building tools for mechanization... the low-wage jobs move to cheaper areas of the world.

Apple is a microcosm: what does it say on your shiny new white box? Designed in California. (Built in China, from components from Thailand and Taiwan, from materials mined all across Africa.)

But what replaces the low-wage jobs, when there are no factories, no farm jobs? Retail and service, and retail is being eaten by Walmart on one end and Amazon on the other.

<comment><USER5> It's worse than that. We "got good" at agriculture by industrializing it and concentrating most of it in arid regions.

Something like 80% of lettuce comes from the California desert and the declining water supply of the Colorado river. Much if your grain and soybean crop is being fed by groundwater in the Midwest where the aquifers are in decline. Meanwhile, prime farmland in the east is underutilized because the plots are too small. My supermarket in New York is full of Mexican and Californian tomatoes in mid august!

That's a fundamentally bad situation, and I think the potential consequences are obvious.

</comment></comment></comment></comment><comment><USER6> _The American economy is relatively flexible, and various candidates for future growth are strong: technology, health care research, energy and higher education._

Everyone knows that Tyler plays fast and loose with the facts, but this statement really plumbs new, uncharted depths. Healthcare research seems to mean the pharmaceutical industry, and that field has been in trouble for 15 years. The major players have been on an outsourcing spree for the last decade, research is being gutted, and despite all that the development pipelines are not doing well. Energy is by its nature an extractive industry, which have this habit of creating some very rich people and many very poor people.

Finally higher education: higher education in the US is in trouble. Research is being done only at top-20 places. Even there the money is getting tighter, at any conference you'll go to you'll hear that so-and-so is shutting down their lab for lack of funds. The rest of the universities are repositioning themselves as vocational colleges, where students are paying for workforce training. It used to be that companies would train their staff, but nowadays a college diploma is the equivalent of a GED; you cannot afford not to have one. And then there is this proliferation of useless Masters degrees. Higher ed in its current form is a growth industry, but the country would be better off if it weren't.

</comment><comment><USER7> > In the last 20 years, the economic surge of Asia, especially China, has > brought a large trade readjustment to the world, one with few parallels with > the possible exception of the rise of the Western economies several > centuries ago. China's per capita income, less than $300 in 1984, is now in > the range of $10,000. The country is now the world's second-largest economy, > and becoming the largest by one measure.

> Who are some of the possible losers in this radical transformation in the > global economy?

To be honest, we already know who the losers were. Median wages in the US didn't budge for 30 years, as manufacturing went downhill. Now that China is more or less industrialised, and Chinese wages are pushing up, US manufacturing is coming back.

The 2007+ recession wasn't about China taking the jobs. It was a credit crunch which wasn't really connected to anything China did, and should go away once the bad debt is all cleared.

You could argue that India's deindustrialisation created a path-dependent problem. It couldn't grow, because it had locked into a bunch of institutions that were anti-industry. But I suspect the British also helped forge those dodgy institutions. India was saddled with institutions which were designed for a richer country (risk adverse), then modified to be extractive (sending wealth back to Britain), and without the need for industry (both because India didn't have the industry, and Britain didn't want them to have it). It was a triple whammy, and it was kept in place for quite some time. Add in the inevitable costs of a revolution (and subsequent sectarian violence), and it's not too surprising that India has had a rough time.

The EU can probably survive a few decades of deindustrialisation with less issues, though the EU is a mixed blessing.

<comment><USER8> > It was a credit crunch [..] which should go away once the bad debt is all > cleared.

Heh. Thanks for a chuckle :)

</comment></comment><comment><USER9> The article is a bit light on reasons for why India's economic problems would be similar to the Great Depression. It shouldn't be enough to point out that both economies did very badly, one should also point out the reasons behind that. There is one sentence that sort of does that:

>But in India, internal regulations and underdevelopment, combined with British colonial depredations, prevented Indian resources from being redeployed productively.

It is difficult to understate how much history, and human suffering, is hidden behind the words "British colonial depredations".

> It was once an unthinkable question, but we've arrived at the scary point > where it needs to be asked: What if American median income over the next 15 > years keeps stagnating — or maybe even falls?

Hasn't it already? [http://research.stlouisfed.org/fred2/series/MEHOINUSA672N](http://research.stlouisfed.org/fred2/series/MEHOINUSA672N) And what's so outlandish about assuming it will keep doing what it's doing now?

> Our Social Security system, whose receipts are based on wage taxation, could > then prove to be a bigger fiscal problem than Medicare.

Oh, and having a political axe to grind doesn't help the article either.

<comment><USER10> How much Tyler Cowen have you read? He has an ideology, but maybe not quite the one you think.

If wages do not increase, and demographics remain the same, social security does become a big problem. But that doesn't make him an alarmist that wants to gut social security. His typical writings prefer to avoid the problem the other ways: By either finding ways to increase wages, or through immigration.

He has also written book on the problem of how, while the last decade was great for world growth, it was very bad for the US and Europe: He calls is the great stagnation. So he is aware that more of the same could be coming. He just thinks most NYT readers do not really expect this to happen, as they think it'd be unprecedented.

The entire point of the article is not that 19th century India's problems were all that similar to the great depression, but that the US' current problems are a lot like India's, in the sense that we are facing a major supply shock as some major competitors industrialize and get better, while the country in question does not. In India, it was a country with major manpower advantage getting hit by new technology it couldn't adopt quickly. In the US' case, it's about a lot of countries that were competing mainly on cheap labor, and that now are catching up on technology, making the US' advantages disappear.

</comment></comment><comment><USER11> The salt tax was detrimental, people and fetuses do not develop properly without adequate salt. Many died.

The amount of salt a normal person needed for a year cost well over one months pay.

[http://en.wikipedia.org/wiki/Inland_Customs_Line](http://en.wikipedia.org/wiki/Inland_Customs_Line)

Buy time Gandhi had done his salt march the salt tax was nearly insignificant.

<comment><USER12> Gosh - I never knew about the great hedge. Us Brits did some dubious stuff.

</comment></comment><comment><USER13> Articles like this (ignoring the insulting, historically-naive comparison) aren't news. If you have even a weak understanding of economic theory, it's clear that countries like Britain, France and the USA are all clinging to self-destructive public policies - driven by popular demand, mind you, not corporate interference. When the "developed world" becomes serious about competing economically with China (distinct from militaristic aggression), it will be plain to see. The following of the West's sacred cows will begin to fall:

1) Knowing better/attempting to overrule the free market (minimum wages, minimum labour conditions, centralised permits to sell goods such as drugs, medical services, legal services)

2) Giving "something for nothing" (subsidised/free education, subsidised/free healthcare, subsidised/free pensions/saving schemes.

Currently anyone who dares to question these aspects of Western economies is immediately eviscerated by the crowd. The culture of entitlement is very strong. Soon enough, however, with the last of the props that sustained these sick economies thus far failing (militarism, centralised currency control, controls on global mobility, global cultural allure), getting rid of them will be hailed as bold new thinking.

<comment><USER14> Labor markets would not magically become free markets (in the textbook- definition sense) if there were no regulations. People are forced to work in them, there aren't enough job openings per person to make the work availabilty high enough to make the market fluid, and a single employer can influence the price.

I suggest you try reading Econ101 more clearly before citing it to make such dangerous propositions as removing labor regulations.

<comment><USER13> On the contrary, it's you who is confused here. The conditions you're describing - a surplus in supply for a range of market goods (mostly low- skilled human labour) is the _result_ of the continued attempts of Western countries to regulate against free market dynamics. Removing the perverse regulations which caused this imbalance to arise would result in a short, hopefully not too harsh correction, after which supply and demand would again equalise across the range of various market goods in question.

It's similar to the situation of a hypothetical (or not so hypothetical really) society which decided to "help out" potato farmers by limiting the price of a kg of potatoes to $10. What would you expect? Potato production would skyrocket as people try and cash in on the boom, while potato buying would plummet as people switch to unregulated alternatives.

Imagine this situation continuing on, with more and more vegetables becoming price-controlled, all the while as the mass of unemployed farmers grows and grows (because the system supports people in their failure to be vegetable farmers with unemployment handouts), the conditions of the market become worse and worse, and the further distortionary actions (for example, police crackdowns on blackmarket vegetable sales) required to sustain the whole system become more and more extreme. When someone questions the need for the price restrictions, the average citizen responds:

"Vegetable markets would not magically become free markets (in the textbook- definition sense) if there were no regulations. People are forced to grow vegetables, there aren't enough buyers per grower to make the demand high enough to make the market fluid, and a single buyer can influence the price."

Of course, this really isn't hypothesis. Citizens of today's socialised, regulated countries are just blind to the destructive consequences which surround them.

<comment><USER14> One point you haven't covered, is that there aren't enough companies offering jobs to create free-market conditions.

Look at what happened with the no-negotiation agreements between Apple and co. in Silicon Valley. This was for some high-wage people, so we're not talking about a wage floor issue here.

Yet those agreements stil happened , because a single company can influence wages. In a true free market, there are so many buyers and sellers that no single actor can influence the price.

Not to mention that on a more theoretical level, there is a lower bound on the amount of money people need to live, so there _is_ a lower bound on wages, or at least a lower bound on wages. This is also a pretty good argument for basic income, because it would make participation really voluntary.

</comment></comment></comment></comment><comment><USER15> I'm very skeptical of such hand wavey story telling about macro economic subjects, whether the source is a credentialed academic or an anonymous internet raver.

It does seem incredible that the author doesn't give more weight to the economic impact of exploitive colonisation by the British in India.

I think Macro economics is to complex to figure out by extremely intelligent people who are trying, let alone be summed up in a short essay.

The problem is both micro and macro. The individual actors in a human economy, humans that is, are fantastically more complex in their behavior than, say air molecules that could be modeled as part of a complex emergent, chaotic phenomena like weather.

So you have 7 billion human actors, all existing within the complex ecosphere of the earth.

The human economies are simply an aspect of mass social phenomena, with continuous, ongoing feedback looks in cultural, biological, and geographical domains.

Feeble attempts to illuminate the issues of the world's economies strike me as little fairy tales, and I'm amazed it gets published like this for a credulous public.

</comment><comment><USER16> I wonder, to what extent was this about labor costs? Wasn't it higher price of labor in the west that forced it to industrialize more than India? Perhaps India got stuck in a local optimum, with low wages.

A similar situation may be happening today. Due to automation, there is not enough jobs for everybody, which may decrease the cost of labor, slowing down pressure on technological development.

</comment><comment><USER17> If you are seeing past life of eastern countries (India or china ...etc) only through economic point of view, you will never get proper understanding. Infact, outside colonial Europe and America, money/economics was/is not the only pursuit.

1\. Almost all colonial powers in the west fought across the world primarily for territory, gold, resources, spices ...etc. This pursuit of selfish economic interests at the expense of rest of the world, environment is still we see in the world. Amount of loot/destruction from East to support Britain is just gigantic even during world wars.

2\. Wealth, GDP might be there in the past Eastern world but that was by product/side effect of something else. No one really pushed for efficieny/productivity just like we see now in the west. It was individual interest to earn but not enforced one as if whole world is in a race and we will fall behind if we do not compete ...etc. You won't see such insecurity/paranoid in the past Eastern world. Selfish economic pursuit was never a primary/sole criterion for past India at state level. Yes, there were rules/laws for finances (e.g: Artha Sastra ...etc) but that is part of bigger picture just enough to maintain state but not main one. Kings of India before Mughals/British fought too among themselves but not for resources/money/territory. Dominating world/make a dent on the universe/earth ...etc was never part of eastern thinking even when East was financially strong. Concepts like Yoga/Kama Sutra ...etc emerged which are not at all connected to Finance/economy.

So do not look at just financial parts to understand whole. You will miss many subtle/nuanced/implicit points and your understanding may not be correct/complete.

Note: Please do not downvote if you disagree. There may be several implicit facts which you may not aware because of cultural difference.

<comment><USER18> > Kings of India before Mughals/British fought too among themselves but not > for resources/money/territory.

...then what did they fought for?

(Note: I didn't downvote you and I think this may be an insightful comment, but please use a spellchecker... this is HN and you can get downvotes just for bad spelling even when English is obviously not your native tongue :))

<comment><USER17> >>> ...then what did they fought for?

In some cases "Dharma" and in some cases, just to show their power or get the titles such as "king of kings" ...etc.

Remember "time" is continuous spectrum and there may be dilution of the above in some cases but since history won't preserve every emotion/reason/circumstances behind every decision of every participant, we can just speculate in such diluted individual cases.

Also, just like modern day games which happen in a stadium, there used to be "war stadiums" where war is confined to that place only (e.g: Kurushetra). This is primarily to avoid loss of innocents/women/children unlike current practice of destructing whole opposite country including small children some times.

EDIT: Just added a new line.

<comment><USER17> Why downvote? What is wrong/incorrect in the above comment?

</comment></comment></comment></comment><comment><USER19> To Curb Poverty In India, Governance Must be Decentralized For 1.25 Billion People. Each State In India Should Have A Separate Currency.

</comment><comment><USER20> Badly written./there was no India in 1750. And the east India company had a lot to do with what happened to the Indian subcontinent in the following centuries. Author has trusted history to his own benefit.</comment>


Into a new era by Desire - <AUTHOR> https://www.pouet.net/prod.php?which=78044 <comment><USER2> youtube link of the demo: [https://www.youtube.com/watch?v=0uekBzIATEc](https://www.youtube.com/watch?v=0uekBzIATEc)

</comment><comment><USER3> tl;dr a couple of grayscale, 64 byte demoscene raycasting executables for DOS variants. Desire is the implementor; "Into a new era" is a particular executable.

<comment><USER4> Hellmood of the group Desire is the coder.

</comment></comment><comment><USER5> Some context for those interested: [https://en.wikipedia.org/wiki/Demoscene](https://en.wikipedia.org/wiki/Demoscene)

</comment><comment><USER6> Insane</comment>


Re:work – tools and lessons to make work better - <AUTHOR> https://rework.withgoogle.com/ <comment><USER3> Re:hiring

I've been through various pieces of Google's hiring apparatus a few times and have come away pretty unimpressed that they have it any more figured out than anybody else. In fact I'd wager that tossing all the resumes they receive down the stairs and picking whoever ends up at the top of the stairs for any given position would probably work as well as the broken process they have in place. Google's process is so bad from the applicant standpoint that I've had to short circuit and kill the whole process, twice, from my end it had gone so off the rails on Google's side.

This isn't a particular criticism of Google's process in particular, hiring in general is pretty broken for every company, but it comes across as a bit of hubris that Google is going to bring something new to the table other than dysfunctions that are unique to Google.

Here's an interesting anecdote, I've applied to Google directly, for specific positions I would be qualified for, about a half dozen times and gotten crickets each time. Then out of the blue, months later, I'll get contacted via Linkedin by a recruiter who ends up funneling me into filling a position I couldn't possibly fulfill -- and I'm very open about that up front. I've even sent open job reqs back to the recruiter that I thought I'd be better for, but some kind of internal momentum has dictated that I'm now in the queue for some job I don't want and wouldn't qualify for anyways.

I'm sure I'm just a number to make sure the hiring manager passes some internal threshold so that they can hire the person they want anyways, but given the number and length of phone and in person interviews Google demands of candidates, it's a big time waste for everybody.

These days I just tell the recruiters what I'm looking for and if they aren't hiring for that job in that location I'll pass.

<comment><USER4> (Tedious disclaimer: not speaking for anybody else, my opinion only, etc. I'm an SRE at Google.)

> I'm sure I'm just a number to make sure the hiring manager passes some > internal threshold so that they can hire the person they want anyways

This is definitely not the case, because we don't have hiring managers (at least in engineering; there are parts of the company that this post doesn't apply to). The system has been designed to definitively prevent that sort of thing from happening. Nobody can say "I want that person" and hire them. You feed people into the hiring pipeline, they get interviewed by a series of calibrated peers, and then a separate committee of people who have never met the candidate reviews the interview feedback. There is no way for any single individual to get somebody hired. This largely removes personal biases from the outcome.

As for your own experiences, the key thing to understand here is that our hiring processes are designed to have a high false negative rate and a near- zero false positive rate. It is explicitly a goal to pass up on many capable people in exchange for not hiring any bad ones. It's not perfect, and there are ways in which people are working to improve the system, but for the most part it's doing what it's designed to do.

<comment><USER5> > As for your own experiences, the key thing to understand here is that our > hiring processes are designed to have a high false negative rate and a near- > zero false positive rate.

So why in the world would you create your Rework site, espousing the "amazing" insights you guys have about HR and management processes, _knowing_ that only a tiny select few others could survive with this model?

99.9% of companies cannot afford your rather snobby attitude of "were cool with losing 100 very good workers as long as we don't hire 1 wrong one".

<comment><USER6> I mean, it's not like the guy was involved in that site :) But in any case the hiring tips in it seem applicable to a good range of companies to me.

</comment></comment></comment></comment><comment><USER7> Also on hiring, I find the following passage wrongheaded and insulting:

 _The average employee received thirty-one hours of training over the year, which works out to more than thirty minutes each week. Why not front-load the investment and spend the majority of time and money on attracting, assessing, and cultivating new hires? If you are better able to select the right people up front, then you can spend less time on training bad hires and dealing with the consequences._

So, only bad hires need training, and by extension anyone who needs training is a bad hire? That's preposterous. Training is a good thing, and 31 hours is right about where it should be. It is the minimum required in most states to maintain a PE license[1] and many _real_ engineering companies expect their engineers to take ~20 hours of job-related (as opposed to compliance-related) training every year. That increasing numbers of companies are pulling funding for this kind of training is terrible, not something to be applauded and encouraged.

[1] [http://www.nspe.org/sites/default/files/resources/pdfs/educa...](http://www.nspe.org/sites/default/files/resources/pdfs/education/state_ce_requirements.pdf)

<comment><USER8> I don't believe that's what they're saying. They're saying that if you're better at selecting people, you won't have as many bad hires (really?). You then will be giving the training to people who will be better helping your company.

<comment><USER7> They specifically said "front load the investment". That says to me, "move money from training to hiring and reduce the total of both". Combine that with the Google SWE's comment that Google hires for "skills not experience" and that tells me Google sees non-compliance-related training as a net negative.

</comment></comment></comment><comment><USER9> Rework. This version is much better: [https://37signals.com/rework/](https://37signals.com/rework/)

<comment><USER10> I find it an amusing irony that one of their issues with meetings is that they are about "abstract concepts" not "real things", but the entire book is about abstract concepts.

</comment></comment><comment><USER11> I've seen nothing to convince me that I should pay attention to Google's idea about what makes a good workplace. The more Google reaches, the less of my engagement they've kept. At this point Google has reverted to being nothing more than a search engine for me. And a couple other services I use grudgingly or unenthusiastically.

<comment><USER12> The most amazing service after their search engine has been Google Photos. The way their deep neural net can identify objects in images is going to be unmatched for a long time to come.

<comment><USER11> I liked Mail and Maps once, but feel like after endless redesigns they got less useful, less responsive, less straightforward to use, etc.

<comment><USER13> Have you found a maps replacement that you like?

<comment><USER14> I've switched over to using Here Maps[1]. It's fast and doesn't hide controls, unlike the new Google Maps, and you can get fully offline directions in its app by downloading map sets ahead of time.

[1] here.com

</comment></comment></comment></comment></comment><comment><USER15> I'm actually quite optimistic about this. Finding good, high-quality advice on hiring best-practices is difficult. We're currently looking to re-tool our hiring process at the place I work as we look to expand, and this could not have come out at a more opportune time.

</comment><comment><USER16> Why is google doing this?

<comment><USER17> The posted this under "Why Rework?"

[https://rework.withgoogle.com/about/](https://rework.withgoogle.com/about/)

Looks like they just want to improve their own work environment by learning from others

</comment></comment><comment><USER18> On the _recognize and learn from great managers_ section:

I apologise in advance for the negativity, which is total on these points, but it's just my genuine opinion from experience that there are some truly bad ideas here.

> Having identified eight behaviors of great managers at Google, the research > team wanted to recognize the role models who demonstrated these behaviors > and helped define what great management looks like.

In my opinion this is a really, really flawed way of viewing and evaluating management. Management is about human relationships, and every team of humans and their interconnected web of relationships is completely different in myriad ways from every other team of humans. This applies even when you change a single member of a team: the new team now usually functions and interacts in a very different way from the old one, assuming the new member is actually embraced and included.

I know this from experience of managing teams with frequent turnover (both intra and inter company) - the way you manage the team and even your relationships with people you already know changes every time a member joins or leaves, or even when people get promotions or slightly change their job focus, sometimes in very unpredictable ways.

Sure, there are commonalities between good managers, just as there are commonalities between great athletes. You can intuit these and copy them, try new things and see what works in different situations. But trying to strictly categorise these behaviours across a massive, constantly changing organisation and build a quantitative analysis framework on top of these categorisations is a huge mistake and will never work. Humans are humans, and trying to map human behaviour and relationships to aggregate models is an approach now widely discredited by research in behavioral economics and psychology. Don't try to do it.

> Who better to identify those great managers than the Googlers they manage? > In 2009, the annual Great Managers Award (GMA) program was created to > recognize some of the best managers across the company. Any Googler can > nominate any manager for the award.

Yes, this sounds like a great idea in theory, but see above - humans are not _homo economici_ \- I've seen schemes like this have the opposite from intended effect in previous companies where the votes and subsequent prizes break down and become basically a mix of an enforcement of the (often disliked) politics of the organisation and a popularity contest, as opposed to the meritocratic, democratic recognition mechanism they are intended to be.

Everyone likes the theory, 80% of people in the organisation will probably be disgruntled by the reality of the implementation. Again, knowing how humans and organisations behave by default, it may be a huge mistake to even attempt this kind of thing.

</comment><comment><USER19> What is this wack interpretation of Material Design? I can't remember the last time MD was meant to have such high radius for corners.

</comment><comment><USER20> Uhhhh [https://37signals.com/rework/](https://37signals.com/rework/)

<comment><USER21> While we're at it, Medium is just a ripoff of: [https://svbtle.com/](https://svbtle.com/).

<comment><USER22> Except Svbtle spent too long as an invite-only platform marketing themselves as an exclusive group of thinkers, and instead came across as kind of pretentious. By the time it opened up, they weren't the only minimally designed blogging platform and nobody cared.

      Svbtle is a new kind of magazine.

      It's part of an invite-only publishing network that brings some of the
      best things from newspapers and magazines to a network of great
      people. We focus on the people, the writing, and the ideas. Everything
      else is secondary.

      Our goal is to make it easier and more natural for interesting people
      to write down their thoughts. In the process, we also hope to help our
      members become better writers. To accomplish these goals, we provide
      benefits that aren't usually associated with blogging, like
      copyediting, to all members, for free.

      Think you should be a part of the network? Apply for membership below.

</comment></comment></comment><comment><USER23> It does suck that their using 37signals brand—but the idea is awesome.

</comment><comment><USER24> Only slightly ego-mad.

</comment><comment><USER25> I'm sure Basecamp is going to be thrilled about this. It's ironic since google is the antithesis of all that is preached in Rework.

</comment><comment><USER26> This is just a PR stunt.

>There's a lot of room for unconscious bias to color the information. Research tells us that subtle indicators - names, clubs, addresses, school, previous employment, race, parental status, socio-economic status, etc - <USER2> unconsciously affect expectations and assessment of a candidate.

"Here at Google, we're independent, free-thinkers, and we're definitely not influenced by the militant leftist crowd that plagues the Bay Area. That's why you're not allowed to take anything about a person into consideration before hiring them. Literally nothing. We're all the same person in every way and everyone is as talented and special as everyone else. Everything is a bias and should be expunged from your evaluation process."

These companies will let the PC police ruin them.

<comment><USER27> "We're all the same person in every way and everyone is as talented and special as everyone else."

That pretty much sounds like "hire whomever walks through the door."</comment></comment>


What is Bezos apologizing for? - <AUTHOR> http://andreyf.tumblr.com/post/147837007/what-is-bezos-apologizing-for

<comment><USER2> I think this article completely misses the point. He isn't apologizing for the copyright laws, he is apologizing for how it was handled and most likely for allowing it to happen in the first place. You can't escape the delicious irony that this whole thing happened over 1984. Literally any other book would have been better for Amazon, it just makes the story that much better. This whole thing goes to show how DRM can negatively effect a consumer, not something Amazon wants to do with their new device that sells DRM protected content.

<comment><AUTHOR> _he is apologizing for how it was handled and most likely for allowing it to happen in the first place_

But it's copyright laws that allowed this to happen legally. How should Amazon decide which legal rights publishers get to keep and which rights they don't? And are corporations the right entity to decide what is moral and what isn't? Would you blame chain manufacturers for slavery, or the laws which make slavery legal?

 _This whole thing goes to show how DRM can negatively effect a consumer_

But DRM is just the mechanism for enforcing what people perceive as immoral laws. If books were removed once-bought in a way without DRM, surely people wouldn't be any less outraged, would they?

<comment><USER3> >But it's copyright laws that allowed this to happen legally. How should Amazon decide which legal rights publishers get to keep and which rights they don't?

Legally, you can write a contract that says Amazon has the right to break into your house and repossess books they've sold you that they no longer have the rights to. Just because it's legal doesn't mean it's good business.

<comment><AUTHOR> _Legally, you can write a contract that says Amazon has the right to break into your house and repossess books they've sold you that they no longer have the rights to._

Could you cite the law which would make such a contract enforceable?

<comment><USER3> Fine, IANAL. Maybe we can't have a contract that says Amazon can literally break down doors but you can sign contracts that have physical analogs that require you returning the book to Amazon. The core of my point still stands though.

Amazon is using DRM and EULAs to accomplish things that people would not normally expect when thinking about a book. Amazon wants people to think of the things they "buy" on their kindle as books, but this incident demonstrates that they are not.

Amazon is (probably) legally within their rights to do what they did according to the kindle contract, but that doesn't mean it's good for business.

<comment><AUTHOR> _Amazon is using DRM and EULAs to accomplish things that people would not normally expect when thinking about a book_

Just because people expect to have certain rights, doesn't mean they do. If people expect to have rights (to keep copyrighted material indefinitely) that the law of the land takes away from them, the problem isn't with the mechanism through which that law is implemented, it's with the law itself!

</comment></comment></comment></comment></comment></comment><comment><USER4> It's not a legal issue. If I bought a paper book, and it turned out that the publisher didn't have rights to the material, Amazon wouldn't break into my home and take the book back. They should compensate the actual rights holder instead. The Kindle is no different. Regardless of the law, customers feel just as violated.

<comment><AUTHOR> _Amazon wouldn't break into my home and take the book back_

...because breaking in is illegal, not because copyright law prohibits it. A remote self-wipe mechanisms which turned all of the pages of a book blank at the request of the copyright holder would be just as legal.

<comment><USER4> Like I said, he didn't apologize because what they did was illegal. He apologized because it was creepy and intrusive.

<comment><AUTHOR> Precisely! But it isn't Amazon's responsibility to decide what is "creepy and intrusive" it's your congressman's responsibility to make sure laws which explicitly allow "creepy and intrusive" violations of your rights to not be passed.

The EPIC FAIL here is in Washington, with a minor FAIL in Amazon's PR, and nowhere else.

<comment><USER5> Just because Amazon can do it, it doesn't mean they can be forced to by a publisher. The copyright laws are broken, but in this case it was Amazon's mistake.

</comment></comment></comment></comment></comment><comment><USER3> > Surely, it isn't Amazon's responsibility to judge which laws are moral and > which aren't - that's what we pay all those people in Washington for.

No. We pay people in congress to decide what is _legal_ , not what is _moral_.

<comment><USER6> Ah, we're talking about Jurisprudence! According to wikipedia, the dominant theory there is "legal positivism', where "laws are validly made in accordance with socially accepted rules". See:

<http://en.wikipedia.org/wiki/Jurisprudence#Legal_positivists>

</comment></comment><comment><USER7> I think the part that really pissed everyone off is the manner which it was done and the fact that, while the illegal copies broke copyright, it isn't Amazon who owns it.

What probably should have been done (and would have been done, if it weren't for DRM/TOS) is that the book be removed from Amazon. Rather than to remove all the infringed copies right from under the noses of Kindle owners and essentially make them realize what exactly they signed up for when they got a Kindle.

</comment><comment><USER8> urm, people dont care about copyright laws, why should buying a book be any different from buying a loaf of bread?

but even past that, I am sure if amazon pushed hard enough / paid some money out then they would have been able to convince the publishers to allow the bought books to, stay bought

<comment><AUTHOR> _why should buying a book be any different from buying a loaf of bread_

 _Great_ question - a question that would start a debate about the validity of copyright law, a debate which goes back centuries, and a debate where I can see both sides. But nobody is having this debate - they seem to be just taking one side, the side opposite the one hundreds of years legal scholars have taken.

 _if amazon pushed hard enough / paid some money out then they would have been able to convince the publishers to allow the bought books to, stay bought_

Absolutely, they could also push hard enough/pay enough money and only allow material onto the Kindle if copyright owners allow customers to make copies and derivative works of their books. But why should they?

<comment><USER8> that was actually a typo I just edited, I meant buying a loaf of bread vs book.

but even so, 1. I dont see what the length of time to start reading has to do with anything.

2\. why should they? because they are a company who needs to serve their customers interests or they will go out of business, thats a pretty compelling reason in my opinion.

<comment><AUTHOR> _they are a company who needs to serve their customers interests or they will go out of business_

Well, in this case, they have two sets of customers - publishers and readers. Congress debated and decided that authors have certain rights - the right to sell copyrighted work with protection from copying, production of derivative works, performance, etc.

In particular, it includes the right to withdraw sold books.

How exactly should Amazon decide which of these rights are "moral" or "immoral", and take them away from one set of customers for the sake of the perceived rights of another set.

<comment><USER8> the same way every other company in the world does? by engaging with customers, measuring feedback and common sense.

you seem to be confusing permissible with law with the right way for a company to act, whay they did may have been legal, but it was very very obviously wrong, they understand that, everyone else does.

changing the laws to be somewhat sensible would obviously be a better solution, but amazon doesnt have that luxury, so they should strive to be making the best judgement decisions they can.

</comment></comment></comment></comment></comment><comment><USER9> Copyright law said the sales of the unauthorized copies were illegal. It didn't necessarily create an obligation for Amazon to use the remote content- kill functionality to "undo" the sales.

Remote content-kill is such a dangerous and abuse-prone capability that even if it is a 'tidy' way to undo a previous mistake, it still shouldn't be used.

The apology indicates Bezos at least at some level understands that.

</comment><comment><USER10> For being complete idiots and violating everyone's expectations of ownership? Is that enough?

They've lost my business over this, that's certain.</comment>


The long-lost art of thoughtfulness in blogging - <AUTHOR> http://blog.fogus.me/2011/03/27/the-long-lost-art-of-thoughtfulness-in-blogging/

<comment><USER2> I miss Steve Yegge's posts. They were thought provoking, they reminded me of what was cool in our field, what had to be improved...</comment>


Firefox to remove support for the FTP protocol - <AUTHOR> https://www.zdnet.com/article/firefox-to-remove-support-for-the-ftp-protocol/ <comment><USER2> Link to issue: [https://bugzilla.mozilla.org/show_bug.cgi?id=1574475](https://bugzilla.mozilla.org/show_bug.cgi?id=1574475)

Discussion: [https://groups.google.com/forum/#!topic/mozilla.dev.platform...](https://groups.google.com/forum/#!topic/mozilla.dev.platform/FqCZUT9ay_o)</comment>


Ask HN: How to figure out a research project? - <AUTHOR> Happy New Year, HN!
I should preface this by saying that I'm an undergrad interested in Computer Science research. Additionally, I'm trying to keep my research at least loosely related to Virtual Reality.
Anyhow, here's the story. I'm currently a research assistant for one of the labs at my university. The project that I was assigned to will be slowing down (due to circumstances beyond our control) for a while. In order to keep me busy, my graduate advisor suggested that I come up with a research project to propose/investigate while we wait for the other project to pick back up again.
Unfortunately, I haven't been very involved in the research part of things so much as I've been code-monkeying. This has left me a bit unsure of how to go about fulfilling my advisor's suggestion. So far I've just been reading abstracts from ACM SIGGRAPH papers to help me get an idea of current developments in the field. I'm not sure that it's the best approach to start, but it's at least helped me find out what trends are present. Even after this, though, I don't really know where to go.
Ultimately, I'm hoping to come up with a project that I could carry on to my bachelor's thesis, and I think this is a good opportunity to get that ball rolling. And thus I pose this thread's eponymous question.
Any thoughts or past experiences are helpful! <comment><USER2> Happy new year to you as well..

I'll share the couple of things I've touched on:

\- Multi-phase flow pattern recognition [example: two-phase. liquid/gas. Tried to do that with only void fraction].

\- ECG anomaly detection on long signals [look up MIT Physionet for Holter, Poincaré plot]

\- Time-frequency analysis (pretty cool stuff. Not just frequency components, but the dates at which they occur. Energy levels, etc).</comment>


BitMonet: Monetize your content with Bitcoins - <AUTHOR> http://bitmonet.com

<comment><AUTHOR> Project is open-source and all the code is available at [https://github.com/bitmonet](https://github.com/bitmonet)</comment>


Lecture Notes on Randomized Linear Algebra (2013) - <AUTHOR> https://arxiv.org/abs/1608.04481v1 <comment><USER2> This stuff is incredibly useful when dealing with large matrices. The idea is that an n-by-n matrix often doesn't contain n^2 pieces of independent information, but can be written a product of matrices of size at most n-by-r (for r << n). A famous example of this is the Netflix recommendation matrix. In this case, you can often avoid O(n^2) complexity by only dealing with such low-rank approximations.

It should be noted that this overview dates from 2013 and that a lot of new results have appeared since then. The author gives some good references in the abstract.

<comment><USER3> Is this a more formal treatment for algorithm that Simon Funk gave?

[http://sifter.org/~simon/journal/20061211.html](http://sifter.org/~simon/journal/20061211.html)

<comment><USER4> That's more related to 'stochastic gradient descent' for 'matrix completion'. The key difference is that Simon Funk's algorithm doesn't treat missing entries as a zero, whereas using linear algebra based techniques on the observed data matrix (formed by putting zeros for unobserved entries) would try to predict the missing entries as zero exactly.

Also related is the 'alternating least squares' algorithm.

</comment></comment></comment><comment><USER4> Related but different:

Foundations of Data Science by Avrim Blum, John Hopcroft and Ravindran Kannan: [https://www.cs.cornell.edu/jeh/book2016June9.pdf](https://www.cs.cornell.edu/jeh/book2016June9.pdf)

<comment><USER5> Do you know what the prereqs are for high dimensional geometry? Any additional resources? From the looks of it, the subject seems to require the knowledge of some measure theory and functional analysis. Advanced undergrad/grad level math subjects. Threshold for entry here seems very steep (at least for high- dim geo).

<comment><USER6> I'd say it's about a minor in mathematics and one or two semesters of very directed study.

</comment></comment></comment><comment><USER7> This is a very good and timely compilation of all the important topics!

I ask this earnest question because I have a deep interest in randomized linear algebra, random projections, 'sketching'/sampling, compressive sensing, etc.:

Do any of you use it in industry applications? If so, at a high level, how do you use it?

I know I'm asking a "I have a hammer and that is a nail"-type question, but I am interested in seeing "deployable" applications of these topics. I don't have any to report, other than academic ones.

<comment><USER8> Compressive Sensing is widely used in imaging.

[https://en.wikipedia.org/wiki/Compressed_sensing#Application...](https://en.wikipedia.org/wiki/Compressed_sensing#Applications)

<comment><USER7> I'm reasonably well plugged into that community. All the applications there are 'academic' applications. There are efforts to build hardware based on this- startups, etc. However, the translation is still slow and nowhere near as fast as what we saw with deep learning (just comparing apples and apples with apples defined as step-change jumps in research).

<comment><USER9> How many startups are operating in the CS imaging area? I only know of InView. Rambus likes to sell their lensless sensor as "compressive", but it doesn't really fit.

<comment><USER7> There also LightOn by Igor Carron and co. LightOn.io</comment></comment></comment></comment></comment>


Game in the JavaScript console - <AUTHOR> http://rikukissa.github.io/falling/ <comment><USER2> Fun - kind of reminds me of cowsay ([https://en.wikipedia.org/wiki/Cowsay](https://en.wikipedia.org/wiki/Cowsay))... command lines aren't just for work :)

</comment><comment><USER3> PARTY HARD MODE ACTIVATED!

</comment><comment><USER4> hmm, this is what i get: event.returnValue is deprecated. Please use the standard event.preventDefault() instead.

And thats about it.....

</comment><comment><USER5> That was fun.

</comment><comment><USER6> creative thing!</comment>


Windows 8 - best to pass it up: review - <AUTHOR> http://www.sfgate.com/technology/article/Windows-8-best-to-pass-it-up-review-4025070.php

<comment><USER2> His only big complaints were that upgrading didn't go smoothly, in part because he was running Norton Antivirus (seriously?) and turning the computer off was different?

I can agree that Windows 8 isn't necessarily going to be everyone's favorite thing, but this was a terrible review.

<comment><USER3> I've been turning off my computer by pressing its power button for ages. I rarely found the need to dig up the Shutdown button (which was a little unpredictable in Windows 7 anyway, altering between meanings depending on the system state).

</comment></comment><comment><USER4> Nope, I disagree with the review. Although the interface looks like you have to use it with a touch screen, I haven't had any problems while using it with mouse and touchpad. The boot speed is outstanding, outlook and web service integration is superb and all in all it is a good operating system. Maybe not your cup of tea, but all in all it is good.

<comment><USER5> Yeah I don't think the interface requires a touch screen at all, or is even beneficial for it, at least on a desktop. I spent maybe 1 or 2 seconds combined in the 'start screen' simply cause its easy to use it to launch random stuff by hitting Windows key then typing a few letters then hit enter.

It's definitely worth upgrading since task manager stuff and a lot of the file system things were dramatically improved. Quite a good experience once I learned the Windows+X key combination.

</comment></comment><comment><USER6> The same complaints can be had for any operating system. I don't know of any OS upgrade I've had where it's run perfectly every time I used it. Windows 7 has crashed numerous times. Xubuntu and Ubuntu crashed less, but still enough times to get annoying.

And I think I had to log off to be able to shut down my laptop running Ubuntu for some time. I couldn't find any Shut Down button. So this review is pretty bad if this is as far in-depth as he goes.

</comment><comment><USER7> I've already gotten rid of the Metro start menu[1] (this is a dual screen desktop), and I've been very pleased with the results. Windows 8 is unsurprisingly superior at working out of the box with drivers, which I've enjoyed. I can't say it's worth that much of an upgrade though. I certainly wouldn't go out of my way to buy it.

[1] = <http://classicshell.sourceforge.net/>

</comment><comment><USER8> Trying to run a newly released OS on a 3 year old machine? Hey, let's try running Windows 8 on a Commodore 64, I'm sure some people still have those around. Sure Microsoft has made it affordable but they also have a minimum required hardware spec. Ignore it if you like but don't expect it to work on out of date equipment. That's just generally bad advice.

<comment><USER9> I'm running Windows 8 on a three year old machine (which wasn't even top of the line when I bought it) and it's incredibly smooth. The secret, a $100 SSD.

</comment></comment><comment><USER10> I do not understand why people upgrade OSes very quickly.

There are always bumps for the first few months.</comment>


The era of the cloud's total dominance is drawing to a close - <AUTHOR> https://www.economist.com/news/business/21735022-rise-internet-things-one-reason-why-computing-emerging-centralised <comment><AUTHOR> Changing economics are another consideration. The faster adjustments can be made—for instance, to optimise the operations of a machine in a factory—the bigger revenue gains tend to be. That means data are often best analysed as they are captured, which needs to be done locally. The costs of transferring, storing and processing data in the cloud can be avoided too.</comment>


Joachim Roenneberg, who foiled Nazi nuclear plan, has died - <AUTHOR> http://www.reuters.com/article/us-norway-roenneberg/man-who-foiled-nazi-nuclear-plan-dies-aged-99-idUSKCN1MV0R1 <comment><USER2> Loosely related, here's a transcript of the reactions of 10 prominent German nuclear physicists upon hearing the U.S. forces dropped the first atomic bomb: [http://germanhistorydocs.ghi- dc.org/pdf/eng/English101.pdf](http://germanhistorydocs.ghi- dc.org/pdf/eng/English101.pdf)

The scientists, including Heisenberg, Wirtz, and Hahn, had apparently been captured and detained in a bugged house in England, in an attempt to learn more about German nuclear capabilities. It's fascinating to see the varying responses amongst the scientists, from relief that they weren't the ones to actually implement the bomb, to a seeming sense of frustration to having "lost" to the American scientists in figuring out how to do it.

<comment><USER3> "WIRTZ: It seems to me that the political situation for STALIN has changed completely now.

WEIZSÄCKER: I hope so. STALIN certainly has not got it yet. If the Americans and the British were good Imperialists they would attack STALIN with the thing tomorrow, but they won't do that, they will use it as a political weapon. Of course that is good, but the result will be a peace which will last until the Russians have it, and then there is bound to be war"

That is a pretty great summary of the potential dangers of the Cold War, also interesting in the context of the US pulling out of the nuclear arms deal with Russia today.

</comment></comment><comment><USER4> Ray Mears did a fantastic documentary on this subject called the "Real Heroes of Telemark" \- [https://www.imdb.com/title/tt0499247/](https://www.imdb.com/title/tt0499247/) which _really_ shows how hard it was to just survive in that landscape.

Highly recommended viewing (I believe you can find it on youtube).

<comment><USER5> I remember watching the movie as a kid and being enthralled by the tale.

<comment><USER6> That was "The Heroes of Telemark" [https://www.imdb.com/title/tt0059263/](https://www.imdb.com/title/tt0059263/) from 1965 staring Kirk Douglas.

Ray Mears documentary from 2003 on the real heroes is excellent. I love Ray Mears.

A few years a big budget TV series was also released "The Saboteurs" [https://www.imdb.com/title/tt3280150/](https://www.imdb.com/title/tt3280150/) It is very good.

</comment></comment></comment><comment><USER7> The German nuclear weapon program had a number of fundamental flaws, according the Wikipedia article on it, and so I assume it would have failed to produce a weapon even if Roennenberg's raid had not taken place. However, at the time no one on the Allied side knew this, and so it made sense to launch the raid.

</comment><comment><AUTHOR> The operation to blow up the heavy water plant, as well as a lot of Roennberg's other work, is covered in The Allies Strike Back, 1941-1943 by James Holland.

</comment><comment><USER8> By the end of the war Rønneberg and a small team camped out in a tiny cabin in the mountains hiding from the Germans and planning sabotage missions agains German supply lines. The cabin was rebuilt by Rønneberg in the early 1990s and given to the Hiking association which still maintains it. For a small fee you can spend the night, highly recommended.

Pictures: [https://www.ut.no/hytte/3.1381/](https://www.ut.no/hytte/3.1381/)

</comment><comment><USER9> Amused that the article calls heavy water "a hydrogen-rich substance". As far as I'm aware it has exactly the same amount of hydrogen as regular water, by definition.

Presumably the author was going for "neutron-rich" but misremembered.

<comment><USER10> It does have more hydrogen (by weight) than regular water, just not by moles.

<comment><USER11> Correct. A greater fraction of its weight is hydrogen due to the extra neutron, but it contains the same number of hydrogen atoms.

Heavy water masses 20g/mol versus 18g/mol for regular water.

</comment></comment></comment><comment><USER12> The importance of Heavy Water for the Nazi weapons-development program is overstated. They could simply have used graphite (carbon) as a moderator, as the early Manhattan project breeder reactors did. However, they had made a measurement error on the neutron-absorption cross-section of Carbon, showing it as too high for use as an efficient moderator, hence they went on a wild- goose chase to separate Heavy Water by electrolysis, for use as a moderator using the Norsk Hydro plants at Norway, which were eventually destroyed by Allied sabotage and bombing. All this rigmarole was therefore due to a small laboratory-methods error by some little-known German scientist (probably contamination of his carbon samples with a trace element like Boron or Cadmium). Graphite was readily available in Axis territory - a few more tests would likely have found a purer source without Boron contamination.

<comment><USER13> Of course Nazi Germany didn't know that. Destroying their wild goose chase is ironically still helpful in getting them to divert more resources replacing it.

</comment></comment><comment><USER14> The Nazis could never have sustained the industrial efforts required to produce a nuclear weapon. Heavy water is (in comparison) easy to isolate, and can be bought and sold freely in the west today.

[0] [http://unitednuclear.com/index.php?main_page=product_info&pr...](http://unitednuclear.com/index.php?main_page=product_info&products_id=135) [1] [https://www.isowater.com/purchase/](https://www.isowater.com/purchase/) [2] [https://www.sigmaaldrich.com/catalog/product/aldrich/151882?...](https://www.sigmaaldrich.com/catalog/product/aldrich/151882?lang=en&region=US)

<comment><USER15> Isn't that why they occupied Norway though, for heavy water?

<comment><USER16> No. The Germans occupied Norway because most of their iron ore supplies (vital in wartime) came from deposits in northern Norway and because the long coastline was ideal for placing U-boot bases to harass shipping bringing in goods to the UK on a northern route. In some sense it was a "preventive occupation" because Britain and France were obviously eyeing some kind of interdiction.</comment></comment></comment>


Cloudflare Might Be Exploring a Way to Slow Down Ajit Pai's Home Internet Speed - <AUTHOR> https://twitter.com/eastdakota/status/933490344624304130 <comment><USER2> Hilarious.

We also need to put pressure on them to simplify and close loopholes in the 400 page net neutrality document.

I think an NRA-styled non-partisan single issue internet freedom organization is needed to put pressure on our elected officials. It's amazing how much politicians fear the NRA, I wish we could get them to fear eroding our freedom.

Cloudflare's example is also a great reason why we also need to enforce neutrality on more than just the ISP to keep the internet free and open. The whole system from DNS providers, hosting, and other major internet companies need to have neutrality enforced on them.

Edit: Adding Source [https://www.npr.org/sections/thetwo- way/2015/03/12/392544534...](https://www.npr.org/sections/thetwo- way/2015/03/12/392544534/fcc-publishes-full-text-of-net-neutrality-rules)

<comment><USER3> > We also need to put pressure on them so simplify and close loopholes in the > 400 page net neutrality document.

What 400 page net neutrality document?

If you are referring to the 300-400 page document that contains the 2015 Open Internet order that Pai and others have been fond of waving around as an example of how the 2015 rules were massive, complicated, micromanaging overregulation, they were not being entirely honest.

That document actually consists of a long discussion of net neutrality from a historical, legal, and policy standpoint and an explanation of why they picked the rules that they did, a long response to issues raised in the millions of comments received during the public comment period, and the actual regulations.

The actual regulations are about 8 pages.

<comment><USER4> Any chance you have a link handy?

<comment><USER3> Here is the 400 page document that I think is usually the one being waved around.

The first link is from the FCC site, but has been slow lately, so I've also given a link to a copy at scribd.

[https://apps.fcc.gov/edocs_public/attachmatch/FCC-15-24A1.pd...](https://apps.fcc.gov/edocs_public/attachmatch/FCC-15-24A1.pdf)

[https://www.scribd.com/document/258492433/Full-net- neutralit...](https://www.scribd.com/document/258492433/Full-net-neutrality- rules)

Note: the page numbers in the table of contents are way off. Apparently the TOC was generated for printing in either a large font or on smaller sheets. In the following I will give page numbers as printed at the bottom of the pages of the scribd version. The FCC version bottom of page numbers are 5600 higher than the scribd version, so if I say page X, that is page X+5600 in the FCC version. In other words the numbering runs 1-400 in the scribd version, and 5601-6000 in the FCC version.

The actual rules are in APPENDIX A, "Final Rules". This starts on page 283 and ends on 290.

</comment></comment></comment></comment><comment><USER5> Prince responded to Slashdot here [https://tech.slashdot.org/story/17/11/23/149208/cloudflare-m...](https://tech.slashdot.org/story/17/11/23/149208/cloudflare- might-be-exploring-a-way-to-slow-down-fcc-chairman-ajit-pais-home-internet- speeds)

In a statement to Slashdot, Mr. Prince said: Probably the easiest thing would be to slow down requests from the FCC's IP ranges. Or put up an interstitial whenever someone from those IPs visits a site behind us. I think it's less likely we'd do it across the board ourselves, more likely we'd implement it as an option our customers could opt in to. Basically taking this a step further.

</comment><comment><USER6> Quite a number of people are concerned about how Cloudflare might find Ajit Pai's IP address(es). It's probably quite a bit easier than that given recent changes in legislation which, ironically, Mr. Pai endorsed ([http://money.cnn.com/2017/04/03/technology/internet- privacy-...](http://money.cnn.com/2017/04/03/technology/internet-privacy-law- trump/index.html)):

Just buy the information from all land and wireless providers.

</comment><comment><USER7> I joked that if Facebook, Google, Netflix and the other multibillion dollar user-trackers out there shut out Pai and the FCC, their tune would change overnight.

I did not think for a microsecond anyone would be brave enough to implement it.

Kudos Cloudflare.

<comment><USER8> Facebook, google, amazon, etc all benefit from Pai's decision if they deem ISP fees affordable. It keeps competition from emerging and, with cable-like packages, would put their services in front of every Internet user.

</comment></comment><comment><USER9> Not sure how I feel about this. So they want to teach Ajit Pai about some of the potential consequences of killing net neutrality? I'm pretty sure he fully understands the consequences and he's most likely a puppet for the powerful forces who are hell bent on killing NN. It's worthwhile trying to understand who was behind the push to end net neutrality and how they managed to get so far. If anyone has links about this topic, feel free to share them.

While a part of me would love to see what's mentioned in the conversation, I hope Cloudflare does not stray from their principle of being a utility provider and I don't want them to abuse their power to target individuals that they disagree with.

<comment><USER10> I agree with OP, this is dangerous ground but the CEO in question has learned nothing from prior dangerous activity.

This is the same cloudflare CEO that decided it was going to arbitrarily block the Daily Stormer because he woke up in a bad mood.

If people support net neutrality, they're against peoples' Internet connectivity being interfered with by corporations, and by extension they're against this. If they support interfering with Ajit Pai's connectivity, then they're by extension against net neutrality.

<comment><USER11> > If people support net neutrality, they're against peoples' Internet > connectivity being interfered with by corporations

No, I'm against throttling extortion being used by powerful actors for selfish, monopolistic reasons. Not every act of throttling is inherently evil or something, it's just bad because of the damages it causes. So some acts (like throttling people who have the power to affect policy to show them the dangers of deregulation) are perfectly acceptable morally.

However, I also belive in due process and just laws, so ideally, which is why it makes sense to have laws in place that prevent all Internet throttling extortion, regardless of the objectives, so that they may be simple and enforceable without loopholes.

Just because you want something prohibited does not mean you think all instances of that act are wrong. Just that we would be far better off with the law then without it.

</comment></comment></comment><comment><USER12> How would this be materially different from just walking over to Ajit Pai's house and physically cutting his cable? It's targeting a specific individual to deny them the use of their property; pretty sure that's a felony, but either way it has nothing to do with Net Neutrality.

Corporations using their power and resources to threaten and manipulate the federal government - yeah, that's something we need lots more of.

<comment><USER13> It's not the same. Ajit Pai says "We no longer need a law that prevents ISPs from saying 'Nice Internet you got there. Be a shame if something were to happen to it.'"

So then an ISP comes along and says 'Hey there Mr. Pai. Nice Internet you got there. Be a shame if something were to happen to it.'

That ISP is simply demonstrating what it means not to have such a law any more.

</comment></comment><comment><USER14> Would be funny if it were some hacker group. Not so funny when it's a for profit company playing on whatever whim it likes.

Anonymous should take over this task.

<comment><USER15> Just maybe the FCC should consider regulations to prevent for-profit companies from "playing on whatever whim it likes" then, instead of making it easier.

</comment></comment><comment><USER16> regardless of whether you agree with net neutrality or this guys approach to making a point, surely this makes _some_ people think twice about "fuck it just use cloudflare" \- particularly if you just need tls and page caching. DDOS prevention is hard but most sites aren't unlikely to need that.

</comment><comment><USER17> Perhaps a naive question, but how are they going to figure out Pai's IP address without great-firewall-tier DPI?

<comment><USER14> Limited options for ISPs. They can map a home address to likely possibilities, then use their vast cleartext MITM capabilities to narrow it down based on traffic content. Chilling really. I'd rather some hacker group take on the task.

</comment></comment><comment><USER18> How petty of them.

</comment><comment><USER19> Lol, just a simple tweet. Move on people.

</comment><comment><USER20> What is his 'equally effective way'?

<comment><USER17> According to Cloudflare, over 10% of internet traffic flows through their network [0] of 6+ million websites [1] and 35% "market share" in DNS service [2]. They could slow down access to their network for Ajit Pai.

0: [https://www.cloudflare.com/insights/](https://www.cloudflare.com/insights/)

1: [https://www.cloudflare.com/reliability/](https://www.cloudflare.com/reliability/)

2: [https://www.cloudflare.com/](https://www.cloudflare.com/)

</comment></comment><comment><USER21> This isn't funny. Not only is CloudFlare's CEO scheming about going after the FCC chairman, but also those who live near him.

This is the second time in recent memory that this guy has been worked up by his political feelings and saw his company as a tool to punish his opponents.

As a CloudFlare user, this worries me. This is childish. Adults don't pull this crap.

<comment><USER22> Yeah. There should be a rule against this. /s

Seriously, this is just part of the "innovation" Ajit is promoting. There will be nothing to stop Comcast from throttling sites for political reasons. CloudFlare will not be the only one to shape internet traffic for personal gain.

<comment><USER21> "People will do bad things if we don't have net neutrality regulations. Let's show them how it's done by doing bad things ourselves."

In what whacky moral universe is this okay?

Most parents smack this out of their kids by the time they're 4.

<comment><USER23> It's not like the expectation is that his internet will be slowed down forever.

I think it's perfectly fair, if legal under all current laws.

"This is the future you want" doesn't sink in until your kids are bitching every day that YouTube is buffering.

<comment><USER21> If activists are willing to _intentionally make the world worse_ to prove a point, then reasonable people start to wonder:

"How much of the problem is real and how much of it is inflicted by activists who are willing to burn down the world in order to 'win'?"

<comment><USER24> But most protests make things a bit worse while they are happening, even in relatively benign ways as disrupting traffic. If they don't disrupt the status quo in some way then they are hardly going to be noticed.

</comment></comment></comment></comment></comment></comment><comment><USER21> TLDR of this "strategy":

"Hey guys. We should have a law against being an asshole."

"Nah, people seem pretty nice."

"I'll show you, fuckface!"

<comment><USER25> > "Nah, people seem pretty nice."

I'm sure a lot of people hold this opinion about Comcast. Oh wait: [https://consumerist.com/2014/04/08/congratulations-to- comcas...](https://consumerist.com/2014/04/08/congratulations-to-comcast- your-2014-worst-company-in-america/)

<comment><USER26> It saddens me to be reminded by your post that the valuable contributions to discourse provided by Consumerist came to end not too long ago :(

</comment></comment></comment><comment><USER27> this is really foolish.

</comment><comment><USER28> Bad move. If this works it will show that preferential treatment is already possible, thus making the existing net neutrality meaningless.

<comment><USER29> You'd think Cloudflare would have learned from the Stormfront incident

<comment><USER30> How'd that resolve for them?

<comment><USER31> The only net change is that there are fewer Nazis claiming Cloudflare supports them...</comment></comment></comment></comment>