Google show signs of reconsidering auto mute after developer critique - <AUTHOR> https://bugs.chromium.org/p/chromium/issues/detail?id=840866 <comment><USER2> Usually when a major web browser decides to do something that has the potential to break existing websites they do extensive testing and put the call out for dev feedback before they release. Why didn't that happen here?

Also it's odd that Chrome decided to explicitly whitelist some sites. Surely that's an admission that their automated workflow doesn't actually work well?

<comment><USER3> Google is starting to show a pattern of addressing the concerns of the large players (which themselves are a part of), and ignoring or degrading everyone else's experience.

Good luck trying to get predicable deliverability to gmail without your mail being put in the spam box as a small mail sender. Google refuses to even tell you anything about why or why not mail is being delivered unless you send hundreds of messages a day.

This is a small personal mailserver, compliant fully with DMARC/DKIM/SPF, has RDNS, reasonably old domain (a few years), IP not and never has been on any blacklist, reputable server provider, has been sending mail to gmail for a few years, is not sending anything except personal mail under my direct control, nothing that could even vaugely be considered commerical or spam of any kind.

Google still classifies it as spam, even with repeated clicking of "this is not spam" button by my recepients, after a while it just goes back in the spam folder, and has absolutely no hint at why, or how to change it.

To top it off im hearing reports that signing up for google suite for your domain immediately seems to remove this mysterious "fuck you filter", and you no longer get deliverability issues.

Ive heard similar rumours about placement in google search results, aswell as stuff like youtube recommendations, if you aren't already in the accepted list of stuff we wanna show you, dont bother even trying.

Its a very concerning thing because the outcry about shitty practices targeting the things 95% of people dont see, will be by definition limited, and yet it is these very things that are essential to remaining out under the thumb of parties like Facebook or Google.

<comment><USER4> Why don't you move away from Google? It's like intentionally sticking to one of the worst companies and then complaining about it.

Try fastmail, it's really great.

<comment><USER5> It's not about _receiving_ mail, it's about _sending_ to others using Gmail accounts.

</comment></comment></comment></comment><comment><USER6> As my mom always said, "This is why we can't have nice things."

I _deeply_ miss the days when all it took was installing something akin to "Flask Block" and this problem was solved. I've been using Firefox with their built-in autoplay blocking feature (hidden in about:config) for a while now on my desktop and on mobile -- mainly because of idiotic news sites that seem to think I want to listen/watch the article I clicked in to (with the included pre-roll commercial, I assume[0]) and that my coworkers/wife want to listen to it, too.

The solution offered by the original bug report sounds practical, but the thing of it is, the solution that Chrome has implemented, in my opinion, doesn't go far enough[1]. I don't just want the audio muted, I want the whole video prevented from even _starting_ to download (on my mobile device) -- it wastes limited data and costs me money.

It's sad that a "fix" to workaround a misuse of a feature is breaking legitimate uses. Having done a few years on the security side of the house at a telecom, I've tried to push developers in the direction of thinking about solutions from these sorts of angles. It's important when designing something to think about not just how your creation will be used, but how it can be misused and while the latter shouldn't necessarily prevent a feature from being implemented, it's important to weigh the two against each other and think about ways that problems might be mitigated. This might result in the adjustment of a feature, or it might be nothing more than a contingency plan should nefarious use eclipse legitimate use.

[0] I run uBlock Origin so I'm not entirely sure that there's a commercial -- I can only assume because the quality of the video, which is often nothing more than a man or woman reading the article, verbatim, in near-monotone voice is so poor that I can't imagine this being a feature added because of user demand.

[1] Though, muting audio is certainly a good start. I remember in the 2000s when people would pass around e-mails with links to important sounding things that, when clicked, would open a browser that screamed a message out of your speakers "Hey, everybody! I'm looking at porn!". Haven't seen that in a long time, but it'll come around again -- everything that's old is new again at some point.

</comment><comment><USER7> What I don't understand is why they went this convoluted route of trying to assess what's legitimate or not, what's a user interaction or not. Does anyone know why they didn't go the route of other permissions like notifications or location, with a discrete popup that says the page is attempting to play some audio (or video), do you want to allow? If it is legitimate, the user clicks allow once and the site works forever.

<comment><USER8> How often do you see the "want to allow X to display notifications?" or "want to allow X to access your location?"

It's a shitty UX for everyone involved.

It's shitty for the user because they get asked it on SO MANY sites. I see friends/family browsing the web and they will go to a news site, click "no" to notifications, need to click away the fullscreen "want to subscribe to our newsletter" modal, then scroll down to the content. Adding a "want to allow this to display video" is just another step you need before being able to use the site.

And it sucks for site owners because those that legitimately need the ability to display video will have a pretty large percentage of their users react- click "no" on the dialog, meaning the site is broken until that user goes into settings and changes that one manually (and unsurprisingly, just about 0 do that).

Now I don't necessarily agree with the choice they've made here, but I do agree that a permissions dialog isn't the right UX.

<comment> Al-Khwarizmi To be honest I'm not bothered by that UX at all. The browser remembers my choice for each site, how many new, different sites do most users visit per day (that would need audio)?

If a user doesn't want to be bothered by the prompt, they can always configure the browser to always accept or always reject. Or use a whitelist/blacklist.

This is very different from the EU "this website has cookies" prompt, which _does_ annoy me a lot. First of all, you are not really choosing anything meaningful, but you still need to click. Secondly, being a website feature (not in the browser) means you don't get a uniform UI (and sometimes it's a nightmare on mobile). Third, it's just pointless as practically all websites have cookies so the amount of information in those messages is close to zero.

<comment><USER8> >The browser remembers my choice for each site, how many new, different sites do most users visit per day (that would need audio)?

How many sites need notifications? And why do I need to decline that permission at least once a day if not more often?

And the issue is that putting this behind a notification removes the downsides of asking for it. Currently if you play audio un-prompted you piss off (a percentage of) your users. If that was behind a notification, you would only inconvenience those users, so there's less of a downside of trying it assuming that only people that want it would click "yes".

My "perfect solution" would be for the major browser developers to get together, and come up with a web standard for where these notifications/prompts will live in the browser chrome, and roughly what they will look like, so that everyone can standardize on a similar UI. Then move from a prompt to a "badge" of sorts, and give websites the power to instruct users how to discover and switch that permission on/off when needed.

I believe on desktop chrome most permission prompts live in the upper-right corner of the address bar, if we could all standardize on somethign like that (at least on desktop, then figure something out for mobile) website owners could then instruct users "to see notifications, click the (standard- notification-icon) up there and select 'yes'".

For "rare" things like notifications, camera access, gps location, and others that seems like a good tradeoff to me, but for "more common" things like audio/video, I don't think it fits.

<comment><USER7> That's the thing. I don't think audio and video should be that common on websites. Outside of youtube and netflix, 99% of the time I do not want audio or video content to play automatically.

</comment></comment></comment></comment></comment><comment><USER9> I'll immediately switch to using any browser that blocks auto play by default on all websites without exception.

<comment><USER10> Firefox -> about:config -> media.autoplay.enabled -> false

Edit: troydavis points out this Chrome option doesn't actually block autoplay: Chrome -> chrome://flags/#autoplay-policy -> Document user activation is required

<comment><USER11> The Chrome flag doesn't do what it sounds like it does (and what it should). Essentially everyone logically interprets it as blocking all auto playing videos, audio or not, but that isn't one of its options.

Given the number of people who hate unauthorized autoplaying video (including silent video), it's sort of amazing that Chrome's product management team hasn't added a way to prevent it - at least as a buried config flag and ideally as domain rules (like the "Clear cookies on exit" rules). That wouldn't preclude using automated heuristics to add and remove sites from the filters, but at least there'd be a reliable way to turn it off and whitelist a few domains.

Background from [https://news.ycombinator.com/item?id=16367457#16370471](https://news.ycombinator.com/item?id=16367457#16370471):

"Alas, this flag only prevents video that has sound from auto-playing. It's the inadequate option that my earlier comment was referring to.

Here's more: [https://www.chromium.org/audio- video/autoplay](https://www.chromium.org/audio-video/autoplay)

[https://developers.google.com/web/updates/2017/09/autoplay-p...](https://developers.google.com/web/updates/2017/09/autoplay- policy-changes)

Quoting the blog post, Google's decision that "Muted autoplay is always allowed" is the problem. If any other Chrome users wondered why videos now auto-play without sound (even with this option set), at least based on the relatively minimal docs about this flag, this is why.

<comment><USER12> > Given the number of people who hate unauthorized autoplaying video > (including silent video), it's sort of amazing that Chrome's product > management team hasn't added a way to prevent it

I wouldn't hold much hope for them doing this - the official autoplay policy announcement blog post says [1]:

> One cool way to engage users is about using muted autoplay and let them > chose to unmute (see code snippet below). Some websites already do this > effectively, including Facebook, Instagram, Twitter, and YouTube.

[1] [https://developers.google.com/web/updates/2017/09/autoplay-p...](https://developers.google.com/web/updates/2017/09/autoplay- policy-changes)

<comment><USER13> > One cool way to engage users is about using muted autoplay and let them > chose to unmute (see code snippet below).

This line really illustrates how poorly Google understands the role of the browser. The browser's job isn't to help developers "engage" users, which just means getting them to spend more of their time on the site. Why would any user install a browser which is optimized to consume as much of their time as possible? The browser's job is to protect me from abusive publishers, not enable more abuse.

</comment></comment></comment></comment></comment><comment><USER14> I would suggest just having the tab muted by default, and maybe an easier button to toggle on/off, than current right-click, to unmute/solo. Perhaps, a limited notification for the first 100 times your tab is muted and it detects sound being played in the tab, so you're not wondering why no sound is playing.

<comment><USER15> Something like this:

[https://addons.mozilla.org/en-US/firefox/addon/mute-sites- by...](https://addons.mozilla.org/en-US/firefox/addon/mute-sites-by-default/)

</comment></comment><comment><USER16> I'm not sure I saw any signs that they're "reconsidering" on this ticket -- just that they're now aware of how many corner cases they have.

I can easily see Google saying, "eh, that's your problem, learn to whitelist your site with us."

<comment><USER17> That's not my interpretation of their comments at all.

#55 "Chrome Product Manager for desktop here. Thank you for posting these examples, they're superful helpful to the team. We didn't intend to break all this awesome existing content that relies on webaudio, and we are investigating paths forward now. More updates will follow on this bug."

<comment> gray_-_wolf that's corporate talk for "we don't care, let's stall and come with even more fucked up solution"

<comment><AUTHOR> That's overly synical. They broke tons of their own stuff too, so my bet is on this being genuine.

</comment></comment></comment></comment><comment><USER18> The Issue report is not very well done.

> Autoplay restrictions on the web have long been inconsistent and served only > to impede legitimate use cases.

This is judgmental, and it is not backed up with any data. Has it really "served only" to impede the legitimate uses?

> I've described this in detail in the following blog

Blog promotion.

> What is the expected behavior? Allow audio playback on page load without any > user interaction.

Definitively this is not the expected behavior. Chromium team has defined that no audio will be allowed until there is user interaction.

> Abusive content will just blare out audio at the first opportunity.

Yes. This is a red queen race. But doesn't means that it is not worth pursuing.

I think that the point is valid. But the premise of the report, it is not. With the goal of minimizing sound SPAM in the web, Chromium has imposed some drastic measures that require changes in the interfaces of a large unknown amount of Javascript code.

> "These restrictions require special coding to handle them. Instead, the > browser could simply allow all playback attempts to succeed, but mute the > master audio output. Then the browser can automatically unmute the master > audio output the first time the user touches the screen (or whenever else it > deems the user is OK with audio)."

The proposed solution is quite good. Let the browser show a button to enable sound like they did with pop-ups. So all the affected companies and individuals don't need to repeat the checks all over the internet, to create a unified experience and to keep legacy games and applications that have no chance of being updated.

But as another post says, there is a lot of corner cases. I can imagine a blind user wanting to have sound without having to read some text.

The company I work for was affected by this change. And there was a lot of problems in production. To fix it, people had to work the weekend. I know that should not be like that, that we need to improve beta browser testing, and such. But sometimes the realities of companies make this kind of behavioral changes difficult.

I hope that Chromium finds a good way of keeping ads muted, while not breaking the Internet.

</comment><comment><USER19> Wouldn't this be easily resolved by giving the user the option upon visiting the site: "This website would like your permission to play audio. You can revoke this at any time."

Similar to how storing files or sending push notifications works?

<comment><USER20> Those are both already horrible UXs that are abused in the same way the "subscribe to our newsletter" is. I won't ever do any of those three for 99.9% of websites I visit, and yet 70% are requesting it.

They've become user-hostile ways to give websites a way to force interaction from me that I don't ever want, and if I did I could chose the option in the account preferences (if I cared enough to make one).

<comment><USER19> The way that browsers typically handle this though is that your interaction isn't blocked by the prompt. There's a default state ('disallow'), the website can ask you for permission, and you can choose to either:

      1. Allow
      2. Deny
      3. Do nothing at all

The website then must take all three into consideration so your experience isn't ruined as a result of a blocking-state.

I agree that the permissions system isn't ideal, and I would hope that the way we handle this interchange in the future can improve to a point where it's less invasive in terms of screen space. But at least for now, it shouldn't invade your ability to continue using the site.

<comment><USER20> Its not about being blocked from continuing, it's about having to answer questions (or click away the dialogues) to peruse content.

And the "subscribe to our newsletter" overlay often does block progress without hunting for the often obfuscated "no thanks" link.

</comment></comment></comment></comment><comment><USER21> Now I know I've been reading too much Reddit. I was really impressed by the well articulated, grammatically correct, and properly spelled postings in that bug thread. My standards have been lowered too far.

</comment><comment><USER22> Until I read this entry's title, I'd never thought about whether Google is singular or plural—is "Google show..." an acceptable variant of "Google shows...?"

<comment><USER23> Both are fine. American English tends to treat collective nouns as singular, while British English treats them as plural. ([http://www.dictionary.com/e/collective- nouns/](http://www.dictionary.com/e/collective-nouns/))

</comment></comment><comment><USER24> It might be just me, but I cannot (for the life me) understand what the issue is here. Maybe it's because I'm not a mobile game developer or content creator where audio and video is my life.

I think people like me would benefit with an actual side-by-side demonstration of what the issue is now vs the resolution the author is proposing.

<comment><USER25> This new Chrome "feature" mutes audio from many browser games and interactive audiovisual websites, offering no indication that audio is muted, and no way for the user to restore the audio.

By trying to silence autoplaying video ads, they have thrown the baby out with the bathwater (except for certain specially whitelisted domains, like youtube).

</comment></comment><comment><USER26> isn't the "Allow website to send Notifications" prompt on 99% of mainstream websites irritating enough?

<comment><USER27> That's because the api is badly defined, the javascript call to ask for notification is syncronous so the browser need that annoying blocking popup insteas of something less invasive like the popup notification

<comment><USER8> The javascript call to request notification permissions is async (returning a promise in newer browsers, callback in older ones).

[https://developer.mozilla.org/en- US/docs/Web/API/Notificatio...](https://developer.mozilla.org/en- US/docs/Web/API/Notification/requestPermission)

</comment></comment></comment><comment><USER28> Since JavaScript can generate moving imagery, and animated GIFs can as well, the only sensible thing is to consider the video as something conceptually different from audio. I wouldn't mind if they _always_ allow videos to play, _except_ I want full control over the audio at all times.

</comment><comment><USER29> Is MySpace going to make a comeback here or what?</comment>


dat: git for the open data movement - <AUTHOR> https://github.com/maxogden/dat/#what-is-dat

<comment><USER2> Being able to work with data like I work with code is something of a holy grail. I'll watch this with interest.</comment>


Show HN: Whitehouse – A civic app for live chat with your elected officials - <AUTHOR> https://whitehouseapp.co <comment><AUTHOR> Whitehouse is a civic platform available on iOS and Android that aims to become the primary solution to communicate with our elected officials in a near future. Typically, when people want to contact their local representatives, there are 3 steps :

1)Most people don't even know who are representing them, so they actually starting by searching on google.

2) Once they find some names they still need to collect their contact info.

3) And finally they are ready to send either an email or a postal mail (Yeah that still happens)

Whitehouse makes things simpler. It uses geolocation to accurately show you the elected officials serving near you. Just press a button to submit your question to one of them. A chat session will be created and you could both have a live conversation just like in Whatsapp.

Additionally, all discussions are publicly accessible ( third users have read access only) and an internal search engine is available to help users to discover if their concerns have already been discussed.

For those who live in California, Councilwoman Nancy Smith from Sunnyvale is one of the first elected officials that joined the Whitehouse community and will be happy to chat with residents about their issues. Another Councilwoman, Myra Maravilla from Hawaiian Gardens,CA is also available.

For those who live in Florida, Shevrin Jones, State Representative and Wayne Messam, Mayor of Miramar are available too.

But anyway, you just have to invite your local elected officials to join Whitehouse (they will need to register as Official by filling the in-app Form) and they could start to discuss with you in real time.

PS : Currently, only authentication via Twitter is supported. I am gonna add more auth options in the next versions. Voila.

Get Whitehouse for iOS : [https://itunes.apple.com/us/app/whitehouse-for- iphone/id1414...](https://itunes.apple.com/us/app/whitehouse-for- iphone/id1414430724)

Get Whitehouse for Android : [https://play.google.com/store/apps/details?id=com.whitehouse...](https://play.google.com/store/apps/details?id=com.whitehouse.eugene)

Please do not hesitate to contact me with any questions or feedback.

This platform is ideal for activists and other political nerds that trying to make things change. So, no time to lose, make your voice heard !</comment>


Feynman: making the extraordinary look easy - <AUTHOR> https://www.the-tls.co.uk/articles/feynman-making-the-extraordinary-look-easy/ <comment><USER2> The article quotes Feynman's memoirs is a highly misleading way. It says:

> Such behavior is chronicled in a notorious chapter of his autobiography, > Surely You're Joking, Mr. Feynman! ("I adopted the attitude that those bar > girls are all bitches, that they aren't worth anything, and all they're in > there for is to get you to buy them a drink, and they're not going to give > you a goddamn thing").

This suggests that the attitude discussed was how Feynman thought about woman. However, the chapter is about trying out that attitude as a temporary experiment — and Feynman quickly rejects the approach precisely because is feels too sexist/dehumanizing (iirc, it's been a while since I read the source).

None of that is to disagree with the article's overall point – I don't have an informed opinion on the matter. But I did find that quote a bit misleading.

<comment><USER3> Taking a look back at the book, I think you're right. They are misrepresenting him in this one quote. He was referring to the gross mindset he was trying out.

On the other hand, I'm in one of the departments Feynman had an appointment with for a few years. Some of the older faculty overlapped with him and have fun stories to share. However, one of the lasting memories of his stay was how he was predatory towards the undergraduate women. In fact, it was to the point that some people speculate that he was forced to the leave the department after sleeping with too many of his students.

I still look up to Feynman for his science, but there were some real problems with how he treated women. Even if the article didn't do a great job of presenting the evidence for it. Besides Surely you're Joking is Feynman as portrayed by Feynman. He's famously a showman and isn't going to create an image of himself in the book that he doesn't think is likeable. Interestingly, from what I remember reading, he also did a lot to support the female scientists in his life including his sister.

<comment><USER4> Is there any evidence or reporting to this end? This seems quite the fact (other than him choking his wife) and would love to learn more about.

<comment><USER3> My knowledge of it is just through department oral history.

I did some googling though and apparently his time at Cornell is talked about in Lawrence Krauss's biography "Quantum Man". Here's a brief review of it [1]. Apparently as a professor he would pretend to be an undergrad to sleep with students. He also apparently slept with the wives of multiple faculty (I might have remembered it wrong and this was the reason he was rumored to have been forced to leave over).

[1] [https://www.theguardian.com/science/2011/may/15/quantum- man-...](https://www.theguardian.com/science/2011/may/15/quantum-man-richard- feynman-review)

</comment></comment></comment></comment><comment><USER5> I'm so sick of these hatchet jobs on long dead people. If you are not empathetic enough to put yourself in the position of a different society, you're probably not empathic enough to criticize a persons character. Additionally, I don't care if he was sexist. We don't like Feynman because he was a feminist. We like Feynman because he led the charge in scientific discovery and progress. No one is perfect.

<comment><USER6> For context, this is the _entirety_ of the portion of the article which critiques Feynman's behavior towards women. It's not even 1/5 of the article.

"In high school, though Feynman excelled in academics, he began to foster insecurities around masculinity. Later in life this would curdle into juvenile braggadocio and poisonous attitudes towards women, with him making degrading remarks about those he met, and which persisted throughout his life. Such behavior is chronicled in a notorious chapter of his autobiography, Surely You're Joking, Mr. Feynman! ("I adopted the attitude that those bar girls are all bitches, that they aren't worth anything, and all they're in there for is to get you to buy them a drink, and they're not going to give you a goddamn thing"). Yet, this markedly contrasted with his unwavering respect for the many talented women he supported: starting with his sister and including his first wife Arline. He was impressed and influenced by Arline's skills as an artist and music teacher. The marriage ended tragically early when Arline died of tuberculosis. Years later, Feynman leant valuable support to the Blake scholar Jenijoy La Belle, the first female faculty appointment at Caltech, who had been denied tenure. One of the few professors outside of the humanities who came to her defence, he published an influential letter of support in the campus newspaper, and thanks in part to this, she received tenure and enjoyed a long career."

I'm confused. The article is 90% about his career as a scientist, and is nothing but laudatory. 10%, if that, is about his relationships with women, and even the critique given there is tempered w/the observation that he had a strong and loving relationship with his wife.

So, how is this a hatchet job? Reads more like a normal biographical article.

What exactly is your critique here?

<comment><USER7> It's already been pointed out elsewhere in the comments, but the quote about "those bar girls are all bitches" is badly taken out of context, since that was something he'd said in connection with a thought experiment he was performing.

</comment></comment></comment><comment><USER8> Feynman is not known as the "Great Explainer" for nothing. It occurred to me recently that one of his great gifts was in setting the stage for the learning process. He had a knack for a visceral initial presentation of the subject matter that was going to be discussed, often with analogies to the physical world we experience. This had two main effects on the listener, 1) the feeling (whether true or not) that the subject matter was somehow going to be relatable and familiar, and 2) providing a strong central mental image around which to further hang ideas as the discussion went on, rather than staying in the realm of the abstract for a long time with no grounding point.

In this sense he was a guide, saying, "Don't worry, this is a journey we can go on together, and parts of it you have traveled before". He makes you believe you can understand something (or frankly tells us when we can't), which seems the ideal mental state for difficult subject matter.

</comment><comment><USER9> I find this constant sniping tiresome and boring. Yes, even people with great minds are humans, with all the failings that come with it. We are almost all lonely and seeking comfort and praise.

Isn't what is remarkable about Feynman worth celebrating? Perhaps even more so because he was only a human being.

</comment><comment><USER10> What is 'sometimes sexist attitudes' doing there? I've read his memoirs and his lectures, and I saw some of his challenger stuff on youtube. I dont really see this.

Now he lived in a more sexist culture than we do, so maybe that has something to do with it?

<comment><USER11> Simultaneously you acknowledge that sexism existed and simultaneously you want to make it taboo. It is not personal offence to you that sexism existed or exist nor something outrageous to talk about it.

This is how he is characterized:

> known for his [...], sexism along with generous support for women > academicians

But to answer the question, the reason for this to not make it taboo is simple - it is part of history and world. When you make it taboo, people end up having naive simplistic ideas over how world worked back then.

<comment><USER12> Why do you say that hyperman1 "want[s] to make it taboo"? I don't see that at all. I think he[1] is just saying: the article says Feynman was sexist, but I haven't seen evidence of that and find it hard to believe.

For what it's worth, I think it's clear that Feynman was, at the very least, what-we-nowadays-tend-to-call-sexist. That is, he saw women as sex objects and talked about them as sex objects, and so far as I can tell saw nothing wrong or improper about doing that. See, e.g., That Chapter of "Surely you're joking...", a bit of which is quoted in the article. (The article's decontextualization makes it look worse than it actually is, but it's still not great.) It's harder to tell whether he was sexist in the narrower sense of thinking that women are _generally_ e.g. intellectually inferior to men. I'm pretty sure he wasn't sexist in the even narrower sense of thinking that women simply can't do the things that traditionally used to be men's jobs.

[1] Making a guess on the basis of username.

<comment><USER10> Thanks. Your interpretation is indeed what I intended.

To be clear: I see more sexism in the Los Alamos chapter,where a 'Girl' is only good enough to do computations, until the computer replaces them.

While the bar-chapters quoted here paint a bleak picture, it does so of both sexes, and Feynman remarks how things didn't work as he wasbrought up to expect.

I am indeed male,even if 'hyperman' was a happy artefact of an algorithm that shortened my 4 word full name to 8 characters to create a student logon name. My classmates liked it and it stuck

</comment></comment></comment></comment><comment><USER13> Despite what the other comments are saying, I think this article strikes a perfect tone, and is showing how we as a society can look at the heroes of our past and see them holistically - accolades and flaws together.

In the past there were two kinds of Feynman articles:

1) Glowing, without reservation, and notably ignoring some of his sexist views, statements, and actions

2) Conflicted and accusatory - tainting a wonderful educator and brilliant innovator as irredeemable. Someone who we should stop worshipping because of his problematic points of view.

The truth is both. And this article acknowledges and leans into it. We should strive to celebrate the best of Feynman, and apply his joy and wonder of science into our lives. But we should be aware of his more prickly and selfish aspects, and seek to not fall into the same trappings.

I think this article is great, and is a good template for approaching other flawed legends.

<comment><USER14> I generally agree with you, and I like that it doesn't harp on this aspect when talking about his life, but doesn't pretend it's not there either.

I am not familiar enough with Feynman's life to hold a particularly nuanced opinion, but it seems like just that one line intentionally taken out of context seems to be the issue. A one-line summary of the same chapter in the book could show that he was a womanizer without taking a particularly inflammatory quote out of context.

In an unlikely coincidence, that particular chapter of Surely You're Joking, Mr. Feynman! was one of the few that I had read.

</comment></comment><comment><USER15> I'm not sure a lot of the comments here have read Feynman's memoir. As much as he was a brilliant scientist, his attitude towards women does show. That chapter is chilling, it reads like a post on an incel group.

Sure he was in a more sexist society. But the reason this still matters is that it represents the sexist culture that's still around in science today. It's not about the man it's a bigger discussion on an institution.

<comment><USER16> The impression I got after reading "Surely, You're Joking, Mr. Feynman" was not that Feynman was sexist (though I did raise my eyebrows a few times), but that he laundered his vanity via _manufactured_ anecdotes about himself. When I say _manufactured_ , I don't mean "false", I mean he subtly (but actively) manipulated the (otherwise ordinary) situations he found himself in such that they would turn into interesting or even unbelievable anecdotes starring... well him!

I still enjoyed the book immensely, mind you, and I have no doubt some of the anecdotes were genuine, but that was the general impression I had by the end.

<comment><USER17> Well, from what I've read, I think he still does it all to #1 educate and #2 entertain. (and #2 is a multiplier for #1)

I recall the story of the Oak Ridge plant, where they think he is a great Genius yet he clearly illustrates he is not.

wait, here it is:

 _I took mechanical drawing when I was in school, but I am not good at reading blueprints. So they unroll the stack of blueprints and start to explain it to me, thinking I am a genius. Now, one of the things they had to avoid in the plant was accumulation. They had problems like when there 's an evaporator working, which is trying to accumulate the stuff, if the valve gets stuck or something like that and too much stuff accumulates, it'll explode. So they explained to me that this plant is designed so that if any one valve gets stuck nothing will happen. It needs at least two valves everywhere._

 _Then they explain how it works. The carbon tetrachloride comes in here, the uranium nitrate from here comes in here, it goes up and down, it goes up through the floor, comes up through the pipes, coming up from the second floor, bluuuuurp--going through the stack of blueprints, downup- down-up, talking very fast, explaining the very very complicated chemical plant._

 _I 'm completely dazed, Worse, I don't know what the symbols on the blueprint mean! There is some kind of a thing that at first I think is a window. It's a square with a little cross in the middle, all over the damn place. I think it's a window, but no, it can't be a window, because it isn't always at the edge. I want to ask them what it is._

 _You must have been in a situation like this when you didn 't ask them right away. Right away it would have been OK. But now they've been talking a little bit too long. You hesitated too long. If you ask them now they'll say "What are you wasting my time all this time for?"_

 _What am I going to do? I get an idea. Maybe it 's a valve._

 _I take my finger and I put it down on one of the mysterious little crosses in the middle of one of the blueprints on page three, and I say "What happens if this valve gets stuck?" \--figuring they're going to say "That's not a valve, sir, that's a window."_

 _So one looks at the other and says, "Well, if that valve gets stuck--" and he goes up and down on the blueprint, up and down, the other guy goes up and down, back and forth, back and forth, and they both look at each other. They turn around to me and they open their mouths like astonished fish and say "You're absolutely right, sir."_

 _So they rolled up the blueprints and away they went and we walked out. And Mr. Zumwalt, who had been following me all the way through, said, "You're a genius. I got the idea you were a genius when you went through the plant once and you could tell them about evaporator C-21 in building 90-207 the next morning," he says, "but what you have just done is so fantastic I want to know how, how do you do that?"_

 _I told him you try to find out whether it 's a valve or not._

So... self-aggrandizement? self-deprecating? educational? or just entertainment?

<comment><USER13> My take on this fabulous story is he is imparting the following key lessons:

1) As smart as you think you are, or as smart as you think OTHERS are, _EVERYONE_ goes through moments when they feel stupid, overwhelmed, and overmatched intellectually.

2) Even the smartest people are bad at some things (e.g. reading blueprints)

3) Ultimately you have to be comfortable with asking stupid questions, ESPECIALLY when people think you're smart. (Note - he didn't ask hoping he asked something smart, or provided value. You have to have the intellectual confidence to look stupid sometimes)

4) Your instincts will still help you even in situations where you are overmatched or under-prepared. Have the humility not to over rely on them, but don't hold back ideas - you never know when they might be helpful.

These lessons are universal for any professional.

</comment></comment></comment></comment><comment><USER18> I guess it's finally Feynman's turn to be roasted over the coals for some inappropriate remarks he made somewhere.

In particular, I like how TLS slid it in there as a joinder to his life's work, because it totally fits there.

Well done HN, well done.

</comment><comment><USER19> Who would be the "Feynman(s)" of our time?

<comment><USER20> One answer would be 'science is done in a much more collaborative way now' so singular titans of a field is much less of a thing.

That being said, I suspect another answer would be 'Imagine some kind of complex disaster investigation, who would the nation call on to help solve it?'

That he was brilliant and also seemingly very broad, is probably less common now along both axis simply because there's so much more stuff now in every field.

<comment><USER21> The only person I can think of is Elon Musk. But he isn't really a scientist.

</comment></comment></comment><comment><USER22> [https://archive.md/Ke60c](https://archive.md/Ke60c)

</comment><comment><USER23> twitter.com/ProfFeynman</comment>


Make Better Select Boxes with Chosen - <AUTHOR> http://harvesthq.github.com/chosen/ <comment><USER2> There is a newer project named Select2 now which handles remote data sets and offers infinite scrolling: <http://ivaynberg.github.com/select2/>

(Tried to submit it as a story the other day but zero upvotes.)

<comment><USER3> Thanks! This is _considerably_ smaller than I expected it to be as well (7KiB minified) which is an acceptable size to chuck into our site.

<comment><USER4> Where did you get a 7KiB version from? If I download Select2, the select2.min.js file has 22KB

<comment><USER3> select2-2.0.zip contains a file select2.min.js which is 7KiB gzipped (it's 22KiB uncompressed). I should have stated that was the compressed size.

</comment></comment></comment></comment><comment><USER5> Sorry but this experience is badly broken in iOS and highlights yet again why native controls are always preferable over custom controls for compatibility. Also, don't forget about enabling accessibility by using ARIA.

<comment><USER6> Similar on Android; the widget behaves perfectly, which is ironically a poor experience on mobile.

Looks like it would be very nice on a desktop though!

<comment><USER7> Should these sorts of widgets be the default implementation of those types of controls in desktop browsers? As long as they can be done with the same input information, this sort of input seems like a "user preference" issue.

<comment><USER8> I can't even scroll the list on iPad not sure if everyone experiencing the same.

<comment><USER7> Yeah, that's why you do it on the client-side. If the widget doesn't work on an iPad then an iPad browser shouldn't default those controls to that widget. A desktop browser could, though Nobody would be worse off, and nobody would be the wiser (except the user).

</comment></comment></comment></comment></comment><comment><USER9> We've been using this for what feels like 9 months with Picplum. One thing we did is for on select menus with few items, we hide the search box:

      $(".recipient_relation").chosen disable_search_threshold: 10

And if in Backbone you'd like to have it preselect the value, run something like this after render (so you don't have to add much logic to your handlebar template for the markup):

@$("#address_country_field option").each -> $(@).attr "selected", "selected" if self.model.get("address_country") is $(@).val()

It'd be nice to see some folks share their menu styles. The gradient on the select doesn't quite fit in with all site styles.

<comment><USER10> FYI, I had to go finding this the other day - it's tricky as mousing out removes the class. Anyway, it's:

        .chzn-container .chzn-results .highlighted

<comment><USER11> Leaving this here in case it helps someone:

In Firebug, you can ask the :hover state to stay active.

        1. HTML tab
        2. Click on the element
        3. Style menu on the right panel
        4. choose :hover

It tricks the browser into thinking the mouse is really over the element (i.e., it doesn't just add :hover), so if you have a hover class added via JS that should work too.

(Apparently this feature has been there for a long time, but I only found it recently. Changed my Firebug life.)

<comment><USER12> There is an icon to do the same in the CSS tab of chrome inspector

</comment></comment></comment></comment><comment><USER13> Chosen.js has a great UI, but I found it challenging to do customizations to the library. I wish that the authors of the library had exposed more event hooks or built it with more modularity.

Also worthwhile checking out <https://github.com/meltingice/ajax-chosen>, which adds much-needed Ajax support to Chosen.js.

<comment><USER14> I've used this before but it took a lot of fiddling to get the desired functionality out of it.

<comment><USER15> Agreed. I tried for a few days before giving up. Unless you're happy with Chosen's default options you'll spend days trying to customize it.

</comment></comment></comment><comment><USER16> We used Chosen in an Australian news site which targeted South East Asia and Pacific island nations. 4 of the 11 language streams on the site relied on @font-face embedded fonts to provide support for displaying East Asian languages (Khmer, Burmese, etc).

Chosen helped us overcome a fairly major multi-browser issue where embedded fonts weren't being used inside <select> elements (oddly it seemed to work in IE6 but not IE7). Since Chosen transmutes the <option>s into style-able divs, this allowed us to use our @font-face fonts with very few issues. We ended up using it across the site for consistency (with a few exceptions) and all in all I think it provided a usability improvement for most of our users.

</comment><comment><USER17> I've been using this a lot in our projects. It would be really a killer for selects with thousands of items. But it really kills the performance at least with Firefox. For small country selects it's still fine.

<comment><USER18> If you have selects with thousands of items, you _really_ need a better navigation scheme than a select box, even if it does have search.

</comment></comment><comment><USER19> The project "rationale" has a lot of holes in it.

> Instead of forcing your users to scroll through a giant list of items, they > can just start typing the name of the item they were looking for.

Who's forcing? Modern browsers allow a user to type (in lowercase) text to find in a select element while focused and will scroll to an exact match inside of it. It would require some instructions, but deviations of that behavior have been around for a while.

> Because chosen replaces normal html select fields, you don't need to do > anything special to make it work for browsers without JavaScript.

One definitely needs to do "something special" to make them work. Limiting options to massively bloated libraries like jQuery and Prototype is a big problem, especially for graceful degradation (impossible with both).

I'd be interested in something that works without a DOM library (definitely not impossible). Support beyond IE 8 would be a great idea as well.

<comment><USER20> I don't think 'massively bloated' is a fair way to describe either jQuery or Prototype. Both of these libraries offer a lot. A better way to say it would be 'picked up some weight recently'.

That being said, I agree that this would be better off without jQuery; when every millisecond, every kilobyte matters, jQuery is simply off the table.

<comment><USER21> I agree with you that 'massively bloated' is a huge overstatement, and this plugin is clearly intended for desktop-style apps as an improvement to the default desktop-browser's select element. In desktop-land the 32kb it takes to download jQuery (min+gz) is absolutely nothing, and easily overshadowed by a single image file.

Perspective: My company has a jQuery/jQueryUI single-page web app (with MVC underpinnings) which serves a number of commercial customers very successfully. Does it matter that the whole app (which includes this plugin) may take 2-10 seconds to load from a cold-cache? No. After that there is absolutely zero load time throughout the entire app.

Btw, we also don't care about oldIE because we can insist commercial customers install Chrome-frame, which they are generally happy to do. They'd much rather that than we push a new 'native' desktop app at them and require them to install a .NET or Java runtime.

I wish people moaning about bloat and browser-support would actually think about the developers out there building products for very really use-cases that don't match their own mythical high-expectations of 'zero footprint/works-everywhere'. Some of us just want to get work done for paying clients and plugins like this are absolute life-savers.

</comment></comment></comment><comment><USER22> I'll agree with others that it isn't the easiest thing in the world to customize. Here's a hacky approach I threw together under time pressure to reshade it for dark sites, for example:

[http://www.exratione.com/2011/12/a-dark-style-for-chosen- sel...](http://www.exratione.com/2011/12/a-dark-style-for-chosen-selects/)

Way too much CSS, but I guess that's par for the course considering how much is going on inside the thing.

</comment><comment><USER23> Multi-select is much less usable unfortunately (no ctrl/shift click, no drag- click).

</comment><comment><USER24> What I prefer to this is <https://github.com/JamieAppleseed/selectToAutocomplete>, because of the fuzzy matching. For example, I can type US or UAE, and it will select United States and United Arab Emirates respectively. But both of these are a great step in getting rid of unwieldy and uselessly long lists.

</comment><comment><USER25> Previous Discussion: <http://news.ycombinator.com/item?id=2793086>

</comment><comment><USER26> It's nice looking and mostly functional but I always miss the native elements.

The thing is, when I see an OS-native-looking element I know immediately what it is.

For the skinned stuff, while it looks nice to the eye, it takes longer. When we're browsing thousand of pages a day it's kind of something you notice.

<comment><USER27> Nevermind the fact that for certain situations the UX is improved 10 fold over native.

</comment></comment><comment><USER28> We've been using it for some time now, but it renders differently across different browsers with subtle alignment and padding issues. In the end, we just disabled it on anything less than IE8 and not one of the major web rendering engines. But it's pretty.

</comment><comment><USER29> This is a great piece of software in terms of presentation and ease of use. However, it can make your life difficulty if you want to do anything outside of the scope that the authors intended. It's very difficult to build dynamic UIs with chosen select boxes because there's zero documentation of the code itself, which is what you'll be modifying if you want to do anything advanced. The devs did a good job building a select box, but a bad job making it extensible and documenting it.

Overall, I'd recommend it if your needs are simple, but you might be better off rolling your own or using another library if you need anything advanced.

</comment><comment><USER30> I agree with the consensus that this is a nifty control. That being said, I have had major performance problems when using it with a large set of items in the choice list. Any more than a couple hundred, and it's gonna chug.

</comment><comment><USER31> As awesome as they may be, they break the default Mobile Safari view for forms. Related to this, I ask honestly, why or why not should element design and usability be a responsibility of browser vendors?

</comment><comment><USER32> On my iPhone (and most other mobile browsers I'd assume), the default controls beat Chosen's controls every time. There's a reason control implementation is left to the browser. If you do use Chosen, be careful to disable it on mobile.

</comment><comment><USER33> Pretty broken when browsing on android browser... The standard ones work much better.

</comment><comment><USER34> If you are a Django user, you should checkout django-choosen which makes it easy to use Chosen in your admin: <https://github.com/theatlantic/django- chosen>

</comment><comment><USER35> I've been using [http://www.erichynds.com/jquery/jquery-ui-multiselect- widget...](http://www.erichynds.com/jquery/jquery-ui-multiselect-widget/) recently, it has a lot of options and works really well.

</comment><comment><USER36> Don't forget about mobile! How this these select boxes work on ios or android?

<comment><USER37> It works exactly like it does in the browser, meaning, on iOS/Android it doesn't toggle the default OS action for select boxes. A real bummer considering it looks great.

</comment></comment><comment><USER38> This looks a lot like 99lime.com's HTMLkickstart. The js & html for 99Lime's "Select.fancy multiple" is really similar (if not identical) to Chosen's plugin. Did Harvest build 99Lime?

</comment><comment><USER39> Really wanted to use this on a recent project, but found the appearance to be too inflexible. Would really like the ability to adjust the height of the element easily.

</comment><comment><USER40> I had noscript enabled and was really confused at first.

</comment><comment><USER41> We use this in our admin section. It's definitely a time saver and a sweet tool, although appearance and behavior customizations are a bit of a pain.

</comment><comment><USER42> I've been using this for a while. Could have sworn I found it on HN.

Anyway, great utility, extremely useful and could well be the way native drop downs should work.

<comment><AUTHOR> You may have. I just found it this morning by clicking through a changelog blog post.

</comment></comment><comment><USER43> This looks extremely useful - we have several production projects which I'd like to use it on. Thanks for making!

</comment><comment><USER44> Anybody know of a decent library for numeric up/down spinners?Some browsers do them automatically, but not all.

<comment><USER45> I'm curious what you mean by "numeric up/down spinners"...can you clarify?

<comment><USER46> He probably means newer browsers' rendering for the HTML5 <input type="number">. Spinners are the little up/down arrows next to number fields that increment/decrement the number. More info: <http://www.html5tutorial.info/html5-number.php>

</comment></comment></comment><comment><USER47> Some nice features, but looks like a basket of usability bugs and glitches to me. Also it's way slower.

</comment><comment><USER48> We had to enhance it to allow "New Item" in case you had to add a new item to the existing list.

</comment><comment><USER49> Nice, though it doesn't expand in the upper direction when it has no space downwards.

</comment><comment><USER50> Thanks for sharing it, had not seen it. It looks like Quora's topic selector.

</comment><comment><USER51> > All modern browsers are supported (Firefox, Chrome, Safari and IE9).

No Opera?

</comment><comment><USER52> This is quite useful for those that feel jittery for having used the same password all over the place: <http://leakedin.org/>

it allows you to check wether your password is among the leaked ones.

<comment><USER53> This has nothing to do with the article.

</comment></comment><comment><USER54> I see no difference on iOS, but also incorrect data....

</comment><comment><USER55> Awesome! Might need some work on mobile devices though.

</comment><comment><USER56> GREAT stuff

</comment><comment><USER57> I'm also using this and would like to point out that by default chosen does its instant search using "begins with"-type semantics. To get chosen to do the search using "contains"-type semantics you have to activate a little switch like this: .chosen({search_contains: true}); which isn't immediately obvious from the docs (I had to sift through their issues on github to discover this).

</comment><comment><USER58> Really good stuff!

The only thing I find missing is that, with the keyboard on a multiple select box, I can't remove my 1st choice without having to remove my 2nd choice too. (So, for instance if I choose Polar Bear and also choose Brown Bear, I try to move my cursor between them in order to Backspace over Polar Bear but I can't. I have to Backspace over Brown Bear + Polar Bear in order to delete Polar Bear.) It would be nice if, when I used my direction keys, it would highlight the selected items individually and then let me hit Delete or Backspace on my keyboard to delete just that one.

<comment><AUTHOR> There appears to be several pull requests related to keyboard controls. I haven't looked into any of them in depth but one of them may solve the issues you are talking about.

</comment></comment><comment><USER59> Never used the library, but I did inspect the "Multiple Select" control while building something similar last year. So, thanks!

</comment><comment><USER60> These are sexy.

If you are looking for ideas, it would be really cool to see an improved scrolling of some kind. Still feels 1.0 with the ugly blue scrollbar.

Something like this but with softer colors:

<http://i.imgur.com/ixqa6.jpg>

<comment><USER61> What ugly blue scrollbar? Do you mean your OS native scrollbar?

<comment><USER60> Yes.

</comment></comment></comment><comment><USER62> Truly awesome. Thanks for the link!

</comment><comment><USER63> we use this all over the place. awesome lib.

</comment><comment><USER64> great stuff, bookmarked for next project.</comment>


Publishing an iOS App with ClojureScript and React Native - <AUTHOR> http://increasinglyfunctional.com/2018/08/17/i-published-an-ios-app-with-clojurescript-and-react-native.html <comment><USER2> > Pros > Functional Reactive Programming

Is this still a pro? Reactive programming is very popular in Native Android development and I assume as well on iOS with RxSwift and similar libraries.

I worked on a React Native app for a while and am sure to never return to it. Constant breaking changes, bad/lacking native implementations, and hacky ways of implementing natively supported features like Dialogs/Bottomsheets on Android make it a no-go.

<comment><USER3> RxJava and RxSwift are Reactive Programming, not _Functional_ Reactive Programming. FRP includes behaviors and hence truly continuous values and intercepts. RP has to use subjects, side effects, hot and cold observables and other nonsense. They're quite different even though most online commenters tend to be unaware that there is a difference.

<comment> trevor-e RxJava's Github says "RxJava is a Java VM implementation of Reactive Extensions". The Reactive Extensions website claims it is "Functional: Avoid intricate stateful programs, using clean input/output functions over observable streams." You're saying that it's not?

</comment></comment></comment><comment><USER4> I really enjoy Clojurescript + React Native as well. Re-Frame + Hiccup is way better than redux + JSX. I'm pretty sure I can write equivalent apps with 50% less code compared to the Redux/UI boilerplate in most React apps.

<comment><USER5> To add one data point; I rewrote one of our applications that was Redux+React+Typescript with exact feature parity in Re_Frame+Reagent+Clojurescript. It was 4.7x less code. We continued development on the cljs app and abandoned the typescript app. Months later the app is ~17,000 LOC. I shutter to think how the equivalent typescript would have turned out.

<comment><USER6> Redux is verbose but there are far less verbose options for React+Typescript.

I find clojure/script to be too dense for my taste in most examples. I actually really prefer a few more LoC, so that's a poor metric for effectiveness. Your IDE can deliver far more savings in time while encouraging _more_ LoC often.

<comment><USER7> Your taste has nothing to do with effectiveness. There's plenty of evidence that loc are one of the most reliable predictors of # of bugs in a codebase.

<comment><USER6> I can make a one line program, I wonder how many bugs that would eliminate?

</comment></comment></comment></comment></comment><comment><USER8> Currently using a similar stack with Expo and it has been great.

There is no substitute for a real REPL and immediate code changes.

<comment><USER9> have you been able to keep up with expo sdk releases?

I have a cljsrn app still on expo 23 and it's turned into kind of a trainwreck to update. considering dropping expo for vanilla re-natal

<comment><USER8> Well luckily I started with a version that was not that hard to update as of yet.

I expect it to get harder though but this being a side project I'm not that worried.

</comment></comment></comment><comment><USER10> Related: has anyone published an Android app with ClojureScript and React Native? How much did the fact, that React Native for Android is incompatible with 3rd-party 64-bit libraries[1] affect the development?

[1] [https://github.com/facebook/react- native/issues/2814](https://github.com/facebook/react-native/issues/2814)

</comment><comment><USER11> I hope React Native matures into a powerful and ubiquitous tool. I love React, but my experiences with React Native have been incredibly frustrating. If a client wants a multi-platform app, I can get a smoother more consistent experience from Cordova/React than React Native.

</comment><comment><USER12> Is there an easy way to do this iOS development on an Linux platform? I have a Macbook Retina from 2012 that's a pain to use because the battery will die unless plugged in, and they don't offer replacement batteries for my model.

My next option is to put MacOS on a VM in Arch Linux, but ideally I'd like an easier solution before I go down that route...

<comment><USER13> Have you tried Expo? It allows you to develop directly on your iPhone, with the development server happily running on Windows or Linux.

The easiest way to try it is at [https://snack.expo.io/](https://snack.expo.io/) , which is an in-browser dev environment for React Native. All you need is the Expo app on your iPhone or Android.

Disclaimer: Expo supports my work on React Navigation, the JS navigation framework for React Native. But I would recommend them regardless!

</comment></comment><comment><USER14> React Native is fine for small, standalone apps. Don't ever try to integrate it into an existing native app. Better to stick to 100% native or rewrite it completely.

<comment><USER15> I integrated it in a top-100 app in the app store in less than a day and it works perfectly for us.

If you don't know the iOS or Android build chains I would imagine that its confusing and troublesome, but unless you are doing some fairly extensive native compatibility stuff you will reap great efficiency benefits from adding it to an existing app.

<comment><USER14> > integrated it in a top-100 app

Same. Been leading the native side of an app with 30-40 native devs and ~20 JS devs. Initial integration is easy, but it opens up a lot of problems as time goes on.

</comment></comment></comment><comment><USER16> Last time I tried ClojureScript, I found the interop with web APIs and vanilla js libraries to be horribly lacking, and development was abysmally slow as a result.

I loved Clojure when I used it, but ClojureScript was a nightmare.

The only saving grace was shadow-cljs, which made it bearable to work with. I eventually dropped it in favor of Elm mostly for the static typing, but also for the tooling, which is leaps and bounds better.

<comment><USER17> If your main problem was interop with vanilla JS libs how can Elm possibly be an improvement over Clojurescript?

<comment><USER16> because ports actually work as documented, even if their functionality is limited.</comment></comment></comment>


iOS/Mac Platformer Starter Kit - <AUTHOR> http://www.binpress.com/app/commander-cool-ios-platformer-starter-kit/654 This starter kit includes the complete source code of "Commander Cool" for iPhone / iPad / Mac build with cocos2d & box2d, with extensive documentation. <comment><USER2> Main character is a recolor of a character sprite from the commercial arcade game Metal Slug. Pretty shady.

EDIT: For a precise example, compare the sprite of the character shooting ( [http://www.binpress.com/projects/654/commander-cool- platform...](http://www.binpress.com/projects/654/commander-cool-platformer- source-code-package-2966.png) ) with the same from here:

<http://spriters-resource.com/arcade/ms/sheet/11225>

EDIT 2: Here are the two sprites in question overlaid on each other in Difference mode. Note the black pixels (identical). <https://dl.dropbox.com/u/1643240/sprite_difference.png>

EDIT 3: Someone from Binpress responded promptly to my email. Props to them!

</comment><comment><USER3> Synopsis: How to make money selling iOS source code (sans various assets files) and related environment files to other iOS game developers.

Interesting idea. It would be interesting to hear whether this succeeds; if there's enough interest to make a go of this.

Without having looked at the source code (it could be clean code or it could be spaghetti), this kit looks to be a reasonable resource or companion for learning more about iOS game programming than is in some of the available books.

Another and different approach some folks are taking for creating games involves a package such as Unity; using a more generic game-creation engine, rather than home-grown or purchased code.

And if you're "simply" looking for examples of games and game programming, there are also a variety of free FPS packages, some of which work on Linux and OS X. Here's one list, and yes, there are other non-FPS games around, too:

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

</comment><comment><USER4> Things that are awesome about this:

1) Great source for learning how to make a platformer on a popular ... well, platform.

2) Gets programmers into making games quick and easy with full control over source code. Great for tinkering.

3) Comes with functional game and assets, despite the fact that some of the art is clearly lifted from other popular games and could conflict with licensing and copyright of those games, especially since the content is being sold.

4) Comes with associated tool-chain. I've built my own home grown iOS game framework and animation tool set myself so I know the benefits of it and the learning exercise.

Things that are not awesome about this:

1) Why not open source it? If the goal is get people into iOS gaming, Github is a better option. If the goal is to make money, more complete and flexible game engines such as Unity provide a better experience.

2) Anyone who leverages this codebase is doomed to become a droplet in what will be a flood of generic iOS platformers using the same codebase and potentially a lot of the same assets (similar things occured with RPGMaker games). The games will have a similar feel and mechanic to them with make them inter-changable and thus disposable.

3) I question how much this actually benefits the code-consumer. If they aren't willing to do this the hard way by learning their own way, my guess is they aren't motivated enough to modify the source code to do anything the framework doesn't already provide. The purchaser is much more likely to look around the code base, and then try to replace the assets and leverage the level-designer to make their own game than actually go out of their way to do something unique. If that is the case this is a poor choice as other frameworks like Unity are way more flexible.

4) I'm not particularly impressed with the code sample or the abstractions provided. I've written over 20 games in my lifetime and can tell at a glance that this code is written to do 1 thing, and anything outside the initial feature set will result in brittle and unmaintainable code, or requiring a complete refactoring which nulls the purpose of the purchase in the first place.

5) The licensing and price of the download, while not bad for working source for a game for a popular platform, probably doesn't deliver on its value for the reasons stated above.

Overall I think its great that we share source code for popular games so we can learn from it. Id does this all the time by open sourcing their most popular game and engine code, like Doom, Quake, etc. The key here is the motivation is to help the industry create better games, and they give away everything for free.

I suggest open sourcing the code, and possibly selling the tool-chain and level editor. The author could push more $40 level editor units than they could delivering on the promise of a "starter kit" that will more than likely guarantee the consumer's game looks and behaves like every other game on the app store.

I commend the effort of the author, but considering the ability to deliver on its promise and the price point I would suggest any interested parties look elsewhere.

<comment><USER5> Agree with all of this, in particular the recommendation to spend your time learning Unity instead of a limited use source tree.</comment></comment>


How I Have Doubled My Instagram Growth in 6 Days (Case Study) - <AUTHOR> https://arsenkay.com/2020/04/23/how-i-doubled-my-instagram-engagement-and-growth-in-6-days-case-study-with-actionable-steps/ <comment><AUTHOR> I will be happy to clarify any of your questions guys! Feel free to let me know if you have questions.</comment>


Ask HN: Is there a way to create prepaid credit cards via API? - <AUTHOR>

Saw a startup launch today that displays on a phone temporary prepaid MasterCards that are valid. Is there an API to create these? Cannot find any major vendors that do this. <comment><USER2> You can ask this guys perhaps: <http://shop.bitcurex.com/>

They managed to do the cards with Bitcoins.

</comment><comment><USER3> Chase PaymenTech/Orbital has Gift Cards that are issued in the form of credit cards. A Gift card in this sense functions just like a prepaid credit card.

Would that work for you?

</comment><comment><USER4> They don't publish their api publicly but I believe they have capacity to do so - <http://redwoodhfg.com>

</comment><comment><USER5> Which startup is this? Paypal used to do this with a plugin but they stopped a few years ago and I've been trying to look for an alternative.</comment>


A WordPress theme inspired by Medium - <AUTHOR> https://github.com/arrizalamin/MediumPress

<comment><USER2> It's nice. I still prefer the wp-svbtle theme from ThemesKult though. It was done along the lines of the previous svbtle design.</comment>


Facebook's Covid-19 small business grants will likely be a marketing play - <AUTHOR> https://imgur.com/oaAoMrT <comment><AUTHOR> I wonder what products and advertising services they will promote in their 6-week free brainwashing session. Reminds of the time-share selling tactics I saw in vegas.</comment>


Ask HN: What are considered "Best in Class UX design" for websites? - <AUTHOR> Or what are the best UX you've done or seen around? I'm looking for a variety of use cases, from small business with very low traffic all the way to the big ones.
If you can point it out what you think they got it right then better yet.
> I am not looking for websites that teach or talk about UX design.
Much appreciate your insights. <comment><USER2> I think the Cava ordering menu is amazing: [https://cava.com/](https://cava.com/). Kudos to whoever designed that.

</comment><comment><USER3> I've been working on a UX/Conversion Optimization blog post and was doing some research on web design across different verticals and business types. As you start to look around, you'll see specific details emerge to meet the needs of different verticals and business models.

With every UX project, same applies to anything in sales and marketing, a little bit of audience research and understanding will go a long way to defining the best path forward for your design. Ask target users in 1:1 sessions to share the kinds of evaluation questions they want to ask of the product and their expectations. Listen for the hierarchy of the information, what's prioritized, and the specific language they're using. For an FS client project this research helped us define a simple decision tree to build into the site UX that led visitors down different paths based on their specific challenges/wants. It delivered 125% of target annual performance in the first six months.

I also recommend looking at several sites across categories to get a feel for how brands build experiences for different business models and audiences. The focus for that business model will come through loud and clear. Here are some examples to look at side by side:

CPG vs DTC: checkout traditional CPG sites like Church and Dwight or CLR and their associate brand pages vs DTC or more digital native brands like Trumans or Method Home. You see that the older CPG sites are more informational and drive to retail with the "where to buy" prompts. And the more digital native w/ or pure DTC brands put purchase paths front and center.

eComm vs Retail Clothing: another great example is ASOS vs Gap. ASOS, as a more digital native and eComm brand shows a much cleaner and focused UX to smooth the path to digital purchase. Gap however just feels more like a traditional retailer with the plastered coupons front and center, along with a general feeling that digital purchases are secondary to the retail channel.

Consumer Banking: take a look at N26 vs Chase or Wells Fargo too. You'll see a completely different UX from N26 as the digital native. mobile focused brand that's ACQ focused since they just launched here in the US. And the older traditional banks like Chase and Wells definitely have that more cluttered UX that's indicative of an internal tension for old vs new tech, products, customers, etc.

Software: this is one vertical where I think most people are up to speed with decent best practices across the board. I haven't found any glaring instances of horrible UX yet. Look at your top of mind software companies and you'll likely see very clear UX patterns emerge. This is especially true with homepages for new visitors and brands focused on heavy user ACQ. Personally, I like Webflow and Trello as consistent examples of good UX.

As for bad examples, agencies and restaurants have historically been consistent offenders with the worst UX out there. TBWA and Ogilvy are keeping the streak alive today.

Hope this helps. And feel free to ping me if you have other questions or want to talk through some ideas.</comment>


On Primes and Pluto - <AUTHOR> http://www.qedcat.com/archive/189.html <comment><USER5> For the ordinary natural numbers, 1 is the only number which you can invert, i.e. 1/2, 1/3, 1/4, etc. are not integers, but 1/1 is. If we take in all the integers, positive, negative and zero, then 1 and -1 are invertible. But things become much more complicated in other number rings. For example, in the number ring obtained by adjoining the square root of 7 to the integers (i.e. Z[sqrt(7)]), there are infinitely many invertible values. For example 3 sqrt(7)-8 is invertible. Its inverse is -3 sqrt(7)-8. But any power of this value is also invertible, so in fact there are infinitely many invertible values in this ring. Anyway, the problem with units (invertible values) is that they divide _any_ number in the number ring (after all, by definition, they divide 1, and 1 divides everything). They therefore aren't very useful for unique factorisation (aside: unique factorisation exists for elements of Z[sqrt(7)], though not for every conceivable number ring). Because of this, it is natural to exclude units from being primes.

<comment><USER6> Interesting with a side note about toying with Excel.

When I plug in:

        1/(3 sqrt(7)-8)

        and

        -3 sqrt(7)-8

...into Excel, there must be a rounding error. They resolve to:

        -15.9372539331939000

        and

        -15.9372539331938000

...respectively.

Time to plug these into Wolfram. I get:

        -15.93725393319377177150484726091778127713077754924735054110500337760320646969085088328117865942363083184519373501549238...

        and

        -15.93725393319377177150484726091778127713077754924735054110500337760320646969085088328117865942363083184519373501549238...

...respectively.

<comment><USER7> If you want to do exact computations, SAGE is handy, Free, and built on Python:

        sage: k.<a> = QuadraticField(7); k
        Number Field in a with defining polynomial x^2 - <USER2>
        sage: x = 3*a - <USER4>
        sage: x.is_integral()
        True
        sage: 1/x
        -3*a - <USER4>
        sage: x * (1/x)
        1
        sage: (1/x).is_integral()
        True

(Note: the is_integral() is because we define k to be QQ(sqrt(7)), not ZZ(sqrt(7)), so we want to check that our elements are really integers, i.e., lie in ZZ(sqrt(7))).

</comment></comment></comment><comment><USER8> Wow, so many comments from people that clearly didn't bother reading the article (all the way through). I suppose its understandable, I too had to fight the temptation to hit the back button and angrily type out "its just a definition!". Luckily I decided to actually read the whole thing through, notice that the author is quite aware of this, and be treated to a really interesting history of math.

<comment><USER9> Agreed. It is an interesting article to read. The survey cited is also interesting in its own right [1]. We often forget that ideas we find trivial and intuitive are only so because it took the work of many more people and centuries to hone their ideas which at that time would be have been new and ambiguous. This is especially true with mathematics because a lot of the field focuses on getting the right abstractions to complex ideas which when done correctly seem "trivial, natural, and straightforward." Also see the history of calculus [2].

[1] [https://cs.uwaterloo.ca/journals/JIS/VOL15/Caldwell1/cald5.p...](https://cs.uwaterloo.ca/journals/JIS/VOL15/Caldwell1/cald5.pdf)

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

</comment></comment><comment><USER10> My favorite "1 not behaving as a prime" example.

Here are two simple javascript functions:

function f(n,k){ var t = 0; for( var j = 2; j <= n; j++ )t += 1/k - f(n/j, k+1); return t;} function p(n){ return f(n,1)-f(n-1,1); }

If you call p(n) when n is prime, it will return 1. If you call p(n) when n is a prime power (so, say, 4 or 9 or 16), it will return 1/power (so p(4) is .5, p(8) is .3333..., etc). If you call p(n) with a number with multiple prime bases (so 6 or 14 or 30 or...), it will return 0.

And if you call p(1), it will return 0, NOT 1.

In fact, f(n,1) here is a compact (and slow) way of computing the Riemann Prime Counting function: [http://mathworld.wolfram.com/RiemannPrimeCountingFunction.ht...](http://mathworld.wolfram.com/RiemannPrimeCountingFunction.html)

Another way to compute this exact same function (given as (8) on that link) uses the famous Riemann Zeta function zeroes, although that is much harder to follow.

Now, the behavior of the Riemann Prime Counting function doesn't PROVE that 1 isn't a prime, which, as noted, is a question about definition. But what it does do is show that, in an extremely important context, a context that seems to be, mathematically, solely about identifying primes, 1 isn't behaving like the primes at all.

</comment><comment><USER11> There's a great Numberphile video that walks you through a similar line of explanation: [http://www.youtube.com/watch?v=IQofiPqhJ_s](http://www.youtube.com/watch?v=IQofiPqhJ_s)

</comment><comment><USER12> Seems like the Law of Small Numbers [https://en.wikipedia.org/wiki/Strong_Law_of_Small_Numbers](https://en.wikipedia.org/wiki/Strong_Law_of_Small_Numbers)

</comment><comment><USER13> At some level you really shouldn't care why 1 isn't prime. It's not-prime because we defined it that way. 1 has some mathematical properties in common with the numbers we happen to call "prime numbers" and some mathematical properties which are different; in another world we could have called it prime and replaced "the prime numbers" with "the prime numbers greater than 1" in assorted theorems and EVERYTHING ABOUT MATH WOULD BE THE SAME.

<comment><USER14> Well, yes and no. If you're just talking about integer primes then sure. If you consider gaussian integers though (a + b*i where a and b are integers) then you would have to say "the gaussian prime numbers that aren't 1, -1, i, or -i.

The definition of primes that excludes units makes sense in more places than one that includes units (especially once you start talking about prime ideals instead of prime numbers)

</comment></comment><comment><USER15> Linguistically:

 _Prime_ is a word not a fact of the universe, just like _Planet_ is a word and not a fact of the universe. Those words, unlike most words, have definitions put in place by authorities. The authorities might change the definitions over time as a new definition's usefulness exceeds that of an old definition.

Practically:

It's more useful to think of primes and planets as not including their recent ex-members than it is to include them.

<comment><USER16> Yeah, the article covers that pretty early on. Turns out that's actually not why 1 hasn't been prime for most of human history, though.

Actually read the article to find the answer!

<comment><USER15> I did read the article.

</comment></comment></comment><comment><USER17> The problem of 1 not being prime could be easily solved by having a separate term, say "noncomposite" or whatever you like, that means the set of the primes and one.

</comment><comment><USER18> If you let 1 be prime then you would violate the uniqueness property of the fundamental theorem of arithmetic

</comment><comment><USER19> It is not a prime because every integer greater than 1, must be made by a unique product of prime numbers, or is a prime itself. If 1 were prime, that would not hold true.

proof: [http://en.wikipedia.org/wiki/Fundamental_theorem_of_arithmet...](http://en.wikipedia.org/wiki/Fundamental_theorem_of_arithmetic)

 _edited_

<comment><USER20> What about prime integers? Aren't they a product of 1 and themselves?

<comment><USER21> FTA:

What if we permitted 1 to be prime? In that case, 84 would also have the "prime" factorisation 1 x 1 x 1 x 2 x 2 x 3 x 7. That is, 84 could still be factorised, but it would no longer have a unique prime factorisation.

<comment><USER20> I did read the article. I was just pointing out that the poster's original statement seemed to exclude prime integers -- well, unless the empty product is a product of primes.

</comment></comment></comment></comment><comment><USER22> It isn't prime by definition.

The definition is made for convenience sake based on what it implies. One being prime implies that other primes are evenly divisible by another prime but for some reason that doesn't stop them from being prime. So 1's primeness would have to be special relative to the primality of the other numbers.

Starting the primes at 2 makes all the definitions and implications simple, except for the one caveat that primes start at 2.

Either way you'll have to make a concession, we choose the one that only has to make it once.

The other way around you end up with things like: The square of a natural number is not prime (except 1). The product of two primes is not prime (unless one of them is 1). and so on...

<comment><USER23> Yes it isn't prime by definition, thus the article.</comment></comment>


Darpa Seeks Tools to Capture Underground Worlds in 3D - <AUTHOR> https://www.darpa.mil/news-events/2019-03-07 <comment><USER2> ADR scanning. - [https://adrokgroup.com/](https://adrokgroup.com/)

also available in small - [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2008164/](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2008164/)

<comment><USER3> [https://en.wikipedia.org/wiki/Borescope](https://en.wikipedia.org/wiki/Borescope)

</comment></comment><comment><AUTHOR> This is the more enticing website:

[https://www.subtchallenge.com/](https://www.subtchallenge.com/)

</comment><comment><AUTHOR> How far are built in phone gyroscopes from providing inertial tracking for underground, it would be handy to walk around Tube stations and see how there're all connected, but the accuracy seems to be someway off.

Although this looks to be a lead:

[https://aaltovision.github.io/handheld- INS/assets/presentati...](https://aaltovision.github.io/handheld- INS/assets/presentation.pdf)

<comment><USER4> Pure inertial navigation gets worse over time, even a $20,000 gyroscope wouldn't get the job done.

This is because gyroscopes measure rotational velocity, velocity is the first derivative of position, so you need to integrate velocity in order to get rotational position. The integral of velocity is (velocity x time), so your error gets bigger over time.

I'd imagine an inertial solution plus optical flow could result in some pretty good results.

<comment><USER5> I was always under the impression that integrating unknown biases in gyroscope and accelerometer measurments is the main issue with dead reckoning.

Today I am convinced that attitude errors are the far bigger issue, since they will make you misinterpret gravity as genuine acceleration.

Even with a 1° error in your pitch estimate, you will start integrating 9.81ms^-2*cos(1°) = 0.17ms^-2 as a forward acceleration. Within one minute, you are 308m off already. This is the real issue with dead reckoning IMO.

<comment><USER6> It's complicated. It depends on the sensor and the motion of the object. Because the gravity vector doesn't change spatially very quickly if you are doing loops you can use the accelerometers to calibrate the gyro biases in the sensor fusion loop (via the gravity vector). You can also use the magnitude of the vector to calibrate the accelerometers (roughly). Nothing helps pin all that stuff down like a global position measurement though. Some sensors are just less prone to bias drift as well.

</comment></comment></comment></comment><comment><USER7> This is exactly what emesent do [https://emesent.io/](https://emesent.io/)

<comment><USER6> Yeah, they are a spin off of a CSIRO project. Good to see that sort of thing coming out of Brisbane.

</comment></comment><comment><USER8> I thought this was the goal of project tango.

I had one of the tablets, and even started to explore the idea of mapping caves with it for a while.

The combination of an accurate IMU and the depth sensor made it perfect for mapping this type of environment.

</comment><comment><USER9> You can see some of the initial teams competing here:

[https://www.darpa.mil/news-events/2019-01-22](https://www.darpa.mil/news- events/2019-01-22)

</comment><comment><AUTHOR> Wasn't there talk of applying the new wave of quantum sensors for this?

There's gravimetric ones that can detect underground cavities

</comment><comment><AUTHOR> So is this comparable to DARPA's driverless car challenge from several years ago?</comment>


Take care of the pennies, Yahoo… - <AUTHOR> http://www.disambiguity.com/take-care-of-the-pennies-yahoo/ <comment><USER2> Repeat the mantra: Make it easy for people to give you money.</comment>