HelloRun - A WebGL 3D Game - <AUTHOR> http://hellorun.helloenjoy.com/

<comment><USER2> Beautiful but restarting from the beginning on the slightest mistake makes this game negative fun to play.

<comment><USER3> Agreed. I'd love to be able to restart where I left off. Maybe the high score could reset, but the music could continue. The music's great, and coupled with the color change at the drop, it could be really cool.

<comment><USER4> I disagree, think of it like Bit.Trip Runner, the beat builds as you progress, but you have to start over if you fail.

<comment><USER5> Yes, but look how they do it. The music never skips a beat and certainly never cuts to straight silence, and Runner taps his feet for an appropriate number of beats so he launches himself at the right time. It's still a shock to lose, but it's not a bucket of cold water to the face like this.

</comment></comment></comment></comment><comment><USER6> This is really really cool. Am I the only one who wanted to play just because I wanted to hear more of the song? It makes sense that the motivation to play a little more could be tied to how much of the song you hear. Even though I have heard this song before multiple times, the gameplay aspect of song revelation makes it more fun.

This got me thinking about how shortsighted are artists, musicians and producers, who are not thinking of reaching out to fans through interactive digital experiences rather than simple publishing deals. The music industry profitability is going down the drain and the only way to make people pay a premium would be to invest in thoughtful interactive experiences attached with the music. Games could be one of those but definitely not all of those.

<comment><USER7> And if you just can't conjure up the skill required to hear the whole song, the main menu fortunately links to its soundcloud: [https://soundcloud.com/dutoncmusic/du-tonc-surging- memories](https://soundcloud.com/dutoncmusic/du-tonc-surging-memories)

</comment></comment><comment><USER8> Cool… the fog color matching the gate color often makes it difficult to discern which section is the opening.

<comment><USER9> It's supposed to be challenging. You will learn to discern.

<comment><USER10> I agree—this game is really frustrating because it's difficult to see the barriers. Challenging games are often frustrating, don't disagree with you there - but this particular flavor of challenge isn't really fun. I'd prefer "it came too fast" or "it was moving and hit me" to "the wall looked just like the opening." I definitely got better after my first few plays at discerning the walls from the openings, but it took me a few tries to even realize that that's why I was dying. I imagine many people will give up before I did.

<comment><USER11> Just chiming in to agree with this. Games that are difficult because of their UI usually aren't very fun.

Also, it seems important for the game to quantize input. I.e. right now you can occupy a continuous height anywhere from "0.0 to 1.0", but it would be much more fun if the game would automatically snap your height to either "bottom, middle, or top." It's quite frustrating to lose because you just barely clip a gate.

<comment><USER12> I didn't realise it was a continuous range of heights, 3 set heights would definitely be better as the holes are at set heights. Fantastic game and music, though. Really demonstrates how capable WebGL actually is.

</comment></comment></comment></comment></comment><comment><USER13> On Firefox, fails with

[15:54:39.366] TypeError: k is null @ [http://hellorun.helloenjoy.com/js/three.min.js:412](http://hellorun.helloenjoy.com/js/three.min.js:412) [15:54:39.366] "Error creating WebGL context." [15:54:39.368] TypeError: this.view is undefined @ [http://hellorun.helloenjoy.com/js/hellorun.min.js:1](http://hellorun.helloenjoy.com/js/hellorun.min.js:1)

On Chrome, I see some rendered triangles, but just wireframe, and the game does not seem to work.

<comment><USER14> Firefox 17 for Linux 64-bit: NS_ERROR_XPC_BAD_CONVERT_JS: Could not convert JavaScript argument arg 0 [nsIDOMCanvasRenderingContext2D.fillStyle] @ [http://hellorun.helloenjoy.com/js/hellorun.min.js:4](http://hellorun.helloenjoy.com/js/hellorun.min.js:4)

Update: I pass all the WebGL compliance tests at [https://www.khronos.org/registry/webgl/sdk/tests/webgl- confo...](https://www.khronos.org/registry/webgl/sdk/tests/webgl-conformance- tests.html).

<comment><USER15> You might want to check your update button. The current version is Firefox 23.0.1.

<comment><USER16> Sounds like he's on debian, which only uses the ESR release by default

<comment><USER17> I had similar problems with WebGL on Firefox (Ubuntu) that went away when I upgraded to 23.

</comment></comment></comment></comment></comment><comment><USER18> what is this why is it just a static piece of --- Oh, cool. Really needs some kind of "hang on, loading" for the initial preloader.

Sadly it didn't work too well with my Leap. I mean, aside from the basic gorilla arm problems, I found that I got a TON of framerate hiccups and sometimes it just totally ignored it.

edit after playing some more, with a high score of 70.

I also have some issues with the game itself. The thumping beat and the "run on shift" behavior makes me feel like this is a game that wants to be about zooming down a tunnel at high speed, but it defeats itself - the barriers are way too close to be able to run through them unless you see that an entire path segment has holes in the same places, and it's just too damn hard to see them half the time. And I say this as a person who has loved playing Jeff Minter's "Space Giraffe", which is basically a Tempest variant dropped inside a music visualizer with the intensity set to 11. I am a life support system for a visual cortex,and _I_ think these gates are hard to make out - I think this means there's something wrong. If they had a white sheen or something this would be more playable.

The scoring seems to encourage MOVE FAST ALL THE TIME too - you get 1 point for moving through a gate, and 2 for running.

Also the visuals worked against the gameplay for my first few plays. The detailed, realistic corridor with cables hanging down made me assume that "down" meant "crouch" and "up" would mean "jump" \- which I assumed is pretty much a momentary thing that has to be hit at the right moment to make it through a gate. It took me like five plays to work out that, no, I'm actually just kinda flying through this corridor here. If the tube had been abstract I think I wouldn't have made that assumption.

Also when I play on keyboard with it fullscreen, the keystrokes seem to keep on falling through the game now and then; I hear error beeps over the music when I hit a key sometimes. (Safari, OSX 10.8.4.)

</comment><comment><USER19>
        THREE.WebGLRenderer 58
        three.min.js (line 408)
        Error creating WebGL context.

In the console on FF 25 (Linux), no visible error message. WebGL usually works great. Maybe some missing extension?

<comment><USER20> Same in FF nightly 26.0a1:

      "HelloRun
      ________
      "
      "THREE.WebGLRenderer" "58"
      "Error creating WebGL context."

In three.min.js:412. A strange game. The only winning move is not to play. (Other webGL pages work just fine.)

<comment><USER21> Hello Joshua.

</comment></comment></comment><comment><USER22> Addictive. Contrary to munificent, I think it's great that the game punishes you for mistakes so completely. The feel of the game makes me think of a mix between Super Hexagon (www.superhexagon.com) and Temple Run (or any other generic runner).

The only criticism I have is this: sometimes it's close to impossible to tell (even at slow speeds) where the gap is because of the way the gates are laid out and also the colour of the gates (like Cyan). Some people may argue that adding a "dice roll" into the mix is great, but considering the type of game this, it just kills the fun when you feel like you've been robbed.

(note: this is different to screwing up and starting from scratch as a result)

edit: good job.

</comment><comment><USER23> The movement isn't sensitive enough. You shouldn't have to lift the mouse at all when playing computer games with bounded motion like this; this game requires me to lift the mouse 3-4 times just to go from the lowest barrier to the highest.

It's not my sensitivity since I can traverse all 1080 pixels in less than a single vertical swipe of my mouse. Is anyone else having the same problem?

<comment><USER24> Just play with the arrow keys, way easier.

</comment></comment><comment><USER25> Probably the fastest WebGL game I ever experienced - wow.

<comment><USER26> Indeed, it ran at a good 40-50fps for me.

Looking closer at the requestAnimationFrame callbacks, most frames required under 16ms, but every 20th frame required 120ms or more. Eliminate that slow frame and the game should have no problem reaching 60fps.

(I used [https://chrome.google.com/webstore/detail/web-tracing- framew...](https://chrome.google.com/webstore/detail/web-tracing- framework/gmdhhnlkjmknaopofnadmoamhmnlicme) to get this).

</comment></comment><comment><USER27> Really cool! But the gates are way too hard to see, I feel like I'm colliding with thin air most of the time... The music keeps me playing though :)

</comment><comment><USER28> Reminds me of Missile Game 3D

[http://www.albinoblacksheep.com/games/missilegame3d](http://www.albinoblacksheep.com/games/missilegame3d)

</comment><comment><USER29> Am I doing something wrong? I'm using Chrome 29.xx and it's telling me my browser doesn't support WebGL.

<comment><USER30> Apparently WebGL doesn't work on Chrome for certain types of hardware, including Intel Mobile 945 Express, NVIDIA GeForce FX Go5200, certain very old drivers, and a variety of other certain pieces of hardware/software, see [http://www.khronos.org/webgl/wiki/BlacklistsAndWhitelists#Ch...](http://www.khronos.org/webgl/wiki/BlacklistsAndWhitelists#Chrome)

</comment></comment><comment><USER31> apparently it was "built with unity"

does unity now target html5 without any depending on a webplayer plugin?

<comment><USER32> It seems like the scene might have been built with Unity and was then exported. There is a data file loaded[1] which states its generator is "ThreeExporter.cs" in version 4.0.

[1] [http://hellorun.helloenjoy.com/assets/station/station.js](http://hellorun.helloenjoy.com/assets/station/station.js)

</comment></comment><comment><USER33> You had me at Hello. Actually, you had me at the loading screen - so clean and slick.

</comment><comment><USER34> Great design, great music etc etc - but it just proves that mouse pointer lock is somewhat broken on full screen Chrome for Mac. It's constantly throwing up tabs and other menu bars when you get near the top, breaking context, grabbing the mouse, lagging the graphics etc.

</comment><comment><USER35> Amazing! I really enjoyed the game, and I have a tip, maybe to be possible continue the game round even if you failed to pass through the gates, but reseting the score and speed, this way will be possible to continue listening this incredible music! =)

<comment><USER36> You can listen to the song directly on soundclound: [https://soundcloud.com/dutoncmusic/du-tonc-surging- memories](https://soundcloud.com/dutoncmusic/du-tonc-surging-memories)

</comment></comment><comment><USER37> Very impressive. Is there a write up on how such games are done? In general, how long does it take to reach this level of expertise in writing games? 2 years? 5 years?

</comment><comment><USER38> Is the source code somewhere?

<comment><USER39> It's JavaScript and the source is not obfuscated. You can view it here: [http://hellorun.helloenjoy.com/js/hellorun.min.js](http://hellorun.helloenjoy.com/js/hellorun.min.js)

I made a beautified version to look at here: [https://gist.github.com/slacka/6434572](https://gist.github.com/slacka/6434572)

</comment></comment><comment><USER40> Cool, though a bit confusing at first, since the player has no clue what to do, and the game restarts all the time which looks like a bug.

</comment><comment><USER41> Amazing. Less punishing than Bit.Trip Runner, and a whole lot of fun. How long have you been working on this? The most frustrating is to get correct centering at high speeds, since you're moving the mouse with jerks, you overshoot often. It would be nice to see the right click, or some key on the keyboard, act as a "move-to-center" button.

</comment><comment><USER42> Very well performing WebGL Game! Good work. :-)

</comment><comment><USER43> Hey I saw this at the Mozilla HTML5 Game Dev meetup, were you the silent guy running the demo?

Awesome work anyway :)

<comment><USER31> did they get into how unity was used in their pipeline?

<comment><USER43> No thats the thing - they said absolutely nothing about it. It was just like, heres a game _displays some gameplay_ ok moving on ;p

</comment></comment></comment><comment><USER44> Looks nice. Can't for Emotiv Insight head set ([http://www.kickstarter.com/projects/tanttle/emotiv- insight-o...](http://www.kickstarter.com/projects/tanttle/emotiv-insight- optimize-your-brain-fitness-and-per)) to control the direction based on my head movement.

</comment><comment><USER45> Excellent work here. I've been waiting to see more HTML5 games, and I can't wait for the first real AAA game to come out with HTML5 support. While this one isn't a full-length game, it's still smooth and polished, and I'm excited to see what happens next in HTML5 gaming.

</comment><comment><USER46> Game is too hard. Keep running into bars as I am getting instructions.

</comment><comment><USER47> Here's the thing about HelloRun ... I suck at HelloRun.

</comment><comment><USER48> [http://hellorun.helloenjoy.com/assets/sound/music.mp3](http://hellorun.helloenjoy.com/assets/sound/music.mp3)

</comment><comment><USER49> Change your browser tab as you hit a wall and the track speed is slowed down. You will hear the rest of the song played with a permanent pitch shift.

</comment><comment><USER50> Very nice. Took quite a while to load. Would be great if the user could slow down the pace which also slows the pace of the music and vice-versa.

</comment><comment><USER9> I want to turn right once in a while!

Great stuff!

</comment><comment><USER51> Maybe include an invert axis option? Great btw

<comment><USER52> Yeah, since it feels like a plane the up/down controls should be inverted.

</comment></comment><comment><USER53> This is very nice, really cool. Would love to learn from it, but I can't find the source code. : /

</comment><comment><USER54> this is amazing. definitely challenging. the music and the its illustration is pretty sweet

</comment><comment><USER55> Has anyone used this with Leap Motion? Would be interesting to see how well it fares.

</comment><comment><USER56> At 70 it gets so fast it becomes almost impossible to spot the openings on time.

<comment><USER57> I got to 90 ;)

</comment></comment><comment><USER58> Wow this super cool. The restarting makes it challenging and a challenge is fun.

<comment><USER59> After restarting for no less than 20 times, I've managed to get through 118 gates, wasted half an hour, all the while hating both the game and myself. Fun.

</comment></comment><comment><USER60> It seems down unfortunately.

</comment><comment><USER61> The best thing about this game is it actually works in IE11. :')

</comment><comment><USER62> Can't believe this kind of game runs in browser!

<comment><USER63> It uses a lot of tricks. The scene has a very low polygon count and the lighting is a pre-calculated texture.

<comment><USER38> How do you know? Did you find the sourcecode somewhere?

<comment><USER64> WebGL relies on javascript to run. Looking at [http://hellorun.helloenjoy.com/js/hellorun.min.js](http://hellorun.helloenjoy.com/js/hellorun.min.js) and searching for "png" you get images like [http://hellorun.helloenjoy.com/assets/station/lightmap1024.j...](http://hellorun.helloenjoy.com/assets/station/lightmap1024.jpg) which looks like a pre-lightning computed texture. Looking at the vertex data (in format x,y,z(,w)) there seem to be only 2048 defined vertices, which is a tiny amount for a 3d game.

</comment></comment></comment></comment><comment><USER65> wow... This is beautiful and so smooth. It doesn't even lag slightly. I must say I am very impressed.

</comment><comment><USER66> Pretty awesome on chrome on osx

</comment><comment><USER67> OMG, I feel like in Tron!

</comment><comment><USER68> Wow! that's awesome!

</comment><comment><USER69> incredible

</comment><comment><USER70> Fun</comment>


Hacking Y Combinator - <AUTHOR> http://insightmine.com/hacking-y-combinator/

<comment><AUTHOR> Let me know what you think. I am sure there are many other ways to analyze this data.</comment>


Resurrecting a Dead Library: Part One – Resuscitation - <AUTHOR> https://mtlynch.io/resurrecting-1/ <comment><AUTHOR> Author here. Happy to answer any questions anyone has about this post.</comment>


A very brief introduction to Samba, scaffolding for all languages and frameworks - <AUTHOR> https://medium.com/@pedsmoreira/a-very-brief-introduction-to-samba-a-modern-scaffolding-tool-for-all-languages-and-frameworks-7ccc880ec7ca <comment><USER2> Too bad "Samba" has been used as the name of another much more popular project for over 20 years.</comment>


A List of Sublime Text 2 Hotkeys - <AUTHOR> http://wrttn.in/2395c6 <comment><USER2> If you are on OS X, check out <http://www.grandtotal.biz/CheatSheet/> to see shortcuts for any application, not just ST2.

<comment><USER3> Awesome tip. I can't believe I've never heard of that before. Just submitted it to HN, I think a lot of people will like it as much as I do.

</comment></comment><comment><USER4> Not sure how to read this

<http://www.imgur.com/6PZkdHU.png>

<comment><USER5> I'm on a mac desktop and they still don't line up.

</comment></comment><comment><USER6> Funny, I literally just created one of these yesterday...

[https://github.com/CodyHenshaw/Misc_Repo/blob/master/sublime...](https://github.com/CodyHenshaw/Misc_Repo/blob/master/sublime- keyboard-shortcuts.md)

<comment><USER7> That's an even better one, nice work.

<comment><USER6> Thanks... Markdown makes anything look good. :)

</comment></comment></comment><comment><USER8> Awesome vertical middle alignment on IOS... makes it a bit tricky to use.

<comment><USER9> Not just IOS. Desktop Chrome here and the lines don't line up. Since when is "here is a screenful of mundane information, badly presented" Hacker News material?

</comment></comment><comment><USER10> Here is a better version as Gist.

For mac: <https://gist.github.com/lucasfais/1207002>

and Windows: <https://gist.github.com/hileon/1311735>

<comment><USER11> Is there any way to view the .textile files rendered properly w/in Github? They are rendering the same as raw for me. Am I missing something?

</comment></comment><comment><USER12> Tip (not really ontopic): learn Vim, then use whatever editor or IDE you want with Vim keybindings mode or a Vim-emulating plugin - you'll end up with an _universal_ set of keybindings you will learn once and use everywhere and you will be able to be productive in any editor and any IDE (yeah, there are always limitations, nothing emulates Vim perfectly and this is way I advise you "not to learn too much of real vim", just the most usefull keys, but nowadays there is at leas one good vim mode/plugin for any other serious IDE or editor, including ST2).

<comment><USER13> While you are correct, you are completely off topic and not really helping. Plus, it's not like HN needs another reminder of vim's infallibility.

<comment><USER12> it's not about vim's infallibility - I consider vim ugly, weird, too powerful and ad the same time limited and I'm a ST user. I was just referring to the fact that by learning its keys and basic modal principles, you can afford _not to learn_ 70% of the fucked-up keystrokes and menu driven functionality of other otherwise good editors or IDEs. Just learn the 30% that is really unique and useful (GUI stuff, advanced refactoring etc.) and "drive it like it's vim" for other features. This way it becomes like driving cars: 90% of car functionality is the same for all cars so I can jump into any car and drive it - maybe not for best safety and performance, but it works for me.

</comment></comment></comment><comment><USER14> It would be really nice if there was a way to configure a key command in ST2 to run a specific script depending on the language you're writing.

I don't usually write C unless I'm writing stuff for Arduinos. The Arduino IDE isn't very nice, but they have the magical commands "Control+U" and "Control+Shift+U" that upload code either through the FTDI board or a programmer. If I had that in ST2, I would be in heaven (right now I write in ST2, copy, paste into Arduino IDE, then upload).

<comment><USER15> Write a plugin for yourself complete with the key bindings you want. ST2 plugins are just Python scripts. Granted you have to know Python but I assume since you're writing C and mesing with Arduino you either already know it or can pick it up with no problem.

<comment><USER16> While I know they are in python, I have never been able to find any documentation about how to build plugins, and what they can do. Could you point me to such a thing?

<comment><USER15> Yeah, definitely! Here are the two I used - fair warning, one is a Nettuts article. It's not the best tutorial ever but I had never written any Python before reading it and I was able to pull out the useful bits and apply them to my own plugin.

[http://net.tutsplus.com/tutorials/python-tutorials/how-to- cr...](http://net.tutsplus.com/tutorials/python-tutorials/how-to-create-a- sublime-text-2-plugin/) \- If nothing else, this will at least teach you how a Sublime plugin works (like where it lives and how you add it to the editor and such)

After that, the Sublime API will take it from there - <http://www.sublimetext.com/docs/2/api_reference.html>

I took bits about how ST2 plugins are structured from the first article, then looked for 'how to do X n Sublime' in the second and once I got those down it was just a matter of Googling for "how to do Y in Python".

The basic gist of it is that a plugin for Sublime is just a Python script that lives in Sublime's packages directory (~/Library/Application Support/Sublime Text 2/Packages on a Mac). Create a folder named after your plugin, drop the python script in there, and then use Python + the Sublime API methods to interact with the browser.

</comment></comment></comment></comment><comment><USER17> If you go to your Preferences file, you can always get the complete list of shortcuts, and will also realize how easy it is to set new ones.

</comment><comment><USER18> That's some pretty bad markup, the rows don't even line up. Oh right, it's a single row with two cells..

</comment><comment><USER19> Speaking of Mac/Windows, do anyone know the Mac shortcut for _Swap Line up/down_?

In Windows it's _Ctrl+Shift+Up/Down_ , but I've been unable to find the Mac equivalent.

EDIT: Sorry, I spoke too hastly. _Ctrl+Super+Up/Down_ in case anyone else wonders.

</comment><comment><USER20> Want a comprehensive list? Preferences > Key Bindings > Defaults.

</comment><comment><USER21> For sublime text 3, a QuickPanel plugin to show keybindings/settings: <https://github.com/sublimator/EditPreferences>

</comment><comment><USER22> Sick table markup brah.

</comment><comment><USER23> I think I'm missing something, but I'm sure I have used plenty of hotkeys that are not in this list (ie; insert line before current).

Can someone explain?

</comment><comment><USER24> Unusable. Stuff needs to line up

</comment><comment><USER25> I think this is less about Sublime Text 2 Hotkeys, and more about how awesome wrttn.in is! Going to be using it from now on.

<comment><USER15> If you like wrttn.in check out Write.app. Same deal except with a Sublime Text 2 plugin and a bunch more ways to store and share notes than just the web interface. <https://writeapp.me>

</comment></comment><comment><USER26> how about copy the current line?

<comment><USER20> ctrl+C/cmd+C

That's gets the whole line including carriage return when nothing is highlighted. You could also cmd+L (expand selection to line) and then cmd+C if you already had something selected.</comment></comment>


Chronicle is Dead and Google killed it - <AUTHOR> https://www.vice.com/en_us/article/9kej3e/chronicle-is-dead-and-google-killed-it <comment><USER2> I honestly don't know why people are so interested in this. It was never clear to me exactly what Chronicle was, but there's no "cybersecurity" startup that is going to revolutionize all of security --- it's a huge problem space --- and threat intelligence, no matter how good your telemetry, is something that has a market only in larger companies --- you're on your 4th or 5th security headcount before you've got anyone who can pay attention to any kind of threat feed, no matter how good it is, _at the very earliest_. What was this, in the best case? Google's "moon shot" at competing with... what? FireEye? Crowdstrike?</comment>


California has banned political deepfakes during election season - <AUTHOR> https://www.theverge.com/2019/10/7/20902884/california-deepfake-political-ban-election-2020 <comment> y-c-o-m-b Propaganda will always exist in one form or another. State law is not going to change that or even put a dent in it.

The only decent option to fight propaganda is through the education system. The incoming generations should be armed with sharp critical thinking skills, common sense, and empathy (this one is especially important). There needs to be more demonstrative sessions in classrooms where students actively participate in distinguishing fake content from real ones (and specifically how they can deem it to be fake).

My kid's public school does an ok job at teaching the above skills on a surface level, but it comes off as an afterthought as opposed to a primary lesson. I wish they would take it to a more granular level and make it a primary aspect of education.

<comment><USER2> Sure, critical thinking skills are important, but how do we teach kids or ourselves to counter tech like deepfakes?

I always try to go to primary sources, but even that breaks down with a sufficiently advanced deepfake. What happens in a few years when there is no way for a human to distinguish deepfake from authentic?

</comment></comment><comment><USER3> So, fake news will continue to flow all over the world, but if you (un)intentionally share it from an IP in California then you are subject to a fine? News media can continue to pump out fake news without recourse? Who comes up with this stuff?

</comment><comment><USER4> >Last week, Gov. Gavin Newsom signed into law AB 730, which makes it a crime to distribute audio or video that gives a false, damaging impression of a politician's words or actions. The law applies to any candidate within 60 days of an election, but includes some exceptions. News media will be exempt from the requirement, as will videos made for satire or parody. Potentially deceptive video or audio will also be allowed if it includes a disclaimer noting that it's fake. The law will sunset in 2023.

I don't see how they expect this to get past the courts.

<comment><USER5> It hardly matters. Even if the courts upheld it, it will be difficult to find the perpetrators, who could easily be in another country. And even if you manage to pin it on a political party or action group, the fine will be far, far smaller than the (perceived) gain at the polls.

Fines of $100,000 are trivial[1] on this scale -- and most fines are smaller than that. Even then, many just fail to pay them[2].

It's hard to know how much these things actually move the polls. But politics is both a game of inches and a game of winner-take-all: even a tiny nudge that puts you over the bar has enormous payoffs worth literally billions. So even if the courts managed to uphold this, nobody who would resort to this technique would be affected.

[1] [https://www.dispatch.com/news/20190913/fec-fines-ohio- gop-10...](https://www.dispatch.com/news/20190913/fec-fines-ohio- gop-100000-for-payments-to-firm-run-by-john-kasich-buddy)

[2] [https://www.politico.com/magazine/story/2017/10/30/scofflaw-...](https://www.politico.com/magazine/story/2017/10/30/scofflaw- political-groups-are-ignoring-fec-fines-215760)

</comment></comment><comment><USER6> This will only stop a few American perpetrators.

Putin is running a total war against the west using propaganda as a primary weapon. Tens of thousands of people are putting up false websites and comments. They will not stop because of this law.</comment>


Firefox Now Available with Enhanced Tracking Protection by Default - <AUTHOR> https://blog.mozilla.org/blog/2019/06/04/firefox-now-available-with-enhanced-tracking-protection-by-default/ <comment><USER2> It is funny how my browser preferences has changed over last 5 years.

2014 me as a developer had Chrome as number 1 browser for both development and all rest. Firefox once a month just to check cross browser compatibility. And Safari was just installed without me using it.

2019 me uses Safari for everything except development. Excellent power consumption and UX. Firefox for development. And lastly Chrome for all web apps that only work on Chrome. ( Google Meet etc. ) I feel much much better that I am not dependent on chrome.

<comment><USER3> I would love to switch to safari. What do you use for ad-blocking?

<comment><USER4> UBlock Origin supports Safari: [https://safari- extensions.apple.com/details/?id=com.el1t.uBl...](https://safari- extensions.apple.com/details/?id=com.el1t.uBlock-3NU33NW2M3)

<comment><USER3> I didn't realize unlock origin works on safari. This is very helpful. Thanks!

<comment><USER5> It's deprecated.

</comment></comment></comment></comment></comment><comment><USER6> >For new users who install and download Firefox for the first time, Enhanced Tracking Protection will automatically be set on by default as part of the 'Standard' setting in the browser and will block known "third-party tracking cookies" according to the Disconnect list.

Despite other issues, which there are some, I'm really happy to see FF not only enable more ways for users to protect themselves - but to be rolling it out as a default.

A lot of non-technical users I've encountered usually want the extra (usually non-default) protections, but don't know where to begin (or what is even available) so they continue with the default installation. FF setting some of the more mature privacy protection features as a default moving forward is a great sign of commitment to the cause of bringing privacy to everyone. Even those who don't know how to poke around the settings or about:config.

>Today, we're releasing the latest update for Facebook Container which prevents Facebook from tracking you on other sites that have embedded Facebook capabilities such as the Share and Like buttons on their site.

This is a much needed change that I'm also really happy to see. Not really containing anything if the embeds still function.

<comment><USER7> My parents are completely tech illiterate. But they are also afraid of this tracking and becoming much more aware of this power. So they ask me to set up their browsers to do so. I don't go full in, but basic stuff. There are still little hiccups but even they are happier to have small hiccups than be tracked. They see it as a fair trade-off. I think this attitude is common non- technical users.

Tldr: I fully support security by default.

</comment></comment><comment><USER8> I've dumped Chrome altogether since FF 67 was released.

My only gripe is they still aren't blocking ALL ads, but regardless it's a way better user experience now than it ever was.

Firefox 67 feels like a whole new beast compared to their older versions.

If you haven't tried FF for a while I recommend doing so and I suggest trying it across multiple devices. The tab management, syncing, pinning and sending etc. across multiple devices is awesome.

<comment><USER9> They can't and likely won't ever block ALL ads because they are funded through a search contract with Google. The whole point of that contract is to drive ad revenue.

<comment><USER10> As netizens, is there a way to replace Mozilla's dependence on another private company for revenue? Govt grants? Or is merely donations the only way?

<comment><USER11> idk, but I'll happily pitch in a monthly donation for what is by far my most used software.

<comment><USER12> Same.

I depend on and use Firefox enough that I'd happily pay monthly for it.

</comment></comment></comment></comment></comment><comment><USER13> I'm not sure why the "Multi Account Containers" are not built into the browser but I found this add-on to be a motivating factor in switching to FF.

[https://addons.mozilla.org/en-US/firefox/addon/multi- account...](https://addons.mozilla.org/en-US/firefox/addon/multi-account- containers/)

<comment><USER14> When I first tried to switch to from Chrome to Firefox, I got frustrated by the different approaches to user profiles, but multi-containers fixed it for me.

Chrome makes it easy to switch profiles/accounts with the account button in the top right, but Firefox profile management is clunky. You have to choose on startup and can't launch a window with a different profile from the browser itself.

Next time I tried, I found Multi-containers! It's EXACTLY what I was trying to do with Chrome Profiles (isolate cookies per persona) and it improves on Chrome in a couple ways:

\- lighter than Chrome profiles, very fast to create new containers

\- Not tied to a google account

\- multiple containers in the same window

\- Domain-specific rules make sure you don't cross-contaminate containers accidentally

\- Profile stuff like History and bookmarks is shared across containers and securely synced with client side encryption by default.

You can also get a REAL win for privacy by adding the Temporary Containers extension [0]. This lets you create arbitrarily many containers. It defaults to being an option (right click -> open in temp container) but can be set much more aggressively. I have it create a new temporary container every time I move to a new domain. Amazing.

That DOES require some manual configuration to avoid breaking complex products like Office365. I created a huge regex that identifies Office365 domains and triggers a whitelist with less aggressive isolation. Still, not too much more work than running uBlock Origin with 3rd party resources disabled by default.

[0] [https://addons.mozilla.org/en-US/firefox/addon/temporary- con...](https://addons.mozilla.org/en-US/firefox/addon/temporary-containers/)

<comment><USER15> > \- Profile stuff like History and bookmarks is shared across containers and > securely synced with client side encryption by default.

That's actually why I prefer the full profile option in Firefox (i.e. running 'firefox -p' and selecting a profile). I don't want shared history across profiles.

</comment></comment></comment><comment><USER16> It appears this would block pretty much all the major analytics tracking cookies (e.g. Google analytics, mixpanel, etc.) based on the linked Disconnect list, [https://disconnect.me/trackerprotection](https://disconnect.me/trackerprotection) .

While I realize that's kind of the point, in my mind there is somewhat of a difference between "the site I'm on is tracking me to figure out how I use their site" vs. "any site I visit is essentially aggregated data because all the sites use the same major trackers and ad networks". I wonder if the big analytics companies will need to change their business model, or at least their tech, to account for these kinds of changes.

<comment><USER17> They could ask me how I use their site, instead of giving the data about every step I do to 3rd parties.

<comment><USER18> People that respond to such questions surely are a very biased sample of the overall user base.

<comment><USER19> So let's make more people respond to such questions. The answer is not to say "it's biased" but to fix the core issue.

<comment><USER20> No. I hate those questions and don't want to answer them. Just let me use your site and figure out what works from there.

You can still have analytics with this Firefox change, you just have to use your own domain for the cookies.

</comment></comment></comment></comment></comment><comment><USER21> It sounds like this is similar to what Apple added to Safari two years ago ([https://techcrunch.com/2017/06/05/apple-adds-a-tracker- block...](https://techcrunch.com/2017/06/05/apple-adds-a-tracker-blocker-to- desktop-safari/)), though I don't know the details.

I will be excited for the day when Privacy Badger is an unnecessary extension.

<comment><USER22> Safari uses a machine-learning classifier algorithm to determine which third- party sites are trackers: [https://webkit.org/blog/7675/intelligent-tracking- prevention...](https://webkit.org/blog/7675/intelligent-tracking-prevention/)

Disconnect may or may not use M-L classifiers in their selection process, I don't know.

<comment><USER14> Similar to Privacy Badger?

[https://www.eff.org/privacybadger](https://www.eff.org/privacybadger)

</comment></comment></comment><comment><USER23> I can proudly say that I've ditched Chrome for Firefox for about a month now. The first few days were a little rough (migrating passwords and what not), but now I love it. Keep up the good work FF!

</comment><comment><USER24> I'm an existing Firefox user. Is there a short list of settings to check to make sure this "Enhanced Tracking Protection" is enabled?

In short, I'm looking for a list of instructions: go to Options > Privacy and Security > Content Blocking > make sure cookies is set to at least "All third party cookies...".

<comment><USER22> I think you're just about right - it's Options > Privacy > Content > Custom > "Block third-party trackers".

(It is _not_ "Block all third-party cookies", make sure to select the correct one.)

<comment><USER25> And yet you've sadly got some companies like Alibaba[1] telling users to enable all third-party cookies. This is terrible advice.

1: [https://www.alibabacloud.com/help/doc- detail/62160.htm](https://www.alibabacloud.com/help/doc-detail/62160.htm)

</comment></comment></comment><comment><USER9> I like these updates just as much as everyone else, but I can't help but think they seem a little bit like biting the hand that feeds you. What will they do when Google decides against renewing their Firefox search contract? Mozilla is highly dependent on the hundreds of million of dollars this contract provides. The politics of this situation are interesting for sure.

<comment><USER26> Mozilla's #1 priority is not to piss off Google, so I'm sure there was a conversation before this happened. Besides, when it comes to money, Google profits many times over whatever payout they give Mozilla.

<comment><USER27> It was a few years ago that the default search engine for Firefox was Yahoo. I would think that Google would be happy to see Firefox fighting back at them. You don't have a monopoly if Firefox is going strong.

</comment></comment></comment><comment><USER28> Unpopular opinion on HN - Majority regular net users don't care about tracking and the FF focus on privacy will not give them the browser landscape they are losing daily.

They should be focused on giving a better smooth UI, make it faster, remove unwanted extensions like pocket, make all the sites work.

Let's see how valid this comment is in couple of years.

<comment><USER29> Agreed (except for those specific examples). User experience is the gateway drug. As long as the standard keyboard shortcuts and preferences panel don't work right in Firefox, it doesn't matter how fast or standards-compliant the HTML rendering engine is.

Privacy is vegetables -- I know I should eat more, but I'm not going to go out of my way for it.

<comment><USER30> How about "Privacy is vegetarianism" instead? Just 20 years ago I'd have trouble going out for a meal in London because there was maybe one (one!) dedicated veggie restaurant in the whole city and lots of places didn't even offer an option on their menu.

Now, everywhere offers a vegetarian option, it's normal. What it took was dedication by fanatics* and to increase mindshare amongst the young. I'd venture that the same conditions would reap the same rewards with privacy.

* that's a wee joke… or is it? :-)

</comment></comment></comment><comment><USER31> Multi-account containers is probably why I won't leave Firefox. I have different containers for Facebook and all its websites(instagram, whatsapp), google, amazon, Microsoft.

<comment><USER32> isn't that the same as the Person profiles in Chrome?

<comment><USER33> No, Profiles are an entirely separate feature that Firefox also has. Setting up separate profiles for every major site could achieve something similar, but that would obviously be unimaginably inconvenient. Containers are like sandboxed virtual browser instances that nullify most methods of cross-site tracking, while also enabling you to conveniently stay logged in to all of your sites. Switching between the containers is seamless, and does not require any conscious user action apart from initially setting them up. Plus, the real kicker is using Temporary Containers as the default setting for new tabs, which can make it as if every Google search or inconsequential browsing session is done in a Private Window instance. This means there's no way in terms of cookies and trackers for Google to obtain cumulative data about your searches and browsing habits, but you can safely keep local records of your history if you want. There's no way to achieve any of this in Chrome with anything approaching the same level of simplicity or convenience.

<comment><USER32> How so? This is exactly what personal profiles do. Keeping a separate cookie jar, local storage, history, extensions. Basically only the browser version and OS related stuff is left to track you. Ok, except if Google tracks browser usage directly. I've been using separate profile for each of the evil websites I have to use, no cookie leaking.

<comment><USER14> Firefox splits the functionality of Chrome profiles into two different things:

Profiles contain all your settings, history, bookmarks, themes, sync settings, etc. They're stored in a folder on disk. It's kinda a hassle to switch between them.

Containers isolate cookies (and other stuff?) within a single tab or group of tabs. It lets you run a specific website or set of websites in isolation from your other browsing activity. This has security benefits, but is also great for logging into the same service with multiple accounts simultaneously.

I was initially annoyed by Firefox profiles because they're clunkier than Chrome accounts, but was very happy when I figured out that Firefox Containers gave me the isolation benefits I was actually looking for, with some real improvements over Chrome.

<comment><USER31> I do wish there was a sync option, since I have to setup the containers and rules for opening websites in those containers every time from scratch.

</comment></comment></comment></comment></comment></comment><comment><USER34> Knocking it out of the park, Mozilla, keep it up.

Getting more people on Firefox would do the tech world so much good, diversifying who controls what in the web.

</comment><comment><USER35> Starting to look forward to July when the next ESR will be out. Really tempted to just go ahead and upgrade to FF67 now but have grown fond of the stability of the ESR releases.

<comment><USER36> I've been on the Beta channel for the last few years. I can't remember the last time it crashed. It's just not a thing with Firefox these days. But then, they do push out new betas every few days so I end up restarting the browser quite often. Either way, stability is fine even with the Betas. I'm pretty sure there are quite many beta users so by the time a release comes out of beta, it has already survived many weeks of testing in the field by gazillions of real users abusing it on all kinds of platform and hardware combinations.

So, stable should be perfectly fine for day to day use if you feel less adventurous. It's basically the release intended for world+dog. The only people actually using ESR probably are enterprises that for whatever reason actually care about which version of Firefox they are using and third party software integrators that just don't want to deal with major changes every minor release. Tor browser is a good example.

I'll click the update button after clicking reply. It seems I missed a few updates. Zero issues that I noticed with this one: 68.0b4.

<comment><USER35> Thanks. I switched to Chromium way back when FF first started their fast release cycle and kept breaking all my plugins. I finally switched back about a year or so ago and stuck with the ESR releases to be sure to avoid that. But now that they seem to have a stable plugin API I was considering switching to the standard stable releases as it doesn't seem like it should be an issue anymore.

Though that also means finding a good source for them as I currently just use the packages from Debian Stable (well, upcoming stable as I upgraded to Buster early).

</comment></comment></comment><comment><USER37> The article starts with: "It's been several weeks since I was promoted to Senior Vice President of Firefox, responsible for overall Firefox product and web platform development."

How is this relevant? Did Dave Camp's SVP appointment trigger these changes? Honest question, because this is the first sentence of the article and I'm having a hard time understanding why.

Tracking protection is great though. I hope Firefox gains market share again, I love the direction it's taking.

<comment><USER38> A local struggling theatre company has a new president and the theatre is thriving under him. He told us in private that everything about his public appearance is curated in order to give the theatre a face, and that its an important part of saving struggling theatres - to attach a face to it.

Maybe it's the same thing?

</comment></comment><comment><USER39> Ironically, it triggers on blog.mozilla.org :/

<comment><USER40> It's worth noting that this isn't actually inconsistent. If your browser does security properly, blog.mozilla.org saying "here, have some malware" doesn't matter because it will be ignored. If it _doesn 't_, one more website serving (functionality-irrelevant) malware makes it that much marginally more painful to keep using a defective browser.

<comment><USER41> Wait, are you saying that blog.mozilla.org serves malware?

<comment><USER40> Well, _I 'm_ not, but temac is saying that Firefox's Enhanced Tracking Protection is saying that blog.mozilla.org serves malware. I'd call that plausible and presumed true for the sake of discussion but unconfirmed.

</comment></comment></comment></comment><comment><USER42> Does anybody have experience setting up and running a custom FF Account/Sync server?

[https://mozilla- services.readthedocs.io/en/latest/howtos/run...](https://mozilla- services.readthedocs.io/en/latest/howtos/run-fxa.html)

<comment><USER17> I set it up 2015 [https://jeena.net/firefox- sync-15](https://jeena.net/firefox-sync-15) and it's running on my server ever since mostly without problems. I think it hang one time so I needed to restart it but otherwise great software, even though the documentation on how to install it was kind of non existent back then. But now that also improved a lot in addition that it's now easy to use on Android too.

</comment></comment><comment><USER43> Now if only the could fix firefox to not be the slowest and biggest battery draining browser on mac.

<comment><USER44> I believe this is related to using scaled resolution in macOS.

[https://bugzilla.mozilla.org/show_bug.cgi?id=1404042](https://bugzilla.mozilla.org/show_bug.cgi?id=1404042)

I was able to achieve way better performance by changing this to `true` in `about:config`:

      gfx.compositor.glcontext.opaque

Another note, performance seems way better when changing the following to `true`:

      gfx.webrender.all
      gfx.webrender.enabled

If anyone with deeper understanding of these options has any reasons why this is a bad idea I'm all ears. Otherwise it's made my experience way better.

<comment><USER22> The WebRender team seems to be rolling out very gradually and is, if I remember a recent blog post correctly, restricting based on specific GPUs and specific platforms that are proven to work without e.g. crashing or breaking out various things (like window toolbars).

If you set these options, and then later on, you find that your Firefox is super buggy and won't render anything properly and has weird crashes, it could be because you set these options — and it might take hours or days to realize that.

(And then reverse them, somehow, assuming that gfx.webrender.all hasn't broken about:config!)

<comment><USER45> I did definitely notice much better WebRender performance on Nvidia than on Intel, so I turned off WebRender on the Intel laptop.

<comment><USER22> I went looking at the WebRender blog and they are apparently still making performance improvements every time they post an update, so make sure to clear your override and let the defaults take effect in a few weeks - either it'll be better or (I assume) the telemetry data will highlight your OS+GPU+driver pairing as needs-improvement (which it can't with it force-disabled).

<comment><USER45> Good idea, yes!

</comment></comment></comment></comment></comment></comment><comment><USER46> All this does is cause advertisers to look at more advances mechanisms to track users and make it 'mainstream' \-- like browser fingerprinting. These are also not explictly governed by existing legislation, so they can also worry about things like cookie laws and there's little to no defense.

<comment><USER47> Firefox has a setting you can enable to resist fingerprinting. It must do something because every anti abuse measure on the internet flags you as a bot once you turn it on.

</comment></comment><comment><USER48> Going back to Firefox nightly since the google ad issue. I'm sad to say, Firefox UI still lags 2x more than Chromium (even abused with 40+ tabs) on my old machine to the point of being a noticeable annoyance.

Hopefully Mozilla will have funding and manpower to improve this.

Thanks for the work nonetheless.

</comment><comment><USER49> I like all the work Firefox is putting in. Even though I'm not personally against Chrome, I've been using FF lately and it's very good.

</comment><comment><USER50> The Lockwise addon is interesting - but that they are not using their own addon site is strange.

<comment><USER51> why use lockwise instead of say, bitwarden?

</comment></comment><comment> rv-de Is this setting extending ublock origin or already covered by it?

<comment><USER52> Mozilla uses the Disconnect lists. uBlock has larger lists that include the majority of _ads_ not just _trackers_ , but they do cover trackers as well of course.

</comment></comment><comment><USER53> Been using FF for 3 weeks now, love it so far.

</comment><comment><USER54> Does this block tracking pixels as well? Tag managers?

</comment><comment><USER55> People were racing to add those social media buttons linked to Facebook back in the days and now they're scrambling to remove them. It's just funny how this works.

</comment><comment><USER56> I always use Firefox and will always use and support Firefox and Mozilla.

</comment><comment><USER57> Is there a version of Firefox that protects you from Mozilla installing mr. Robot ads?

</comment><comment><USER58> The only thing preventing me from completely switching over to Firefox is the developer aren't as good as Chrome's which is faster and less clunky for debugging.

<comment><USER59> I have not found this to be the case at all. The dev tools are amazing. I have not yet had the chance to use them with a webworker or websockets so I don't know about it compares with some aspects of chrome's dev tools.

</comment></comment><comment><USER60> Can't compete with Brave.

</comment><comment><USER61> This feature breaks hundreds of websites listed in a 5 year old issue [1]

The last descriptive update was 4 years ago,

> _As the list is increasingly managed according to policy, breakage is a > feature, not a bug._

[1] [https://bugzilla.mozilla.org/show_bug.cgi?id=1101005](https://bugzilla.mozilla.org/show_bug.cgi?id=1101005)

Among the broken websites is one I just completed, revddit, "removeddit for user pages":

[https://revddit.com/user/rhaksw](https://revddit.com/user/rhaksw)

<comment><USER62> Are you the one that created this bot on reddit?

[https://www.reddit.com/user/revddit/](https://www.reddit.com/user/revddit/)

Creating a bot to spam your own website is obviously against the site rules. I see most of your posts on Hacker News are similarly promotional.

<comment><USER61> Promotion through censorship is what I meant to tackle when building the site, so I'm sorry if you feel the bot or citing it on HN is too promotional. Isn't this the place for sharing such work? If not here, where?

The bot itself only responds once per user or thread, and I've already blacklisted some subreddits per suggestions [1]. Feel free to pm me at u/rhaksw if you would like to discuss it further.

[1] [https://www.reddit.com/wiki/bottiquette](https://www.reddit.com/wiki/bottiquette)

<comment><USER62> Your bot violates multiple rules of bottiquette:

>[Please don't] write bots that reply to comments or send private messages without solicitation.

>[Please don't] have your bot reply to every instance of a common word or phrase

It also violates the site's self-promotion guidelines.

It's a spambot, plain and simple. I have reported it as such.

<comment><USER61> The site reflects users' own data, and I built it without pay. There are no ads. I am sorry you are upset about it.

</comment></comment></comment></comment></comment><comment><USER63> There's a huge political problem with protections that are on by default, and that's that opponents (advertisers) can easily argue that they are not the explicit will of the user and hence feel justified in doing whatever they can to bypass them. So this action increases the justification for browser fingerprinting and other dark tracking patterns.

The same sort of thing undermined do-not-track headers. The instant they passed from being user-enabled to on-by-default, advertisers were presented with a strong excuse to ignore them.

<comment><USER64> Bullshit. If I install privacy respecting software over non privacy respecting software then you have to assume I want to keep my privacy and don't want you tracking me.

<comment><USER63> I'm not tracking anyone. But the majority of Firefox users aren't choosing it for privacy reasons, so these privacy-preserving features are not a good signal that the user actually wants that privacy.

It was worse for do-not-track, as all the major browsers enabled it by default, making it not at all a signal of user preference.

<comment><USER64> > I'm not tracking anyone

Context is fun eh.

> But the majority of Firefox users aren't choosing it for privacy reasons

I'd like some stats on that please. Given the market share Firefox has why are people installing Firefox?

> so these privacy-preserving features are not a good signal that the user > actually wants that privacy.

I consider installing privacy protecting software a pretty good signal but maybe I'm being generous.

> It was worse for do-not-track, as all the major browsers enabled it by > default, making it not at all a signal of user preference.

Seems like a pretty strong signal that people don't want to be tracked to me, if a browser impliments something as a default then it would suggest to me that they know more than 50% of their userbase would think not being tracked online is a pretty fucking good idea.

<comment><USER63> > I'd like some stats on that please. Given the market share Firefox has why > are people installing Firefox?

I don't have any stats, but I think many of the people choosing Firefox are doing so because Google is getting scary and Microsoft's offering is always warned against for security reasons, and that sums up the main browsers. In this choice between three things, you're barely getting one bit of user preference information.

> they know more than 50% of their userbase would think not being tracked > online is a pretty fucking good idea.

Which in the mind of advertisers means the other less than 50% don't mind being tracked and so they should be allowed to track. But maybe they'd just go with any excuse.

I'm personally hoping that the EU at least slightly fixes things for Europeans when it starts enforcing the GDPR with big fines. Once every site has the required 'No, you may not track me' simple button, the nags will be less irritating because they'll actually be working.

</comment></comment></comment></comment></comment><comment><USER65> I have two main computers. One has for continuity reasons the old version of Firefox, the other the new one.

The old version is so much more usable that I find myself using that computer much more frequently. It is rock solid with 100's of tabs open, all my extensions work and without silly restrictions on what they can and can not do and it uses a lot less memory. It's measurably faster too. I'm all for progress and improvements in software but after a long stretch of being a very ardent FF supporter I really do wonder if they have a future. If a competitor had a dream about what they could do to ruin Firefox they could not have done a better job.

Enhanced tracking protection is great but it doesn't matter if you push away your users.

<comment><USER66> Just for my understanding, any special reason to have 100's of tabs open?

Meaning: I basically have a mindset which as a programmer would say: "shall I spend effort trying to optimize my app for users that have 200 tabs open? Naaaa, I don't see a usecase for that to happen."

<comment><USER65> Yes, sure. I do technical due diligence for a living and when researching a particular company every time I come across another interesting link that hasn't changed color yet I open another tab. Then I just keep reading until there are no more tabs open, and no more interesting notes to take. It's part of my workflow (and one of the reasons why the scrapbook add-on is essential to me, another reason I do my work on the older machine).

<comment><USER67> > _the scrapbook add-on is essential to me_

I found the ScrapbookQ plugin, which also is able (with some work, admittedly) to import data from the old Scrapbook plugin:

[https://addons.mozilla.org/en- US/firefox/addon/scrapbookq/](https://addons.mozilla.org/en- US/firefox/addon/scrapbookq/)

</comment></comment></comment></comment><comment><USER68> Sorry but I can't make the switch from chrome to ff because I don't buy ff's agenda any more than I do Google's. Neither is in the browser game to make money from great browser product.

I want someone to be as dedicated to the product as id was to doom. I want to be able to use their browser for free for a year or three. If I still like you then I'll mary you. Then I'll pay a yearly fee for as long as I live.

Edit: until you start to act a fool. If you do then you're out. Can someone please create this product?

<comment><USER69> I truly, truly do not understand what is going on here at HN.

2 weeks ago mozilla deactivated by super-incompetent accident all of their security add ons and required a completely opaque 'studies' tool to push an update.

With the security features deactivated tons of people who need to get work done or didn't understand what was going on used the web with all of the tracking features turned on, no doubt allowing tons of previously anonymous stored data on users to be de-anonymized. They don't have to be able to track everyone all of the time, you just have to really get a unique identifier on the browser tracks left in the databases. Many FF installs in linux distributions ceased to function at all.

These simple observations went hardly remarked on HN.

BoingBoing.net which has previously covered security issues well, somehow did not notice/report this event, which stands out in recent memory as one of the worst privacy catastrophes. An inquiry to Mr. Doctorow himself in regards to this, as well as why there is still a tracking F on the page in 2019, has gone unanswered.

Now, a month later, without any further discussion of this event, Firefox wants us to trust it to single-handedly defeat tracking with a single new catch-all feature.

On HN, top rated comments, rather than expressing skepticism and asking for details, are about a completely different browser, Safari.

Perhaps the best comment after the firefix addon-aggedon noted, FF does not have to have a studies feature, it does not have to push automatic updates, it does not have to have a single signing certificate for all of the add-ons which creates a single point of failure. This line of inquiry is devastating to the true nature of mozilla and the loyalties of the individuals behind this code.

I am posting this as a response to the lowest rated, yet in my opinion best comment in this topic, hoping that other people who notice the complete distractions and consensus cracking going on all over the place above the fold, will know where to look for someone saying something intelligent about the situation.

And so this: the problem is not the computers and the software, it is the nature of these institutions and the people in them. Semi-corporate half- charitable, expansive things like whatever Mozilla is lend themselves easily to the same sort of infiltration and takeover as normal, evil, corporations. Do you not think the fbi, cia, air force and mossad have been spending years getting their agents into the 'key positions' at mozilla? Does mozilla(or canonical) seem to you like an organization who could resist this sort of effort?

It is now obvious that Firefox is run by the enemies of open culture, and having only the choice between FF and Chrome, developed by an even less trustworthy institution, the internet as dreamed of by people who care about freedom and liberty of the individual is in serious trouble.

So the comment to which I am replying is the best, what shape of institution will create software to make the internet open and fair, and facilitate free speech without infiltration and subversion by spies and paid propagandists?

Why can all of the kings horses and all the kings men not create a functional browser that doesn't publicize reading habits and de-anonymize with extremely obfuscated input analysis, if not outright keylogging and password theft and intentional malware backdoors?

The browser has replaced the television for most people, if you haven't noticed, so this is important and how discusion platforms like hackernews deal with the discussion of this, reveals all we need to know about the institution and individuals behind hackernews.

Something is rotten here and it could not be more obvious to anyone still capable of independent thought.

</comment></comment><comment><USER70> Please tell me I'm misunderstanding something! By enabling by default the blocking of those third party scripts: [https://disconnect.me/trackerprotection/blocked](https://disconnect.me/trackerprotection/blocked)

This Wil have three consequences: _Many websites will partially break? Which ones?_ webmaster will lack many data necessary to understand what users do on their platform, where they missclick, what they don't use etc, thus diminishing the ability of webmasters to make great products. *the most dramatic one: People will see ads but the owner of a website will no longer earn ad money, because those are the third party scripts that allowed to prove to the ad platform that a user had effectively seen X ads.

<comment><USER71> Webmasters should have thought of that before littering their website with hundreds of off-site scripts and packaging all data and behavior and sending it off to dozens of tracking companies.

"great products". Yeah, websites used to be much, much better before loading every bit of text with a remote javascript.

Here's a behavioral data point: Go back to making good websites and stop leaking private data everywhere. That's a great product.

<comment><USER72> >loading every bit of text with a remote javascript.

This update is only about a select list of "bad" domains, though. I don't think most users would want to block literally all third party scripts (Source: I use uMatrix set to do that, and every other site I visit requires a complicated ritual of unblocking layers of scripts, frames, and XHR. Don't even get me started on static sites that display blank without scripts from a dozen CDNs. At least it's a good opportunity to rethink if I really want to go there)

<comment><USER71> What good is blocking google tracking subdomains while neatly packaging the exact same data and sending it off to google cdn and tagmanager?</comment></comment></comment></comment>


React v17.0 Release Candidate: No New Features - <AUTHOR> https://reactjs.org/blog/2020/08/10/react-v17-rc.html <comment><USER2> "It has been two and a half years since the previous major release of React, which is a long time even by our standards!"

As a mostly Python and only occasional JavaScript developer, it always felt like the biggest challenge in the JavaScript community was how fast everything moved - new libraries, frameworks and ideas would tumble past at the rate of one every few weeks, and it felt impossible to keep up.

I've been feeling that a lot less recently, and maybe the fact that React has been steady for 2.5 years is part of the reason.

<comment><USER3> I second you on that. The number of times I've had to rewrite code because a framework decided to break everything with little warning.. I don't even want to think about it actually. I get wanting to make code better but gesh people, do some planning and figure out a direction to move a project.

Also it seems JS devs don't understand semver either. Massive breaking changes in patch or minor versions are just evil.

<comment><USER4> I've had similar experiences with JS libraries, but not so much with React. The React team are much better at managing to keep things backwardly compatible than most.

<comment><USER5> I really like the React approach to upgrades: if your app works with version N with no warnings, it will work with version N+1. [https://reactjs.org/docs/faq-versioning.html](https://reactjs.org/docs/faq- versioning.html)

</comment></comment></comment></comment><comment><USER6> I'm excited to see the work on the Modern Event System land. I tried to dig into all the events code in React to understand how events in React Portals bubbled up because I wanted to prevent them from bubbling out of the portal in many cases (GH issue: [https://github.com/facebook/react/issues/11387](https://github.com/facebook/react/issues/11387)). In 16.x, the modern event system was in the tree but unused by default, and it was very confusing to try to trace event handling logic between the two event systems. Removing the legacy event system will make the event system much more accessible to new contributors.

Can someone on the React team speak to how event delegation works when there are portals present? Where is the event handler for a portal bound, and how does the new events system handle event bubbling across multiple versions of React in portal trees?

<comment><USER7> Yeah, we've removed a lot of code and also a lot of abstraction so the event system should be easier to follow now. We listen to events on both roots and portal containers — this is why it keeps working.

I can't speak to the exact semantics of how portals work with nested trees, but if you find an issue, please file one on our tracker. Some are expected to be impossible to solve, but hopefully we handle the common cases well.

(I would ask Dominic who worked on this but he just went on a much needed holiday break.)

</comment></comment><comment><USER8> I've become increasingly disillusioned with the JS ecosystem over the past couple of years, but React still delivers. I can still chuck it in a script tag and start writing components if needed (without JSX). I haven't really used hooks yet and don't plan to, but as long as "legacy" class based components are supported, I will use them.

Thanks for maintaining backward compatibility, which is not very common in the JS world. And congrats on the release!

<comment><USER9> Just chiming in to say that I too hope class components will continue to be supported. I worry that they'll announce otherwise in a couple years.

Class components are so stupidly simple to read and write. I appreciate the work put into function components, but to me they make things unnecessarily complex. Just the fact that they took callbacks and other functions from methods – where things are separate, clean, standard – to nested functions – where things are not separate (some local variables, some closure variables), not clean (no possible way to unit test a nested function in isolation), and not standard (object methods are a language feature, use them!) – seems like a huge step backward.

<comment><USER10> You can create isolated functions instead of nested functions wherever you want. Just pass in params instead of using closures. This is entirely up to the developer.

<comment><USER11> _You_ can, yes. But the developer working on the codebase you're going to inherit might not. Class components are usefully opinionated in that way.

<comment><USER9> Yep. And isolated functions are a solution, but sometimes it just makes way more sense for that function to be a method of a class. And for the function component to be a class component. I think there's space for both types of components, and I just hope that class components don't become deprecated.

<comment><USER10> Absolutely there are cases where class components make sense. I highly doubt they would ever depreciate them.

</comment></comment></comment></comment></comment></comment><comment><USER12> I wish this approach to be followed by all major repos and maintainers and become a new trend across all the tech industry.

By creating `bridge` release, the React community created a safe, well know and stable release that works as bridge for the upcoming complex, feature rich, release.

So: Complex Release -> Stable `bridge` Release -> New Complex Release.

Anyone can stay as long as they want in the bridge release, others can quickly move forward to the next release cycle.

</comment><comment><USER13> It contains a very serious breaking change: cleanup in useEffect is now being executed asynchronously. I might not be seeing something, but I think this means all patterns like the one below will now have hard to catch racing conditions.

      const [x, setX] = useState()
      useEffect(() => {
        let isMounted = true
        someAsyncFunc(result => {
          if (isMounted) {
            setX(result) // should not be called on dismounted component
          }
        })
        return () => { isMounted = false }
      }, [])
      return <MyComponent x={x} />

In this example it's possible that component will be unmounted, then completion handler will run and try to modify state before cleanup function will be able to set the flag.

Imo choosing a different name for new useEffect would be better (like useAsyncEffect or introducing a parameter), because just changing its behavior won't even result in compilation errors or guaranteed run-time errors, only make old code unstable.

Is there a way to reliably detect if component is still mounted before updating it when doing async operations in effects?

<comment><USER7> Thanks for raising this concern. This particular example is not a problem in practice because React will not fire the warning about setting state in the short period between unmounting and cleanup. (We have special code and tests specifically for this case.)

So code like this can stay written exactly as it does today. As noted in the blog post we've only had to modify ~20 components out of thousands so although this change _may_ cause some breakage (please report anything unusual to the issue tracker!) we're fairly confident that such common patterns continue to work.

(Edit: added this to the post.)

</comment></comment><comment><USER14> I'm excited for no event pooling. I've been bitten by that a few times when refactoring.

Thought about making a lint for it but never got around to it.

[https://reactjs.org/blog/2020/08/10/react-v17-rc.html#no- eve...](https://reactjs.org/blog/2020/08/10/react-v17-rc.html#no-event- pooling)

</comment><comment><USER15> It's refreshing to see a major release of a frontend library that doesn't completely redo the API (React Router and Angular, take note). I remember there was a time when a bunch of features were being considered to be bolted on to JSX which was going to be called JSX 2.0[0]. I'm glad that never happened. Maybe the next version of React can even remove features, like hooks.

0\. [https://github.com/facebook/jsx/issues/65](https://github.com/facebook/jsx/issues/65)

<comment><USER16> I'd still _loooove_ to have "prop punning", ie, shorthand passing of props based on local variable names equivalent to ES6 object literal shorthand:

        <MyList items selectedItem onItemClicked />

Doesn't seem too likely to happen at this point, though.

<comment><USER17> That conflicts with HTML syntax, no? <input disabled /> is equivalent to <input disabled={true} />.

<comment><USER16> Which is why the current JSX syntax uses that as a synonym for `disabled={true}`. Agreed that it matches HTML better, but having written an awful lot of `someLongVariableName={someLongVariableName}`, I sure wish I could stop repeating myself there.

<comment><USER18> I, too, find it ridiculous to repeat `foo={foo}` over and over again. So I use the spread operator with ES6 shorthand object syntax. Now it's `{...{ foo }}`. No breaking changes needed!

</comment></comment></comment></comment></comment><comment><USER19> Was just thinking that we're probably due for a major release sometime now that Concurrent Mode seems to be starting to mature a little (disclaimer: it's still experimental, don't use it in production yet, etc.)

I'm sure the React team must be eager to get all the juicy changes out of the experimental branch and into the hands of developers. So it's great to see though that they're still taking their time to do it properly. Looking forward to seeing what come nexts :)

</comment><comment><USER11> Hm. I like the idea of gradual upgrades in theory, but I worry the reality will be sites loading at least two versions of React semi-permanently. And possibly even worse, you end up with an NPM dependency nightmare of off-the- shelf component X using an entirely separate React runtime.

Yet more excess JS downloading and running on client devices, all in the name of superior developer experience. I hope my cynicism is proven wrong!

<comment><USER7> Totally hear your concern! To be clear though, it's not like we're forcing anyone to follow this approach. It was just broken before, in the same way that putting React inside a Vue/Svelte/jQuery app was subtly broken. So we've fixed the root cause but I totally agree it's only a solution to be used as a last resort. (E.g. like in our case, where many "long tail feature" components were written in 2013 and no teams own them.) In either case, even if you follow this approach, we strongly recommend to only load the second version lazily on screens that need it — like the demo shows.

It's very suboptimal but I think it's still better to have that option than not to have it — or to try it and run into insurmountable problems. Especially in big long-running projects like internal company dashboards where long-term maintenance is more important than time to first render.

(I don't know why you're being downvoted though! I think your concern makes a lot of sense, and we're also sensitive about how to balance the messaging so that people don't use this unnecessarily.)

</comment></comment><comment><USER20> Jet, Angular 9 has such slow build times I can even imagine anyone would use it:

[https://github.com/angular/angular/issues/37293](https://github.com/angular/angular/issues/37293)

I have 2 comparable applications (in size) and React build times are 10 times faster than Angular.

<comment><USER21> It's sometimes easier and saner to develop a new component on something like stactblitz or a new angular project than make a change, wait 20s+ for compiler+browser to compiler and load code and view the new change. And repeat. And losing the hot-reloading with state b/c of the OOP heavy architecture in some shops, well that's not helping speed up write/reload/view change cycle at all.

And as you write larger and larger apps, with hundreds of components, it's just ridiculous how poorly the first-party tools handle that kind of code scale. Your only choice it to buy into Bazel to maintain some sense of sanity and productivity albeit some of which gets diminished with the overhead of learning, using and maintaining bazel for the project.

Complexity on top of complexity, nothing about Angular is simple.

</comment></comment><comment><USER22> New version of a JavaScript framework. No new features. Mind blown.

</comment><comment><USER23> No new feature, yet contains breaking changes.

<comment><USER7> As stated in the post, the breaking changes are intentionally minimal. For example, we haven't removed any of the APIs that were originally slated to be removed in 17.

<comment><USER24> I think the marketing line of "No new features" could lure people into a false sense of security on this upgrade, even if the breaking changes are minimal.

By all means make breaking changes, just maybe tone down the marketing.

<comment><USER25> How is a very elaborate blog post indicating the what & why considered marketing?

In my opinion this goes WAY beyond the usual changelog entry in other repositories.

<comment><USER24> Don't get me wrong, this is great documentation, very high quality, and well done to the React team for a great release and what I think is a solid decision around what to include and what not to include in this release.

I think it's important to understand though that React is _marketed_, and unfortunately for many a name as clearly stated as this will likely define their expectations significantly. This could be especially pronounced for those who are less proficient in English.

</comment></comment></comment></comment></comment><comment><USER26> Random thought after reading:

I wish macOS / iOS / iPadOS would have a version without tons of new features.

<comment><USER7> Remember Snow Leopard? I miss that.

<comment><USER27> The version that you wipe your main user account if you used the guest account?

<comment><USER28> That was bad, but it was fixed very quickly, and Snow Leopard had a long life.

</comment></comment></comment></comment><comment><USER29> React hooks is influenced by Dan, the author of Redux, not a fan of them both

<comment><USER30> IMO Hooks is the best thing that happened to React. Once you get used to it it is a lot more clean and productive. It requires you to unlearn a few things though, e.g. don't think about component lifecycles, but think about data flow/changes. Once you get used to it is a lot more productive and enjoyable way of developing React apps.

<comment><USER31> I believe it would have been better to have Hooks as a separate library, not part of React. For the developer it is just another design pattern, not really an improvement, especially if you look at all the edge cases and issues you'll find around.

Personally I don't like the design pattern, a matter of taste. But it's very annoying now in the market to have mixed React and Hooks codebases, with all their issues..</comment></comment></comment>


Review our startup: AppStoreHQ -- Mobile app search/discovery - <AUTHOR> http://www.appstorehq.com

<comment><AUTHOR> Hey all,

Hoping to get some feedback on our new site. We've been launched for a bit now, and are finally ready to start showing off to the world. Hopefully you'll have some comments, especially if you're an app developer.

We're working on mobile app search and discovery, since we believe the app store is far too hit driven. We want to make finding the perfect app easy. And, as a developer, we want you to be able to market and distribute your app more effectively.

We've done some things that I think are pretty interesting. Here's a quick run-down:

1) "Hottest Apps" -- We index many different blogs that review apps and any review they write gets linked to from our site. Then we use that as an input to create a list of what apps are currently the hottest. We also publish the most talked about apps to our Twitter account (<http://twitter.com/appstorehq>).

2) Sponsored Results -- App developers can purchase sponsored results for any category. Right now they're $10/week or $35/month.

3) Saving Apps to your Amazon Universal Wish List -- If you want to remember an app, but don't want to buy it yet, you can save it to your Amazon Wish List and come back to buy it later.

4) App badges for your site -- You can embed a badge on any site and write a review of an app. We'll find that review (because you embedded the badge) and we'll link to it from the app's detail page. It gives your visitors up-to-date information about the app, and gives you more traffic. A win-win, we think.

5) Search filters -- we think we have the best all around mobile app search on the web now. You can drill down by any combination of Search Query, Category, Price Range, and Rating. Soon we'll be adding Release Date to that as well.

Overall, we're really trying to help app developers with app distribution (and other problems) and help app consumers find the right apps. So, if you have any suggestions, please let us know!

We're also testing the waters with white-label search. For example, if you run a blog which talks about mobile apps, we'd provide a white-label version of our index and share any revenue you provide... If you'd be interested in something like this, let us know.

<comment><USER2> Doesn't #1 contribute to making it even more hit driven?

<comment><USER3> Good point. AppStoreHQ's 'Hottest' list is built on streaming blog post discovery, and the stream is what's on the home page (kind of like Hype Machine does for music) - so any app that gets a mention from any of 70+ "canonical" blogs, or _any_ blog that drops an AppStoreHQ review widget into its review - will show up in the stream.

So yeah, you have to at least have gotten _some_ traction somewhere to get into the stream, but the bar is pretty low. (That said, about half the apps in the App Store have never even received a user rating - they're still in AppStoreHQ's search results, but they'll need a little love to get out of the basement).

<comment><USER2> Still, I'm not sure this solves the underlying problem. People will still only see the top X apps on your site. Unless there's a higher churn rate with top apps falling off after a shorter period of time, how will buyers get to see more apps than the app store?

</comment></comment></comment></comment><comment><USER4> Even without all the extra features, having an app store browser that doesn't live in iTunes is fantastic. I think this has a lot of potential.

If you can get people to enter which apps they have, you could do some sort of recommendation engine. IE People who used this app also liked this one...

<comment><AUTHOR> Thanks! We definitely have personalization features that we want to build, right now there's just so much to do. :) Promise we'll get to it soon, though!

</comment></comment><comment><USER5> Nice site. I've been hunting for good executions of this idea. Thus far these have impressed me most:

<http://www.freshapps.com> <http://www.apptism.com> <http://iphone.iusethis.com>

But yours is right in there in the mix. Add a recommendation engine, and you're really on to something. Good luck!

</comment><comment><USER6> On the image hoverovers, can you position them to the right of the thumbnails, right now it covers the thumbnails and i want to just move my mouse to the right instead of moving away and moving it to the next picture

</comment><comment><USER7> I want to sort apps by highest reviewed followed by descending sort of number of reviews. E.g., I'm more interested in apps that have 200 5-star reviews than apps with 2 5-star reviews.

</comment><comment><USER8> The site looks interesting. Do you have any page view figures related to advertising?

Found one issue: our app (Movies Now!) is indicated as being released on May 13th. However it was actually released on the 27th May.

<http://www.appstorehq.com/moviesnow-free-iphone-34716/app></comment>


Revisiting the Value of Elite Colleges  - <AUTHOR> http://finance.yahoo.com/news/Revisiting-the-Value-of-Elite-nytimes-3063623649.html?x=0

<comment><USER2> Related:

<http://news.ycombinator.com/item?id=2248890> <\- NYT commentary

<http://news.ycombinator.com/item?id=2248810> <\- The actual PDF</comment>