RFC8890: The Internet Is for End Users - <AUTHOR> https://www.mnot.net/blog/2020/08/28/for_the_users <comment><USER2> I was really hoping this to use the same phraseology as technical RFCs including MUST, MAY, SHOULD, etc.

For example: The task force MUST prioritize... the user MAY expect...

</comment><comment><USER3> > _For example, the recent standardisation of DNS-over-HTTPS (DoH) pitted > advocates for dissidents and protestors against network operators who use > DNS for centralised network management, and child safety advocates who > promote DNS-based filtering solutions. If the IETF were to only decide upon > technical merit, how would it balance these interests?_

I neither like DoH nor in general arguments of the form "X is not political, we only decide on merits".

However, in this case, I really wonder if the IETF's contribution is political: DoH on it's own is highly so, but to my understanding, the politics are in the decision to design an encrypted, centralized and block-proof alternative to DNS with preselected servers and automatically deploy it to millions of users. But those points belong the initial requirements and the deployment process - not so much the technical details of implementation.

That DoH is a standard makes some difference, but not very much. I think we'd have roughly the same problems (though maybe with less publicity and discussion) if this was some properietary Chrome thing that was fully developed inside Google.

Or to put it differently, assuming it was already decided _that_ something like DoH should be built, is there still political power in the follow-up discussions about _how_ it should be built?

<comment><USER4> > _...and child safety advocates who promote DNS-based filtering solutions._

DoH doesn't prevent filtering. Sure, it doesn't respect OS or Network-enforced settings, but that's kind of the whole point of its existence.

> _...DNS for centralised network management._

DoT (and DNSCrypt?) would arguably be the better alternatives in these cases.

So, use-cases are absolutely being addressed in DNS' case at the very least.

> _I really wonder if the IETF 's contribution is political: DoH on it's own > is highly so..._

I think DoH and ESNI are exactly the kind of response expected from a tech firm like Mozilla: Fight for its users and invest in the right technology that helps keep the Internet _global_ despite the many efforts to dismantle it, not just by governments but by big tech in equal measure. In fact it is big tech that sells "cyber security" solutions to these governments in the first place: A trillion dollar market opportunity [0].

Look no further than ITU to see how anti-user, pro-corporate, pro-government politically-influenced technology standards can be [1]. Things might take a steep dive given Google's [2] and Facebook's [3] recent inroads in the Communications industry. This pro-user political engagement from Mozilla et al is more than welcome, in my opinion.

[0] [https://foundationcapital.com/cybersecurity-the-next- trillio...](https://foundationcapital.com/cybersecurity-the-next-trillion- dollar-market/)

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

[2] [https://www.opennetworking.org/](https://www.opennetworking.org/)

[3] [https://telecominfraproject.com/](https://telecominfraproject.com/)

</comment></comment><comment><USER5> Recommend changing the link to the actual RFC, [https://www.rfc- editor.org/rfc/rfc8890.html](https://www.rfc-editor.org/rfc/rfc8890.html)

<comment><USER6> I think they're different - RFC 8890 is a particular position statement, and this blog post discusses why they decided they needed to publish it, some specific cases (e.g. the discussion about Parliament) that led up to it, and their decision-making process in general. RFC 8890 itself doesn't mention that, nor does it specifically mention things like DoH and China blocking it.

<comment><USER7> Additionally, the blog post links to the RFC, but not vice versa.

</comment></comment></comment><comment><USER8> It's good to put a stake in the ground for the IETF to create clarity about what they do and why. Countries like China, the US, Australia, and the UK are of course interested in controlling the flow of information for political, ideological, military and other reasons. Therefore they are interested in controlling what the IETF does and how. That's the nature of any big country or entity (including companies). E.g. Apple kicking competitors out of the app store is exactly the same kind of behavior. Whether that's good or bad is a separate discussion.

The reason the internet exists at all is that it provided a way around / relief from this level of control and that it allowed independent innovation to happen. In a way this was a happy accident because a lot of the funding for the R&D behind this came out of cold war era defense projects which were very much not about the free flow of information. So, it would be a stretch that this is working as intended. But it was successful exactly because of that and the IETF brought together the right parties to ensure it kept enabling this.

More strict networks ultimately failed to compete because users and companies found that they needed to tap into this free flow of information. The fact that countries like China, Russia, North Korea, etc. are on the internet at all (grudgingly and with all the restrictions that they try to enforce) is because they need to be. They are also part of the world economy for the same reason. And as much as they'd like to tell others what the value of their own currencies should be relative to $, renminbi, euro, etc.; they have no choice but to leave that to market forces. Of course it doesn't stop them from trying to influence and manipulate that. Nor does it stop anyone else from doing so. But ultimately it leads to either hyper inflation or people just swallowing their pride and accepting or paying in dollars for stuff they buy (e.g. oil) or sell on the international market. The internet is the same; it's a take it or leave it kind of thing. Either you are on it or you are not.

It is a bit of neutral ground where mutually hostile entities looking to control, monitor, and manipulate each other can conduct their business (some of it very bad business). It works precisely because things like https prevent man in the middle attacks, certificates keep us honest (to some extent). All the other technical tooling the IETF standardized to ensure third parties don't mess with private interactions between two parties trying to have some meaningful interaction is there for just that reason. Of course the tools are far from perfect and there's an arms race between intelligence agencies to exploit loop holes, bugs, design flaws, etc. The IETF's role is to address these issues, not to create more of them to enable authoritarian regimes to gain an edge over other nations or their own citizens.

So, DNS over HTTPS is a good thing and exactly the right thing for the IETF to be standardizing because it fixes a problem with what they previously standardized (i.e. DNS). It's controversial because it takes away power from countries actively abusing that power. But the fact that others are exploiting protocol weaknesses in DNS is fundamentally a bug and not a feature. You could argue DNS over HTTPS is not a perfect solution or that better solutions exist but not that the role of the IETF is to enable the Chinese to have a say in what people (in or outside China) lookup via DNS. That's not their role. If the Chinese, the Australians, etc. want to block people that choose to configure their browsers to use this (or browsers that do this by default), that is of course their good right. But enabling that kind of self isolation is not a core IETF function.

<comment><USER9> The internet supposedly exists because it provided a more reliable way to order nuclear missile launches.

DNS over HTTPS is controversial because the current implementations take power from the end users (by moving the resolver out of libc who's configuration and often implementation is controlled by end users and into certain applications where the user is lucky if the app allows them to adjust the parameters, especially if the interface is stable and intuitive. They really have to because cramming http and tls into libc is a bit crazy.) Furthermore it concentrates power and data into the hands of a couple of organizations where previously using their resolvers was optional. At this point I'm not entirely sure I trust Google any more than most foreign governments or even my own.

<comment><USER8> Nonsense. End users have the power to configure their browsers just like they have the power to configure their DNS settings, their operating system and all the rest. Of course very few people do. Mostly that power requires something most users don't have: which is knowledge to know they need to do this and how to do this. The people actually capable of doing this lose no power whatsoever.

You seem to not trust Google. Nobody is saying you should or must. Other DNS servers are available. Set up your own one if you must. You have that power. If you are smart enough to actually know how to set up DNS now, you should be able to figure out how to configure that to use https. It's not rocket science.

If not, maybe it's a good thing that your browser stops blasting your DNS queries unencrypted over a public network to absolutely anybody that can be bothered to listen in. This would include all the 3 letter acronym security agencies that you can name (domestic and foreign ones), big ad driven companies, your local police, and everybody else with or without the cooperation from your friendly neighborhood operators or arm twisting of the incompetent politicians representing which ever government is governing wherever you live. The best you can hope for to protect you from that is a combination of incompetence and indifference.

<comment><USER10> > Nonsense. End users have the power to configure their browsers just like > they have the power to configure their DNS settings, their operating system > and all the rest.

This power is illusory. If Google decides Chrome will no longer allow changing DNS providers, game over for 60% of internet users. Consider how it's no longer possible to block ads the way you want to in Chrome with manifest 3.

<comment><USER3> True - but I think this is not the fault of DoH or IETF. On a technical level, the power stems from Google's ability to auto-update Chrome with whatever logic they see fit. On a social level, maybe Chrome's market share and the acceptance of users of that power.

Even without DoH, Google could just as easily have decided to hardwire DNS for Chrome to 18.104.22.168 or to switch Chrome to their own home-grown proprietary name resolution protocol. They don't need a public standard for that.

</comment></comment></comment></comment></comment><comment><USER11> Seems like an attempt of making "fight for the users"—which should be everyone's rule zero—textual, at least for the IETF.

I try to stay away from politics as much as possible, except on this matter. I like this.

</comment><comment><USER12> So if an end user tries to request a page from this site without using SNI, instead of an just an HTTP error code, they get this lovely little piece of snark:

      This Web site requires a more modern browser to operate securely; please upgrade your browser.

The truth is it just requires SNI server_name in the ClientHello. I don't send SNI except on sites that require it. Not every site is on a shared IP; some still use dedicated IPs. So I am the end user reading HTTP headers.

I always thought this addtional "message" from mnot.net was somewhat presumptive for an IETF person who claims to be some sort of user advocate. This is the kind of thing I usually see from web developers telling you to "upgrade" your browser or turn on Javascript for the best "user experience", not IETF folks. Maybe it's a default on some server software, not custom.

His site does TLS1.3 but it doesn't do ESNI/ECH so I guess some browsers (or other clients) can be a little "too modern".

<comment> vertex-four In practice, I reckon you might be the only person in the world - or maybe one of a dozen - who has this problem. And in that context that's not snark at all, it's an accurate description of what is most likely the cause of the error.

<comment><USER13> > an accurate description

except it's a lie. SNI isn't "more secure", it leaks information to a possible MITM.

<comment><USER14> Note that the message isn't saying SNI is more secure. It just says the site needs SNI to operate securely.

<comment><USER13> The website does not support the more secure ECH nor the more secure option of just not using SNI at all. It's the website that doesn't support a fully secure connection and it shouldn't be blaming the user agent for that.

<comment> vertex-four ESNI is not supported by common software yet. Can you tell me your alternative to SNI in this configuration:

        [nix-shell:~]$ nslookup redbot.org
        Server:  127.0.0.1
        Address: 127.0.0.1#53

        Non-authoritative answer:
        Name: redbot.org
        Address: 18.104.22.168
        Name: redbot.org
        Address: 2600:3c01::f03c:92ff:fe89:3e33

        [nix-shell:~]$ nslookup www.mnot.net
        Server:  127.0.0.1
        Address: 127.0.0.1#53

        Non-authoritative answer:
        www.mnot.net canonical name = cloud.mnot.net.
        Name: cloud.mnot.net
        Address: 22.214.171.124
        Name: cloud.mnot.net
        Address: 2600:3c01::f03c:92ff:fe89:3e33

<comment><USER13> Without any tunnelling like VPN or TOR, the safest option would be to have several unrelated services share one certificate, when only looking at MITM vulnerability.

This would in theory ensure that any attacker could only assume the client is accessing at least one service on the target machine.

Setting aside the obvious risk that one of the services could claim to be one of the others, this obviously comes with some other technical limitations.

Again, it's not like the site is doing anything wrong, it just shouldn't be blaming the user for something that's obviously just a technical limitation of the technology being used.

<comment><USER15> > Setting aside the obvious risk that one of the services could claim to be > one of the others

Not much additional risk there when both site's TLS connections are already handled by the same process.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER3> > _Because of the global nature of the Internet, it wouldn't be possible to > pursue a bilateral or regional style of governance; decisions would have to > be sanctioned by every government where the Internet operates. That's > difficult to achieve even for vague statements of shared goals; doing it for > the details of network protocols is impractical._

In all honesty, maybe that would be the better alternative, if the only other option is US tech companies deciding unilaterally for the whole internet.

<comment><USER16> US based tech companies are making those decisions for the whole internet because internet users are voting for US based tech companies' influence with their time, attention, and clicks. It's open and democratic.

<comment><USER17> Not really since most people don't know they even have a choice let alone that they are making one in any particular direction.

</comment></comment></comment><comment><USER18> This RFC makes no mention of the root of the problem; the Federal Reserve system.

In our fiat monetary system, all new money which enters the economy comes from banks as credit; companies then compete against each other to earn the biggest possible share of that newly printed credit. This means that new money doesn't originate from consumers (so-called end users), all new money originates from institutions... So why would companies care about end users (consumers) when all the new money they get actually comes from financial institutions??? Why not get money straight from the source; cater to the paymasters and use consumers as pawns?

These days, it makes more financial sense to manipulate consumers to please financial institutions than to manipulate financial institutions to please consumers... The dynamics are out of whack. That's why we need UBI urgently - Make consumers the source of all new currency, this would force big companies to forget about cheap institutional money and focus on consumers. Let consumers be the paymasters of the economy.

This game of allowing banks to decide who gets access to cheap credit and who doesn't is inevitably going to lead to the kind of corruption we've seen over the past decade.

</comment><comment><USER19> The IETF strives to create the best technical solution for given specifications. That's its task. Where those specifications come from is a related but separate issue.

<comment><USER20> Seems like IETF's mission statement disagrees with you:

> The Internet isn't value-neutral, and neither is the IETF. We want the > Internet to be useful for communities that share our commitment to openness > and fairness. We embrace technical concepts such as decentralized control, > edge-user empowerment and sharing of resources.

[https://www.rfc-editor.org/info/rfc3935](https://www.rfc- editor.org/info/rfc3935)

<comment><USER21> Also, the IETF has no formal membership roster or membership requirements, and all participants and managers are volunteers.

</comment></comment></comment><comment><USER22> Hard to take someone saying "the Internet is for End Users" seriously when they're working to implement QUIC, a purely corporate needs fulfilling step backwards for human people.

<comment><USER23> Hard to take someone saying what you're saying seriously, when this is given in such a crass and uninformative manner

QUIC is a vastly superior transport to TCP in every technical regard. What exactly makes it a "purely corporate needs fulfilling step backwards for human people", if you don't mind adding some context to this extremely vague statement/opinion?

<comment><USER22> QUIC is what happens when corporations define standards so their own services can be run cheaper. The transport layer shouldn't be 'aware' of what it is transporting. It shouldn't be a gigantic heap of things, even if those things in the heap sound nice (like encryption baked in). It is already impossible for anyone but Google (or another mega-corp) itself to make a browser that works with "modern" sites. This piles on to that.

It is, despite the partial liberation from Google itself by the ietf, still a google attempt to control what HTTP and the web are. Google should not. Protocols should be generic. Layers should _layers_ not just squashed all into one so youtube videos pull up faster on your mobile phone. There's more to the web, and the internet, than fixing mobile latency issues.

<comment><USER24> This sounds like a different variant of the "rampant layering violation" argument that was used against ZFS. It is sometimes healthy to challenge old assumptions. If QUIC turns out better than what we have in every respect that matters "for the end user", as this article is about, what would be the harm?</comment></comment></comment></comment>


Enough with your parallax already - <AUTHOR> http://www.position-absolute.com/articles/enough-with-your-parallax-already/

<comment><USER2> I find it annoying on mobile. I already have a small page, I don't need your banner taking up 1/3 of it !</comment>


Bitbookie: Parimutuel Bitcoin Sports Betting - <AUTHOR> http://bitbook.ie <comment><USER2> Damn. Owner of Bitbookie.com here.

A 'no-compete' clause in my current contract meant I couldn't work on BitBookie.com - although I was thinking a simple exchange similar to Betfair. What you've done looks interesting.

Good luck!

<comment><USER3> @hackerboos, I am looking to build something somewhat similar and looking to get some advice. Would you be willing to help?

<comment><USER2> Sure just email me (see profile).

</comment></comment></comment><comment><USER4> In case you were curious how they make money, here is BitBookie's answer:

"It's too early to monetize, but when we do, it will probably be through ads or affiliate programs.

I think that not charging a house take will have a positive effect on the quality of the site. Most sites do have a house take and that creates an incentive for them to be very pushy about driving bets. It's annoying and distracting. It's like being in a real casino!"

<comment><USER5> Aren't ads and affiliate programs hard to make money on unless one i very pushy with them?

I'd expect making money via a house take would require much less pushiness, because that involves making money off of something that people are coming to the site to do (gamble).

With ads, one is making money off of something no one is coming to the site for.

<comment><USER6> I used to have an online gambling website, and it is very lucrative to be a publisher. Mainly bc the model is different than traditional affiliate programs. The typical mode is that if you drive someone to sign up, you get a flat amount ($50-150) and a percentage of that users' LIFETIME input into the website (typically 8-10%)

</comment></comment></comment><comment><USER7> Is this vulnerable to a scenario where they have a bunch of coins in escrow and then they run off with them? If, for instance, the betting pools for world cup start filling up, whats to stop them from doing that?

edit: how in the world is this a dumb question / comment

<comment><USER8> Where did you see about an escrow? Or are you asking hypothetical? Since the site does not address this issue, there is nothing to stop the site from up and leaving with all the coins. With a mixer, they can easily disappear too.

There is however a phone number listed here, [https://bitbook.ie/contact](https://bitbook.ie/contact)

<comment><USER7> as I understand it, the bets go to holding pools (presumably controlled by bitbook.ie) until the events outcome is determined, at which point they are dispersed accordingly, maybe I got that wrong

</comment></comment></comment><comment><USER9> Am I correct to understand that it is not possible to determine the payout for winning at the time of placing a bet, since the proportion of bets could change? Payouts are determined when the book closes, not based on the ratio when the bet is placed?

<comment><USER10> Correct, they use parimutuel betting, where all bets are placed in a group pot and the winners are paid their original stake plus some portion of the losers' stakes. This means that bitbookie doesn't have to set betting lines (probabilities) for all the events, which is something that takes a lot of skill and effort. Essentially it's easier for those who are not familiar with sports betting to say 'I pick team A to win' as opposed to 'I think team B is going to lose, but not by more than 7.5 points, so I should bet on them even though they're the worse team" that is a common play in spread betting.

<comment><USER11> A problem with this is it gives a huge incentive to bet as late as possible. You know where the money is you have more information about the event and so your bet can be better placed. Unfortunately this will mean there isn't any point betting later either as people will not have bet earlier.

Bitbet attempts to solve this by giving a higher weight to earlier bets. Not sure how well that works but the site seems to be used.

</comment></comment></comment><comment><USER12> Suggestion: horse racing, or at least the big race this weekend. California Chrome could win the Triple Crown! (That hasn't happened since 1978.) I expect even a simple CC vs. the field event would see a lot of bets...

<comment><USER4> I agree. Why isn't the Belmont Stakes listed on this site?

</comment></comment><comment><USER13> This is really awesome.

I'm really interested to see how the 'no cut' ideology helps circumvent the stupidly strict USA gambling laws.

<comment><USER10> It probably doesn't, but since they're using bitcoin it circumvents the way that the US government enforces things like the UIGEA - pressure on banks/payment processors to not accept this class of funds. Bovada is a site that offers both sports betting and poker to US customers, but has to do some tricky things in regards to payment processing. Full Tilt Poker was shut down and their funds seized for this reason, circumventing the payments process by claiming that players bought bogus items instead of funds on the poker site.

</comment></comment><comment><USER14> How long does it take to go from wanting to place a bet, to your money being in the pool? My knowledge of bitcoin is lacking but I was of the understanding that there is some time before the transaction/transfer is verified? Thus if you wanted to submit a wager close to closing time, you would probably be unable to?

IS there trend data available? Can see see where the public money is going, or is it simply a case of monitoring the blockchain for transactions going to the wallets (pools) you're interested in?

<comment><USER9> I placed some bets yesterday before but near the closing time. They were shown as included in the pool but after the event they were considered rejected. I would think that the blockchain would include some information that would allow it to be determined that it was sent before the closing time.

Interestingly, my rejected bets for the losing team were not returned, but instead paid out to the winner. I'm informed the site owner already.

</comment></comment><comment><USER15> Parimutuel has simplification benefits for the pool-operator and casual recreational bettor... but is of little interest to big-money/smart-money.

Why not? Unless they're the last money in, they might not be getting the odds they expect... and thus might even have their money on the 'wrong side' of the bet, given the final odds.

That could limit the interest and liquidity here.

<comment><USER11> Yeah. There is a strong incentive for anyone using this site to wait as long as possible. Unfortunately that probably results in a kind of feedback loop preventing the site from being used.

</comment></comment><comment><USER12> Clicking through to the World Cup page, I note a serious deficiency in this "parimutuel" system: only _two_ entries per event, even when it's "wins the World Cup"! It certainly explains why the pools are so tiny. Expect to see _great_ arbitrage opportunities among the myriad different pools. Regular bettors get screwed by this.

EDIT: I'm not wrong about this: [https://bitbook.ie/make_bets/abf97e24-ded0-42bb-832d-669e275...](https://bitbook.ie/make_bets/abf97e24-ded0-42bb-832d-669e275cfdc8)

<comment><USER15> There is a deficiency - but it'd be hard to exploit at great scale, because as you bet the advantage goes away, and then later bettors might leave your stake with bad odds. Only being the 'last mover' in all the pools allows definite arbitrage.

<comment><USER12> _Only being the 'last mover' in all the pools allows definite arbitrage._

If so, now we know the actual profit model of this business.

Actually there would still be value in getting one's arbitraged wagers in just before the window closes: at this moment the general public would be unlikely to drive one out of the money and the site operator would have no incentive to do so.

<comment><USER15> Actually, assuming that bets are respected up through one atomic blockchain block before pool closing, the operator _can 't_ ensure they're last-to-move, because of the mechanics of Bitcoin-transactions-into-blocks. All bets are public, and all bets into the 'last block' before the pool closes would be equally valid. (Bitbook.ie _could_ use some other 'we saw your transaction in time, even though it didn't make a block' approach... but that would be so open to abuse and customer complaint I doubt it'd fly.)

So this again presents more problems for potential arbitrageurs as soon as there's more than one last-minute "sniper": not only are they unsure if their bet will be minted into a block in time, they can't be sure N others following the same strategy don't try the same thing, making the final odds awful.

To the extent the operator has any discretion, it's just to make a final ruling on whether a block arrived "soon enough", or is the first block for which bets are a "no-go". There's a very, very slight abuse potential in such discretion: their decisions are publicly observable, and biased/arbitrary decisions would result in a lot of griping and lost credibility.

On the other hand, large mining pools _would_ have significant power to control the 'last money in', in the blocks just before an event closes. (If they see imbalanced odds they like, they could blockade other bets, and only allow their own confederates' late money in, and only to the extent that the odds remain favorable.)

Maybe _that 's_ the real business model: kickbacks from side-betting mining pools!

<comment><USER12> _...they can 't be sure N others following the same strategy don't try the same thing, making the final odds awful._

Sure, but this is a challenge with parimutuel wagering in general. It's why the lines at the window are longest with one minute to post: there is more information about odds closer to the end.

</comment></comment></comment></comment></comment><comment><USER16> Apparently there is zero information about who runs this site. Yes, it looks nice, and seems to be a clever idea. But personally I wouldn't trust them with my coins.

<comment><USER12> There's nothing to stop one from starting with small bets, and then ramping up as one grows more trusting. Since there would be no reason for a wager to move from an entry-specific address before the event finished, one could even verify that one's coins haven't been spent on something else before they should. Actually we can look at all events in history and confirm that payouts balance with bets, if we want.

<comment><USER17> The problem with this approach is that the scam sites start with proper payouts until they can build enough trust to run off with a large take.

<comment><USER12> This could be a concern while the site has only operated for a short period. During that period, keep your wagers small. After the business is seen to be profitable, it becomes something of a golden goose, and this threat would be limited to rogue employees rather than the firm itself. Protecting against rogue employees could still be an interesting problem.

Admittedly, the concern we're discussing is one reason why I _wouldn 't_ mind if this firm charged a _really_ small distribution percentage.

</comment></comment></comment></comment><comment><USER18> I like the idea, but I'm not sure I would get anywhere near this as a US citizen. I can easily envision a federal prosecutor trying to make a name for himself coming up with an argument that it violates the Wire Act, and since it is parimutuel, then everybody who placed a bet also _accepted_ a bet.

</comment><comment><USER19> The site is missing QR codes and 'bitcoin:' protocol prefix which would make it wallet friendly.

<comment><USER19> Also for the sake of trust, I would like to see the historical payouts.

<comment><USER9> Historical payouts are available via the ledger (bitbook.ie/ledger)

</comment></comment></comment><comment><USER20> Does this work if you send from Coinbase? They don't let choose a specific sender address.

<comment><USER9> I've been using it for micro-bets and got one refund for a bet made too late. Didn't win any, so I can't say with any certainty.

</comment></comment><comment><USER21> InGenius!</comment>


Red Hat open sources Ansible Galaxy for all - <AUTHOR> http://www.zdnet.com/article/red-hat-open-sources-ansible-galaxy-for-all/ <comment><USER2> This is a good first step. How about Redhat open-sourcing Ansible Tower?

<comment><USER3> At first read that was what I thought the headline was referring to. That or at the very least a more incremental pricing model.</comment></comment>


Is it worth learning algorithms? - andrei-m-visan http://programminglife.io/is-it-worth-learning-algorithms/ <comment><AUTHOR> Of course it is. Not doing so is about as sensible as a computer science book which says in the introduction "we have intentionally limited the mathematical content".

<comment> andrei-m-visan Fully agree, but I was also covering the topic where you go into competitive programming problem solving. A lot of big companies are asking this kind of questions in the interview process and I doubt you ever had to traverse a binary tree in your daily job.</comment></comment>


People are already selling drugs and adult services on Facebook's Marketplace - <AUTHOR> http://www.businessinsider.com/facebook-marketplace-drugs-animals-adult-services-2016-10 <comment><USER2> I'm trying to figure out who's surprised by this.

I wouldn't be at all surprised to see news articles about people trying to sell guns with it too and how dangerous and unregulated it is blah blah blah.</comment>


Ask HN: What's the most productive thing you do on your tablet? - <AUTHOR>

I generally feel like I need a keyboard to be productive, e.g. writing code. Most of my activities on my tablet feel like I'm just consuming and often wasting time. I want to be able to make good use of my time when I only have a tablet handy or when a laptop is not an option. Any ideas? <comment><USER2> I wrote an app for the iPad that I use to monitor the stock market during the day. I use this app literally every single day and have been putting features into it that make the iPad a sort of extension of my trade desk. I now have two builds, one for me and people in my office, and one for the public.

I'm trying to open pieces of my framework to the public to help me get feedback currently to see if my work is usable by others. I'm trying to address issues like what you're mentioning. I think that, in some cases, you can actually be more productive on the iPad than on the desktop. It depends on the workflow within the app.

</comment><comment><USER3> This won't be on the topic of writing code but more on being personally- productive: I use my iPad to make hand drawn wireframes/mockups using Paper53.

Going ahead and coding up an app without any idea of how the user experience/workflow goes blocks me up big time, on the flip-side wireframes/mockups multiply my productivity when the time comes that I actually type up code.

For me, when I'm trying to do some small experiment or side project, rapidly drawing high-level mockups on tablets multiplies my productivity than spending time on Photoshop/Balsamiq.

</comment><comment><USER4> For writing code, you can use nitrous.io or c9.io to use your tablet browser as a full IDE on the cloud. I've tried this use case before and it works ok.

<comment><AUTHOR> I love c9.io but I don't find a it practical to actually write code on my tablet. I know that was the example I used so I apologize if that made it confusing.

</comment></comment><comment><USER5> I took cs50 and a couple of other classes from itunesU/edx last year. That was easily the most productive thing I have done with my ipad.

</comment><comment><USER6> I use my android tab to catch up on coursera videos, itunesU videos, feedly, hn. Read books: moon reader is a great app.</comment>


Uber's divided board will meet today to try to pick a CEO - <AUTHOR> http://www.businessinsider.com/uber-ceo-candidates-voted-board-meeting-kalanick-2017-8 <comment><USER2> For an ostensibly business oriented publication, this "Team Kalanick" BS makes the selection of the CEO for a billion dollar unicorn sound like grade school gossip. And the coverage itself is no better.

Is this really how far financial journalism has fallen?

<comment><USER3> Business Insider is rather linkbait driven. I've had more luck reading FT, Australian Financial Review and even Bloomberg to some extent.

That said, "grade school gossip" might be an accurate characterization of where this has descended to. Just because it's a huge company doesn't make it immune from petty infighting.</comment></comment>


Twitter Sale Process Said Almost Dead as Suitors Bow Out - <AUTHOR> https://www.bloomberg.com/news/articles/2016-10-08/twitter-sales-process-said-almost-dead-as-suitors-lose-interest <comment><USER2> Twitter should offer a paid option to get rid of all the bots and ads. That would probably attract a fair amount of people and provide a (admittedly small) but stable revenue stream.

<comment><USER3> I have to admit that I am surprised they haven't offered this.

</comment></comment><comment><USER4> Dang, I was kind of wondering what Google could do with all that data or what Disney had planned.</comment>


MVC, MOVE - Or Simply A State Machine? - <AUTHOR> http://ingoschramm.tumblr.com/post/26409997578/mvc-move-or-simply-a-state-machine <comment><USER2> I think it's strange that people discuss "MVC" without specifying which MVC they talk about - - because most of MVC patterns are VERY different and used in very different contexts (e.g. Rails and Smalltalk). About a year ago I did a blog post about the history and usage of MVC* and for me it does not make sense to talk about MVC as a general pattern, because the implementations, contexts and ideas are very different from one MVC to another. If you want to discuss MVC please specify which MVC pattern you talk about.

Regarding this article I think it would be much better if the author provided some code for his "state machine" idea. Currently it's just a blurb of text and it's hard to imagine how his ideas would work in practice.

One framework I enjoy and use is Lamson - - Zed Shaw's mail server framework. It uses a state machine abstraction and it works quite well. This said, I think mail server processing is very suited for the state machine abstraction - - I am unsure how suited UI is, since it's a lot more complex than processing email.

* <http://amix.dk/blog/post/19615>

</comment><comment><USER3> Yes! State machines are a natural paradigm for complex UIs.

Event handlers are great as long as they remain independent little globs of code: this button turns that thing off, this click makes that color different, etc. But once they start affecting each other at a distance (e.g., the button starts some action that temporarily changes the meaning of the click), you need a method of controlling the effects systematically or you end up with spaghetti. Pretty much every complex UI I've ever seen is that spaghetti.

MVC is too simplistic to give this. M means "state" and V means "what the user sees" and C means "just make it all work, mkay?", which lets you down right where you need an organizing principle.

I struggled with UI spaghetti for years before finally realizing that state machines are a nice systematic way to manage this complexity. Now it seems kind of obvious that UIs _are_ state machines. They're machines and they have state!

<comment><USER4> State machines are this neat thing they teach you in freshman Computer Engineering courses, but I've met a lot of CS or SE graduates who have no idea, which is too bad--they're a useful tool. Anyone who doesn't know state machines should definitely read up on them.

</comment></comment><comment><USER5> This is why I prefer Sinatra-style programming. You don't have to waste brain cells on unnecessary abstractions that don't correspond to anything real.

You just have functions (not "controllers", or "operations") that respond to a particular url/method combination. Those functions job is to interpret the request and respond accordingly.

This style adds no new abstractions or opinions that aren't already in http. It formalizes what http already gives you, with some utility methods for the common things needed (content negotiation, etc).

<comment><USER6> This works for small services and apps, but I think it'd be quite a maddening exercise to try and keep a large codebase consistent and organized with that method.

<comment><USER7> In my opinion it also works for a large codebase. You just have to define your (REST) resources carefully, but they scale very well. The smaller details (on class/object level) are in your lib directory and have no direct relation with your Sinatra app. In fact your Sinatra app could also have been a command line app or something else.

<comment><USER8> When Sinatra gets a little too small, you can organize stuff more with Padrino which wraps Sinatra.

</comment></comment></comment></comment><comment><USER9> I read through the whole article twice, and I think OP is using the term "state machine" very, very loosely. I have a very tough time believing that the vast army of MVC web developers out there know about Mealy machines and Moore machines in any significant depth, if at all. How many of them do you think know how to formulate a Moore machine, convert it to a Mealy machine, explain the differences between a finite automaton and a Moore machine, how to negate lambda transitions, produce a context free grammar...seriously, if you are the sort who, when given a problem, thinks of FSMs and Moore machines as a first level abstraction, are able to construct a delta transition function as the cartesian product of the set of input states Q times the set of input alphabets sigma...you are so far ahead of the rest of the pack in both theoretical competence and intellectual ability...you wouldn't even bother with nonsense like MVC at that point.

There was a generation where these things were formally taught...but that ship has sailed. The people who get worked up about MVC in web frameworks these days are in the same boat for whom Microsoft once built the FrontPage wysiwyg html editor, because they were too busy to grok the bold and italic tag. Ofcourse a REST api can be modelled using an FSM. But then, so can addition. Division. Subtraction. Arithmetic. Do you honestly see people approaching general purpose CRUD programming by saying "hey lets build a state machine" , because that what's 99% of computation is, anyways ? Nope. Then why pretend ?

<comment><USER10> I'm a hardware designer by profession--digital logic specifically. A very large portion of our work involves FSMs. I don't think I've ever done a design without one, and usually several.

State machines, to me, are a completely natural way to solve problems. They are, of course, just one tool in the box, but in the digital logic world, FSMs are a tool used quite frequently.

I do some coding as well, mostly as a hobby/intellectual interest. I really struggle with a lot of CS ideas. Higher order functions require a lot of concentration on my part to keep straight, and recursion isn't a concept I run into much in hardware design.

I suppose it could just be a lack of familiarity, but I find state machines (Moore or Mealy) to be a very straight forward and concrete concept. I feel that much of CS requires the greater intellectual ability.

I struggle with MVC. It sounds great and eminently reasonable when I read about it, but it seems like the lines are smeared whenever I try to implement it or see others implementations.

</comment></comment><comment><USER11> An even better argument for a state machine (FSM or PDA)

* <http://www.cs.dartmouth.edu/~sergey/langsec/>

You can basically make security proofs in your protocol.

<http://www.youtube.com/watch?v=3kEfedtQVOY>

I was thinking about extending this to bottle.py and replacing the routing elements with an fsm library. Then I wanted the views to be a bunch of regexps or simple includes.

</comment><comment><USER12> I have found that using (F)SM to model a REST API makes everything a lot easier. (It is after all _state transfer_ )

So, yes, I would agree - most things we want to do with most web interactions are little more than state machine changes. I would be interested in how the routing/FSM work might pan out.

<comment><USER13> Isn't the REST API role just limited to synchronize the model (state) between the client and the server ? If state transitions are taken care by the API, your API is not REST anymore, it includes RPC actions.

</comment></comment><comment><USER14> Throwing my 2 cents into the bucket: I'm involved in a small embedded device project, where we wanted our UI to be completely decoupled from a legacy, very heavy, single-threaded component.

We decided to model the whole UI transition flow into DFA's, using events from the touchscreen (pre-processed) as inputs. The state machine is modelled with boost::statechart, which has proven to live to it's thread-safe reputation.

The jump in development speed and the absence of flow bug is nothing short of remarkable from this experiment.

Although I pushed for it, I was a bit fearful that the formality would make developers resist the architecture, but I'm pleasantly surprised the opposite has happened!

...but, we haven't launched yet, so, fingers crossed. :)

EDIT: Added plug to boost. Boost is awesome.

</comment><comment><USER15> I like this comparison to MVC.

Views + a state machine is basically a description of CouchDB and CouchApp style programming, so I've seen the OPs architecture being used in very real life situations.

I've been calling it an event architecture, that that's not a great name. It's not just events, because events can cause the client to query, so there has to be a whole state machine backing up the event system.

</comment><comment><USER16> One problem with a state machine approach compared to MVC is that it isn't as familiar. Do you use a Moore or a Mealy machine? A combination of the two? Most people don't use state machines to model the flow of an entire web application, so if you try it out, you might feel like you're on your own.

It can be worth it, though. I used state machines for a client-side UI in ClojureScript a few months ago. It forced me to think hard about the structure and flow of the app. But after that, my state was in an explicit, contained area. If I had been using something like Backbone, the state would have been hidden among the various model objects. I felt like I had a much better mental model of how the program worked after the initial design process. Keeping state in control reduces complexity. [1]

Another benefit was that the state machine library I used allowed me to audit the trail of states as they happened. When a user toggled a checkbox to trigger an event, I could look in the JS console and see the moment the checkbox was triggered. If something wasn't working, I could often debug it by seeing if the states and transitions happened in the right order. I wouldn't be able to do this with a traditional MVC framework.

There's one very important thing that nobody has mentioned yet: state machines look ugly in your code. When they get big, they are difficult to follow. I started out using a state machine library that was just too simple. Once the interactions became complex, I was getting lost in my code. I looked for a clearer, more succinct way of modeling state machines, and eventually I came to Harel statecharts. [2]

Statecharts are a way to model state machines without explicitly writing out a ton of redundant states. The number of states becomes a problem when you actually try to model an application with a basic non-deterministic FSM. If you're interested in using state machines in your web application, you _need_ to read the linked paper. The example of modeling a digital watch with statecharts makes it easier to see how you could use them in a web app.

I believe statecharts are to MVC as Clojure is to every mutable state language out there. It feels weird at first, but once you get used to it, it's much simpler. It's just not necessarily easier. [3] If you want to try them out, there's a good library called Stativus for writing statecharts in JavaScript: <https://github.com/etgryphon/stativus/>

[1] See "Out of the Tarpit" for why state and complexity are closely related: [https://dl.dropbox.com/u/249607/all/Out%20of%20the%20Tarpit....](https://dl.dropbox.com/u/249607/all/Out%20of%20the%20Tarpit.pdf) (The original link is down, so I made a mirror.)

[2] The original article on statecharts: [http://www.wisdom.weizmann.ac.il/~dharel/SCANNED.PAPERS/Stat...](http://www.wisdom.weizmann.ac.il/~dharel/SCANNED.PAPERS/Statecharts.pdf)

[3] More about the idea that simpler things are not necessarily easier: <http://www.infoq.com/presentations/Simple-Made-Easy>

<comment><USER17> Any mirrors on the document for [2]? Site seems to be down...

<comment><USER16> Here's another mirror: <https://dl.dropbox.com/u/249607/all/Statecharts.pdf>

</comment></comment></comment><comment><USER18> I might be reading the blog wrong, but it seems he is using the MVC view (templates separated from the logic and sent to the user) and the user interface interchangeably. These are two very different things.

The interface the client uses is always going to be some sort of state transfer system, moving between different pieces of content and displaying elements to transfer between content.

Handling these views on the back end is an entirely different issue.

State machines are useful on the back end, but it can not be used between requests without causing headaches.

I have been experimenting with state machines in a node.js framework to handle asynchronous sub-views (<https://github.com/Dashron/roads>). It makes development incredibly simple, and breaks up the code so that you can have traditional, or single page apps with the same codebase.

I don't think a state machine would be useful at a higher level than this (in the backend) but I will put more thought into it.

<comment><USER19> I agree with your point just wanted to point to Nodejitsu node.js work that's highly relevant to it:

<http://blog.nodejitsu.com/scaling-isomorphic-javascript-code>

"Javascript is now an isomorphic language. By isomorphic we mean that any given line of code (with notable exceptions) can execute both on the client and the server. On the surface this seemingly innocuous property creates a number of challenges that are not solved by current MVC-based patterns. (...) In conclusion, we will explore a new pattern: Resource-View-Presenter."

<comment><USER18> Wow, Resource-View-Presenter is exactly my framework.

Except I call my presenter layer "resources" and my resources "models".

The state machine in my framework is a system within the view layer so you can asynchronously re-route through the "presenter" and re-use code.

</comment></comment></comment><comment><USER20> I would like to develop this idea further. What if we store all the state in a specialized state storing server application? What if we develop a portable language for querying and updating this state? What if we introduce a "transaction" mechanism in the state storage system so multiple users can interact with the state at the same time? We can call the state storing server a "data-base management system". It would be awesome!

</comment><comment><USER21> Zed Shaw uses state machines in Mongrel2 to handle connections.

<http://sheddingbikes.com/posts/1278464593.html>

Here's the image of the state machine: <http://sheddingbikes.com/mongrel2_state.png>

Now imagine having something like that (say a prettier version of that chart) for web interactions with your complex web app.

<comment><USER22> A related tweet from him:

"I love state machines. They turn asynchronous event problems into nice tidy well known problems."

</comment></comment><comment><USER23> I have used both the state machine pattern and MVC in large projects and in some cases used both together. There is no problem with MVC. It can work with any number of supporting patters. If your problem is your controller doing too much work.. you're just doing MVC wrong! MVC is not the answer to life, the universe and everything. As long as you use it with that understanding you'll be fine. MOVE with its operations concept seems very similar to MVC with command pattern which is a perfectly viable solution which I have used in a project which involved making our own document editor and we had no issues with it. So, I really don't get what all the fuss is about. STFU and use what supports your requirements. Design patterns are evil themselves. Design according to your requirements and empower your models. That's all you need to do!

</comment><comment><USER24> Someone have an simple example of that approach(State Machine) instead MVC?

</comment><comment><AUTHOR> I thank all of you so much for this very enlightening discussion! What was a loose idea in the first place, I should definitely develop in deeper detail as soon as possible.

</comment><comment><USER25> > BTW I willingly omitted the "F" of the (F)SM since this might be subject of > discussion here, despite the fact that "infinite" is really huge in the > world of computation.

If you have a FSM that can read and inc/decrement a counter, you have something strictly more powerful than a FSM. I expect that dropping the F is entirely appropriate for most controllers.

</comment><comment><USER26> MVVM?

</comment><comment><USER8>
        "infinite" is really huge in the world of computation

Really huge = infinite. I LOLed.

</comment><comment><USER27> Can't take this seriously -- this guy can't even convert a unix timestamp to human readable date on his blog.

<comment><USER28> I'm pretty sure it was done on purpose judging by the title of the blog and the type of font he used.

<comment><USER27> of course it was. guy is trying to be cool or something... not someone worth paying attention to.</comment></comment></comment>


Tell HN: My tonight's project - Instapaper - Kindle importer - <AUTHOR> Instapaper is a cool bookmarking service. Kindle is an awesome reading device. But I was frustrated, that instapaper can't deliver articles to kindle via @free.kindle.com email address.
So I did what every hacker would do - hacked together a small script to get articles from instapaper and send them to kindle via email.
I hope somebody will find it useful.
http://github.com/mantas/instapaper-kindle <comment><USER2> Doesn't Instapaper in fact already do this?

<http://www.instapaper.com/extras> under "Kindle automatic wireless delivery"

Regardless, interesting little Ruby lesson. Thanks for pushing your source to GitHub for all to examine.</comment>


<details> : The Details disclosure element – MDN - <AUTHOR> https://developer.mozilla.org/en-US/docs/Web/HTML/Element/details <comment><USER2> TIL about `list-style: disclosure-closed;`. Makes perfect sense, but I admittedly had never really thought about it.</comment>


"Developing iPhone apps now means postponing a better and more capable web" - <AUTHOR> http://factoryjoe.com/blog/2009/08/01/steve-jobs-hates-the-appstore/

<comment><USER2> Games are still hard to do properly in the browser. Eventually, they might add OpenGL support to javascript, as well as full audio control. But I don't think that'll be happening for a while yet, so any app which does heavy 3D work or audio work will need to be native.

<comment> w-ll I don't see that happening any time soon. But whats true is that, not all games need to be 3D or fast paced to be fun. As a kid at heart still; I'm working on a few web based games with UI's for mobiles.

<comment><USER3> How about Google's recent O3D work? Not saying it's the be-all and end-all of browser 3D, but people are working on it.</comment></comment></comment>


NSA is collecting less than 30 percent of U.S. call data - <AUTHOR> http://www.washingtonpost.com/world/national-security/nsa-is-collecting-less-than-30-percent-of-us-call-data-officials-say/2014/02/07/234a0e9e-8fad-11e3-b46a-5a3d0d2130da_story.html

<comment><USER2> > _NSA is collecting less than 30 percent of U.S. call data, officials say_

Or 50%. Or 120%. Even 1% would be too much.</comment>


How I Cracked Over 122 Million SHA1 and MD5 Hashed Passwords - <AUTHOR> http://blog.thireus.com/cracking-story-how-i-cracked-over-122-million-sha1-and-md5-hashed-passwords <comment><USER2> > The lesson learned from this is that with a good and smart dictionary > combined with handy rules either for hashcat or John the Ripper even the > most impossible password can be cracked.

How did they come to that conclusion? Yes, surprisingly long passwords can be cracked if they follow simple patterns. I would hardly consider that "the most impossible password".</comment>


Hackers wanted: Scholarships available to coders to save journalism and democracy - <AUTHOR> http://radar.oreilly.com/2009/05/hackers-wanted-journalism-need.html

<comment><USER2> My local paper sucks. It's a corporate revenue generator. They give us as little real content as possible. Just enough to maintain the illusion that they are a News Paper rather than an Advertising Sales and Delivery System. The editor wails about how important he is to the community but he is merely an impotent tool for Gannett, just as his predecessor was for Knight-Ridder.

<comment><USER3> You must understand though, that your paper is doing what makes money -- it's providing what most people want: stories about cats rescued from trees, this years fashions, and possibly commentary on local taxes going up or down. Ads about what sale is going on this weekend, etc.

The real shocker, IMO, is that most people don't _want_ to know what's really going on. They actively resist getting roused from their peaceful slumber.

<comment><USER4> >The real shocker, IMO, is that most people don't want to know what's really going on. They actively resist getting roused from their peaceful slumber.

I would say the opposite is true. Chomsky touches on this subject here (and on other articles on this website) and can explain it a lot better than I can.

<http://www.chomsky.info/books/warfare02.htm>

</comment></comment></comment><comment><USER5> The exclamation mark that disappeared from the headline really borks its parsability. Suggest someone fixes that.

The article does make an okay case for journalism being interesting, but it fails to convince me that "old news" is something that can or should be saved.

<comment><USER6> Maybe that is why they want hackers, to help create the "new news".

</comment></comment><comment><USER7> It's funny because the media industry blames the internet, and therefore, coders and hackers, for their downfall with not very nice language all the time...

and now they are begging us to save them from their death...

Life is funny.

</comment><comment><USER8> Great to see Brian worked in a shout-out for <http://repsheet.com> an open source, dead-simple local political lookup tool.

</comment><comment><USER9> The title is hilarious. I read it initially as

"[Some] _Hackers_ wanted [the] Scholarships available to _coders_ to save journalism and democracy"

</comment><comment><USER10> I always like to see people blending various disciplines to make a better product. I think that's how business should be done.</comment>


Earn Money from Your Interests - <AUTHOR> https://tncpw.co/cb36c1b9 <comment><AUTHOR> The Internet is broken for content creators. Bit.sv is a new content network that lets anyone earn money from their interests.</comment>


Gigapixel AI Accidentally Added Ryan Gosling's Face to This Photo - <AUTHOR> https://petapixel.com/2020/08/17/gigapixel-ai-accidentally-added-ryan-goslings-face-to-this-photo/ <comment><USER2> Before casting stones, have they checked with Ryan Gosling to make sure that wasn't him behind a giant magnifier at that window?

<comment><USER3> I started posting IFOTD - Inanimate Face Of The Day on social media a few weeks back.

When you start looking you see faces _everywhere_.

The Gigapixel AI is a fair bit more detailed in this example though.

<comment><USER4> [http://facesinplaces.blogspot.com/](http://facesinplaces.blogspot.com/)

Hasn't been updated in forever but I used to love this.

<comment><USER3> That's great!

I'm here if you want to have a look:

[https://www.facebook.com/amosrust](https://www.facebook.com/amosrust)

</comment></comment></comment></comment><comment><USER5> If Gigapixel AI works like other state of the art upscaling networks it upscales patches at the time, not the whole image at once. If the only context you have is small enough, scaling it up as Ryan Gosling's face seems completely reasonable. After all I see a face there too. When looking at the larger context(some kind of building) it becomes clear that there isn't supposed to a face, but the AI likely didn't have that much context.

<comment><USER6> It's like the AI is replicating the same mistake a human brain on LSD makes.

</comment></comment><comment><USER7> It's only now that we fully realize how bad the depicted policing was in all those TV shows where they zoomed & "enhanced" the photo evidence.

<comment><USER2> Not quite. Super-resolution from face prior is probably a bad idea if you're looking to identify someone, but super-resolution _from video_ works. It doesn't make up information based on what it expects the face to be, but collects and aggregates information from multiple frames.

<comment><USER8> sauce?

<comment><USER9> Literally the first Google result for _super-resolution from video_ : [https://paperswithcode.com/task/video-super- resolution](https://paperswithcode.com/task/video-super-resolution)

<comment><USER8> Yeah thats not a source at all. Its a collection of paper on the relevant topic.

The claim of the parent comment was

> but super-resolution from video works. It doesn't make up information based > on what it expects the face to be, but collects and aggregates information > from multiple frames.

So I was simply interested in hearing where this claim comes from. Has any of these papers mentioned that this is the case? I briefly went through some of them but did not see any such guarantee.

<comment><USER2> Many of the modern ones are based on deep learning and might indeed capture priors for faces. However, other approaches do not depend on machine-learning. The priors that they implicitly use are weak or rather general (e.g. natural images have mostly sparse wavelet representations, videos represent things that move mostly continuously, etc). They essentially compensate for the motion over several frames and use the redundant information to denoise the result.

</comment></comment></comment></comment></comment></comment><comment><USER10> It's like robots are now like human, seeing faces everywhere ! [https://www.reddit.com/r/facesinthings/](https://www.reddit.com/r/facesinthings/)

<comment><USER11> Wait till they start getting religion.

<comment><USER12> [https://en.wikipedia.org/wiki/Reason_(short_story)](https://en.wikipedia.org/wiki/Reason_\(short_story\))

</comment></comment></comment><comment><USER13> Pretty sure that's not Ryan Gosling. Just a random face, but adding a celebrity to the headline probably generates more clicks.

<comment><USER14> Yeah it's just some dude's face. Excellent headline writing to take advantage though.

<comment><USER15> Turns out the article was written by a GPT-3 bot optimized for clicks. Welcome to the future.

<comment><USER14> It's like a kind of virtual grey goo EOTW scenario where all the world's resources are consumed writing increasingly effective clickbait.

The Utopian version of the story has the clickbait getting so good that it actually evolves into a high form of art and expression.

</comment></comment></comment></comment><comment><USER16> This is an AI-supercharged version of this bug, which just changes numbers when photocopying:

[https://www.theregister.com/2013/08/06/xerox_copier_flaw_mea...](https://www.theregister.com/2013/08/06/xerox_copier_flaw_means_dodgy_numbers_and_dangerous_designs/)

<comment><USER17> Yep, Xerox was hallucinating different numbers way before it was cool!

</comment></comment><comment><USER18> The main problem I see here is that the inserted image is much sharper than the original. I'd guess that the result would be more acceptable and less of a problem if the "blurriness" was preserved. Perhaps they should train on this aspect; it shouldn't be too difficult.

<comment><USER19> I have a feeling the "detect faces" feature is a hand-engineered feature. It isn't end-to-end ML like the rest of the software.

I guess they run a face detector over the whole image, then cut out faces, pass them through a system to generate a similar but sharp and clear face, and then blend that back into the original image.

</comment></comment><comment><USER14> This is just fantastic.

Also, red dwarf's enhance sequence must be added to any commentary about photo enhance, just in case someone hasn't seen it.

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

</comment><comment><USER20> That does not look like Gosling to me. Why does the photographer think it is him?

<comment><USER21> For the headline!

</comment></comment><comment><USER22> Hilarious; now that I look at the original photo, I could see myself making the same mistake, perhaps not in such detail!

</comment><comment><USER23> That sounds like a classic Submarine article ([http://www.paulgraham.com/submarine.html](http://www.paulgraham.com/submarine.html)).

</comment><comment><USER24> I'm sorry, but that does not look like Ryan Gosling.

</comment><comment><USER25> There are lots of crossing lines, if the AI took those geometrical shapes into account it should have placed lines in front of his eyes and mouth. That would have been more accourate, incidentally avoiding the match with Goslin. Is that possible to implement in Gigapixel? Asking as a CV enthusiast that tailored a volume recognition solution in OpenCV years ago.

</comment><comment><USER26> fyi of related terminology: [https://en.wikipedia.org/wiki/Pareidolia](https://en.wikipedia.org/wiki/Pareidolia)

</comment><comment><USER27> That just shows how far away from the expectations is the quality assurance for AI-supported projects. Black-box methods like NN will at some point produce weird results. Now we need an AI to check AI if a random face was added to the image in the process.

</comment><comment><USER28> Enhance! Enhance!

I bet the Pentagon pays good money for such unblur features.

<comment><USER29> Now you a have a fractal of faces as you go deeper!

</comment></comment><comment><USER30> Besides the added face, rest of the upscaling done seems to be terrible as well. I wonder why the photographer is using the software

<comment><USER31> The image is likely zoomed in 800% or more. It's normal that it looks terrible from that close. When you see the images at a normal scale using Gigapixel AI they often look much more detailed (but not always).

Your phone also does this, but even more poorly.

<comment><USER32> Yep. You can find the finished product here [https://retoucher.fi/mercedes- benz-eq](https://retoucher.fi/mercedes-benz-eq) (first image), and the Gosling-area in question on the right where the tiny green dot is.

</comment></comment></comment><comment><USER33> Wow, this software is amazing. The results are _great_. The moon landing videos linked there are remarkable.

</comment><comment><USER34> It's not just Ryan Gosling. It's Ryan Gosling with "Charlie Chaplin mustache".

</comment><comment><USER35> The day in the life of AI "Meh, close enough. Nobody will notice."

</comment><comment><USER36> this for some reason triggers recall of jesus on a toast from a while back.

</comment><comment><USER37> Reminds me of this: [https://www.snopes.com/fact-check/phallus-purposely- added-ar...](https://www.snopes.com/fact-check/phallus-purposely-added- artwork-little-mermaid-vhs-cover/) [NSFW]

<comment><USER17> The term for things like this is Pareidonglia.

<comment><USER37> Ah. TIL!

</comment></comment></comment><comment><USER38> It wasn't Rick Astley? Times, they are a' changin'...

</comment><comment><USER39> Perhaps the AI has a crush on Ryan Gosling

</comment><comment><USER40> Why not Nicolas Cage though?

</comment><comment><USER41> Ryan Gosling is the new Rick Astley. You can now get Ryan Rolled!

</comment><comment><USER42> Hi, Ashley from Topaz here. We all had a good laugh about this. Want to help us fix it? we're hiring a deep learning researcher at the moment, [https://jobs.lever.co/topazlabs/5ff7aa41-d733-4ca9-9323-f68a...](https://jobs.lever.co/topazlabs/5ff7aa41-d733-4ca9-9323-f68af5ebcfbb) ...,

I am researcher there, please feel free to ping me at firstname.lastname@example.com with questions if you would like.

</comment><comment><USER43> Yes, just like any camera since cameras have a "detect and focus face" feature like to see faces in things like curtains or other seemingly random structures, just without trying to match a specific known face to it and replacing it. So how's this news? Because of a celebrity name? Surely it's not because it's screaming "ad for Gigapixel AI" in my face. My Sony Ericsson C905 did this over 10 years ago. But looking at the other comments its at best entertaining a little because it's just silly.

<comment><USER9> _Yes, just like any camera since cameras have a "detect and focus face" feature like to see faces in things like curtains or other seemingly random structures, just without trying to match a specific known face to it and replacing it. So how's this news?_

It's news because it's trying to match a specific known face to it and replacing it.

<comment><USER44> It doesn't seem like it's matching a "specific known face". The face only marginally looks like Ryan Gosling; more realistically it just inserted a face that happens to look like a random celebrity and the site ran away with it for clicks.

</comment></comment></comment><comment><USER45> I just tried it with his images and did not come close to replicating his results. I am using the current version of Gigapixel AI on Windows.

My first thought when I saw the image was that he photoshopped it. Looks like I am not wrong. Why? Who knows. Bored, I suppose.

<comment><USER32> I reckon it's like that one paper that shows a neural network swinging from 1.0 confidence that a picture of a lion is a picture of a lion to 1.0 confidence that it's actually a baseball bat once a single pixel had been changed.

So to repro, you would need the original image, not this zoomed in crop nor his final retouch.</comment></comment>


35% of Americans Facing Debt Collectors - <AUTHOR> http://hosted.ap.org/dynamic/stories/U/US_DEBT_STUDY?SITE=AP&SECTION=HOME&TEMPLATE=DEFAULT&CTIME=2014-07-29-00-12-33 <comment><USER2> Having your job prospects threatened because you're unable to repay a hospital bill is the most broken, fucked up thing I've ever heard.

EDIT: Well, not the MOST broken and fucked up... but pretty fucking broken and pretty fucking fucked up.

<comment><USER3> Services, including medical care, are not free and debts must be paid. Credit rating agencies, as well as all reputation-reporting services, are protected speech.

As an American, what's fucked up to me is that in some other countries, you can actually be imprisoned for debt.

Job prospects can be threatened by many things that seem, at first glance, like they might not be related... and that may not be a bad thing in all cases. Let markets make their own decisions.

<comment><USER4> I find it seriously scary how many Americans on the internet are totally brainwashed into thinking the free market is the greatest thing ever and there are absolutely no problems with it.

Medical care is not free, however in every country that has socialised healthcare (i.e. every developed country except the us) it is free at the point of use.

And if you're going to complain that it's more expensive because everyone's paying out of taxes, in 2012 the US actually spent _more_ in taxes per person than e.g. the UK on healthcare[1]

Healthcare in the US is fucked up, and free markets are not the solution to every problem.

      [1] http://wdi.worldbank.org/table/2.15

<comment><USER5> _" Medical care is not free, however in every country that has socialised healthcare (i.e. every developed country except the us) it is free at the point of use."_

It's also "free at the point of use" in a free-market system. I just present my medical aid membership card and I get whatever I need; hospital, pharmacy, ambulance, etc. Yes, that is a present-day thing, not some fairytale future.

Not only that, but these "free-market" companies give out stuff for free because it is profitable to keep their members healthy. _Gasp_ , benefits for free. They sometimes send out free traffic "officers" to congested intersections / accidents to help traffic along to prevent accidents, for non- paying individuals. Just a small taste of what a free-market system could do if left to its own devices.

I find it seriously scary how many People on the internet are totally brainwashed into thinking the free market is some sort of personified evil boogey-man and socialism is the panacea for all the world's ills. Both have their flaws, and both have benefits. How about you let people choose what they prefer?

</comment></comment></comment></comment><comment><USER6> How exactly are people supposed to pay their debt if they can't get a job because they have debt? An employer doing a criminal background check makes sense, a credit check far less so.

<comment><USER3> How exactly are employers supposed to trust people to be responsible with the management of large corporate assets that weren't personally carrying adequate maintenance contracts on their single most important asset: their person?

<comment><USER7> By this logic, doctors that smoke, drink or/and are overweight should be fired - they don't properly maintain their own health, so should be disallowed to care about others. Would that be a good idea?

<comment><USER3> I would never do business with a doctor that smoked, nor would I hire a smoker to work in a key role in any business I had hiring authority within. It's a fundamental failing of ability to do cost/benefit analysis.

</comment></comment></comment></comment><comment><USER8> As counterexample to the way Americans handle debt the way some european countries handle debt is really fucked. Spain is going through a deep recession (25% unemployment, even now) because you simply cannot declare bankruptcy.

According to a friend a lot of local and international banks were quite happy to make Spanish loans since no matter what happens the debtor has to pay. In the US, a bad debt leaves your credit report after 7 years, and personal bankruptcy after 10 years. Since there is no financial reset button in Spain all the bad shit that happened in 2009 is still making waves 5 years later. The worst affected, small business owners, committed suicide or self- immolation realizing they had no escape and no future.

</comment><comment><USER9> I'm seriously wondering when/how this thing is going to blow. Debt is such a central part of everything American, and it's completely not sustainable. What's going to happen? Another credit crisis? Revolution? Mass evictions? Nothing?

<comment><USER10> Nothing. The American ruling class commands the most sophisticated propaganda apparatus ever seen in human history. Americans will be ground into dust and then they'll blame themselves for it.

<comment><USER3> It's happening now. I've been in California for a while, the state with the highest taxes, fastest growing companies, and largest population: people are sleeping in the streets like it's the third world. I understand it's just as bad in New York (where I used to live), just much less visible due to climate.

It seems to get steadily worse over time. I believe that the median resident's quality of life in this country is steadily falling in a lot of ways. The things that people used to believe made this country great (e.g. the first half of the 20th century) are today historical anomalies, completely foreign to the ages that came before and after.

The age of American exceptionalism is over and it's turning into just another place where everyone's backward and suffering.

<comment><USER11> "The things that people used to believe made this country great" mostly took place in the _second_ half of the 20th century, in the post-war boom period.

Look, all across Europe there are economic problems, but America (and to a lesser extent the UK) is the only country that's actually just scrapping large parts of its own landmass into Third World substates.

</comment></comment></comment></comment><comment><USER12> As a non-american I cannot understand why debt would hurt your job prospects. Can anyone clarify?

<comment><USER13> Payment or non-payment (overwhelmingly non-payment+) of debt is reported to credit reporting agencies. Employers, as part of an employment decision, are allowed by law to pull copies of credit reports. A poor credit report tends to be treated by many employers as an indication of the candidate being a poor hire so the candidate is rejected.

\+ Noted because many sources of negative marks on a credit report (like a utility bill, mobile phone account, rent-to-own store, apartment lease, and so on) only report negative actions. If a person never pays late, the business doesn't report the favorable upside.

</comment></comment><comment><USER14> I guess the trick is how can we to allow for capital infusion for growing companies while at the same time keeping the populace safe from predatory "financial products" and other chicanery which have been solely and purposeful over-designed to be unnecessarily complex, so as to enslave a (financially and mathematically) uneducated populace via illogical financial terms - mostly by people who do very little each day besides striving to find ways to assert their control over others.

i.e. the difference between a real, and progressive VC environment and just another Wall Street magic trick

</comment><comment><USER15> I'm genuinely puzzled by the central importance of debt in the lives of Americans (reflected for example in the importance of the infamous credit score which is something my country also has, but which barely anyone cares about).

Imagine you'd like to buy something you don't have enough cash to pay up front. Assuming you're not in immediate necessity, you're faced with the choice of saving up the money and delaying the purchase or borrowing the money and buying now. If you delay the purchase you can invest or lend the money and earn capital gains or charge interest. If you buy now you have to pay the interest to someone else. This means the ultimate amount you spend is lower if you delay the purchase (your savings are augmented with capital gains or charged interest and you avoid paying the interest to someone else). The upshot seems to me that unless you're buying something out of immediate necessity you are better off delaying the purchase.

Is the central role of debt due to the fact that most shopping done in the US is done out of immediate necessity (which may suggest wide-spread poverty) or is it simply wide-spread impatience or somethings entirely different or more complex?

<comment><USER5> I think it's just a lack of education, and it's not limited to the US, mind you. People seem to have this belief that credit is free money that they can delegate to the future. Since the detriment is deferred, people don't really examine it for face value. There's that, and most are really bad at visualizing debt.

I recently watched a documentary about the state of debt in the UK. It was quite shocking, normal regular people that got addicted to debt, and just spent, spent, and spent. Meanwhile, the banks kept rewarding their "debt" with higher limits and more fresh cards. These people took out ridiculous sums of money, sums that they need to spend probably decades paying off simply because their salaries are so low.

</comment></comment><comment><USER16> However, statistics can be misleading if not filtered.

I am proud to say, I am part of this 35%. I have owed $15 to a hospital for a long time. I also owed a bigger bill for a long time. Despite having the money. We moved, lost track of correspondence, had life happen to us etc.

I'm not sure, however, which employers reject you on such bases. When I worked at a hospital, we had background checks. At my present job, no such thing.

</comment><comment><USER17> Looks like the debt issue in the U.S. is systemic within the general population and not isolated to the U.S. government.

<comment><USER18> Get it now, pay later. What could be wrong?

<comment><USER19> Keep in mind that most personal bankruptcies are caused by medical bills. You can not exactly postpone critical operation until you save money. You can not work while you are sick a lot. And medical prices are non-transparent, patient have no idea which tests/interventions are needed and which are not, so it is hard to price shopping even if you have time for it.

If 35% percent of population do something, then it is better to look for structural reasons other then "population is stupid" simplification.

<comment><USER5> Why does there have to be a "structural reason" for it? Why must there be external blame assigned to something simply because it is commonplace in a population group? I'm curious what arbitrary line you've drawn that lets you delineate between "common-place in the population" vs "due to structural reasons"?

Note how I don't use the phrase "population is stupid", or that the reason is "stupidity". It could be a whole host/variety of reasons for people choosing to ignore possible life events. Everything from a misguided belief in a non- existent "safety-net", conscious decision to accept the risk, or plain not even remotely foreseeable life-altering event. Somehow, I doubt 35% falls under "unforeseeable".

</comment></comment></comment></comment><comment><USER20> What exactly does it mean to have "debt in collection"? It seems to be a binary state, if so, what are the exact parameters for entering and exiting?

<comment><USER13> In practice, it means any debt where the original holder of the debt has determined that it is unlikely to receive payment from the debtor so the right to collect the debt is sold to a third party.

An example: Bob takes out a credit card with a limit of $500 and charges $300 to it. Bob makes no payments. After three months (90 days), interest, late fees, and so on have pushed the total debt to $620 and Bob's credit card issuer decides that Bob is unlikely to pay. The debt is sold to a collection agency and is written off as a bad debt on the books of the credit card company. The collection agency pays $20 for the debt (so low because Bob is, through external methods, deemed to be unlikely to pay any debts, much less an unsecured credit card) and now hassles Bob for the next several years.

At the point that the debt was sold is when most people consider it to be "in collections." You exit collections by paying the debt.

</comment></comment><comment><USER21> A good portion of it might be with people simply forgetting to pay bills and/or not caring.

</comment><comment><USER22> This is result of QE. Cheep money doesn't solve problems.</comment>


Fungi Saved the World (2014) - <AUTHOR> http://feedthedatamonster.com/home/2014/7/11/how-fungi-saved-the-world <comment><USER2> >two glucose molecules make up sucrose, or table sugar

Sucrose is made from one glucose molecule and one fructose molecule. Two glucose molecules mostly commonly make maltose.

</comment><comment><USER3> Wouldn't the high oxygen concentration during that period have done something to counteract the carbon-sequestering effect of Carboniferous trees? I imagine the amount of wild-fires burning would have been significantly higher because of the high oxygen concentration, thus burning off a lot of the dead trees. One way or another the planet is going to maintain an equilibrium.

<comment><USER4> Maybe, but all evidence seems to point to the equilibrium being at a higher oxygen rate, cooler temperatures, etc.

<comment><USER5> From what I understand, the prevalence of enormous invertebrates in the fossil record points at a much higher oxygen percentage, since insect and arachnid respiratory systems aren't efficient enough to support bodies that large otherwise.

</comment></comment></comment><comment><USER6> Can someone recommend a good pop-sci book that summarizes all natural history? tx!

<comment><USER7> "A Short History of Nearly Everything" by Bill Bryson is really fantastic.

[https://www.amazon.com/Short-History-Nearly- Everything/dp/07...](https://www.amazon.com/Short-History-Nearly- Everything/dp/076790818X)

<comment><USER8> What makes ASHoNE so fantastic is it doesn't shy away from "science is messy; while there is a common quest for objective truth for the most part, it's incredibly convoluted, random, non-linear, and in any case polluted by our apish propensities".

That's what makes the book so relatable.

A fry cry for that worrying pop trend of "Science is so awesome, bro!" that's been picking up lately (which I find superficial and cringy to the point of being a cult).

<comment><USER9> The people who say "science is so awesome," are usually looking at NASA pictures and relatively long-known facts, in the tradition of Sagan's science pubicization. I've never seen a "science is so cool," meme about loop quantum gravity in 1D universes with the topology of a circle, or about a social sciences pilot studies. So, in that sense it's fine that they're leaving out the messy part; after all the entire point is to turn the messy into the clean.

</comment></comment></comment></comment><comment><USER10> i once found a piece of half wood half coal, it wasn't charcoal. I was young and we moved around a lot, so it got los</comment>


A custom quote written in the milky way - <AUTHOR> http://www.romanticsky.net

<comment><AUTHOR> Get a picture of a starry sky with an arc of milky way, an a quote written with stars</comment>


Making authenticated API calls to Twitter using PHP and JQuery - <AUTHOR> http://www.reynoldsftw.com/2009/02/authenticating-twitter-api-calls-with-php-and-jquery/

<comment><AUTHOR> Has anyone developed any interesting Twitter mashups out there?</comment>


When min-max is wrong - <AUTHOR> http://rjlipton.wordpress.com/2009/06/06/when-min-max-is-wrong/

<comment><USER2> If you convert the dollar amounts to the actual value that the players will experience, then the problem dissolves.

Adjusting for the marginal utility of dollars at various levels of wealth should make this whole problem a non-issue. Am I missing something?

<comment><USER3> I'm sure that losing $X, where X is large compared to your wealth, is generally a bigger event than gaining $X in terms of utility. But can't we always repeat the argument so that the game is fair when measured in utility?

<comment><USER2> Yes, but once you've done so the problem loses the property of having one set that is preferable to the others.

<comment><USER4> It's also generally impossible to make a non-trivial game both zero sum in dollars and zero sum in utility, when using a non-trivial dollar->utility conversion.

</comment></comment></comment></comment><comment><USER5> A little off-topic, but it's made my day seeing one of Lipton's posts on the front page.

It only started relatively recently and it's been a really good computational complexity blog so far.

<comment><USER6> Yeah, I have to agree. It does a wonderful job of doing very loving mini expositions on a whole slew of topics, and doing so at regular intervals!</comment></comment>