Brave Improves Its Ad-Blocker Performance with New Engine in Rust - <AUTHOR> https://brave.com/improved-ad-blocker-performance/ <comment><USER2> Figured to try Brave as it keeps popping up.

Installed it and then noticed in my firewall that it is

\- trying to connect to a number of IPs owned by google, umm OK

\- sending a multicast SSDP UDP request on port 1900 to 220.127.116.11

So googled that and got this page: [https://community.brave.com/t/why-is- brave-issuing-upnp-disc...](https://community.brave.com/t/why-is-brave- issuing-upnp-discovery-requests/46500)

Which basically tells you that the first thing Brave does is to try and detect what devices are in your local network.

... and that's where my Brave experiment ends.

edit:

Also note that uninstall is completely silent, no confirmation that it actually completed.

The uninstaller also leaves behind the updater utility AND the Windows Task scheduler tasks that run the updater.

<comment><USER3> Just tell them to fix that since it doesnt need to be looking for Chromecast devices

The end

<comment><USER4> What kind of a Mickey Mouse (tm) operation providing a private and secure web browser wouldn't have fixed such issues from the start? Doesn't help me trust them.

<comment><USER3> They just pull from the Chrome repository before adding their own things, I dont know what you are expecting

Its like you never heard of Brave

You can just ask them to disable it and now you have your fictional higher standard team _shrug emoji_

I guess you did mention that you dont use Chrome, so this level of distrust is going to be foreign for most of us to relate to

</comment></comment></comment></comment><comment><USER5> I'm impressed with Brave. I've started using it as my primary browser (after a couple false starts a year or so ago) and it has all the best of Chrome without the worst.

There is controversy about how Brave does stuff, and I agree there is some sketchy stuff they are doing (replacing ads with their own). I'm glad they are giving us a choice, though, and exploring different options for sites being able to makes some money.

<comment><USER6> Switched from Firefox to Brave in the last year across devices and not looking back (though I do miss containers!).

Blocking ads and trackers by default is pretty much essential in 2019.

The myth about ad replacement doesn't seem to want to die though!

There is no ad replacement, though the roadmap says at some time in the future publishers who opt-in will have the option to have their ad-slots filled by Brave's privacy-respecting approach.

For now I think the only ad trials running are pop-up notifications if users opt-in, and that's only in a few markets at this stage.

Not something I plan to opt-in to, but looking forward to the Github / Reddit / Twitter tipping and integrated crypto wallet.

That's all rolling through in the next few months.

<comment><USER7> I just use Firefox with uBlock Origin on all my devices. Better blocking than Brave and no concerns about future monetization.

<comment><USER8> I'm currently using Firefox on all devices as my primary browser, but there is a single feature that I've gotten used to in Chrom* browsers on mobile - 'pull down to refresh' \- that looks indispensable to me, and I'm planning to move to Brave on mobile just because of that (already replaced Chrome with Brave on Desktop as my secondary browser). Yes, there are add-ons to do that on mobile too, but they are all inconsistent and half-baked. Chrom*'s built-in pull to refresh is very smooth.

<comment><USER9> There's also Reload in Address Bar, which I prefer.

[https://addons.mozilla.org/en-US/firefox/addon/reload-in- add...](https://addons.mozilla.org/en-US/firefox/addon/reload-in-address-bar/)

Or you can use the "double tap the dots menu" trick.

<comment><USER8> Thanks. The 'Double tapping dots menu' trick is neat indeed, sometimes we don't figure these things on our own :).

</comment></comment></comment></comment></comment></comment><comment><USER10> A simple guide to choosing your browser:

Does it make money by showing you ads?

Chrome: Yes Brave: Yes Firefox: No

If yes, then they need to track your behavior in detail. I'm sure you don't deserve to be tracked.

<comment><USER11> For me, the guide is more like:

Does it render text in an ugly manner?

Chrome: No

Safari: No

Firefox: Yes

The unfortunate thing is that many Firefox users _prefer_ the Firefox text rendering.

There's no solution to fix this (I've researched a lot). It's just a divide in the users based upon preferences.

<comment><USER12> What do you mean by ugly? That GDI text rendering is used on Windows instead of DirectWrite for some font families? This can be disabled in about:config by assigning `gfx.font_rendering.cleartype_params.force_gdi_classic_for_families` an empty value. Or do you mean that there's no subpixel positioning on non- Windows/macOS? That one has no fix, except when the text rendering part of WebRender goes into production.

<comment><USER13> I'm confused. Doesn't Firefox use Freetype on Linux? Freetype has subpixel rendering.

<comment><USER12> Subpixel rendering is different from subpixel positioning.

See e.g. [https://bugs.chromium.org/p/chromium/issues/detail?id=824153](https://bugs.chromium.org/p/chromium/issues/detail?id=824153) for some gory details.

</comment></comment></comment></comment></comment><comment><USER14> > was already implemented in heavily optimized C++ handling requests with sub- > millisecond overhead, we found that we can further optimise it for a 69x > average improvement

Seems like an unnecessary optimization, though I'm sure it was fun. I wrote one a little while back in C++ also[0]. It's not documented the best, but uses a kind of custom tree to match.

0 - [https://github.com/cretz/doogie/blob/master/src/blocker_rule...](https://github.com/cretz/doogie/blob/master/src/blocker_rules.cc)

<comment><USER15> They're presumably gaining the other non-performance advantages of Rust over C++ (i.e. the borrow checker etc.) though, so safer _and_ faster is a win. As you say though, they seem to focus on performance but that might just be the audience they see themselves talking to.

<comment><USER16> I think "Chrome but faster" would convince a mainstream audience pretty well, even though they might not be aware that they're not going to notice the milliseconds.

<comment><USER17> if you're moving from Firefox to brave you do notice the speed increase. FF on my work laptop (i5, 16GB of ram) and my s8 is significantly slower that brave.

<comment><USER18> It's been a gift to me, since I really just can't help but install extension after extension and FF is just not good at that in my experience (plus the selection is narrower but I don't put that on FF). Another thing is that Brave has the Chrome url search which I've come to realize is actually pretty central to me, I just can't stand the 'prepending a letter' type search. Overall it's the closest I've felt to chrome with the stated goal of addressing the the primary reason I feel uncomfortable with chrome, so I'm happy for now.

</comment></comment></comment></comment></comment><comment><USER19> Brave isn't a choice for me 'cause Google can easily kill all Chrome clones in one funny day. Also Brave monetization looks very tricky.

<comment><USER20> Second point I agree on, first point--how? Chromium is opensource. What can google do?

<comment><USER21> People need to stop with this argument. Chromium might be open source, but it's still Google who decides what get merged. And yes, people can fork, do their own patches, fixes, but if it deviates too much from Google, you'll end up with a new browser to maintain on your end without a team the size of Google. If all theses teams choose to not implement their own browser, it's for a reason: a web browser is a complex piece of software. And the best example of this is the Edge team who forfeited implementing their own and just went with Chromium.

<comment><USER22> I don't understand why you think this means that Google can _easily kill all Chrome clones in one funny day_.

<comment><USER23> They definitely can't reasonably do that but in the long run I don't think Brave has the resources to maintain a hard fork from Chromium. That's the main reason I don't really get the Brave hype when Firefox does the job just fine and is actually a fully independent codebase instead of a relatively shallow customization of Chromium.

The only argument that keeps coming up is that Brave has a built-in adblocker but it's not like installing ublock origin is very challenging in Firefox (and on top of that your extensions are automatically synchronized if you use the Sync feature) and the relatively blurry monetization scheme of Brave makes me think that in the long run this built-in ad-blocker might prove a liability more than a strength. I'll take my ad-blocking independent, third-party and non-profit, thank you.

<comment><USER24> Brave, Opera, Vivaldi, Epic, Blisk, (and Edge?) can pool development resources. I dont think all the forks would have as much problem as people believe they would. A ton of webkit users switched to blink nearly overnight.

I think the bigger issue is chrome implementing an new web feature that blink- fork2 and firefox dont agree with, that web devs start implementing anyway. Google controls web development more than they control browser development.

Theres also the WideVine argument, but for me personally I dont see why i need my primary browser to also play netflix. Its not that hard to open a separate netflix app/browser. The amount of drm encapsulated video I watch in my browser is minimal to none.

</comment></comment></comment></comment></comment></comment><comment><USER25> It's interesting to see block list creators more or less reinventing all the tricks that network-security regex implementation people invented 10-20 years ago. One wonders whether they might do better picking up an off-the-shelf regex implementation (e.g. our own Hyperscan, or for those who must must must have something in Rust, the engine from ripgrep, which I believe is just called "regex" :-) ).

<comment><USER26> As far as I know the « regex » crate is used in some places. But interpreting block rules has a lot to do with specific options and behaviors which are pretty tailored to the task and it would not be easy to use off the shelf regex implementations for this. Although I myself looked at Hyperscan in the past for the purpose of blocking ads (the performance looks amazing!).

</comment></comment><comment><USER27> Brave is doing some of the best anti-Corporatist work in the community right now.

<comment><USER28> They replace other ad network ads with their own ~ads~ _crypto currency_. They monetize the content of others and don't tell them. If you have a youtube channel, they will swap out ads and _collect the ad revenue_ without telling the channel that they're doing so.

I'm not particularly impressed with their business. In fact I'm pretty disgusted with it.

<comment><USER27> Yes. I want a citation for this. As far as I'm aware this is completely untrue.

<comment><USER29> Found one

[https://www.computerworld.com/article/3284076/brave- browser-...](https://www.computerworld.com/article/3284076/brave-browser- begins-controversial-ad-repeal-and-replace-tests.html)

And on their own site:

[https://brave.com/brave-ads-launch/](https://brave.com/brave-ads-launch/)

<comment><USER30> Your second link is to our blog post about _user ads_ , which do not go in slots on publisher pages.

Your first link is to a tech journalist who misreports what we actually do, for reasons I cannot fathom and won't guess at.

Anyway, we do not replace publisher ads we block. Check it out for yourself.

</comment></comment></comment></comment></comment><comment><USER31> The discussion in this thread makes me wonder if Brave is a good browser to recommend to friends & family. The widespread usage of Chrome was probably largely in part due to folks like us recommending it to friends & family.

<comment><USER32> I think that was a large factor, but I think constantly showing ads for Chrome to anyone who views google.com in a different browser and telling them their browser is bad was a bigger factor.

<comment><USER33> I mean also the fact that the browser most people used at that time _was_ bad may have been a factor. Chrome was a noticeable step up from IE.

<comment><USER34> For me, Phoenix/Firebird/Firefox was a noticeable step up from IE, and Chrome was a noticeable step up from Firefox. Chrome did especially well relative to Firefox when I had a lot of tabs, and for JS-heavy sites.

I bounced back and forth several times:

* I tried it for a month in January 2010, and went back to Firefox because Chrome was slower and less stable: [https://www.jefftk.com/p/google-chrome](https://www.jefftk.com/p/google-chrome)

* I tried it for ~6m in 2011, and switched back to Firefox because I missed side tabs: [https://www.jefftk.com/p/side-tabs](https://www.jefftk.com/p/side-tabs)

* In early 2012 I switched back to Chrome, despite the lack of side tabs (which I still miss dearly) because it was enough more performant.

(Disclosure: I work for Google)

<comment><USER10> Try switching once more, and turn on Webrender this time - it's still beta, but I had no issues and it made my FF Chrome-fast.

<comment><USER34> Several reasons for not switching back, some idiosyncratic:

* I trust Chrome more than Firefox on security

* I'm used to Chrome's debugging tools, and would need to learn Firefox's

* I use the Chrome password manager, and it would be annoying to switch

If Firefox were enough better I would still switch, but at this point my understanding is it's more like "Firefox is no longer slower than Chrome" not "Firefox is a step up from Chrome in the way Chrome once was from Firefox".

<comment><USER18> That's understandable though I imagine it's unlikely we'll see something like that ever again, right? To me it seems kinda like how race car engineers used to be able to discover some major advancement in their engines that would give them wins for a few years but nowadays it's much more homogenous and worked upon for much less significant gain. I don't know much about the deeper webdev stuff though so who knows, but it seems like that could only ever really possible with a shift in a browser trying some novel shift in architecture.

</comment></comment></comment></comment></comment></comment></comment><comment><USER35> It's sad how, although I personally prefer to support Firefox by using it, I have still stuck with Google's Chrome due to a speed/sleekness factor which I can't quite put my finger on, that Firefox has never been able to overcome in my mind since fully switching over to Chrome several years ago.

It's little touches like how you can't re-order extension buttons with a basic mouse drag - no, you have to go into 'Customize...', and that's so clunky and 2004. They have some more work to do to really make it competitive with the mighty Chrome.

So after all that time, Brave is the first browser registering my interest due to these regular news stories. I still use Google services, but I don't like their current dominant position in shaping how the web works. That's too much power.

<comment><USER36> Recently I've had terrible performance issues with chrome. Freezes, crashes, and really long delays, as well as significant memory usage. I switched to Brave, but it was worse. Safari, by contrast, has been amazingly fast and responsive.

<comment><USER37> If only my corp allowed me to upgrade the macOS on my laptop, I would be using the latest Safari too instead of messing with Chrome / Brave.

<comment><USER38> I hear the opposite sentiment at my workplace. "If only they didn't force us to update OS X ASAP"

</comment></comment></comment></comment><comment><USER39> Does it automatically block ads that try to access audio?

[https://news.ycombinator.com/item?id=20288768](https://news.ycombinator.com/item?id=20288768)

<comment><USER40> Brave actually does. It broke my various VOIP sites at first because you have to manually allow audio access

</comment></comment><comment><USER41> So I'm confused about the results. Is the engine faster because of rust or because of improvements to the algorithm?

<comment><USER42> It's a new, faster algorithm with rule pattern matching. The language is only mentioned once as an implementation detail, not that rust's 69x faster than C++.

<comment><USER43> According to [https://github.com/brave/adblock- rust](https://github.com/brave/adblock-rust) they use a similar algorithm as uBlock Origin. So not really "new", just reimplemented in rust.

<comment><USER26> It's actually a Rust implementation of [https://github.com/cliqz- oss/adblocker](https://github.com/cliqz-oss/adblocker). So you can interpret the difference in the chart between Ghostery and Brave as being how much Rust improved performance over Node.js

</comment></comment></comment></comment><comment><USER44> Been using Brave for a while now... maybe 2 years? Have a lot of unused BAT since few sites recognize the payments yet.

Once they do, it'll be pretty amazing.

<comment><USER45> The nightly build has tipping buttons for twitter and reddit. Hoping this will finally execute the micropayment use case for crypto.

The pop up ads have been activated and I have been receiving the token for clicking, about $8 month worth of BAT. I am hoarding the tokens so that USD value might go up if the token moons together with bitcoin.

</comment></comment><comment><USER46> I think Brave has the ability to save the web, it has a great model of blocking ads by default, at a lower level than the extensions do so it is much faster. I think Opera had/has this too.

<comment><USER47> Sure, Brave can block ads, but isn't the browser exploring injecting its own advertisements?

<comment><USER48> Brave does not inject ads. This is misinformation.

<comment><USER13> Ars Technica seems to disagree with you:

> Brave will replace blocked ads with its own ads, taking a 15% cut of > revenues.

> In practice, Brave just sounds like a cash-grab. Brave isn't just a > glorified adblocker: after removing ads from a webpage, Brave then inserts > its own programmatic ads. It sounds like these ads will be filled by ad > networks that work with Brave directly, and Brave will somehow police these > ads to make sure they're less invasive/malevolent than the original ads that > were stripped out. In exchange, Brave will take a 15 percent cut of the ad > revenue. Instead of using tracking cookies that follow you around the > Internet, Brave will use your local browsing history to target ads.

[https://arstechnica.com/information- technology/2016/01/mozil...](https://arstechnica.com/information- technology/2016/01/mozilla-co-founder-unveils-brave-a-web-browser-that-blocks- ads-by-default/)

From my point of view it's essentially a scam on multiple levels:

1\. It doesn't significantly change the Web - users will still look at ads.

2\. Without providing anything of value (see 1), Brave gets a cut of publisher's ad revenue.

3\. As incentive not to sue them into oblivion, Brave offers publishers a cut of the stolen revenue.

4\. The whole thing is built on top of a sketchy cryptocoin system where a significant stake is owned by the developers.

<comment><USER49> It seems to disagree because it's a very old article about what Brave "will" do.

And removing tracking from ads is a massive improvement on the status quo.

<comment><USER13> It seems still be an accurate assessment of what they are planning.

> Ads and trackers are blocked by default. You can allow ads and trackers in > the preferences panel.

> Later, as mentioned above, Brave will let you opt into receiving a reduced > ad load that comes without trackers, maintains your privacy and helps > support the publishers you like.

[https://brave.com/faq/](https://brave.com/faq/)

Do you have any evidence that Brave's ads are _not_ intended to be a replacement for traditional ads on publisher sites? What else would they be for?

And, regardless, the rest of my comment stands. It may be "better" to shows ads without tracking, but it's still rent-seeking in the ad blocking space. Ad blocking is a solved problem - just use uBlock origin.

Edit: from only a year ago:

> Brave will scrub sites of ads and ad tracking, then replace those ads with > its own. Meanwhile, BATs will be awarded based on user attention, or put > plainly, time spent viewing ads and content. Brave users who agree to > receive ads will be rewarded with BATs. The tokens, in turn, will be > exchanged between users, advertisers and site publishers.

[https://www.computerworld.com/article/3284076/brave- browser-...](https://www.computerworld.com/article/3284076/brave-browser- begins-controversial-ad-repeal-and-replace-tests.html)

<comment><USER49> According to [https://news.ycombinator.com/item?id=20290854](https://news.ycombinator.com/item?id=20290854) Brave's ads won't go into the page unless the publisher agrees, and the current ads are shown as notifications. Note that while your link uses the word 'replace', the source blog post does not.

<comment><USER13> Assuming that user is even right about this, I would call that the most extreme imaginable version of trying to buy off publishers with a cut of the lost revenue. That's #3 on my list of scammy Brave practices.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER50> Will this be the first use of Rust in a non-Firefox production release browser? If not, what was the first?

[https://github.com/brave/brave- core/search?q=rust](https://github.com/brave/brave-core/search?q=rust) [https://github.com/brave/adblock-rust-ffi](https://github.com/brave/adblock- rust-ffi) [https://github.com/brave/adblock- rust](https://github.com/brave/adblock-rust)

</comment><comment><USER51> I've switched from chrome to Brave (with duckduckgo as default search engine) after seeing this [https://myactivity.google.com/myactivity](https://myactivity.google.com/myactivity) and really satisfied with the result.

Unfortunately Firefox is not a good match. I've tried the latest versions of Firefox and the developer edition, before using Brave and it still uses so much CPU in my macbook and the fan of the laptop sounds like an airplane is about to take off.

<comment><USER52> Maybe you want to opt out of Google activity tracking? When I go to that page it says "No Activity".

</comment></comment><comment><USER53> It is more likely they hired a new rust developer that simply wrote better code.

</comment><comment><USER54> I'm wondering, how Brave is going to fight fraud? The users are anonymous and not tracked, isn't this is why Brave ads are still delayed and TBH I see no practical solution to that?

</comment><comment><USER55> How does it stack up against uBlock Origin on Chrome ? ABP is a notoriously heavy unoptimized piece of software compared to uBlock. I would be very interested in this comparison.

</comment><comment><USER56> Slightly off topic: Does anyone else have the problem of constantly being logged out of your Google accounts on Brave. I keep getting logged out even without closing the browser. I have tweeted to them but haven't been able to get a response. I am so annoyed with the experience that I stopped recommending it and am planning to switch back to Chrome.

Edit: I have multiple Google accounts signed into. And also, it does not block all ads in GMail which uBlock on Chrome is able to.

<comment><USER57> The way they're handling cookies may be just be strict enough that it can break security measures on some sites. Unfortunately, lots of websites have come to rely on things that maybe should've never been features (like third party cookies, for example.)

Just out of curiosity, have you tried Firefox? I know it's not perfect, but with minimal tweaking I think it's very competitive.

<comment><USER56> Yes, Firefox is good for browsing but as a developer who has to work on the frontend, the ecosystem isn't there in Firefox. Many of the framework debugging tools for React, Redux, etc. don't work well in Firefox.

<comment><USER57> I will agree the devtools are not always as polished, but actually React and Redux debugging tools have worked fine for me. I have these installed:

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

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

...And I don't really recall many issues.

Ever since WebExtensions, there's not really a good reason for the devtools to be much worse on Firefox.

If you have used these extensions and have issues, I'd love to hear them. I've done React/Redux dev on both and I don't notice things working significantly better in Chrome. (Admittedly, I haven't done any in a few months.)

The only real thing that gets me now is the lack of being able to inspect WebSocket frames. :(

<comment><USER56> Thanks for clarifying! I should give Firefox a try again, when I tried last time it wasn't good enough. Chrome's devtools had many features of timing and performance which were absent or not good enough last time I tried.

</comment></comment></comment></comment></comment><comment><USER58> Well, when are they going to remove the ad placeholders on pages? It's great we don't have to see ads, but they still take valuable screen space this way. With uBlock origin, I don't have to see te placeholders.

</comment><comment><USER59> Anyone familiar with configuring the Brave ad blocker? I find that by default it blocks fewer ads than uBlock origin. I'm not really sure what special sauce is involved in that.

<comment><USER60> You can just install ublock origin extension on brave and get best of both worlds.

<comment><USER61> Or AdNauseam ( [https://news.ycombinator.com/item?id=19278936](https://news.ycombinator.com/item?id=19278936) )

</comment></comment></comment><comment><USER62> Can you use your own block list in Brave? Last time I checked on mobile I couldn't see how to. If not that seems like a major downside compared to other browsers.

<comment><USER63> I switched to Kiwi Browser recently from Brave ( _after their bottom tab bar drama_ ). Kiwi allows extensions so you can install uBlock Origin and add your own lists.

</comment></comment><comment><USER64> Brave mobile started letting ads go through a few months ago for me. I switched to Firefox mobile, which is not as fast / usable but at least supports ublock.

</comment><comment><USER65> As an advertiser, you hate to see things like this :)

<comment><USER66> Why? Most people using Brave would never have clicked your ads anyway.

<comment><USER67> Do you have a citation for this? Why would brave users be less likely to click on ads than a normal user if they weren't using a browser that blocked ads?

</comment></comment></comment><comment><USER68> Not many people talking about fingerprinting. Which browser does a better job of blocking it?

</comment><comment><USER69> Alternate title: Until recently Brave was orders of magnitude slower than other blockers.

<comment><USER70> I've been using brave for a few months and I never noticed any difference in its ad blocking performance vs Chrome with AdBlock. I actually perceived it as faster, since most AdBlocking plugins on chrome actually let some ads through (ads that pay the plugin authors i guess).

In what situation would this "orders of magnitude slower" actually manifest itself as a perceptable delay?

</comment></comment><comment><USER71> I think Firefox should tie-up with Wikipedia for donations

</comment><comment><USER72> kiwi browser is worth a shot and made me switch from brave.

</comment><comment><USER73> Brave in Tor with YouTube seems to track you and show you recommended videos across sessions. Probably some browser fingerprinting. But always found that weird considering it portrays itself as privacy-focused.

<comment><USER74> Brave doesn't block first party cookies by default IIRC, so that's not hard to imagine.

</comment></comment><comment><USER75> Coming to Dissenter browser soon :D

</comment><comment><USER76> Will his be on android too?

</comment><comment><USER77> Never used Brave, but switched to Opera recently and it's doing great in blocking ads.

</comment><comment><USER78> Safari + DuckDuckGo + 1Blocker. Fast, private, no ads.

</comment><comment><USER79> They should have written it in Rust, oh wait...

</comment><comment><USER80> nice

</comment><comment><USER81> nice.

<comment><USER82> Nice.</comment></comment>


Study: Experiencing awe affects the way you treat people - <AUTHOR> http://qz.com/471388/study-how-experiencing-awe-transforms-the-way-you-treat-the-people-around-you/ <comment><USER2> This is extremely interesting, because the effect which is proven in this study is (only) 1 of the many beneficial aspects from the experience you live through when you ingest the substance LSD: Handled the right way, you can experience the most awe inspiring moment of your life, you can not just _see_ beauty, but _live_ it, be _immersed_ by it and _be a part of it_. You're likely to ask yourself over and over "why was this hidden from me all those years?".

This is why it's completely wrong for humanity to keep this substance illegal. This substance can lead to a whole new appreciation for our Planet, the Universe and for the human beings around us.

(Of course, " _follow the money_ " seems to apply here as well, when I think how this molecule seems to be able to replace heavy side-effect ridden anti- depressant therapies which are of course one gigantic cash cow for the pharma industry.)

Note: It is absolutely mandatory to educate oneself about the substance as much as possible and to prepare one's experience by respecting all the rules that apply (and: there are a couple of medical conditions which make the substance very risky for you, should you suffer from one of them knowingly or unknowingly).

<comment><AUTHOR> Drug-aided experiences of awe are interesting; however, it would be very useful to understand the experience of awe sober. I think right now it is known that drug-aided experiences can have powerful psychological effects that can undermine powerful negative psychological experiences like PTSD or depression. Certainly research should continue in both directions as part of the search for the underlying natural causes for the negative and the positive psychological experiences.

</comment></comment><comment><USER3> After all the talk about reproducibility problems in psychological studies, and especially after reading examples such as the following from [1]:

> A while ago, Dijksterhuis and van Knippenberg published a famous priming > study showing that people who spend a few minutes before an exam thinking > about brilliant professors will get better grades; conversely, people who > spend a few minutes thinking about moronic soccer hooligans will get worse > ones. They did four related experiments, and all strongly confirmed their > thesis. A few years later, Shanks et al tried to replicate the effect and > couldn't. They did the same four experiments, and none of them replicated at > all.

My natural reaction is to take any such study with a grain of salt.

[1] - [http://slatestarcodex.com/2015/09/05/if-you-cant-make- predic...](http://slatestarcodex.com/2015/09/05/if-you-cant-make-predictions- youre-still-in-a-crisis/)

</comment><comment><AUTHOR> I think what is potentially very interesting here is how human perceive vastness, and how humans first experienced vastness: Viewing the horizon such that it appears infinite, floating in a body of water so large that you can see only water in all directions as the horizon curves, staring into the deep blue sky, staring into the dark, star-filled sky.

Understanding how humans experience or understand the infinite (or perceived infinite) would be a fun research topic. Do any HNers have experience with such research or know of people involved or good reading about this?

</comment><comment><USER4> Shouldn't the same feelings of smallness be imparted by staring at a sufficiently large building? So the sensation of awe fades as you become accustomed to seeing the object in question?

<comment><AUTHOR> You're arguing for the possibility of desensitization occurring which I agree would make sense for any stimulus.

I cannot truly discuss the difference between awe-inspiring man-made objects and nature-made objects, but perhaps there is an implicit understanding of vastness with regard to nature that includes something intangible related to true complexity of nature: when viewing the Grand Canyon with more context you can try to experience the vastness in many variables: how long the canyon has existed, how long it took be carved out of the earth, how much water there once was flowing through it, etc. For a man-made object perhaps the context is more shallow.</comment></comment>


A brief history of GUILE - <AUTHOR> http://wingolog.org/archives/2009/01/07/a-brief-history-of-guile

<comment><USER2> I'm loving the word "intension." I always talk about the extensive vs. intensive dichotomy when I'm talking about websites, business strategy, life. I didn't realize there was a noun form.

</comment><comment><USER3> I think Guile was rather less successful than was originally hoped. Quick, name three GNU applications that use it. :-) At this point, I would use Lua if I needed a lightweight embedded interpreter and Python if I needed more power. Just IMHO, of course.

<comment><USER4> gnucash and lilypond are the two that immediately spring to mind-- but three does indeed stump me. snd uses Guile, but snd isn't itself GNU.

<comment><USER5> Texmacs. Apparently there are only three.</comment></comment></comment>


Ask HN: Are tons of websites mining crypto on visitors PCs now? - <AUTHOR> I've noticed during the past few days / week, that when I visit several sites, my Disk (Task Manager on Windows) shoots up to just under 100%, and stays there until I close Chrome and "end task" for Chrome on Task Manager. (ie not enough to just close Chrome). After that, disk returns to 0 or close to, browsing is normal, until I visit some site (several) and I hear my computer ramping up again).<p>Any idea what's going on? I suspected sites might be using visitors machines to mine, because that's popped up on discussions a few times lately. <comment><USER2> It seems like you've read of a trend, and are just guessing.

It would be more productive to investigate the source of sites that cause this behaviour than asking random strangers whether a number of random (unidentified) websites are mining. We can't guess, we don't know. Nobody knows how widespread this is - but I suspect not very widespread at all.

</comment><comment><USER3> Do they all use javascript?

If they do try using no-script and see if you get same result?

</comment><comment><USER4> y, there have been some WordPress plugins adding mining javascript to sites recently.</comment>


Perl Weekly - An e-mail round-up of hand-picked news and articles about Perl - <AUTHOR> http://perlweekly.com/

<comment><USER2> Thanks for sharing!

<comment><AUTHOR> Thank you and welcome aboard Hacker News.

\---

Note to all MetaCPAN users (<https://metacpan.org>)... you can add your HN affiliation to your profile.

At the moment this will appear in your list of web profiles under the Author page (for eg. <https://metacpan.org/author/DRAEGTUN>) but who knows what the future may bring :)

<comment><USER3> Thanks for posting the link. I just added my HN id along with 10 other ids to my account: <https://metacpan.org/author/SZABGAB>

<comment><AUTHOR> You're welcome.

BTW I have this little script which lists all MetaCPAN / HN users: <https://gist.github.com/1222875>

Currently it lists 5 users....

      PHAYLON (hn: phaylon)
      DRAEGTUN (hn: draegtun)
      JAITKEN (hn: LoonyPandora)
      SZABGAB (hn: szabgab)
      WOLDRICH (hn: trapd00r)

Hopefully thats just the start :)

</comment></comment></comment></comment><comment><USER4> Love it.

</comment><comment><USER5> very useful, Gabor</comment>


A collection of bad practices in HTML - <AUTHOR> https://www.htmhell.dev <comment><USER4> I feel like Bootstrap (and similar) are a lot "to blame" for some of these.

People have been using HTML tags non-semantically for a very long time and, to be honest, before HTML 4 you often didn't have a lot of choice in the matter.

Still, when I was getting back into web development in 2013 I became aware of an "I can just use <div> and <a> for everything, and then stick Bootstrap classes and event handlers on to get it to look and behave the way I want" attitude that had become pervasive amongst developers.

Now, to be fair, at the time this was legitimate: in 2013 older versions of Internet Explorer were still quite prevalent. They didn't support newer HTML5 constructs, or proper styling of certain elements. The <div>/<a> approach was often the only way to get things to look good, or even to look the same, across all browsers.

Those days are long since gone (for most of us, anyway[1]), but I wonder if the reason we continue to see this style of HTML is that we're still living in a sort of post-IE hangover period? Old habits die hard[2].

 _[1] I 'm aware that even now not everybody has the luxury of pretending that IE doesn't, and never did, exist._

 _[2] Again, reminds me of the migration from earlier versions of HTML, where you 'd really had to do things like use tables for layout and use various HTML elements for styling (with variable cross-browser support), to HTML 4, where you nominally didn't (except, of course, that not all browsers were created equal)._

<comment><USER5> When i started working web IE6 was still far far in the future, i also learned the semantic use of html JADAJADAJADA table-layouts bad JADAJADAJADA and i most of the time enforced myself to apply this 'best'-practices - truth is - <USER2> never saw this providing value in any kind. The web is so full of shit and abuse of 'best'-practices - nothing will every really on this and work. I would often have saved myself and my clients a lot of headaches/time and money if i had just used table-layouts instead of css-layouts and other crap - <USER3> hey whatever 'float's your boat.

<comment><USER6> I believe you mean "yada yada" instead of jadajada?

[https://www.merriam-webster.com/dictionary/yada%20yada](https://www.merriam- webster.com/dictionary/yada%20yada)

<comment><USER7> Why are people down-voting an honest and helpful suggestion?

<comment><USER8> Anglo-splaining.

<comment><USER9> Can we stop producing the -splaining words and roll back the ones already shipped.

</comment></comment></comment></comment></comment></comment><comment><USER10> #11 Giving a numbered list that has no ranking meaning and showing things in reverse order

#10 Making a simple webpage with 9 things on it and spanning it across two pages instead of just letting people scroll.

<comment><USER11> To be fair for #11, it appears to be a blog, so that kinda makes sense. But with only 9 entries, it's a bit odd. No excuse for #10 though!

<comment><USER12> Is this pattern for SEO generation? So many sites take this approach - I'll be preaching to the choir complaining about how frustrating that user experience is.

While I'm ranting about web experience, how about Bitbucket hijacking the normal behaviour of ctrl-f in pull requests? Just.. why?!

<comment><USER13> No, it's typical behaviour for blog-type software: X numbers of entries per page; no allowance made for the length of each entry. Five novels on page one, four sentence fragments and a limerick on page two, etc.

</comment></comment></comment></comment><comment><USER14> I sympathise with people using HTML "incorrectly" because there's a mismatch between how HTML is designed and what it actually has to do in the wild.

Maybe using the "correct" element structure is going to be much more complex in a given situation due to the fact that you've got CSS rules that will be in scope that will style it for another purpose, and you'll have to undo and override all that work bit by bit to get it to match what the designer envisaged in this particular placement.

So instead you just use some divs, stick a few generic classes on stuff and get on with your day.

The tools are supposed to be the slave of the workman, not the other way round.

I'm not saying that all of these are examples of this situation of course!

<comment><USER15> Indeed. HTML was designed as simple vocabulary for casual hierarchically structured documents in academia with anchor links and, later, forms. Then it was used for all kinds of online documents and apps as they evolved. To say that the HTML vocabulary hasn't exactly kept pace is an understatement IMO. What _has_ evolved is bolted-on tech such as CSS and JavaScript, and as soon as that happened, HTML evolution was kindof doomed because changes to HTML weren't essential (could be implemented in an ad-hoc way once a Turing- complete language was in the mix).

Today, people praise CSS Flexbox and Grid, and they're no doubt a step-up from a practical PoV. But what has really just happened is that another ad-hoc syntax was introduced as a replacement for what previously went into HTML attributes, and worse, a syntax that needed to be able to roundtrip through HTML attributes via quoting and escaping. The notion of "semantic" markup and the HTML-CSS-JS trinity is really an after-the-fact rationalization of this syntax soup accident. From a comp.sci. PoV, there is no rationality and progress in piling up syntaxes over syntaxes with identical purposes, nor in equipping CSS with the power to rearrange element order, insert content, and whatnot, especially since HTML always had adequate typing based on a formal ISO standard (using SGML) whereas CSS lacks this completely.

<comment><USER16> I've only looked at web components casually, but the examples I saw seemed a greater mess than this. Interact DOM components, CSS, slots, JS, private DOM, ... AND plan for late-loading code and resources. ?!

</comment></comment></comment><comment><USER7> These are all really bad. But when my designer designs links as buttons and buttons as links, which am I supposed to use? Then there's the redesigning pages, layouts and widgets every other week, based on our trackers and heat maps. How can I care about the quality of my html, when I know it's all gonna be scrapped next week or month when a new redesign comes in?

<comment><USER17> If it leads to a semantically different page, use <a>, if it's used only for javascript-interactivity use <button>. Never use <div> for buttons or links.

<comment><USER7> Is adding role=button to <a> enough, or should I style a button to look like a link (.btn-link in bootstrap)? One issue with .btn-link is getting the vertical alignment to match any surrounding text.

</comment></comment></comment><comment><USER18> #9 [https://www.htmhell.dev/9-cookie-consent-from- hell/](https://www.htmhell.dev/9-cookie-consent-from-hell/) is missing good code. A cookie consent where the only option is OK give zero value. If you don't track users there is no need for the dialog and if you track the users this dialog do not show that tracking is turned off to you click OK

<comment><USER19> True, but cookie consent is pretty much entirely about following regulations, not about anti-asshole design.

</comment></comment><comment><USER20> This would be more interesting with descriptions of WHY it's bad, and a little bit of moderation.

As of this comment, there are 9 entries, and _more than half_ have to do with similar link/button behavior (#8, #5, #4, #2, #1... and also kind of #3).

Some of these are also semantically invalid (e.g., #7). That's less a "bad practice" and more "invalid HTML".

<comment><USER21> They do have descriptions, the titles are are links to those.

<comment><USER20> So they do! Very good content hidden behind those links.

</comment></comment></comment><comment><USER22> It feels like if your goal here was to improve the web you'd go into some explanation of why these are bad practices and how it can be done better.

<comment><USER23> Click on each one and you'll find an explanation

<comment><USER24> I feel like there's something poetic about a site complaining that people do HTML "wrong" having terrible UX.

<comment><USER4> It's not terrible UX. Whilst the headings aren't blue, they are underlined, which makes it pretty clear they're links.

I don't love hyperlinks in headings, and would prefer a more explicit link to each good example, tabs for good and bad, or even inline content to show the good examples below the bad, but it's a bit strong to be calling it "terrible".

Nowadays people are pretty slack about links: good UX generally mandates either a different colour to body text, or underlining, or both.

Blue has for many years been the default rather than the standard: people have been heavily deviating from it since the 90s. Underlining tends to be optional if there's some other way of distinguishing links (here there isn't).

</comment></comment></comment></comment><comment><USER25> How about destroying a whole table and rebuilding it each time a checkbox loses focus? I've spent nearly a month debugging that one. Also, why create one table when you can create two overlapping ones? (it was a jQuery plugin, and a vendored one at that).

</comment><comment><USER26> Linus would have said, your expectations are not user experience.

If I want my images to execute on click events, and so on, I probably have a reason for that. If that thing looks and works horrible, I'll learn that, but it may also work perfectly, or in 99% nobody cares.

<comment><USER27> Who cares about the "Check Engine" light as long as the car drives, right? After all, as long as it works, you probably have a good reason for ignoring it, for starters, going from A to B instead of paying maintenance and waiting.

... only eventually, a quick fix will have morphed into a destroyed engine.

<comment><USER28> That's horribly out of context. Pretty much every item in this list is unnoticeable to anyone but a developer. Leaving them where they lie wont cause your website to explode or stop running. In fact, I can't recall one, that the average user would notice.

<comment><USER29> Using links instead of buttons makes accessibility to screen readers worse.

Just because you can't see it doesn't mean it doesn't have an effect

<comment><USER30> Plus, just being aware of how these elements interact with screen readers, and what you need to do for them and keyboard users can make you more aware to write better, more accessible HTML in the future.

It's a bit strange to me that in my last position all these great JavaScript engineers were still using div's for everything when there's so much you can harness directly from the browser's interpretation of these elements to give you a pleasant and consistent user experience for your clients.

Besides that, it makes trawling through your elements in your web inspectors a lot easier to read when you actually have lists, sections, headers, buttons, etc.

</comment></comment></comment></comment></comment><comment><USER31> For the button wrapped in a link example [0], which is invalid HTML, many people don't know it's valid to wrap a button inside a form, using the form's action as the destination. Not something I use often, but it's at least a thing worth knowing.

<form action="link.html" method="get" target="_blank"> <button type="submit">Link</button> </form>

[0] [https://www.htmhell.dev/4-link-also- button/](https://www.htmhell.dev/4-link-also-button/)

<comment><USER32> I find that different browser brands react differently putting BUTTON tags inside of forms. Tread with caution. Internet Explorer versions are usually the biggest bottlenecks.

</comment></comment><comment> onion-soup I often found that stressing about "semantic html" and the "correct way" is just virtue signaling and in reality, in real projects, if it works it works, and you move on.

<comment><USER33> This is legitimately a dangerous practise. You are closing off your website from blind people and ethical web scrapers when you do this.

<comment><USER34> Closing off your website from blind people and ethical web scrapers != dangerous.

Just a dick move.

<comment> kube-system Sometimes it's illegal. I'm sure I'm not the only developer here who has had to write accessible code to fulfill a project's legal requirement.

<comment><USER34> You're correct, and I work for an organization that explicitly promises accessible websites. Gov't sites also require accessibility.

</comment></comment></comment></comment></comment><comment><USER35> These patterns look familiar to me, having retrofitted a functional, though poorly architected AngularJS app for WCAG compliance. Would it have looked better if from the beginning semantic HTML were used? Sure. But does the aria- and role- soup improve the functionality and usability for non-typical users with little impact on maintainability? You bet.

</comment><comment><USER36> > A click event on a div triggers only on click. A click event on a button > triggers on click and if the users presses the Enter or Space key.

that is not 100% correct. a formular with a submit button will actually trigger on enter. but not a button per se. especially not a <button type="button">.

</comment><comment><USER37> Looks like someone changed design decision and needed buttons instead of text links in various places and people got bad day implementing those.

</comment><comment><USER38> good practices and HTML don't really exist, the reason we have things like buttons inside a div and other hacks like that are because the web evolved too fast and people had to find solutions to bugs / problems.

<comment><USER33> That's not true, is it? You're supposed to use the right tags so people with visual impairments can use screen readers to gather the right info, and so people can gather the data of your source more effectively. If you do this from first principles it's actually quite simple and integrates better with the css / js. Overuse of tags if anything just makes it _more_ complicated.

The html may as well be the bedrock of your entire website, why not put in the extra work to find the best solutions?

<comment><USER38> >it's actually quite simple and integrates better with the css / js

That is just untrue, it that was the case, people wouldn't go for hacks, I agree the web for some parts are in a better state now that a few years ago, but for me it is still a nightmare, between features / tags / attributes that only works with X or Y browser, the number of bugs, the number of features still not released after being requested for years. Also if you want a specific design for your websites, sometimes going for <div> instead of "that more correct element that adds loads of shitty css by default" prevents some headache and allows you to prototype faster.

</comment></comment></comment><comment><USER39> #8 can actually be a very wise way to fallback without <noscript>

<comment><USER40> The given example no, the answer shown as a solution by the blog author, yes.

</comment></comment><comment><USER41> > #7 [...] table layout

> yeah, it's on a live production site still running

like HN. :)

</comment><comment><USER42> I like how this site is just bash.org but for HTML snippets

</comment><comment><USER43> Don't forget the overflow:hidden for paywalls/alerts: [https://www.youtube.com/watch?v=9IYZ8mktk7k](https://www.youtube.com/watch?v=9IYZ8mktk7k)</comment>


TurboTax tells Mac users to turn off security - <AUTHOR> https://ttlc.intuit.com/questions/2899293-turbotax-for-mac-icon-disappears-when-attempting-to-launch-program <comment><AUTHOR> Downloaded TurboTax for Mac, and I was shocked to see that TurboTax is not correctly signed.

This is the kind of security that prevents the ransomware seen in Transmission a few weeks ago, [https://news.ycombinator.com/item?id=11234589](https://news.ycombinator.com/item?id=11234589)</comment>


Show HN: Stop SOPA by expressing commitment to action - <AUTHOR> http://meant.it/campaigns/sopa

<comment><AUTHOR> I cobbled this together in a few hours. Hope it can serve some purpose. Apologize for any bugs, inconveniences etc.</comment>


'Junkware' comes standard on Verizon, T-Mobile smart phones - <AUTHOR> http://latimesblogs.latimes.com/technology/2010/07/android-junkware.html

<comment><USER2> On the PCs, you could at least uninstall the "value added" software bundles. Or if that didn't go well (we all know how these uninstallers work), you could at least buy another copy of Windows and install that after wiping the installation clean.

On the smartphones, you have to go the dubious route of using security flaws in the firmware to install a custom ROM, on the way invalidating your warranty.

That's why I was so happy about the Nexus One as that came (mostlly _cough_ Amazon MP3 _cough_ ) "pristine" out of the box and you can even officially install a custom ROM image (still invalidating the warranty though, but at least the procedure is officially sanctioned and thus probably continues to work even as the firmware gets updated).

Too bad Google won't do a Nexus two.

<comment><USER3> This, I think, will be the major downfall of Android. Similar to the destruction of the Windows brand by letting OEMs install trialware, shovelware, etc, the carriers will do anything to make an extra buck. This is why Apple put their foot down and refused to let the carrier touch the software on the phone. And rightly so... In the carrier world we'd all have trial versions of Norton Antivirus that ask for your credit card number when you're trying to make a call...

Watch, it will happen with Android. The carriers have just figured out how to write Android apps, and Google is doing nothing to force them to keep their phones clean.

<comment><USER4> Who will the two characters be in the Apple commercials? With PC vs. Mac we had the Bill-Gatesy looking guy straight out of accounting, and the cool laid back Mac guy. Who will it be for the Android vs. iPhone commercials?

</comment></comment></comment><comment><USER5> Apparently the Droid X comes with extra _hardware_ that bricks the phone if you try to root it:

<http://www.pcmag.com/article2/0,2817,2366536,00.asp>

[http://www.mydroidworld.com/forums/droid-x- discussion/3330-h...](http://www.mydroidworld.com/forums/droid-x- discussion/3330-how-droid-x-locked-down-let-me-tell-you-what-i-know.html)

I wish people wouldn't do business with such consumer-unfriendly organizations. Or rather, I wish this was illegal.

<comment><USER6> Well, your first wish has some small fulfilment. I had been thinking of getting a Droid, but after reading about this, I no longer trust Motorola. Any idea if HTC is better?

<comment><USER7> The Nexus One has a bootloader that can be unlocked by just sending a debug command; it's very friendly to modding. Sending that command does trip a hardware flag that voids your warranty, but actually getting custom firmware onto the device is dead easy.

<comment><USER8> So reloading the original firmware doesn't reactivate the warranty?

<comment><USER7> Correct. Unlocking the bootloader trips a hardware flag that says "This bootloader has been unlocked", which voids the warranty. To date, nobody has been able to figure out how to un-trip that flag, though there was a brief window in which you could hack a custom ROM onto the device without unlocking it, but that was patched out with FRF91.

Personally, I think that's pretty reasonable, since third-party firmwares could potentially do things to the hardware that'd cause damage, and it's silly for hardware makers to promise to fix things caused by user negligence.

</comment></comment></comment></comment></comment><comment><USER9> Google should do what the Mozilla project does with Firefox and use their Android trademark to enforce user-experience standards before this becomes an epidemic. If the carriers take their Android code and use it to punch their customers in the face like this, don't let them call it Android anymore.

<comment><USER10> That likely would result in near-zero market share for Android.

<comment><USER11> Why? No-one's interested in the Android mark as-is. That's the real criticism of that suggestion.

If Google threatened to take away their rights to use the Android name or logo they wouldn't bat an eye. The manufacturers and carriers are after the modern OS and saving the development time involved in "catching up" from their horrible old systems.

They prefer that their customers don't build up brand loyalty to something they don't control. Why do you think Verizon is selling _Droid_ phones?

<comment><USER10> I guess I wasn't clear. If Google says "ship vanilla Android or nothing" (basically the same policy as Apple), carriers will choose some other OS that lets them load crapware. If Google says "you can choose to ship vanilla Android™ or DroidWeasel", I agree with you that the carriers will simply rebrand it.

</comment></comment></comment></comment><comment><USER12> The original Nexus One from Google is still the only Android device I would buy. I worry what comes next, since Google doesn't seem to plan doing that kind of thing anymore :-(

<comment><USER13> Likewise. I was considering getting an Android phone when my contract with AT&T was up, but nobody seems interested in building a good one. No wonder Apple was able to walk in and slap these guys around so effortlessly.

</comment></comment><comment><USER14> Sprint did a lot of this too. On the EVO I got at Google I/O I remember a Sprint NexTel Cup Nascar App that was completely uninstallable. I've since gotten rid of the phone. I much prefer my N1 with stock Android.

<comment><USER15> I just got an EVO about a week ago. I don't understand why a company would be so confident that every single user wants a nascar app that they would remove the option to uninstall. Put the app in the marketplace, make it free, let people uninstall it and then put it back on their phone if they decide they're interested in it again. How is it that people so opinionated are permitted to select the software for a phone that thousands of people will use?

<comment><USER16> Sprint and Nascar are partners- see NASCAR Sprint Cup[1]. Because of this, it is in their best interest that people watch/become aware of NASCAR. It's like product placement, but on your phone.

[1] [http://www2.sprint.com/mr/cda_pkDetail.do?id=1160&ECID=v...](http://www2.sprint.com/mr/cda_pkDetail.do?id=1160&ECID=vanity:sprintcup)

<comment><USER17> We know the reasoning, but we think it is poor reasoning. If a user doesn't want the app and can't get rid of it, then now they have something against the Nascar brand. That isn't good advertising.

</comment></comment></comment></comment><comment><USER18> I heard about a similar situation for AT&T's first Android phone, the BackFlip, which besides coming with uninstallable crapware, forced Yahoo search as the default on all applications that used it.

I wonder if Google had to give the carriers this flexibility in order to get them to use the OS?

<comment><USER3> They did. Google basically says: "Use our OS for free and you don't have to pay for a Windows license; plus it's open source so you can modify it in any way you want."

So we end up with a carrier free for all. Marketroids gone wild, infesting your phone with a million "punch the monkey" and Banzai Buddy adware, spyware, and pop-ups. This is the future of Android.

I have a feeling it will become easier for hackers to root their phones and install a clean OS, so it will be just like buying a cheap Dell computer - wipe it clean, put Ubuntu on it, and you're golden.

</comment></comment><comment><USER19> This is worse junkware than Apple's compass or stocks apps. Way worse. Hopefully this doesn't begin to happen more often.

<comment><USER20> I have no doubt that it will. When has marketing ever gotten less intrusive?

This is another example of why Google really needs to continue making their own phones with stock Android, no crapware, and no root/ROM restrictions.

<comment><USER21> I'm definitely beginning to think the Droid will be my last Motorola phone. Even the fact that you can't uninstall Amazon and the core Google apps is a little grating.

</comment></comment></comment><comment><USER22> Orange UK does this as well. I bought my HTC Desire from Orange, with no intention of doing anything to it, but I ended up having to reflash it with a debranded ROM because the bundled software (much of which was demoware) could not be removed and was cluttering up my phone.

Now I'm stuck eyeing every software update warily in case it screws up some critical piece of phone functionality - like the last system update, which caused wifi to stop working and required a full reflash and an £8 network unlock code to fix. Thanks Orange...

I honestly don't mind too much if some extra software is installed when I get a phone - as long as I can remove it!

</comment><comment><USER23> Microsoft seems to have learnt its lesson well here for WP7. They apparently will not allow the carriers to place more than a couple of apps which will be removable by the user.

<comment><USER18> They may have won that battle, but on other fronts things aren't looking so hot:

[http://www.infoworld.com/d/mobilize/windows-phone-7-dont- bot...](http://www.infoworld.com/d/mobilize/windows-phone-7-dont-bother- disaster-211?page=0,0)

<comment><USER24> That was a hack piece of journalism based on no facts and not even a finished product. As a reader I felt it was very harsh and didn't provide any examples. If he writes the same thing when Windows 7 is released and provides examples then I might listen to him. But releasing an article like that right now just lowers his street cred and makes him sound like he's jumping on the anti-MS bandwagon with everyone else...

</comment></comment></comment><comment><USER25> My G1 came with Amazon's MP3 store, so sadly this isn't even a new phenomenon for smart phones.

<comment><USER26> I wiped my G1 without really even using the default install. Was totally rad.

</comment></comment><comment><USER27> This story and the Droid X self-destruct debacle are both reaffirming my decision to buy an iPhone 4. Apple would sooner run Windows Mobile 7 on their phones than they would install third party demos, etc on the phone.

<comment><USER28> Lots of people talk about how the iPhone is closed and you can't control what's on it, but look how "open" platforms have worked out in practice.

<comment><USER2> they AREN'T open. That's the problem. The underlying OS might be mostly open. But the hardware you buy is as closed as it gets.

You as the paying customer are at the mercy of your carriers ideas about how they can increase their revenue.

That's what we get from that crazy model of handsets being subsidized by carriers. If people didn't expect a (mostly) free phone every year or two, with some likelihood, this would stop as people would want to demand to get what they pay for.

<comment><USER20> _That's what we get from that crazy model of handsets being subsidized by carriers._

Exactly, and unfortunately that's what "we" want. Google tried to break that dysfunctional model with the Nexus One, but most people can't get past the initial $529 price. I wish they at least tried to explain how you can end up saving a lot by using T-Mobile's contract-free plans.

<comment><USER7> > but most people can't get past the initial $529 price.

Sadly, this is very true. I bought an unlocked Nexus One, and people ooh and ahh over it, but when they ask me how much I paid for it, they blanch. At that point, they stop listening, even though I go on to explain that it ends up costing me _less_ over time than if I'd bought a cheaper-up-front subsidized phone.

It's really a reflection of our credit card culture. Many people consider $600 over 12 months (Only $50/month!) to be cheaper than $500 all at once (OMG, my bank account!).

<comment><USER29> Stop saying How much you paid for it, instead say X over 3 years of owning it, compared to Y for an iPhone over 3 years. After that, if they ask, say how much the phone itself costs.

</comment></comment></comment></comment></comment></comment><comment><USER30> well there goes the whole freedom argument. ouch.

</comment><comment><USER24> I, for one, appreciate the effort that the carriers have spent to pre-install apps for me!

<comment><USER24> Joke anyone? WTF.

</comment></comment><comment><USER31> The way I see it, the people who are actually bothered by this kind of thing will know how to remove it from their devices. On a related note, the Droid Incredible has been rooted: [http://www.droid-life.com/2010/07/15/finally-the- droid-life-...](http://www.droid-life.com/2010/07/15/finally-the-droid-life- incredible-has-been-rooted/)

Some people are saying that the eFuse technology in the Droid X will prevent it from being rooted as well, but that may not necessarily be the case: [http://www.boygeniusreport.com/2010/07/15/reality-check- modd...](http://www.boygeniusreport.com/2010/07/15/reality-check-modding-the- droid-x-may-not-lead-to-a-bricked-phone/)</comment>


Bitcoins in Space: Hacker to Fire Digital Currency Into Orbit - <AUTHOR> http://www.wired.com/2013/12/bitcoin_space/

<comment><AUTHOR> The article doesn't mention it, but I'm going to go ahead and propose orbital mining as a way to make solar power satellites [0] practical.

[0] [https://en.wikipedia.org/wiki/Space- based_solar_power](https://en.wikipedia.org/wiki/Space-based_solar_power)</comment>


MV renters pooling to buy lottery tickets to save their homes - <AUTHOR> https://www.mv-voice.com/news/2018/08/19/plans-to-raze-apartments-spur-outcry <comment><USER2> "The Hail Mary plan to buy lottery tickets is a testament to how desperate tenants have become."

Ok, at least the tenants are aware how unlikely the plan will work.</comment>


Material Design Based Progress Bar to Replace Spinners - <AUTHOR> http://lightningtgc.github.io/MProgress.js/

<comment><USER2> These are pretty cool. Might have to use them sometime.</comment>


Ask HN: What are the pros and cons of joining Groupon's engineering team? - <AUTHOR>

This would be my first full-time software engineering job.
I would rather be at one of more interesting 'startups'. But feel as if I need to improve a bit more before applying.
I've read they have a great engineering team. But is this still the case?
The plan would be to spend a year learning as much as possible on and off the job before moving on to something more interesting.
Thanks in advance for the helpful comments. <comment><USER2> I'm not sure, but you should join my company. We're hiring!</comment>


In the 19th century, poets had huge audiences - <AUTHOR> http://chronicle.com/temp/reprint.php?id=knz7d3nc19g60h47flh19j1pn0dxc4sy

<comment><AUTHOR> He's somewhat off about Plato. Plato was really complaining about fiction, not poetry.</comment>


AVA: The Art and Science of Image Discovery at Netflix - <AUTHOR> https://medium.com/netflix-techblog/ava-the-art-and-science-of-image-discovery-at-netflix-a442f163af6 <comment><USER2> I see one potential downside of this, as a Netflix subscriber I do find the frequent shuffle and changes of cover art confusing sometimes as it makes you feel there is a new film coming out but in fact you've already watched it.

<comment><USER3> Actually, this might be one of the intended effects of this feature. What better way to make it appear their catalog is wider and ever-changing then to cycle through these static stills every so often. It may not be the most user friendly design pattern to 'trick' your user into thinking there's a bigger catalog, but I can understand the desire for it from their perspective.

And to be perfectly honest, sometimes those changing stills have actually made me watch a movie that I had previously glossed over because the image wasn't as interesting. So from personal experience I can say their primary intent was reached w/ the periodic cycling of stills.

</comment></comment><comment><USER4> You can setup AVA style video processing pipeline using my project [https://www.deepvideoanalytics.com/](https://www.deepvideoanalytics.com/)

It comes built in with face detection/recognition, object detection, OCR, Open Images tagger etc.

<comment><USER5> This is an incredible product.

I have come across the github repo's authors work a number of times now, and I am continually impressed by the quality of documentation, examples, and immediately usable code.

</comment></comment><comment><USER6> Maybe they're not telling about some of the detail (and they've clearly given it plenty of thought!) but it seems wasteful to fully process all frames when in several cases many of them will never be selected. eg if it fails due to poor Visual Metadata (such as strong motion blur or very low brightness) you'd want to abandon all frames like that before running the other processing.

<comment><USER7> They probably do, for efficiency. You have to process a frame to some extent to detect motion blur or darkness (how else could you possibly know?), but that doesn't mean you can't abort the processing as soon as you detect the frame is totally unsuitable. I expect whole groups of frames may be able to be discarded more-or-less together, e.g. a dark key frame followed by frames with minimal difference, or where the video encoding's motion estimation says there's a lot moving.

</comment></comment><comment><USER8> I love this niche type of project, sounds like it would be such a fun project to work on.

</comment><comment><USER9> Why don't they Kaggle it?

<comment><USER10> Netflix cancelled its second million-dollar Netflix Prize in 2010 due to privacy lawsuits. Netflix has not outsourced its data science since.

[https://www.wired.com/2010/03/netflix-cancels- contest/](https://www.wired.com/2010/03/netflix-cancels-contest/)</comment></comment>


Elixir Golf Caesar Cipher - <AUTHOR> http://elixirgolf.com/articles/the-elixir-caesar-cipher/ <comment><AUTHOR> Can you create a Caesar Cipher in elixir that can beat 114 characters?

</comment><comment><USER2> This was interesting! Took a stab at it myself and got it to work but it wasn't as small as some of these!</comment>


Boredom is not a problem to be solved. It's the last privilege of a free mind - <AUTHOR> https://www.google.ie/amp/s/amp.theguardian.com/commentisfree/2015/sep/28/boredom-cures-privilege-free-mind <comment><USER2> un-AMPed url: [https://www.theguardian.com/commentisfree/2015/sep/28/boredo...](https://www.theguardian.com/commentisfree/2015/sep/28/boredom- cures-privilege-free-mind)</comment>


Scientists discover China has been secretly emitting banned ozone-depleting gas - <AUTHOR> https://nationalpost.com/news/world/scientists-discover-china-has-been-secretly-emitting-banned-ozone-depleting-gas <comment><USER2> I often wonder what the origin of the "absolutely do not give a shit" aspect of Chinese culture is. Is it from being a populous, civilized state for such a long period of time? Is it from the severe loss of life in world War 2? Some legacy of communism?

<comment><USER3> No any different than plenty of people in the US. We generally have a good regulatory body that catches people when they do it.

<comment><USER4> It's not that simple, China is unique. Read up on the lost generation it had a profound effect on their society. A good example is compare the litter in typical society because their are a few assholes to the where everyone of a certain generation litters because it's not their problem.</comment></comment></comment>


The smallest possible valid (X)HTML documents - <AUTHOR> http://mathiasbynens.be/notes/minimal-html

<comment><USER2> I've never seen the 'SHORTTAG NETENABL IMMEDNET' form before. I can't say I'm sorry it's gone in HTML5, it feels quite wrong.</comment>


Apple's second gen iPad will be the perfect eBook reader for most - <AUTHOR> http://alexknight.net/blog/2010/11/26/apples-second-gen-ipad-will-be-the-perfect-ebook-reader-for.html <comment><USER2> A retina display is still a backlit screen - not sure how that is perfect for reading. Haven't they been proven to cause eye strain?

<comment><AUTHOR> I'm afraid I've never heard or come across a case or even an individual I know who has complained about eye strain with the iPhone 4s display. If anything people have been pretty happy with it and can't go back to a 3GS. I'm sure the same will happen with the second gen iPad if it indeed does get a higher res display.</comment></comment>


A Faster MongoDB ODM for Python - <AUTHOR> http://mongoframes.com/snippets/mongoframes-vs-mongoengine <comment><USER2> Interesting project -- I built a very similar thing maybe 5 years ago with validation. There was a similar _fields structure, but it was a dict of field name and type which could also a be a callable to validate and coerce to the proper type, but by default, we just made sure a given field had the proper type -- we could also inject a default here as well.

This enforced a schema in the collection which I've found is usually very desirable. I used collection son manipulators and a _type field in the document to do mapping to and from the db. I think there was eventually a SubDocument type for embedded documents, but there was intentionally no dereferencing or lazy loading of embedded ids -- that's a slippery slope to building an ORM and fighting all the battles therein. The object mapping was a very nice feature though and I think that code is still in use today.

So +1 on keep it simple and -0 on not doing validation by default.</comment>


Diablo III real-money action house finally goes live - <AUTHOR> http://venturebeat.com/2012/06/13/diablo-iii-real-money-action-house-live/

<comment><USER2> I'm a bit disappointed with D3 so far. Everything about the game just seems setup to squeeze money out of people.

For example, in D2 the skills you chose were a crucial component of how well you did later in the game. You could create a build with relatively crap equipment who could do well later in the game based on their skills. But in D3 skills don't matter and everything is based on equipment - and you can buy equipment for real money and give Blizzard a cut.

Also, it doesn't seem big enough. I got my first character through normal in something like 3 days. And then I'm repeating the same old thing. It was 11 years between the release of D2's expansion and Diablo 3. I know they have other games, but they could have spent a little more time making the world bigger. My guess is they start selling service packs. They know people will buy them, so why not?

I'm enjoying it, and I'll probably play one character up to 60 and try out the others, but I just can't see myself playing it like I did D2.

<comment><USER3> It's embarrassing that D3 is the result of 11 years of development. It's one of the most unoriginal, badly written, cynical and frustrating games I've played in many years. I'm at the very end of the damn thing (final boss, Normal) only I can't really bother to finish it because it's too repetitive.

<comment><USER4> I've enjoyed a lot about the game, but I agree with you about the story. I suffered through all the dialogue in normal mode. Franticly clicking the X on all the conversations in nightmare mode has made the game much more bearable.

<comment><USER3> What happens after you beat Diablo? Do you start from the very beginning with the same hero as before? Because my guy is a ~30 wizard and it's got to be pretty difficult to get to a higher level on Normal.

<comment><USER5> Yes. You beat the game on a character in Normal, after getting to like ~30 or whatever (dunno, made up number). Then you can play through again from the beginning doing the exact same thing, with tougher monsters, in Nightmare. Beat nightmare and you're at 40~50 or whatever. Repeat again on Hell, at which point you're probably 60. Repeat again on inferno.

So basically you play the same game over and over again.

</comment></comment></comment></comment></comment><comment><USER6> Yeah, I started playing about 2 weeks ago.. played every class to 20, but played my Monk to 32 and finished 'Normal' mode. Was disappointed that the road to 60 is paved by going through the same content again, just a little bit harder. You would think after 11 years they would have been able to release a complete game.

<comment><USER7> It sounds to me like you never played Diablo 2. The basis of that game was repeating through the same content (albeit with randomly generated maps) in search of better and better gear. This mechanic hasn't fundamentally changed in Diablo 3.

<comment><USER8> I feel it has fundamentally changed with the removal of the skill tree. Instead of making choices and ending up with a semi-unique character, I can change my skills at any time.

My character isn't "mine" any more. The only real way to progress is to grind for loot now. Or pay someone for it. (something my friends and I never did in d2)

<comment><USER9> A good chunk of runes aren't available at 30, and you only have the full set at 60.

I know that my skill set changed pretty radically on subsequent difficulty levels, the same tactics didn't work terribly well.

<comment><USER8> Once you max out you're the same as every other character of that class.

In D2 I'll admit the skill tree had some severe flaws, but it allowed unique customization to an extent.

<comment><USER10> I don't see how 'I skilled and use these skills, they skilled and use those skills' is that different to 'I use these skills, they use these skills'. Except for experimenting with own builds is much easier now, so the motivation for following a cookie cutter build is weaker.

</comment></comment></comment></comment></comment></comment><comment><USER11> Diablo 3 is a lot better than I expected. Its a lot of fun bashing mobs in co- op mode with your friends. While its the same maps on all difficulty levels, there are random mobs and encounters quite often, and it never gets old finding nice items to sell on AH.

The only problem is that inferno is too difficult at the moment. Patch 1.03 will adjust the monster damage by about 25%. Right now, you cant kill elites with a melee character. In fact, you die to normal mobs very often because of their huge damage output. So people stay on Hell and play that content instead, which is not really intended. Inferno is supposed to be hard but doable, not impossible. Right now only ranged characters with the best gear can play that difficulty level.

Overall, I love the game and will play it for many more weeks or even months. I will never use the real money AH though. :)

</comment><comment><USER12> Successfully recouped the cost of buying the game by selling off a few items I'd picked up on my way to lvl 60.

I'm glad I did this early into the real money auction house, as I can't see how the whole econ won't crash due to the fact that there is constant growth of the amount of gold and items in the system.

</comment><comment><USER13> I wonder if arbitrage trading is anywhere as feasible with the real-money auction house as with the play-money one. So far, I have probably spent more time in the auction house than in the game itself, buying low and selling high.

Currently, you need to find a way to bypass the auction search result caching and have a reaction time of about 5 seconds to grab the really good deals.

</comment><comment><USER14> I wonder how well this will do considering myself and all the people I know that were playing have basically stopped as we got bored in Hell.

<comment><USER15> Only inferno-level items will have value as anything else is too common. Player use of it will have a similar curve to online poker in that it's a zero-sum game at high levels fed by a low-level casual group of players that is incapable of making money and occasionally makes purchases.

</comment></comment><comment><USER16> Does blizzard have a way of increasing the drop rate of items around those players who they can see are more likely to use the real money auction house?

<comment><USER15> If anything they would decrease the drop rate. They do not need to encourage sellers.

</comment></comment><comment><USER17> Why not fix the typo in the original article's headline?

</comment><comment><USER18> 'Action house'? sounds exciting!</comment>


Is what I am doing wrong? - <AUTHOR>

I feel like I am doing something bad whenever I scrape websites. Is this guilt unfounded? Is what I am doing okay?
For example, I am learning Rails right now, and decided to memorize all the code listings in the Rails tutorial (http://ruby.railstutorial.org/). If I wanted to, I could get all the code listings in that book within the next 5 minutes by using a scraper. Something that would take an hour (if I were disciplined enough to withstand the tedium of copying and pasting for an hour without breaks) would take just 5 minutes.
I love writing scrapers, it's one of the most fun things I know I can do with a computer. But after everything is said and done, with the data that I want on my hard drive, I can't help but feel guilty for doing it. I feel like I'm cheating something out of somebody. Especially in this case because I know how helpful Mr. Hartl has been to the Ruby community with his book. Mr. Hartl has probably jumpstarted thousands of careers with that book.
So anyway, is what I am doing wrong?
<comment></comment><comment>-----
By the way, just in case someone is curious, when I say "memorize", I don't mean word-for-word memorization. And I am doing this because I usually start off by rote learning whenever I try to acquire new skills. </comment><comment><USER2> no

<comment><AUTHOR> What if I were to make a website that organizes the data that I've scraped. Would that be okay as well? Under what conditions?

<comment><USER3> Scraping a copy of a website _for your own personal use_ is fine. (People used to do that all the time, back in the days of slow and unreliable modem connections; see [http://en.wikipedia.org/wiki/Offline_reader](http://en.wikipedia.org/wiki/Offline_reader) .)

Scraping a copy of a website _and then republishing it_ is different. Whether it's OK or not depends on the license under which the site is published:

\- If no license is specified you should assume that the site's creator's retain complete copyright control of it, which means you'd need to ask them for permission before you could legally republish it. They can charge you any fee they wish for that permission, or require you to comply with any conditions they specify. You can negotiate with them on these points, but you'll need to get their approval before you can act, so they have the final say.

\- Some sites are published under permissive licenses like the GNU Free Documentation License ([http://www.gnu.org/copyleft/fdl.html](http://www.gnu.org/copyleft/fdl.html)) or the licenses provided by Creative Commons ([http://creativecommons.org/licenses/](http://creativecommons.org/licenses/)). Sites that use these licenses will generally carry a notice to that effect somewhere. These licenses can allow you to republish stuff, as long as you follow the terms of the particular license; republishing a GFDL document would require you to make your republished version GFDL-licensed also, for instance, while republishing a document licensed under CC's Attribution license would let you republish as long as you include a credit to the site where the material first appeared. Check the particular license for the site you're looking at for complete details on what the terms are.

\- Some online documents, like (for example) e-books from Project Gutenberg ([http://www.gutenberg.org/](http://www.gutenberg.org/)) are just copies of material that has passed into the "public domain": see [http://en.wikipedia.org/wiki/Public_domain](http://en.wikipedia.org/wiki/Public_domain). Public domain documents are documents on which the copyright has lapsed or expired. These can be republished in any way you wish without having to comply with any limitations or terms. Due to changes in copyright law, it is extremely rare to find documents published after the late 1920s in the public domain.

As noted above, unless the site explicitly says it's published under a particular license or is demonstrably in the public domain, you should assume it's not OK to republish anything from it without permission.

EDIT: In the specific case of the Rails tutorial you cited, the author helpfully spells out how the material is licensed, here: [http://ruby.railstutorial.org/ruby-on-rails-tutorial- book](http://ruby.railstutorial.org/ruby-on-rails-tutorial-book)

> _Ruby on Rails Tutorial: Learn Web Development with Rails. Copyright © 2013 > by Michael Hartl. All source code in the Ruby on Rails Tutorial is available > jointly under the MIT License and the Beerware License._

In other words: the _text of the book itself_ is copyrighted, with the rightsholder being Michael Hartl. So you'd need his permission before you could republish/remix/whatever it. The _source code of the coding examples_ , however, is published under the more permissive MIT and Beerware licenses. So you could republish _that source code only_ without needing his formal permission, as long as you do so in a way that complies with one of those licenses.

<comment><AUTHOR> Thank you for your helpful reply.

If I do decide to do this project, then I will make sure to credit him.

<comment><USER3> No problem... but based on your response I'm not sure you understood what I was saying :D

He holds the copyright to the book's text, and didn't license it under a permissive license, so _crediting him is not enough._ Copyright means you need to get _his explicit permission_ for whatever it is you want to do. If he wants to charge you money for that permission, or require you to follow some set of conditions he specifies, it's in his rights to do that.

In other words, the next step would be to contact Hartl, describe your project and ask him to give you an OK, preferably in writing. Without that OK you'd be violating his copyright. Which isn't an academic matter -- if you violate his copyright, it would be trivial for him to get your project taken offline by your Web host just by filing a DMCA complaint. That's something you can do with a simple email to the hosting company. So you want to be sure you're in compliance to avoid pouring a lot of time and money into something that gets nuked five minutes after you publish it.</comment></comment></comment></comment></comment>


Ask HN: Review my iPhone application - Facemouth - <AUTHOR>

I've been a daily reader for a couple years and just launched my first iPhone app.  I would love it if a few of you guys could take a look at it.  Coupon codes available upon request, otherwise it's just $0.99.  Thanks!<p>Facemouth - www.facemouth.com <comment><AUTHOR> apple: <http://itunes.apple.com/us/app/facemouth/id428103766?mt=8>

web: <http://facemouth.com/></comment>


Can an Entrepreneur Be Successful Without Supportive Parents? - <AUTHOR> https://medium.com/30-days-of-writing-to-reboot-my-mind/whats-the-impact-of-parental-support-on-an-entrepreneur-s-success-3ed02431b124#.x6q3kg78i <comment><USER2> [https://trep-ology.com/how-important-is-parental-support- to-...](https://trep-ology.com/how-important-is-parental-support-to-young- entrepreneurs/)</comment>


A person who made pics on Twitter a thing talks learning to code - Pete-Codes https://www.nocsdegree.com/the-person-who-made-pics-on-twitter-a-thing-talks-learning-to-code/ <comment> Pete-Codes I only joined Twitter in 2014. I find it really odd that you couldn't share images originally. Did anyone here use Twitpic back in the day?</comment>


Show HN: Browser Based Desktop Environment for Linux (Now with Dply Demo) - <AUTHOR> https://github.com/Lerc/notanos <comment><AUTHOR> Possibly the most significant new factor in this update is that the Dply server option lets you try out the system without having to an install an executable that runs as root on your own system.

There are a bunch of additions though. There's a simple paint program that gives a nice demonstration of a Application that can make and save data. Start Menu, Drag and Drop work, The beginnings of a Monaco supported Text editor.

It's slowly crawling towards a point where it'll be ready for people to actually use.</comment>