Wolfenstein's original rendering engine as 450 line shader with no external data - <AUTHOR> https://www.shadertoy.com/view/4sfGWX <comment><USER2> This game was responsible for two amazing moments in my childhood.

1\. Realizing I wanted to be a computer programmer

2\. My parents being confronted by school administrators because I was whistling Horst Wessel Lied, or as i called it "the cool Wolfenstein song." at school frequently.

<comment><USER3> I'm trying to figure out how that second point worked. Is it that you were whistling too often and it would have been a problem even if you were going with, say, the Andy Griffith theme, or did you both whistle so well and have school administrators so educated that they identified that you were whistling Nazi propaganda?

It's not that characteristic a tune.

<comment><USER4> It was the national anthem of Nazi Germany. If you have a even a passing interest in WWII, which I hope at least some teachers would, it should be familiar.

</comment></comment></comment><comment><USER5> The aliasing in this was driving me insane, fortunately it's really easy to implement anti aliasing.

Change the function signature of the current main function to

        vec3 getColor(in vec2 fragCoord ) {

And the last line to

        return col

Then just call it a bunch of times with nearby points in a new main function

        void mainImage( out vec4 fragColor, in vec2 fragCoord ) {
            vec3 c1 = getColor(fragCoord + vec2( 0.25,  0.25));
            vec3 c2 = getColor(fragCoord + vec2( 0.25, -0.25));
            vec3 c3 = getColor(fragCoord + vec2(-0.25,  0.25));
            vec3 c4 = getColor(fragCoord + vec2(-0.25, -0.25));

            fragColor = vec4((c1 + c2 + c3 + c4) / 4., 1.0);
        }

Obviously this does 4x the amount of work as without antialiasing, but with modern hardware you don't notice it and it looks _way_ better.

<comment><USER6> Figured out how to do Multi-Frame style Anti-Aliasing for a much lower performance hit, looks nearly as good in motion:

      void mainImage( out vec4 fragColor, in vec2 fragCoord ) {
        	float h1 = (hash(time + fragCoord.x) + hash(time + fragCoord.y)) / 4.0;
    	float h2 = (hash(time - fragCoord.x) + hash(time -fragCoord.y)) / 4.0;
            vec3 c1 = getColor(fragCoord + vec2(h1, h2));
            fragColor = vec4(c1, 1.0);
        }

Or if you want it to look pretty much exactly as good as 4x MSAA (which is what you're doing) for a little more than half the cost:

      void mainImage( out vec4 fragColor, in vec2 fragCoord ) {
        	float h1 = (hash(time + fragCoord.x) + hash(time + fragCoord.y)) / 4.0;
    	float h2 = (hash(time - fragCoord.x) + hash(time -fragCoord.y)) / 4.0;
            vec3 c1 = getColor(fragCoord + vec2(h1, h2));
        	vec3 c2 = getColor(fragCoord + vec2(-h1, -h2));
            fragColor = vec4((c1 + c2)/2., 1.0);
        }

EDIT: Changed per suggestions from reply

Edit2: Found another way to cut down on cost with even less sacrifice of quality (no under-water feeling while holding still), you can do a 2x version of the original 4x method, but flip-flop the x coordinates every frame, like so:

      void mainImage( out vec4 fragColor, in vec2 fragCoord ) {
        	bool even = mod(float(iFrame), 2.) == 0.;
        	float x;
        	float y = 0.25;
        	if(even) {
            	x = -0.25;
            }
        	else {
            	x = 0.25;
           	}
            vec3 c1 = getColor(fragCoord + vec2(x, y));
        	vec3 c2 = getColor(fragCoord + vec2(-x, -y));
            fragColor = vec4((c1 + c2)/2., 1.0);
    }

<comment><USER7> My attempt at temporal anti-aliasing:

1) Add the editor tab for "Buffer A"; move all code with the getColor modification above to this editor; use the following mainImage method:

        #define SCALE_FACTOR 1.0
        #define BLUR_FACTOR 0.95

        void mainImage( out vec4 fragColor, in vec2 fragCoord ) {
            float sum = floor(fragCoord.x / SCALE_FACTOR) + floor(fragCoord.y / SCALE_FACTOR);
            bool evenSum = mod(sum, 2.0) < 0.0001;
            bool evenFrame = (iFrame % 2) == 0;

            vec2 texCoord = fragCoord.xy / iResolution.xy;
            vec3 texColor = texture(iChannel0, texCoord).rgb;

            if (evenSum == evenFrame) {
                fragColor = vec4(mix(texColor, getColor(fragCoord), BLUR_FACTOR), 1.0);
            } else {
                fragColor = vec4(texColor * BLUR_FACTOR, 1.0);
            }
        }

2) The "Image" tab should only render the contents of iChannel0 on the display:

        void mainImage( out vec4 fragColor, in vec2 fragCoord )
        {
            vec2 texCoord = fragCoord.xy / iResolution.xy;
            fragColor = texture(iChannel0, texCoord);
        }

3) Assign Buffer A as the input/output for iChannel0.

This should do the ray-casting part at effectively half resolution in an alternating checkerboard pattern, blending the previous contents of the buffer with the current output.

<comment><USER6> So I decided to try combining the way you did it with what I did before, and I came up with this method, which is effectively equivalent to the 4x AA in the top-level comment:

      void mainImage( out vec4 fragColor, in vec2 fragCoord ) {
        	bool evenFrame =  (iFrame % 2) == 0;
            float x;
        	float y  = 0.25;
        	if(evenFrame) {
            	x = 0.25;
            }
            else {
                x = -0.25;
            }
            vec3 c1 = getColor(fragCoord + vec2(x, y));
        	vec3 c2 = getColor(fragCoord + vec2(-x, -y));
            vec2 texCoord = fragCoord.xy / iResolution.xy;
            vec3 texColor = texture(iChannel0, texCoord).rgb;
            fragColor = vec4(mix(texColor, (c1+c2), 0.5), 1.0);
    }

</comment></comment></comment></comment><comment><USER8> This is fun -- getting very trippy results by changing around some of the constants...

       vec3 rotate(vec3 r, float v){ return vec3(v*0.1*r.x*cos(v)+r.z*sin(v),r.y,r.z*cos(v)-r.x*sin(v));}

<comment><USER9> Wolfenstein 3DMT

</comment></comment><comment><USER10> If you like this one, you'll probably also enjoy the "DOOM E1M1" shader, which not only reproduces the DOOM graphics, but also the level audio in a separate shader (note: sound autoplays):

[https://www.shadertoy.com/view/lsSXzD](https://www.shadertoy.com/view/lsSXzD)

</comment><comment><USER11> I am reading Fabiens Wolfenstein 3d Black book (and implementing several parts to really understand things); great to see this. The Wolfenstein 3d engine was rather compact already but this is very cool.

Smooth run on the iPhone 7 as well.

<comment><USER12> Interesting that it worked for you on the iPhone 7. On my iPhone 6 I just get a black window.

<comment><USER11> I hit 60 fps on chrome on ios while black like you have on Safari. I assumed they both use webkit and would be more or less the same.

<comment><USER12> Yeah, that is also what I got, black screen at 60fps. iOS Chrome still uses webkit as Apple requires it.

<comment><USER11> So must be some other incompatibility between the two.

</comment></comment></comment></comment></comment><comment><USER13> It seems there's a wave of silly Wolfenstein implementations, about a week ago we had the Microsoft Excel one.

Keep them coming, I'm always amazed by the creativity some people have :)

<comment><USER14> Sooooo thankful your second sentence turned out the way it did.

Just enough time reading the first sentence for "WTF" to form in my mind in anticipation of the condescension to come, and then the second sentence and it was a nice bit of stress release.

Hurray for the hacker in Hacker News.

<comment><USER13> I'd love if everyone in the world could work on making me rich, healthy and immortal, but it they don't, they might as well have fun instead :p

</comment></comment></comment><comment><USER15> Very tangentially related, but curious if anything thinks it would be worth reading through Abrash's Zen Of Graphics Programming at this point. Is the info in there still useful (even as a foundation) or is it totally outdated?

<comment><USER16> Go with the black book. I've written a comment about this before but can't be bothered to look for it.

The Abrash's black book is both totally outdated and highly relevant. All the technical material is entirely outdated - which probably makes it a better teaching tool. But the methods, approaches and thought processes he describes through the book and the beginning vignettes are priceless.

Particularly for me the Video 7 story.

</comment></comment><comment><USER17> Where is the map stored?

So far there seems to be no texture and all textures are procedurally created, but I can't figure out yet where the map is. Is it in isMap and isDoor? They are very short

<comment><USER5> isWall, isDoor, isObject seem to determine if a location is a door, wall, or object and be the primary map generating functions. They take a floor coordinate and return true/false depending on if it is/isn't hit. Additionally wall/room height seems to be hardcoded as 1 (from 0 to 1 specifically) in getColorForPosition.

If it doesn't hit a wall, door, or object, then it is the floor/ceiling as decided by how color is initialized in main above the call to castRay.

</comment></comment><comment><USER18> Watching that is really unsettling. The graphics look very much like what I remember, but movement is so very _off_. It's so smooth and the turning allows for much more subtle changes in orientation than the game did. Kinda breaks by brain a little. Still really cool.

<comment><USER19> IIRC didn't wolf and doom use 'binary radians' where 2π = 256

</comment></comment><comment><USER20> Warning: NSFW if you're in Germany

<comment><USER21> Also NSFW if you're, you know, at work.

While some co-workers may recognize the game, others may be put off by large swastikas zooming around your monitor.

</comment></comment><comment><USER22> This is awesome. I was watching it waiting for a guard to scream at me in unintelligible 8-bit German.

<comment><USER23> "Achtung!" "Mein Leben!"

Good times. A game that worked without mini-map and without constantly patting the player on the back.

<comment><USER24> Guess you never got lost in the purple level!

</comment></comment></comment><comment><USER25> "Oops your WebGL implementation has crashed!"

The wonderful world of mobile WebGL.

It looks great on the desktop, though.

<comment><USER26> What phone and browser?

<comment><USER25> LG Power X, Chrome.

</comment></comment></comment><comment><USER27> It really makes you realize that 8GB (or bigger!) games these days are simply not really trying procedural generation at all.

Even most mobile games at something like 50MB are a huge waste of space!

</comment><comment><USER28> Watching the animation play i could almost hear the shouts of the soldiers. And it has been decades since i fired up the game.

</comment><comment><USER29> what's the `mix` function?

<comment><USER30> [https://www.khronos.org/registry/OpenGL- Refpages/es3.0/html/...](https://www.khronos.org/registry/OpenGL- Refpages/es3.0/html/mix.xhtml)

</comment></comment><comment><USER31> When I saw "original" I was expecting to see the 1980s version.

</comment><comment><USER32> The title is misleading - the shader does not implement the original Wolfenstein rendering engine, it's an experiment in generating textures inside the code.

<comment><USER10> It's actually closer to the Wolfenstein rendering engine than one might expect... Like the original, it does a ray-march in the ground plane to find map objects:

[https://github.com/id- Software/wolf3d/blob/0516778/WOLFSRC/W...](https://github.com/id- Software/wolf3d/blob/0516778/WOLFSRC/WL_DR_A.ASM#L414)

And, like the original, it separates the cases of wall blocks, door blocks, and sprites. It also expedites ceiling/floor drawing by just picking a flat color for the top and bottom halves of the screen:

[https://github.com/id- Software/wolf3d/blob/0516778/WOLFSRC/W...](https://github.com/id- Software/wolf3d/blob/0516778/WOLFSRC/WL_DRAW.C#L946)

But it naturally differs from the original in that it is rendering per-pixel rather than per-column, so it does not need to accumulate a list of sprite intersections to draw in reverse order over the walls -- it can just stop raymarching when it encounters an opaque pixel:

[https://github.com/id- Software/wolf3d/blob/0516778/WOLFSRC/W...](https://github.com/id- Software/wolf3d/blob/0516778/WOLFSRC/WL_DRAW.C#L1157)

In a sense, the shader works like rewriting and optimizing the original renderer so that it renders to a screen of a single pixel, then running 147,456 instances of the renderer to fill the 512x288 pixel screen.

</comment></comment><comment><USER33> About twice as many lines with a more conservative indent setting.</comment>


2.4 Kernel Releases Come to an End  - <AUTHOR> http://lwn.net/Articles/491245/

<comment><USER2> should we have a funeral for it?</comment>


Idea for social media scheme in the work place - <AUTHOR>

How would you feel if you employer capped your daily social media access on their computers to a fixed amount a week, and allowed you to trade unused minutes for real life perks? Like time off, deals, discounts or even goods? <comment><AUTHOR> What would be a reasonable amount of time?</comment>


Y Combinator-like acceleration programme at Cambridge University (UK) - <AUTHOR> http://startuplift.com/springboard-accelerate-your-startup/

<comment><USER2> 5,000 GBP each over 13 weeks for 6% of the biz. 13 February 2011 deadline. Acceptance of single founders "highly improbable". Programme starts: 26 April 2011.

</comment><comment><USER3> direct link to the website for the accelerator programme: <http://springboard.com/>

</comment><comment><USER2> One possible problem for a 3 month programme is that most property rental in the UK is for a minimum of 6 months, and in Cambridge, will eat most of that £5k. They do say, however, that "We will team you up with someone who will help you find somewhere to live during the programme."

<comment><USER4> I'd suggest trying to convince them to let you live in the cambridge university accommodation. Worth a try.

<comment><USER5> That seems vanishingly unlikely during university term time. Accommodation arrangements vary widely by college in Cambridge, but in-college facilities tend to be in high demand regardless.

More generally, does anyone know the story behind this organisation and programme? £5k/founder is nothing, particularly given the commitment for 13 weeks that the programme seems to require and the living costs in Cambridge, so the big question must be what is in it for the founders in terms of other value: advice, networking, etc. The site talks about how intensive the programme is, but is rather light on details, such as for example what the founders will really be doing for those three months and who is ultimately taking ownership of 6% of each company.

It sounds like this could be a valuable opportunity for young entrepreneurs to gain access to useful insights from those who have gone before, but from the limited information on the site and everything-newness of it all, I am at least slightly sceptical about the grandiose claims. 6% of a company is a lot to give up at such an early stage if you don't really know what you're getting into and there's no track record to consider...</comment></comment></comment>


Peeking into the architecture used for Google's Neural Machine Translation - <AUTHOR> http://smerity.com/articles/2016/google_nmt_arch.html <comment><USER3> Hey HN, I'm author of the article. If there's anything confusing, I'd be happy to help :)

The GNMT architecture is likely to keep popping up in Google's papers due to the amount of engineering that's been dedicated to make it scale well. Other than chewing up massive machine translation datasets, from single to multiple language pairs, it's also been trained over the entirety of Reddit for a conversational model system.

Just this week a new paper[1] was released using the GNMT architecture which teaches a machine translation system how to translate between language pairs it has never been taught before by using bridging from other language pair knowledge. It's all pretty fascinating stuff :)

[1]: [https://arxiv.org/abs/1611.04558](https://arxiv.org/abs/1611.04558)

<comment><USER4> Great article, thank you for getting to the crux of the paper. Now that you have a base case working:

* Could you convert the parameters that govern the creation and interconnect of each layer into lisp and feed the whole thing into a genetic algorithm to evolve even better translators? Using GAs to evolve NNs was the new hotness in the late 90s and I don't know what ever happened with it. It would take on the order of 10,000 times more computation to simulate all the generations, but hey, it's Google.

* How hard would it be to generalize the GNMT for solving other types of problems where the output translation is the solution to a problem or what to do next? While reading the article, it occurred to me that the hidden layer S could be thought of as the meaning of the input data. If S is smaller than the input data, then you could treat it like a word feeding into another GNMT to process paragraphs, chapters, etc. I guess this would hinge on whether sentences have any relation to one another. In any case, would love to hear your thoughts on something like that.

I'm just an armchair hobbyist toiling away my career building CRUD apps, but I really feel that if we can get beyond the learning curve (no pun intended) and get to basic building blocks like this, then engineers will run with it and scale it very quickly to a passable implementation of hard AI.

</comment></comment><comment><USER5> Does anyone know of any good primers on building your own machine translation? My wife is from a small European country, and all machine translation I've used usually end up with incompressible results. My theory is that it's not that there is anything hard about the language, it's just they don't put as much effort into training this language as the number of users is small - <USER2> it ends up with poor results. As an experiment I'd like to try building my own, but I don't know where to begin.

<comment><USER6> [https://www.tensorflow.org/versions/r0.11/tutorials/seq2seq/...](https://www.tensorflow.org/versions/r0.11/tutorials/seq2seq/index.html#neural- translation-model)

If the European country she is from is within the EU, you can probably get parallel corpus from the EU parliamentary translations. I believe there are other EU research projects which release useful corpus.

<comment><USER7> Sadly one of the largest tranlation corpus of multiple languages can't be used for copyright reasons i.e the user made subtitle files that are shared all over the internet. Every week a few hundred episodes of different shows are released in different countries that are translated by users into many languages. Now that I think about it an app that could transcribe the words spoken in a TV show and then would translate it using google translate would be a huge with the manga crowd. Though Japanese hasn't been added yet.

<comment><USER6> It's actually not at all clear if they couldn't be used. Things like Google's word2vec model are derived from copyrighted data and seem to be fine.

Perhaps distribution of the subtitles is illegal under copyright law, but I suspect the trained model would be fine.

It would be an interesting case anyway.</comment></comment></comment></comment>


You Think The Google Interview Is Tough? Try Getting A Job At A PE Firm - daniel-cussen http://www.businessinsider.com/you-think-the-google-interview-is-tough-try-getting-a-job-at-a-pe-firm-2009-11 <comment><AUTHOR> Nice try, finance guys. 3 hours in a small room with "an asshole" doesn't sound like fun, but it's still not nearly as challenging as an interview at Google or Apple (I've interviewed at both). Those companies require 6 to 10 hours of grueling interviews and the real questions are _much_ more difficult than the ones listed in the previous Business Insider article on the topic (at least for programmers). They couldn't list typical technical questions in that article because 99% of their readership wouldn't even understand them.

I've never been a fan of this kind of blind arrogance in the finance industry. I hoped the recession would at least have some effect on that, but it probably won't. Engineers don't have nearly enough power in this society.

<comment><USER2> I'm curious - have you interviewed at a financial company too?

I know for a fact that most public accounts of Google interviews are wrong. I have no reason to believe that public accounts of financial company interviews are right. I just assume that everything I read on the Internet is wrong until proven right. ;-)

FWIW, my Google interview was much harder than my two interviews with financial software startups. But I'm not certain if those startups are representative of the financial industry as a whole. Things might be different at Goldman, or hedge funds, or PE.

<comment><USER3> I've interviewed with plenty of financial firms (large banks, asset management companies, smaller trading software firms, etc.) for engineer positions. The interviews are focused more on concurrency primitives, language features (knowing your tools), and database features (it's just too important in the financial world), with a bit of puzzles and basic computer science thrown in. It's not super hard, but it's also not a walk in the park. The questions are slightly different because of a different culture, but I can't say that it's radically different from a tech company interview, nor is it significantly easier.

<comment><USER4> Wait, you mean financial _software_ positions. The linked article is about interviews for analysing firms or how to execute deals.

<comment><USER3> Yes, I mean financial software - I should have clarified it better. The discussion turned to a general "which interview is harder" question, so I thought I'd chime in. I have no idea what high powered analysis interviews are like - I don't know anything about this. I do know that I've met some incredibly smart analysts, so I can't imagine them being easy.

</comment></comment></comment></comment></comment><comment><USER5> All this posturing about interviews is ridiculous. They are a very flawed tool at best. Whatever happened to actually learning what people were capable of?

The best hires are always the people that you've worked with in the past, or who come personally recommended.

Google's dick-swinging about its interviews is IMO not really one of their strong points. The interview process can eliminate some complete losers, but it probably also eliminates lots of people who would have been great on the job.

I have some empirical backing for this. During my brief tenure at Google our team worked with a lot of interns, and we made our recommendations for extending offers. Then, suddenly someone made a new rule that outgoing interns should be re-interviewed by members of a completely different team, I guess, for objectivity. And a lot of them were rejected through that process.

So we had people who had _proved_ themselves in an initial interview, and during many months of on-the-job contributions, getting rejected because some wanker asked them some question about missionaries and cannibals or some other useless puzzle question.

And yeah, it was that sort of thing -- I remember one intern trooping dejectedly back into our offices and I and the tech lead tried to figure out what the hell the answers were to the question(s) they got asked. We couldn't figure out those puzzles either.

</comment><comment><USER6> Actually this is in no way surprising. I just graduated from school and let me tell you that the real brain drain is in our smartest students defecting to finance.

Why would someone with a 4.0 in a hard, rigorous subject go into engineering for a measly 60k a year starting salary + 20% raises when he can work in a finance industry where the top talent makes in the hundreds?

I had a lot of friends in the math department that were double business majors. I imagine that at least for quantitive finance positions, interviews such as these (if not way harder) are a must to separate the top talent from the elite talent.

<comment><USER7> 60k starting? That sounds low, even for 6 years ago when I graduated in CS. Google/Microsoft paid 80K starting for college grads back then -- have no doubt it is > 100K or more now.

<comment><USER8> I can confirm that Microsoft still started at 80K last year. I've heard Google is a bit higher, but still under a 100K.

A trader at a top tier firm, on the other hand, might have a $150K+ base first year out of school. Adding on bonuses, it isn't unusual for them to be making $1mil/year within 3-5 years (although the vast majority don't make it five years ...). A quant programmer (slightly less competitive/stressful) can expect to be making $200K/year+ within five years at a top tier quant firm.

It isn't really fair to compare programmers to bankers since the hours aren't really comparable. But the traders/quant-programmers I know (usually) only work about 60 hours a week.

All based on my relatively limited experience (~5 people/company - although I have no reason to suspect bias in my sample).

</comment></comment></comment><comment><USER9> Uh, I still do? The person writing the article seems to think that if you can approximate how many piano tuners there are in New York, you automagically get that Google dream job. They're both tough, but very different, processes. I can only hope the author doesn't work in the business side of software, as they clearly suffer from Shit's Easy Syndrome.

<comment><USER10> Sorry for asking, but what's "Shit's Easy Syndrome"?

<comment><USER9> it's a term I lifted from steve yegge's [long-winded] software blog (RIP) - [http://steve-yegge.blogspot.com/2009/04/have-you-ever- legali...](http://steve-yegge.blogspot.com/2009/04/have-you-ever-legalized- marijuana.html)

</comment></comment></comment><comment><USER11> I think people are over-estimating the difficulty because they're thinking about how difficult it would be for them to pass this interview.

The typical background for someone applying for this sort of job would have 5-10 years spent at a management consultancy firm, maybe a few years at an investment bank and an MBA. They'll have read thousands of business case studies and written dozens or hundreds themselves.

They'll have seen a number of LBO/IPO deals and will have spent hundreds of hours studying how these are structured.

These are the kind of people who when they read about a company automatically start thinking about market sizing and modelling.

Not being able to do a case study in an interview would be like a programming interviewee not being able to solve a trivial problem like FizzBuzz.

And as for the timing, it's just testing something that anyone with the appropriate background should be able to breeze through. If you're meeting with a C-Level client, running over your allocated time is incredibly rude, if you can't manage your time in an interactive discussion situation then you don't belong in the industry.

The whole article just sounds like it's based on the rants of a candidate who wasn't capable of doing the job they were applying for.

</comment><comment><USER12> This sounds a lot like how my PhD oral qualifying exams went. Except I got 30 minutes of highly technical questions from all 6 committee members and then sat outside for 40 minutes while they deliberated if they should let me stay in graduate school (they did). After that I got to have two more personal interviews with more in-depth questioning. The whole ordeal lasted somewhere around 5 or 6 hours.

</comment><comment><USER13> Dunno about PE firms, but the Google engineering interview was roughly comparable to my interview at Morgan Stanley. (The second was slightly rougher; one of the interviewers printed out the code they were currently debugging and asked me to find the bug.)

</comment><comment><USER14> I wouldn't think you would need to be that selective in private equity. How hard is it to buy a healthy company with borrowed money, run that company into the ground, and then flip it a few years later?

</comment><comment><USER15> I must admit, with the world fiat economy slowly eating itself alive, too big to fail, massive TARP bailouts left right and center, entire middle eastern fiefdoms just saying "Hey sorry about that 60 billion IOU but we're going to have to put an indefinite hold on it".

Financial professionals whining about how much it takes to make the wheel turn in their industry strike me as about as honest and reality based as dressage shops for unicorns trying to make a case for why their particular brand of mastery ought to sit at the top of human endeavour.</comment>


Subverting Chinese Brainwashing Using "Fuck XueXiQiangGuo" - <AUTHOR> https://github.com/fuck-xuexiqiangguo/Fuck-XueXiQiangGuo <comment><AUTHOR> Came across this FT article [1] exploring how some Chinese are getting around the mandatory "Study Xi Strong Nation app"[2]. The app requires users to collect a certain amount of points by scrolling through state-media articles about the president and answering quizzes.

Someone open sourced a way to subvert this brainwashing, and now there could be a real chance of Github being blocked in China if this solution gets too much traction. That or Github/Microsoft will take the repo down to appease Beijing.

[1][https://www.ft.com/content/adaa462a-4f61-11e9-9c76-bf4a0ce37...](https://www.ft.com/content/adaa462a-4f61-11e9-9c76-bf4a0ce37d49)

[2] [https://www.bbc.co.uk/news/blogs-china- blog-47236902](https://www.bbc.co.uk/news/blogs-china-blog-47236902)

<comment><USER2> Use ghostbin next time?</comment></comment>


We know people care about privacy, so why won't they pay for it? - <AUTHOR> https://www.theguardian.com/technology/2016/jul/08/we-know-people-care-about-privacy-so-why-wont-they-pay-for-it <comment><USER2> Those of us who have paid for privacy in the past have learned to ask two questions:

Am I going to get the promised privacy, or can the Terms of Service change at any time? And perhaps even strip privacy retroactively?

And is the thing going to work otherwise, or is it going to be like a certain well-respected privacy product that blasts my eardrum with a maximum-volume DING whenever I use it? It's a detail, right, but more than a little off- putting.

</comment><comment><USER3> I would say that is a matter of price: maybe I wouldn't pay 5€/month recurrently but I would be glad about paying some cents for it.</comment>


OkCupid Pulls Firefox Blocker - <AUTHOR> http://www.cnet.com/news/okcupid-pulls-firefox-blocker/

<comment><USER2> On the one hand, Brendan Eich is entitled to his political views, and they do not inherently preclude him from being a great CEO.

On the other hand, a non-trivial portion of the population, particularly the next generation, see opposition to gay marriage as morally repugnant, the way most people now view anti-miscegenation laws.

I don't think this is going to go away. Mozilla will continue to suffer a minor but significant attrition of mindshare over this issue as long as he remains at the helm, regardless of his merits as a leader or as a human being.

<comment><USER3> I've got to disagree. At the end of the day, there aren't a whole lot of "substitute goods" for Mozilla the same way as there are for, say, Chick- Fil-A. Unless people within Mozilla oust Eich or fork the organization, the world may just have to deal with it. I wish Brendan Eich had different points of view, but I'm certainly not prepared to ditch Firefox over the situation.

But I'm also I'm trying to put myself in the shoes of someone emotionally closer to the situation than myself. I'm a black guy in an interracial relationship. It's tough to say how I'd feel if Brendan Eich had donated to an anti-miscegenation campaign. I'd probably feel pretty shitty about it. But I don't think I'd stop using Firefox on that basis alone.

<comment><USER4> > But I don't think I'd stop using Firefox on that basis alone.

Maybe it's because you are not LGBT? Given that you're black, would you stop using Firefox if he had donated to the KKK?

<comment><USER5> As someone who identifies as Bisexual and has been invovled with a few gay relationships, I have no intention of ditching Firefox nor do I plan to stop supporting Mozilla. While I don't agree with Eich's personal beliefs on the matter of same sex marriage, it's his PERSONAL belief. It seems he has and still wants personal matters distant from Mozilla or Firefox or anything else related to his career. Everyone will disagree with you on something, doesn't mean you should always shame them for an opinion.

<comment><USER6> The problem is that he donated money to support a law that discriminates against people. It's not a private personal opinion that isn't harming anyone, his personal belief has directly contributed to discrimination. Beliefs are never truly personal and private, what people believe affects their behavior and interaction with others.

<comment><USER7> "Beliefs are never truly personal and private, what people believe affects their behavior and interaction with others."

It's true. If I find out that a CEO is an atheist and voted on laws that went against the rights of Christians, I would probably want him fired too.

<comment><USER6> Sure, if a CEO supported and donated money to a law that would stop Christians from being able to get married like everyone else then i would hope they are publicly criticized and pressured to defend their beliefs and the actions they have taken as a result of those beliefs. I wouldn't say they should be fired but they should be made to feel that actions taken to discriminate against others can have social consequences in both your personal and professional life.

<comment><USER7> "I wouldn't say they should be fired but they should be made to feel that actions taken to discriminate against others can have social consequences in both your personal and professional life."

Well, it worked. The CEO has resigned today.

I would like to see one instance of the HN (or should I say, the US left) community going on the side against discrimination but regarding something against their personal beliefs.

I won't hold my breath.....

Why should I respect your freedom of choice..when you can't respect mine? We live in a world now where if I say or do something that is against the US left, I have a chance of getting fired and or having my livelihood or career ruined.

This is evil.

<comment><USER6> Discrimination isn't subjective, either something is discrimination or it isn't. It would require cognitive dissonance to be someone who is opposed to discrimination while holding a personal belief that supports discrimination.

There is a difference between respecting your freedom of choice and respecting your actual choice. If your belief is repulsive to your peers and discriminatory then you need to realize there are going to be consequences for holding that belief and acting on that belief when it comes time to try to fit in with society. Your freedom of choice does not give you freedom from all consequences of that choice. On the other hand LGBT people are NOT free to choose to marry the person they wish if laws like the one Mr Eich supported exist.

If you stand against discrimination and apply social pressure to the people who choose to continue to support discrimination then you are, in fact, on the side AGAINST discrimination.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> One thing I was struck by, when I read yesterday's Gizmodo report[1], was how haphazardly the decision was made to add the Firefox blocker message to the site.

OKCupid founder Christian Rudder essentially said that they made the decision in a hurry, in the span of about 36 hours, and had no concrete plan about what they would do next.

In fact, when Gizmodo asked him what outcome he expected, he said, "I don't have a good answer for you."

Let's step aside, for a minute, from the divisive social issue that inspired the stunt, and consider what this says about OKCupid's ability to make business decisions.

If I'm IAC, OKCupid's owner[2], should I really have confidence in Rudder and other OKCupid decision-makers if this is the way they make far-reaching, very public business decisions?

"Hey, let's slap something together and see what happens!"

I think that it is possible for a business to make a bold stand on social issues, even if it means calling out another business for its conduct. But if you're going to do it, you'd better have thought it out well and have a game plan.

OKCupid did not ... and that says a lot about the people in charge there.

[1] [http://gizmodo.com/why-okcupid-took-a-stand-against- mozillas...](http://gizmodo.com/why-okcupid-took-a-stand-against-mozillas- anti-gay-ceo-1556185712)

[2] [http://iac.com/brand/okcupid](http://iac.com/brand/okcupid)

<comment><USER9> More likely the reality is that the reason they went ahead with it is because they knew they would get a bunch of PR for it and a corresponding spike in signups.

That isn't the sort of thing you can come out and say in a gizmodo interview.

</comment></comment><comment><USER10> It's been curious to me from the beginning that this has been treated as a free speech issue. Free speech is a legal question. If a group of people boycott you, they aren't impeding on your right to free speech. In fact, they are merely exercising their own right to free speech.

As a CEO, you have the right to support slavery. As a worker, you have the right to quit in response to those views.

<comment><USER9> Free speech is a larger concept in America than the legal protection, specifically that people with alternate viewpoints should be respected even if you disagree, and that a marketplace of ideas is a good thing for society.

<comment><USER6> This isn't exactly true. Free speech just means you need to respect someones RIGHT TO VOICE their viewpoint. There is a difference between respecting someones right to free speech and respecting the actual person and/or their viewpoint. If the viewpoint someone expresses is repulsive you are under no obligation to respect that person or their viewpoint. Criticizing bad ideas and calling people out on them and applying social pressure to those people for their bad ideas is what makes the market place of idea's work, it stops bad harmful ideas like racism and LGBT discrimination from propagating. Criticizing someone and saying you don't respect that person anymore because of their ideas is not the same as disrespecting or taking away their right to free speech.

</comment></comment></comment><comment><USER11> The thing is, everyone has their opinions. It just happens that his donation was revealed.

Ok, suppose a new guy comes along, he could have donated a million dollars to ... I don't know .. an even worse cause. How would you know?

That's why we have laws and protections against each other's opinions (however imperfect they may be).</comment>


United Wants to Sell Your Seat to Someone Else for More Money - <AUTHOR> https://www.bloomberg.com/news/articles/2017-07-12/united-wants-to-sell-your-seat-to-someone-else-for-more-money <comment><USER2> So the airline can auction off seats EVEN BEFORE THE FLIGHT IS FULL and force feed you their $250 voucher? If it happens to me one time, that's the last time I fly with that airline. In this day and age, why can't they just fly planes with constant ticket prices? Makes it easy for consumers and less sophisticated for the airlines. As a side-effect avoid some PR disasters..

<comment><USER3> Because that's a huge revenue loss. The basic problem is that the MUST have the planes full if they're going to make any money at all. Once the plane is full, they want to charge as much as possible for each seat. This system let's them move low-fare passengers to empty seats on other flights to make room for high-fare passengers on full flights.

<comment><USER2> "MUST have the planes full if they're going to make any money".

But, we're talking about bumping passengers off a planes that is already full. The passenger already for a ticket on a plane that is full. Now, they're getting kicked out because of pure greed to make more money by the airline. I'd still be pissed.

It's like Jerry seinfeld said. "You know how to take a reservation, but don't know how to hold a reservation."

</comment></comment></comment><comment><USER4> If it didn't matter when I got there, why would I be flying? The airports strike me as less pleasant than the old Greyhound stations I remember from forty years ago, and the seats on the planes aren't as good as the seats on the buses.

<comment><USER5> What I wrote when I had to justify taking a plane for business travel: "Destination is on a different continent". Sometimes you have no choice

But yeah, especially when there is high-speed rail as an alternative, airplanes aren't always the best option.

</comment></comment><comment><USER6> Seems like United is increasingly positioning themselves as the airline for people who don't care whether they make it to their destination.

<comment><USER7> In that case, United is just like UDP.

<comment><USER8> United Datagram Plane.

</comment></comment></comment><comment><USER9> Air travel continues to really impress with its ability to get worse.</comment>


Introducing airbrb - <AUTHOR> http://blog.airbnb.com/introducing-airbrb/

<comment><USER2> I fell for this.. But I think this could actually make sense. I'm not thinking about ordinary people renting their desks, but there's bunch of co-working spaces, office hotels etc where this could apply. One app where you could check the availability and pricing, make the booking and then later settle the bill. For long term deals this obviously does not make sense, but sometimes when traveling you would like to have place to work just for half day or day.

</comment><comment><USER3> April fools aside, over congestion and under utilized property is a problem where I'm originally from (Hong Kong) where the average citizen couldn't ever dream of owning property.

There are all sorts of businesses popping up that lets you rent your apartment out during the day, whilst you're at work etc... Obviously, they'll need to overcome security and user experience issues, but people are making headway in this area.</comment>


Crawly – Control your broken pages with confidence in a better way - <AUTHOR> https://crawly.app <comment><USER2> Onboarding is easy, although the URI does look a bit strange ("[https://app.crawly.app"](https://app.crawly.app"))

[added] Don't understand the pricing structure, though. 2 sites is free, 4 sites is €5/month?</comment>


Towards a More Modular Future for JavaScript Libraries - <AUTHOR> http://flippinawesome.org/2013/11/11/towards-a-more-modular-future-for-javascript-libraries/ <comment><USER3> The yui library has an interesting concept of cleint-side modules. They were able to consolidate a lot of their widget code during the rewrite of yui2 to yui3.

I'm also excited to see what the Meteor team comes up with for their v1.0 release. They already have reusable packages for the client and server but currently it's only designed for those using the core meteor framework. Would be interesting to see if what they make could be usable by other clients.

1\. [http://yuilibrary.com](http://yuilibrary.com) 2\. [http://meteor.com](http://meteor.com)

<comment><USER4> I'm on the YUI team - we'll be doing a lot more work in the module space coming up in the future. We have a few goals coming up - mainly to make each YUI component interoperable with different module systems, so that developers can use each individual YUI module whether they're using AMD, CommonJS, just plain YUI modules, or even ES6 modules.

Our goal is to play better with other libraries, so that we don't have the idea of a "walled garden", and that people can use whatever other libraries they want together with YUI, which has been a bit more difficult in the past.

Eric Ferraiuolo gave a good talk on this last week at YUIConf. Unfortunately, the full videos for the talks aren't out yet, but his slides are right here:

[https://speakerdeck.com/ericf/yui-and-the- future](https://speakerdeck.com/ericf/yui-and-the-future)

Keep posted - we definitely think that smaller, more reusable modules are the better way to go for front-end development in the future, and we'll have some interesting projects soon that anyone - even if you're not using YUI - <USER2> use.

</comment></comment><comment><USER5> Good writeup, thanks. As someone recently shifting focus from backend to frontend this was a good overview of the state of things.

If you're hankering for future blog articles, I'd love to see your take on the tradeoffs b/t using require.js vs Browserify. Or more generally a followup article on your whole FUD section would be useful.

PS - amusing typo, it's CPAN, not CSPAN :)

</comment><comment><USER6> Couldn't agree more with the article. I use browserify in all my new projects and love having the same module comfort as I do in node.

</comment><comment><USER7> I've written about JS modules in the past.

[https://medium.com/what-i-learned- building/5a31feb15e2](https://medium.com/what-i-learned-building/5a31feb15e2)

While I think OP's link is quite informative, I think it suffers from the same oversight as most others on this topic has - confusing JS modules with Web components.

The JS world is split in 2 right now - client and server - for good reason because they are 2 very different domains with very different requirements. While a node package will work just fine by itself on the server, reusable code written for the browser usually doesn't work on its own. Some will require the window/document/location/whatever host object to be present, while others, mostly UI components, have to rely on other things like CSS and some minimal markup to work. Guess what? Most reusable browser code is NOT a JS module, they are Web components. As such, no pure JS solution with solve the dependency management problem on the browser. A proper solution must be able to package up different kinds of resources that constitute a whole Web component nicely for consumption. Having the One True Way to manage JS dependency is just a small part of it, in which any solution will do (tho I agree with the article OP linked to suggests, CommonJS style is the more tasteful choice for now before ES6 lands).

As far as I know, Browserify, Ender and Bower fail at the above totally, utterly, completely. Only Component and Volo seem to be on the right track as the moment I think.

<comment><USER8> What do you think of browserify coupled with transforms providing html templates[1] and css inclusion[2].

[1]: E.g., [https://npmjs.org/package/browserify- jade](https://npmjs.org/package/browserify-jade)

[2]: E.g., [https://npmjs.org/package/stylify](https://npmjs.org/package/stylify)

<comment><USER7> package.json doesn't have any place to define the styles and templates your component exports, so browserify can't meaningfully resolve dependencies and build your assets for you. For really good support, you'll need to be able to rewrite the URLs inside CSS too due to different directory structures within each component. Component does that for you.

<comment><USER8> That's a pretty fair point about the CSS url rewriting, it's possibly the kind of thing you can fix with a browserify transform, but iffy and as you say component is doing it already.

</comment></comment></comment></comment><comment><USER9> Highly, highly, highly recommend Component. We've been using it for everything we do at Segment.io for the past year and it's completely changed the way we think about and write Javascript in the best way possible. (Need to write a few more blog posts about this soon since it's never explained well in these comparison articles.)

It treats CSS and HTML as first-class filetypes right alongside Javascript so you aren't stuck inlining CSS or templates as strings which becomes incredibly unmanageable quickly. It's build step is modular too so if you really want to do custom things you can do them very easily. It's got it own's registry so you don't have to wade through junky npm modules figuring out what's supported in the browser and what isn't. It's written by TJ, so you know the API is extremely clean. It's based on GitHub's structure, so forking and tweaking is literally a one-line change instead of having to re-publish and maintain your own fork. There are so many benefits I'm forgetting too.

More than that though, I guarantee if you start using Component for a couple months you will emerge a 5x better Javascript programmer. All of the existing components are very high quality, and their source is always very small, making them trivial to read through. It actually blows my mind now to think about the kind of code we were writing pre-component and how much it has changed. We probably open-source like 5-10 new components a week nowadays, I think we have something like over 200 components between the org account and all of us combined [1][2].

Disclaimer: I seriously love component, and really just want more people to discover how awesome it is.

[1]: [https://github.com/segmentio](https://github.com/segmentio) [2]: [https://github.com/ianstormtaylor?tab=repositories](https://github.com/ianstormtaylor?tab=repositories)

<comment><USER10> Just curious, have you guys given bower a chance, and if so why did you guys end up going with component. Component seems to be slightly more opinionated, less adopted, but really nice.

<comment><USER11> I haven't tried bower, but I always get a little confused when it gets compared to component. Bower seems like a downloader with some 'dependency management'. But its 'dependencies' are disconnected from a module/build system. Great if you have a separate tool to do your build, but frankly most of them out there are awful, and it would be a nightmare even with the best to wire them up to all the conventions of all the libraries you pull in.

As Ian said, component's opinions encourage more modular, better code, and allow you to do what Web Components only now are promising within the DOM itself: bundle together templates, css, code, data, etc. And it does this without imposing a framework. For instance, if you have a pure javascript library, it is extremely easy to package for both component and NPM. Most of the UI components are framework-independent and that is encouraged. The component ecosystem and community is fantastic. And it's not sponsored by a corporation on the NYSE :) These were the main reasons I was attracted to component. The learning curve is a bit steep, but getting better all the time.

</comment></comment></comment><comment><USER12> I've had success with npm and browserify. There are still script tag dependencies I haven't gotten around to cleaning up, but the whole system is working well.

I'm absolutely in love with the npm system though. It's so simple, easy to use, and powerful. It's absolutely a killer reason to use node.js in general. I've never use a framework where installing a project was as easy as `npm install`.

</comment><comment><USER13> See JSAN: [http://openjsan.org/](http://openjsan.org/) (without www)

You can download the JSAN Server, and upload modules. And it takes cares of dependencies.

Check it out, and if you like, contribute there and dont reinvent the wheel.

I too belive we need a more modular javascript.

Plus, you can use JOOSE-js to create modular modules. I recommend JOOSE-js. Its great and works in all browsers, also with node (backend) and frontend

<comment><USER13> Also, in the non-perl world, i see a lot of web frameworks that likes to provide an all in one solution. That leads the developers and applications to tie themselves onto those frameworks(which is bad). ie: someone using webframeworkX that provides ormY builds all his site using that stack... and that is not good, because to use the ormY they will need the webframeworkX.

That sucks. because if i need to use cron for that app, i will need to load the webframework because the app is tied onto it... bah.

The best solution is to have ormY separated from the webframeworkX. So you can build your app with ormY, and use any webframeworkX Y or Z (only on the web facing part of your app). And no need to use orm at all (from the framework)

</comment></comment><comment><USER14> Looks like the site's down, Here's a text only cached version: [http://webcache.googleusercontent.com/search?q=cache:http://...](http://webcache.googleusercontent.com/search?q=cache:http://flippinawesome.org/2013/11/11/towards- a-more-modular-future-for-javascript-libraries/&strip=1)

</comment><comment><USER15> Both awesome libraries, but I think including lodash and jquery in the list of small modules is a bit of a joke. Both are big old fashioned utility belts.

This

[https://github.com/lodash/lodash/blob/master/lodash.js](https://github.com/lodash/lodash/blob/master/lodash.js)

is hardly the ~200 LOC module being described.

<comment><USER16> It may help rereading the post as it does explain why both are on the list.

FWIW you're linking to the pre-build dev source.

Lo-Dash is available as modules for AMD, ES6, CommonJS, Node.js, and npm packages per method.

[https://npmjs.org/package/lodash-amd](https://npmjs.org/package/lodash-amd)

[https://github.com/lodash/lodash-es6](https://github.com/lodash/lodash-es6)

[https://npmjs.org/package/lodash-node](https://npmjs.org/package/lodash-node)

[https://npmjs.org/browse/keyword/lodash- modularized](https://npmjs.org/browse/keyword/lodash-modularized)

Also, jQuery is using AMD internally and allows custom builds.

There is even a project to convert it to something more easily consumed by browserify:

[https://github.com/kirbysayshi/node-ddd- jquery#rationale](https://github.com/kirbysayshi/node-ddd-jquery#rationale)

</comment></comment><comment><USER17> Please don't use Require.js, it overwrites how require is actually suppose to be used. Try using something that doesn't break instead, like HTTP://github.com/amark/theory (disclosure: this is my library, you should check out my tech talks).

<comment><USER18> "it overwrites how require is actually supposed to be used"

According to whom? RequireJS is an implementation of the AMD spec.

<comment><USER17> According to NodeJS, which given its dominance is rather important.

</comment></comment></comment><comment><USER19> The graph of library growth is stunning: [http://modulecounts.com/](http://modulecounts.com/)

For all of JS quirks it is clearly getting something(s) very right.

<comment><USER20> Yeah, it's available in the browser. I'm not even trying to slam JavaScript--I sort of like it for all of its foot-guns, but this is literally the _only_ reason worth considering for its success.

Edit: I like several things about JS. Certainly if it didn't have first class functions, or easy object literals, that would be a pain. Likewise, if it didn't have insane implicit conversions and painful APIs, that would be great. But the good features didn't make JavaScript successful, just like the terrible features didn't kill it.

And Node was a function of JavaScript's ubiquity, not a cause. Having a server side platform will help keep momentum behind the language, but it really happened because JavaScript was already so big.

<comment><USER21> What about closures and first class functions?

Or easy interop (JSON), object and array literals?

JavaScript has more going for it than platform ubiquity.

<comment><USER22> While it certainly has good points besides platform ubiquity, if you were trying to derive an equivalent of big-O for the popularity of javascript, language level criticisms and acclamations would count as, at best, linear concerns, where platform ubiquity is an exponential concern.

Platform ubiquity is so completely important in the determination that all other concerns can be ignored entirely.

Given a choice of supporting half of systems in javascript, and all systems in brainfuck, people would begin writing brainfuck-targeting compilers immediately.

<comment><USER23> All the cool programmers use CoffeeFuck.

</comment></comment></comment></comment></comment><comment><USER24> We already have CommonJS. It rocks. Use it. Whether your code runs in node or the browser is exactly what the "engines" property of the "package.json" file is for.

</comment><comment><USER25> Interesting but I was expecting a bit more insights on the "modularity" approach of these different client-side package managers.

</comment><comment><USER26> Check lit [http://www.corslit.com/](http://www.corslit.com/)

</comment><comment><USER27> why not add a real module and dependency system to js at the language/runtime level? Considering how important JavaScript has become, isn't it completely amazing that this discussion is even happening _now_?

<comment><USER28> TC39 is working on it ,i think they are 10 years late of that matter, and the solution they chosed is not even that good.

</comment></comment><comment><USER29> I mostly work with NPM and Node also Bower. Very powerful tools

</comment><comment><USER30> Based on the site being down, I think the future is to use a CDN, yes? MaxCDN is $39/year.

<comment><AUTHOR> Site is back up. Sorry about the issues.</comment></comment>


How Smartphones Betray Democracy - <AUTHOR> https://www.nytimes.com/interactive/2019/12/21/opinion/location-data-democracy-protests.html <comment><USER3> But no.

This is not about _phones_. The same argument can (and has been) made about non-uniformed police officers, photography of crowds, video of demonstrations, wiretaps, postal inspection etc.

Yes, democracy can be threatened by the actions of governments and big business. Can be, has been.

The solution is nothing to do with phones, or cameras.

It is about good laws, enforced vigorously.

And that requires us to vote, to become engaged and perhaps enraged.

If anything is breaking democracy perhaps it is the realisation by government that they can get away with things that previously were unthinkable - <USER2> breaking the basic rules of democracy does not lead to destruction.

And the only solution is our vote. But enough of us need to be engaged and outraged.

The fault dear brutus is not in our stars, but in our selves.

<comment><USER4> Voting is such a weak control system, that it is obviously not enough. Regular elections pack together so many decision points into so few options that it's barely worth participating.

If we really want to influence politics, we need to get rid of this idea that voting is all that democracy means, and try to get people more organized, try to get many more people to participate directly in politics, get them to talk to their representatives regularly, get them to organize and pool resources together for important causes and so on.

If you can convince 2 people to vote your way in an election, you've had a more meaningful impact on the election than if you voted yourself. If you can convince an elected representative to change their stance on some issue, you've had probably a hundred or a thousand times more impact on policy than your vote alone has.

Until we recognize these things, the people who already do (mostly, but not exclusively, lobbyists and industry groups; and some religious organizations) will continue to effectively control policy.

Would anyone ever imagine that, if say Mark Zuckerberg wanted a particular policy, he would do nothing until the next elections, and then would go to the polling station and vote for the candidate who seems to promise that policy?

<comment><USER5> There is a whole existing structure to influence government decisions and policies.

First, there is are the Democratic and Republican party organizations which range from precinct workers up to the national committees. Typically, the only way to get elected to political office is to join and work your way up in the organization of whichever party is dominant in your area. Occasionally talented people join the non dominant party and win office, but it is rare.

Second are the numerous groups dedicated to advancing this or that policy. They have members, collect money, organize, and influence elected officials at the local, state and federal level.

Third are the various NGOs that work to influence policies in Washington. These include lobbying groups, think tanks, etc.

Fourth, money talks. If you aren't contributing to the political organizations and causes you believe in, you have very little influence in a democracy.

<comment><USER6> This is (unintentionally?) a fairly strong argument against the desirability of democracy, at least as she is practiced in the US.

This feels like a Unix poweruser telling grandma why she doesn't need Dropbox.

<comment><USER7> If you don't mind, could you elaborate on your opinion further ?

IMO power users in democracy (lobbyists, influencers and special interest groups) will always have more leverage unless the population is educated and informed enough to be skeptical to not associate with an identity or ideology.

The recurrence of such groups throughout history seems to indicate that this hasn't become part of our collective knowledge yet and I doubt if we will ever learn. Maybe the sense of collective identity is part of human nature.

</comment></comment></comment></comment></comment><comment><USER8> Snowden shared a chilling video today of smartphone surveillance at play in China. Its a real wake up call- what happens when there is no privacy from the state. Please share. [https://twitter.com/Snowden/status/1208469511051075585](https://twitter.com/Snowden/status/1208469511051075585)

<comment><USER9> Interestingly, a few tweets later in the same thread is this tweet:

"meanwhile in the usa 🇺🇸 you get sent to a restrain chair for walking your dog without a leash."

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

They also used taser on her as she was already on the chair: "Did you see this? (tazzzap) (she cries from pain) It will happen again, so sit down and stop resisting."

At least there's a difference: there's no record of her being interrogated later while bound to the chair.

Or, maybe a bit more relevant, surveillance in action in the U.S. of A (2012):

[https://www.dailymail.co.uk/news/article-2093796/Emily- Bunti...](https://www.dailymail.co.uk/news/article-2093796/Emily-Bunting- Leigh-Van-Bryan-UK-tourists-arrested-destroy-America-Twitter-jokes.html)

"British pair arrested in U.S. on terror charges over Twitter jokes"

It's not just what "could" happen.

<comment><USER10> Let's not compare systematic and institutionalized measures to news-worthy odd cases.

<comment><USER11> Claiming these issues are not systematic [0] and institutionalized [1], is willfully ignoring a very apparent problem.

This isn't even reserved to US police, the whole system is flawed to the root due to being based on retribution and vengeance, instead of actual rehabilitation, which feeds exactly the kind of straight-up sadism showcased so often by US police and the US justice system.

Case in point: Tazzing a restrained woman is justified with her having been "argumentative" [2].

Just follow the orders, be obedient, lick some boots, and then this will supposedly never happen to you, is a very common reply to these "news-worthy odd cases".

But these "news-worthy odd cases" are merely the tip of an iceberg that is the US justice system boasting the highest incarceration rate and the largest prisoner population on the planet. Many of them working in for-profit forced labor prisons [3] or being imprisoned under circumstances that some would rate as torture [4].

It's all extremely authoritarian [5], deeply embedded into the country and culture, but regularly overshadowed by the chants of "Land of the free!" distracting from the crass actual reality.

[0] [https://time.com/4878195/civil-asset-forfeiture-jeff- session...](https://time.com/4878195/civil-asset-forfeiture-jeff-sessions/)

[1] [https://www.nytimes.com/2005/06/28/politics/justices-rule- po...](https://www.nytimes.com/2005/06/28/politics/justices-rule-police-do- not-have-a-constitutional-duty-to-protect.html)

[2] [https://youtu.be/TFG4KKwtEZo](https://youtu.be/TFG4KKwtEZo)

[3] [https://www.theguardian.com/commentisfree/2018/may/17/us- pri...](https://www.theguardian.com/commentisfree/2018/may/17/us-private- prisons-forced-labour-detainees-modern-slavery)

[4] [https://www.reuters.com/article/us-rights-un-usa-torture- idU...](https://www.reuters.com/article/us-rights-un-usa-torture- idUSKCN0WA2B8)

[5] [https://en.wikipedia.org/wiki/Free_speech_zone](https://en.wikipedia.org/wiki/Free_speech_zone)

<comment><USER12> Just to be clear, if you were in China and made these kinds of comments about Chinese police online, more likely then not you would end up in a much worse situation, if you didn't use appropriate counter measures.

<comment><USER13> China having worse systematic problems than the US inn this area doesn't change the fact that the US problems are systematic and (from the perspective of value systems around individual rights commonly espoused in America) serious.

</comment></comment></comment></comment></comment></comment><comment><USER14> Duh this should be common knowledge by now and it s only getting worse. Yes you should be freaked out about living in a world without privacy, but no, democracy is not in danger, freedom is in danger. In fact, democratic people voted for this shit and they keep voting for more regulation/spying because "think of the children/terrorists". Authoritarian control has gotten hold of both democracies and non-democracies and people are fine with it. So, maybe blame the majority along with the phones.

<comment><USER15> > Authoritarian control has gotten hold of both democracies and non- > democracies and people are fine with it.

And how is democracy doing in places where authoritation control has gotten out of hand? After all, you are claiming that democracy is not in danger. So, have people who noticed that they weren't that keen on authoritarianism after all regularly voted the authoritarians out of office successfully, then?

<comment><USER14> > how is democracy doing in places where authoritation control has gotten out > of hand?

Not well, but not too bad either. Everyone is happy because of this:

[https://thinkbynumbers.org/wp- content/uploads/2019/05/number...](https://thinkbynumbers.org/wp- content/uploads/2019/05/number-of-democracies-over-time.png)

Surveillance democracy is a thing, as is surveillance communism/putinism/erdoganism. The difference is that democracies have found a way to manufacture the consent of the majority, while in autocracies it's easier to pin the blame to one person.

> have people who noticed that they weren't that keen on authoritarianism > after all regularly voted the authoritarians out of office successfully, > then?

There are relatively few people who aren't keen on surveillance. most people are on board with UK level surveillance and most americans still think badly of Snowden. Don't expect it to be voted out soon

<comment><USER15> > Surveillance democracy is a thing, as is surveillance > communism/putinism/erdoganism. The difference is that democracies have found > a way to manufacture the consent of the majority, while in autocracies it's > easier to pin the blame to one person.

Well, is it really, though? I mean, no doubt there is a thing that people call "surveillance democracy", and I would agree that it's actually a distinguishable thing.

But for one, just because something is called "democracy", doesn't make it a democracy, so the question would be: What makes a democracy a democracy, and would a "surveillance democracy" fit those criteria?

But also: Is a "surveillance democracy" even a place where authoritarian control has gotten out of hand yet? Maybe as long as you could still vote the authoritarians out of office, it's not out of hand yet? But then, what if there is actually no real way to achieve this, for whatever reason, and those places are destined for a situation where it is generally accepted that the authoritarians can not be voted out of office, even when people might ultimately change their mind about that whole authoritarianism thing? Maybe then it is out of hand after all? But then, is democracy actually fine if it is unavoidably destined for a place where it is impossible for a majority to elect a new government?

Your analysis so far seems not too far from a line of thought that would conclude that the GDR was a democracy (they had elections, and they even called themselves democratic!)--not sure whether you would agree with that, but the GDR sure was and is not considered a democracy by many.

> most people are on board with UK level surveillance

But are they really? My impression is rather that people simply have no fucking clue what surveillance does or what the risks are. So, while it might well be true that most people don't think of surveillance as a problem right now, that doesn't answer the question of whether people are actually OK with it, as in what their opinion would be once they might be directly confronted with the consequences.

And that was my point: There sure are and have been plenty of places where people are not happy with authoritarianism anymore, and those do not tend to be the places where people just vote the authoritarianism out. Authoritarianism is not compatible with democracy, by its definition: It is kindof fine just as long as there is still enough democracy left to potentially remove the authoritarians, so people don't realize the danger they are in, but it becomes unbearable exatly at the point where that power does not exist anymore, because that is also the point at which the authoritarians don't have to care about public opinion much anymore.

<comment><USER14> > something is called "democracy", doesn't make it a democracy,

Right. We used to call them "liberal democracies" in the west, at some point we dropped the adjective. Obviously democracies like russia, GDR, even Turkey are not liberal, but that bar is pretty low for the west.

> Is a "surveillance democracy" even a place where authoritarian control has > gotten out of hand yet? > Maybe as long as you could still vote the > authoritarians out of office, it's not out of hand yet?

No it hasn't. Yet again, the concentration of power is more visible and pervasive than ever (eg. surveillance, border controls, police brutality, incarceration, monetary controls). It's fair to say that both left and right agree with large scale, everpresent state surveillance. We are content with doing relative comparisons between western democracies and illiberal authoritarian governments, but that is wrong, we should instead be measuring democracies against objective measures of liberty.

> But are they really? My impression is rather that people simply have no > fucking clue what surveillance does or what the risks are.

Yes, i think they are at this point. "Nothing to hide, nothing to fear" is the dominant ideology. The world's most expensive, desireable cities are also the most surveilled. This might be taken as a sign of democracies sliding into illiberalism, as has happened many times in the past.

> Authoritarianism is not compatible with democracy, by its definition

Ostensibly, democracies help to avoid fascism and complete concentration of power , but democracy itself is not enough to guarantee freedom. Democracies have voted in the world's worst fascists. There is a case to be made about the abandonment of Enlightenment ideas of reason, liberty, fraternity in place of Democracy (which comes parceled with populism and was not even an Enlightenment ideal).

<comment><USER15> > Yes, i think they are at this point. "Nothing to hide, nothing to fear" is > the dominant ideology. The world's most expensive, desireable cities are > also the most surveilled. This might be taken as a sign of democracies > sliding into illiberalism, as has happened many times in the past.

How is that a response to my suspicion that people don't understand the risks of authoritarianism? You are just repeating that people do not object to living under surveillance, which is exactly what I said, while you are not responding at all to me pointing out that that may well be because they don't understand what is happening, rather than because they understand what is coming and are fine with it.

> Ostensibly, democracies help to avoid fascism and complete concentration of > power , but democracy itself is not enough to guarantee freedom. Democracies > have voted in the world's worst fascists.

How is that a response to authoritarianism not being compatible with democracy? It's like if I said that fire is not compatible with structural integritry, and you are countering that many a structurally sound building has burned down. Yeah, they have, and I very much doubt many of them were structurally sound afterwards.

<comment><USER14> > rather than because they understand what is coming and are fine with it.

Sorry if it wasn't clear, i do believe people know the consequences of surveillance and are OK with it. An Authoritarian state does not let its citizens know they are living in an authoritarian state. It oppresses or annihilates minorities to create a golden cage for the rest. Thankfully, liberal democracies are free enough so audiences in the west are informed of the consequences of surveilance (humiliating border controls, incarceration, police brutality), and they are largely OK with it. I don't see evidence to the contrary.

> How is that a response to authoritarianism not being compatible with > democracy?

Authoritarianism has gradations and is not incompatible with democracy. Democracy may protect from extreme authoritarianism but it doesn't guarantee liberalism.

<comment><USER15> > Thankfully, liberal democracies are free enough so audiences in the west are > informed of the consequences of surveilance (humiliating border controls, > incarceration, police brutality), and they are largely OK with it. I don't > see evidence to the contrary.

So, you think that the general public understands what it is like to live in a police state, how corruption wastes resources that they otherwise could benefit from, what negative consequences they themselves can expect further down the road?

If you ask me, most people are not even really aware of the things you list. Most people believe those things are a small necessary evil that you need to ensure safety, or individual mistakes that happen, and and it's not something they would ever experience themselves, because they believe that the state is fair and friendly and would only ever do such things to people who really did bad things, which they themselves obviously aren't, as any officer would immediately recognize. People have no fucking clue how power structures work, how their data is actually being used, how bad corruption can get, how inhuman governments can act against them. They have no fucking clue right up to the moment where they are the victim and they are totally surprised what is happening to them.

> Authoritarianism has gradations and is not incompatible with democracy. > Democracy may protect from extreme authoritarianism but it doesn't guarantee > liberalism.

How isn't that the exact same "but structurally sound buildings have burned down!" response as before? Nobody is claiming that democracy guarantees liberalism, rather this is all about the fact that you can not have democracy without liberalism. Democracies are perfectly capable of ending liberalism, and have done so many times, but with it they necessarily end democracy. Either people can make free decision in their own best interest, or they have to follow what the authority dictates. A democracy in which authoritarianism rules is only a democracy in name, but not in function, just as the GDR was. If the dictator tells you who you have to vote for, that is not a democracy, no matter how much you get to vote.

<comment><USER14> > Most people believe those things are a small necessary evil that you need to > ensure safety,

I believe the same too, but not that people are clueless. People are quite aware (imperfectly , but still pretty well) of what can go wrong, and they 've decided that losing some liberties is a small price to pay. It's been too many years of revelations and media campaigns. I think at this point we just have to admit that most people don't mind, not that they don't _know_. That's what leads many people to say that true freedom is not compatible with democracy.

> A democracy in which authoritarianism rules is only a democracy in name, but > not in function, just as the GDR was.

Right, but where do you draw the line. Did the germans in 1933 think they have a democracy? Do Turks or Russians today think they have a democracy? It's easy to tell post-facto, or from the outside, not so easy when it's happening in real time. Do the UK or US think they have a liberal democracy ? absolutely. Is that 100% true? less clear

<comment><USER15> > People are quite aware (imperfectly , but still pretty well) of what can go > wrong, and they 've decided that losing some liberties is a small price to > pay.

In other words: They do not understand that they are losing all liberties?

> It's been too many years of revelations and media campaigns. I think at this > point we just have to admit that most people don't mind, not that they don't > know.

I very much disagree. Do you have an idea what media people consume? What absolute bullshit they are being fed? Do you really think that people on that basis have an accurate understanding of where all of this will lead?

> Right, but where do you draw the line.

You don't, there is no need to, it's not a binary matter. You might for pragmatic reasons in order to have terms to use for effective communication, but there is no actual line between "dictatorship" and "democracy", between "libertarianism" and "totalitarianism", it's a scale with many steps in between the two extremes. The point is that just because something might be considered a democracy under some pragmatic definition, doesn't mean it's therefore equivalent to everything else that you might label a democracy.

> Did the germans in 1933 think they have a democracy? Do Turks or Russians > today think they have a democracy?

I think that's somewhat the wrong question to ask, in that it assumes "the Germans", "the Turks", or "the Russians" to be homogeneous groups. There most definitely were and are lots of people in all of those societies who would not consider their political system a functional democracy.

> It's easy to tell post-facto, or from the outside, not so easy when it's > happening in real time.

Well, but is that actually true? If you understand power structures somewhat, it's not really that hard to see, is it? It seems to me this is much more a matter of competence than of your location in time or space. While it may be hard to get the full picture of what is going on, it's not really that hard to see whether you are free to say whatever you want, to inform yourself about whatever you want, to vote securely, i.e., whether the structural prerequesites for a democracy are there. It's just that a lot of people are not competent at recognizing what authoritarianism looks like and are more than willing to accept any authoritarian apologetics they are presented with.

> Do the UK or US think they have a liberal democracy ? absolutely. Is that > 100% true? less clear

But do they? As above: I am pretty sure a significant proportion of people don't think that, at least not without reservations. And a large section of the public wouldn't even know what you mean by "liberal democracy" as opposed to just "democracy", so you can not really meaningfully say that they think they live in a liberal democracy. They would understand your question to mean "can you vote?", which they would, correctly so based on their understanding of the question, answer with "yes".

I think it might be helpful to draw an analogy with religion: Many religious people have a very warped understanding of reality and in particular of how to understand reality. They simply lack the competence to understand the failures in their reasoning. They think they do understand the world in terms of their preferred fictional story, but they don't realize it's all fictional. So, based on their rather confused understanding of the world, they then demand that slavery should be upheld, or that gay people should be oppressed, or that women must not be allowed to control their own bodies, or whatever the case may be, because they think that those are the right things to do. But then, there is a not insignificant group of people who overcome their religion, who come to understand how reality actually works and how it can actually be understood. And with that understanding usually comes a rejection of their previous political stance, because they now understand the actual consequences of their former ideas. These are not people who are actually fundamentally OK with the damage they were doing before, they simply were lacking an understanding of how their actions were damaging, because based on their previous fictional world view, they were doing the right thing to prevent bad things from happening.

You have to consider that people might just be incompetent at this democracy thing, rather than that they all have an understanding that reflects all the things that they could know if they were paying attention to the right sources that you might be paying attention to.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER16> It's not just phones. And you don't need GPS to get GPS-level location accuracy. All that you need is WiFi capability.

Because WiFi devices scan for APs. And there are databases of GPS-located APs. Located by other GPS-enabled pawns, as it happens. So if you're using anything Google related, or other apps that access such data, you can be tracked. Just from WiFi. Without a cellular radio, or GPS.

<comment><USER17> To add to this, if an AP has monitor mode capabilities then our device's don't even need to be connected to the AP via WiFi to be tracked. They just need to have WiFi turned on and sending out probes.

<comment><USER16> Yes, but that's just about being tracked by the WiFi AP itself. But as I understand it, being tracked by apps on your device doesn't depend on the AP having monitor mode capability. APs get geolocated primarily by GPS-capable smartphones. And then devices get geolocated based on proximity to such APs. Basically, through latency-based triangulation.

</comment></comment></comment><comment><USER18> I don't get why people confuse Democracy with Constitutional Republic. The first is run by "mob rule" where personal rights can be swept away with the popular sentiment. The second (which is what the United States has) is where the Constitution protects personal rights despite popular sentiment.

<comment><USER19> Wait, what?

The first is a philosophical principle that says that a government must serve the governed people, the second is an actual form of government that tries to implement the first.

<comment><USER14> Where do you get those definitions?

<comment><USER19> How about the dictionary?

> n. Government by the people, exercised either directly or through elected > representatives.

> n. A political or social unit that has such a government.

> n. The common people, considered as the primary source of political power.

But better, where outside of some ancient history book did you ever see somebody use that word describing exclusively a government like the one in ancient Greece? (Not to say that republic comes from the exact same concepts, just in a different language.)

<comment><USER14> \- these definitions are not the same as the one you stated previously.

\- All these 3 definitions of democracy may apply to a democracy that uses allotment instead of elections.

\- You are correct that modern usage of democracy is restricted to "election based majority government".

\- Republic is a wholly separate, orthogonal concept. Pre-empire Rome was a republic, not a democracy.

<comment><USER19> > these definitions are not the same as the one you stated previously.

"Government by the people" vs "The common people, considered as the primary source of political power" vs. "government must serve the governed people". Oh, I see, I have used different words!

> All these 3 definitions of democracy may apply to a democracy that uses > allotment instead of elections.

Where did I say it doesn't apply?

> You are correct that modern usage of democracy is restricted to "election > based majority government".

Wait, what? I didn't say that, and it is not correct.

</comment></comment></comment></comment></comment></comment><comment><USER20> > _" Countries including Canada and Spain have rules to limit or prohibit > masks at riots or unlawful gatherings"_

Oh yes, I'm sure the guys burning cars and smashing shop windows are going to follow a no masks rule.

More broadly, democracy doesn't require anonymity. In face, it functions better when you know exactly where everyone stands.

If you're worried about the ruling government black bagging you for your stance, get a 2A. Start a real revolution.

The Declaration wasn't signed "concerned colonists". Those dudes put their names on paper and mailed it to King George.

<comment><USER14> > More broadly, democracy doesn't require anonymity. In face, it functions > better when you know exactly where everyone stands

that's just false. democracy wouldn't function at all without secret ballots

> Those dudes put their names on paper and mailed it to King George.

an act of war that has little to do with democracy

<comment><USER20> Can you imagine a parliament or Congress where every vote was anonymous?

Anonymous "ministers" making anonymous, unaccountable decisions?

"The Government" deciding what was right?

And it did too have everything to do with democracy. A unanimous vote from the states representatives supported the motion to secede.

In the United States, we know the names of everyone who votes for the president.

<comment><USER14> Apples and oranges. Thats why parliamentary immunity exists. Voters are not and should not be accountable to anyone. Thats their only power (left)

<comment><USER20> They're accountable to their electorate.

<comment><USER14> Voters == the electorate

</comment></comment></comment></comment></comment></comment><comment><USER21> Im in the latest Opera and all I see is a video of a crowd. Is that a broken experience?

<comment><USER22> Latest Firefox here, takes a few minutes to load and all I get is a mostly black top half of the screen and a few seconds of 'video' stuttering along in the bottom half.

</comment></comment><comment><USER23> "The freedom of some stops where that of others begins"

</comment><comment><USER24> Muh, tracking bad...

</comment><comment><USER25> Can we have a discussion about what democracy currently is?

Is one dollar one vote really democratic?

<comment><USER26> That's the way republics have worked since Rome and Carthage.

Nowadays the aristocrats just play in hard mode - best weapon is soft soap.

</comment></comment><comment><USER27> If there's one thing you can count on the Times for, it is ragging on about everything under the sun being a threat to democracy. They don't ever want to place the blame a little closer to home, though.</comment>


Democratizing Chrome Extension Security - <AUTHOR> https://duo.com/blog/crxcavator <comment><USER2> Perhaps unrelated to the topic but my standard PSA is "Browser Extensions see ALL your webpages in cleartext. as a general rule dont install extensions unless you absolutely have to and only those that you really trust".

<comment><USER3> You can now whitelist extensions to only run on specific domains. There are a lot more changes coming in v3 of the extension API, you can see the (strong) reaction to the changes in the chrome extension forums.

<comment><USER4> The notable strong reactions are about a different part of the proposed changes. The removal of the cancel feature in onBeforeRequest().</comment></comment></comment>


Robotic helicopter team sets sights on impossible mission - <AUTHOR> http://phys.org/news/2013-08-robotic-helicopter-team-sights-impossible.html

<comment><USER2> This is completely amazing.</comment>