Not only is it possible to beat Google, it could happen sooner than we think - <AUTHOR> https://www.quora.com/Is-it-possible-to-beat-Google/answer/Mark-Nuzzolilo-II?share=1 <comment><USER2> Where do you start with this one? But okay, here goes:

1\. The post assumes that the search result quality is not good. This simply is not the case. Users say the search results are good. Could they be better? Sure. Are they terrible? No.

2\. The post assumes users want transparency on the search algorithm. This clearly is not the case. The whole reason that google became what it is today is because of the lack of clutter and good search results.

If you remember Altavista then you remember users constantly having to fidget with all these knobs in the advanced section to get relevant search results. Lycos, excite, etc weren't much better. I remember using Google for the first time and it just worked.

3\. The post assumes that users want deep customization. This again is not the case. Users want less clutter, less knobs, and a faster search experience. Google is delivering that.

4\. The post assumes that any startup with a better algorithm can beat google. However this is not the case. Google has deep search integration with mobile providers such as it's own Android OS and also iOS. it also has it's own browser (Chrome) and has paid deals with Mozilla. Obviously, both browsers default to Google when you type something in the search field.

Not to mention, the leading IOT devices all connect to Google to find results when it needs to search the web. And for safe measure, Google has come out with its own voice assistant device, Google home, to safe guard against any shenanigans from Apple's Siri and Amazon's Alexa that might happen in the future. It is heavily subsidizing the price to make sure it has a strong horse in the voice game.

Integration aside, it also has scale. It crawls most of the internet several times a day. That's no small feat and it is quite hard for a startup to just replicate that with funding. I mean, even that won't cut it.

Google is now even using machine learning to understand relevant pieces of information on a webpage so when you query it by typing on your keyboard, by voice, or future mind control it delivers the answer you were looking for.

The only valid point the post makes is that Google has squashed competition by buying any startup that remotely could threaten it's position...for safe measure. I'll give the author that.

<comment><USER3> (1) My impression from using Google is that it's really great for technical / scientific first page search results, but pretty horrible otherwise.

(3) No, I'm pretty sure users want more knobs or at least filter options. Hell, even a simple domain blacklist feature would be amazing so that I could get the woowoo psuedo science cruft -- which has been SEO'd to the front page -- out of my results, so I didn't have to put any mental effort into visually filtering out multiples from the same site. Hell, they could even collate results from the same domain into a single grid folder to optimize the time I spend searching through the search results.

Don't conflate Google's lack of innovation for an optimized experience simply because it's Google. I love Google, but there is a massive amount of improvement that can go into their search user interface. Same for every other search engine, but Google is the leader in this space, so they get the brunt of the criticism, and should they change, then others can follow suit.

<comment><USER4> > No, I'm pretty sure users want more knobs or at least filter options.

Nah, 90% either don't or wouldn't use them if they were there.

Sure, if you ask people directly if they want more options, they'll say yes, who doesn't want more choices? But that's a different thing from actually using them when they're available. The vast majority of users for a utility service like a search engine just go with the defaults.

<comment><USER5> I once had users begging me daily to implement 2FA, being so dramatic you'd think it was a principle they'd die for. It became a huge issue in the chat daily. How can we take this site seriously if there's no 2FA? We have no choice but to leave to <competitor> if you don't have 2FA!

Well, a year after we implemented 2FA, I queried the database for users with 2FA enabled, 3 people had it enabled.

Aside, only somewhat related to the previous story, the idea that users want a bunch of knobs and levers is just an example of the HN delusion where HNers regularly think they represent the population, like the person using the Lynx browser.

<comment><USER6> The person/people on the Linux browser are hilarious. Half the time when someone launches a new site and shows it to hn, they chime in complaining it doesn't work on lynx.

The first few times I saw it, I thought they must have been joking or trolling.

I don't even have time and budget to make my site work well on older versions of IE. It would be insanity to optimize for the 12 people that use lynx.

<comment><USER7> If your page isn't at least readable in Lynx, then it probably isn't readable by screenreaders or crawlers either. Lynx users aren't expecting pages to be "optimized" for them, but it's not unreasonable to expect text content to be accessible textually. All this whiz-bang JS frippery is shaping up to be Flash wesbites, round two; it was bad then, and it's bad now.

Even _Facebook_ used to work with Elinks (don't know if that's still true).

</comment></comment></comment></comment></comment></comment><comment><USER8> I suspected the author was dreaming when he said the lack of rich customization of the search algorithm is taking away from the end user experience. People don't want to learn about the intricacies of your search algorithm. You're assuming they care. All they want to do is type their question into the magical text box.

He also seems to not understand the value that search advertising provides. Search advertising is a win-win for businesses and consumers. If you see it as something parasitic that needs to be fixed, I can't take you seriously about "how Google will be beat".

Then I read the last sentence, quoted below. Sigh. Nothing serious here folks, carry on.

> I predict this will become more of a real possibility under decentralized > smart contract systems such as the Ethereum blockchain, where value exchange > itself can happen on a peer to peer basis (via a synergistic ecosystem of > content curators, content providers, and content consumers).

<comment><USER9> How is search advertising a win for consumers?

<comment><USER8> Consumers are often in a "buy mindset" when searching for something. The phrasing of their search query can indicate it. For example, someone search for "cheap office chair" most likely already has their CC in hand. It's a search query that belongs as much on Amazon or Craigslist as it does on Google. So when it's searched on Google, the idea is that the _market_ will provide more relevant results than an algorithm designed for ranking articles based around keywords and semantic equivalence of the content.

<comment><USER10> > So when it's searched on Google, the idea is that the market will provide > more relevant results than an algorithm designed for ranking articles based > around keywords and semantic equivalence of the content.

And the market does this in a relatively simple manner: by letting merchants bid on search keywords, and showing the site of the merchant with the highest bid, you force merchants to either lose money or be relevant.

In other words, the most relevant merchants to a search phrase will have the most money to bid up visibility for that phrase because they make the most money, on average, from users looking for this particular thing.

</comment></comment></comment></comment><comment><USER11> This was non-sensical...someone will compete with google because Blockchain? There's no issue with current payment models, you don't need a trustless peer to peer system to beat google, you need to significantly change the nature of what it is to search. If instead of finding q&a's on stack overflow an AI took my question, looked at my code, and answered / fixed it, that would be a game changer. Using a different UI than google? Has happened, will happen again, not really relevant (google itself has revved it's ui extensively).

<comment><AUTHOR> If you read through the rest of the comments here, you'll see these points were debated or addressed already.

<comment><USER5> You may have responded, but I can assure you they were not addressed.

</comment></comment></comment><comment><USER12> What are some business models that could support a user-oriented search interface? Probably not advertising, if ( _big if_ ) the new approach will return better search results than Google. Subscriptions have only worked for a few well-known services with exclusive content.

Would users be willing to learn a more powerful interface, if they consider current search engine results "good enough"?

Could Wikipedia or Archive.org address a subset of the search market, since they offer user-focused services? Archive.org already crawls a subset of the web.

<comment><USER13> Most people want the accessibility achieved through quick searches on their phones. The only users that would use a more powerful interface would be professionals. The professionals that would use it would be researchers, developers, and health practitioners.

<comment><USER12> I wonder what those professionals use today: google's advanced search interface, niche site search, social media search, libraries, paid services, bloomberg, lexis-nexis ..?

<comment><USER14> As far as I'm aware, in the Netherlands wrt health: specialised sites. Google is all WebMD or unverifiable claims, or just doesn't go in depth. So you check your UpToDate, or pubmed, your country's/specialization's current guidelines, farmacotherapeutisch kompas for medicine ([https://www.farmacotherapeutischkompas.nl/](https://www.farmacotherapeutischkompas.nl/) \- search for medicine and find dosage, interactions, etc). Google is often good enough for a reminder, but won't hold up for specific knowledge or minute details. So at most that Google the name of the service to search on there. Which is why I use ddg - if I know what website/information store I'm going to end up going to, I might as well use the !bang to go there directly. And you know which tools to look at because you're given them when you're studying.

</comment></comment></comment></comment><comment><USER15> As someone who tried to compete with Google in search, it strikes me that everything he brings up was also true, and well known, in 2007 when we started Blekko.

Cuil, SearchMe, and Blekko didn't fall into the UI trap that he outlines. None of us succeeded that well, but that's a different issue.

<comment><USER16> What happened to Blekko? If you don't mind about sharing the "different issue"!

<comment><USER15> Well, it's always hard to say why something didn't work, but we certainly tried a very different user interface with our Izik UI, in which ambiguous queries got up to 200 answers organized into categories.

<comment><AUTHOR> I'm curious as to how it failed. Did people use the site, and hate it? Did people join and then not return, or were those metrics unavailable? Were the operating costs abnormally high? Did the company receive a lot of users, but fail to receive enough revenue to cover even a normal amount of operating costs? Seems like one could narrow it down with the help of today's analytics tools.

I'm also curious if you have kept up with other web search technology efforts since then or whether you moved away to other things. There's definitely some things that don't add up.

</comment></comment></comment></comment><comment><USER17> To get people to switch the new solution needs to be 10x better. It's not clear how you could do this without Google's day network effects. Someone like SoftBank would have to go out and bets $10b on a search startup, but even then, Google is not going to be outsmarted by a new algorithm or interface. We'd need to move to a whole new mode of computing. Mobile has been the biggest threat yet.

</comment><comment><USER16> I switched to bing long time back and haven't felt any difference. They even copied google look and feel to great extend. I did it after google started showing more details in my search timeline than i wanted to see, with it's integration with gmail with which google started scanning my emails for ticket purchases, product orders etc and whenever i searched that product - it says you have purchased this product with order tracking number blah blah.

I am sure bing/msft also does everything they can to 'understand' me, but at least they don't see my browsing history or emails.

Now back to beating Google - I do believe it's possible, but Google will soon catchup with any potential competition. They will catchup because it's their bread and butter and they have perhaps the worlds biggest concentration of technical personnel. The best way to beat any product/company is to be considerably better than it in at least few areas, given the scale of web indexing, that is a very very tough job only few companies can pull through.

Microsoft has/had a good chance to beat Google, but Microsoft is considered a bigger evil/corporate than Google, so they have a slim chance to emotionally overcome Google, not to mention technical capability. But they can perhaps _open source_ bing in an effort to beat Google, provided they have the will and moolah to do so. When I mention open source, it's not the code, but the underlying search index, exposed as an API, free of use for anyone/any product. That will dramatically shift the emotion as well as the usage towards bing. I even mentioned this during an internal bing meetup event (I am part of a bing beta testers group), but of course no one listens.

A startup can also try to beat Google in their wildest dreams if they can associate themselves with the younger crowd like snapchat did and the younger crowd somehow finds it hip/cool to not use Google and use that service instead, and provided they get a decent web search data/index from established competition like bing or they manage to index themselves. These are few of the possibilities.

<comment><USER18> I don't know if the majority of consumers would care in the slightest about Microsoft making their index public. Maybe among certain crowds like this, but what would it gain us? I couldn't just send a PR to help _improve_ it; the only benefit I can see is transparency and perhaps a fun, maybe even useful visualization.

Also, the image of a "hip" Google competitor like Snapchat seems tremendously unappealing, personally.

<comment><USER16> > I don't know if the majority of consumers would care in the slightest about > Microsoft making their index public.

It's not just about consumers, but a plethora of other startups who can then use the index to build something creative on top of it. For e.g., you currently have bing/google customise certain type of websites with custom view for quicker access (IMDB, Wiki etc). However there is a limit a big company can be creatively about this.

Imagine a search engine where any user can submit a custom widget under a market place and consumer users can then install that as a plugin. For e.g., stock brokers can install stock widget, programmers can install document/stack overflow search and so on as a quick widget to see the top result without opening the link.. since it is community maintained, it will be proactively maintained by the community itself. That alone can topple something like Google if there is enough momentum (E.g. see VSCode overtaking Sublime text.) That is just one possibility. And it can also improve the search results as users may voluntarily come up to improve the result accuracy.

Other possibilities include voice based search, gesture search, integrated search within any mobile or smart watch app etc. With current licensing model, other startups have severe limitations in obtaining search results from the wast internet. This could explode and perhaps take over everything.

<comment><USER18> Ah, that makes much more sense now. You want to enable a community of plugins/widgets/apps built on top of the index. That's fascinating. I feel it would probably require some centralized base set of widgets similar to what Google already provides. That way the average user can just type "5 minute timer" without having to manually install the widget first. Quality/security outside that base set might be nightmarish. People put a _lot_ of stuff into search bars.

</comment></comment></comment></comment><comment><USER19> Is it possible? Absolutely but it won't last very long. Google would have learned from Yahoo's mistake. They will acquire a company if there is even a whiff of serious competition. Whether that better algorithm will end up in Google search is another matter.

</comment><comment><USER20> It feels like this Quora answer explains why Google is successful, but doesn't really discuss or provide any compelling evidence as to why the author thinks it's "becoming more and more likely to happen soon".

Also,

> I predict this will become more of a real possibility under decentralized > smart contract systems such as the Ethereum blockchain, where value exchange > itself can happen on a peer to peer basis

...

<comment><USER21> "Number of people who tipped the author for this content" could be a very interesting search signal. It costs you nothing to link to someone. It costs you money to tip them.

<comment><USER22> Yeah, but if it becomes known that that is a search signal, it effectively lets people purchase their way up the search rankings by paying other people to tip them. You'd have a much smaller pool of legit tips to overcome, because so few people pay for content, before you could become the most tipped article for any given topic.

<comment><USER23> You have just described paid advertising.

</comment></comment></comment></comment><comment><USER24> I have tried not to use Google, but I always come back.

Results from Altavista, Bing and DuckDuckGo are so much worse.

Note, it's not that Google has personal information on me. I'm not logged in, my cache is cleared, I use a VPN and google.com/ncr when it was available. Not sure how they do it. Perhaps their tracker sees how long people have visited a page and then they give those pages higher priority.

Perhaps other search engines can do a better job, but they had over a decade to improve their results and they are still far off.

<comment><USER25> In my experience, the main-difference between Google and other search engines, aside from personalized results, is that Google tries very hard to interpret your query.

For example, if you search for some programming topic, it will generally pull results more towards the top, if they reference the current or a recent version of whatever programming language/tool you're searching for.

That helps, if you just want to type in "how do i do this? [programming language]" or similar.

In other search engines, you'll instead first search "how do i do this? [programming language]", then possibly not really get any good results and then instead search for "how do i do this? [programming language] [current version]".

This is how Google worked as well, some few years ago. Knowing what keywords to type in to get the right results was an actually valuable skill ("Google- fu"). Today's Google is instead designed to minimize the need for skill in phrasing your query. Great for the average user, but in my experience, if you do still possess Google-fu, then this interpretation actually hinders you.

With other search engines, you get the results that your query asked for. You know immediately when your query was ambiguous or just bad and can adjust accordingly. And with that, you can more easily narrow down the results, given that you know how to narrow down the results.

So, maybe give other search engines another try, while keeping that in mind. I personally very much prefer other search engines, because of that, even if I sometimes have to type one word more.

</comment></comment><comment><USER26> When I'm doing an online search and the top results are from quora I know I'll be disappointed. The result will be on topic but the information will be the same kind of one person's faulty rambling kind of thing seen in this post here. There is somewhat good content on Quora, it varies, but it seems to be way more miss than hits. Information from Quora is usually about as good as a hit from some old PHPBulletin forum.

<comment><AUTHOR> [https://en.wikipedia.org/wiki/Confirmation_bias](https://en.wikipedia.org/wiki/Confirmation_bias)

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

[https://en.wikipedia.org/wiki/Out- group_homogeneity](https://en.wikipedia.org/wiki/Out-group_homogeneity)

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

<comment><USER5> I can imagine you smiling smugly and whispering "checkmate" as you submitted an obnoxious comment of wikipedia urls.

Doesn't surprise me coming from the sort of person who submits their own Quora ramblings to HN.

<comment><AUTHOR> I tend to respond obnoxiously to comments that are themselves obnoxious. If you check my history on both Quora and HN, you'd see that I am much more active on HN than I am on Quora. I tend to use whatever medium gets the job done. Best tool for the job and all. When you actually start submitting things at all to HN, send me a message so that I can learn from the best as to what the "proper way" to do things are.

The post got a lot of views, so I would call that a success. Not sure what point you were trying to make there.

</comment></comment></comment></comment><comment><USER27> Yahoo tried to compete with Google. Yahoo was first with "vertical search", about fifty special purpose question-answerers for weather, sports, celebrities, etc. Then Google copied that. Yahoo switched to reselling Bing, and gradually became irrelevant.

Cuil tried to compete with Google. Their idea was that their system was an order of magnitude cheaper to run than Google's. But they never developed a revenue model. Cuil went bust.

I tried a system which trimmed most of the ads out of Google result pages. That got very little use.

Google does have search customization. It learns from your queries what you ask about. At least if you're logged in, and possibly if you keep the same IP address.

Google is already moving past search to question-answering. They're not very good at that yet, but they're getting better.

</comment><comment><USER28> I believe not; there is no need unless their ads become too intrusive. When we have issues with a technical issue in China, I start the VPN and search with Google. What takes my Chinese colleagues a lot of time, is immediately found in Google, even for vague components. Specsheets they did not receive are easily found on Google but not on the engines they have. It is not that we cannot think up a better Google, but I believe that means better NLP, not a better backend. Google would destroy anything that comes close, simply because it will be something they can bolt on in no time and then they have the data, money and infra.

</comment><comment><USER29> I have ditched google in favor of Searx, a metasearch engine that anyone can host

[https://asciimoo.github.io/searx/](https://asciimoo.github.io/searx/)

[https://searx.me/](https://searx.me/)

[https://github.com/asciimoo/searx/wiki/Searx- instances](https://github.com/asciimoo/searx/wiki/Searx-instances)

</comment><comment><USER30> The Language Council of Sweden was adding the word "ogooglebar" to the Swedish dictionary during 2012/2013 with Google with great force and success stopped that from happening.

When searching for answers which Google has no answer for the answer should be "this is ogooglebar". So you don't have to spend hours trying to refactoring your query for hours. This would be a great improvement and a great user experience.

This is Google's akilles heel - never able to admit that they don't know.

</comment><comment><USER31> There is nothing that can't be "beaten" through research and technology.

I mean, someday, we will be encasing entire stars in artificial shells and creating black holes of our own. What's a single corporate entity that managed to get a lead in barely the first stages of a relatively new industry?*

How about incorporating search tech into web servers themselves? Move it to the level of DNS And other core protocols. Make individual servers automatically index all content that passes through them. They could then populate special caching servers with the indexes and results. When a user searches for something, the query gets sent to successive search-cache servers, kinda like a DNS lookup, until match is found or up to a browser- specified depth.

—

* People generally did not care much about search engines at the beginning; they usually just had a small list of sites in their memory or bookmarks that they visited regularly, and found others through magazines, links or word-of-mouth. Search engines were merely a hit-or-miss convenience, often used for porn or "wares" I'd wager, then that convenience emerged to become the core way of discovering and interacting with the internet.

Does anyone here remember the point when they "switched" to using Google? I personally can't recall myself ever doing that. I think it just happened casually, through a browser that defaulted to Google. I remember thinking how ugly Google's UI was, and preferred other engines for their "looks." But at someone point, Googling just became faster than any other way to get to what I felt like looking up.

For now, I do wish browsers would start offering Wikipedia as an option for the default search. :)

<comment><USER32> > For now, I do wish browsers would start offering Wikipedia as an option for > the default search. :)

Try Firefox: it's right there in about:preferences#search. :)

</comment></comment><comment><USER33> I don't think Google search will be beaten. I think the whole current concept of search by going to specific URL/app, seeing a list of search result will become obsolete. We are already seeing that with voice based UI where you want an answer not a list of pages. The second part will be that lot of stuff that you care about will be known by google/Alexa and will be readily available so no need of searching. This also is already happening with google launcher on android where things like news and score about my favourite teams, travel times to airport or workplaces being shown nearing the time of travel along with routes so I don't have to search for any of these. This can be further integrated with a cab being available just when you need to leave. All of these earlier would have involved some kind of searches.

iMho this will be the natural progression. So if you are creating a better google search please stop you will be out of business before you start. This is no longer about standalone search but a larger ecosystem around the information needs.

</comment><comment><USER34> I've been thinking for a while that a conversational search engine is the next iteration of search. If you query a human expert, you don't expect the correct answer immediately - it comes by filtering out possible answers with subsequent clarifying queries. The next gen search engine should be this way.

<comment><USER35> I just add another word to the original query and hit return.

<comment><USER34> Let's say you're reading this research paper: [https://arxiv.org/pdf/1703.05407.pdf](https://arxiv.org/pdf/1703.05407.pdf)

I want to know: "In Rob Fergus' paper intrinsic motivation and self-play, how is it that the reward for agent A can be based on the time taken for agent B's task, when agent A and B are run sequentially, and agent B runs after agent A?"

Can Google answer this? No. Is NLP smart enough to answer this? Probably not. But the question itself is hard to write in one sentence. Complex queries are best structured as conversations, with clarifying back and forth, Socratic method style, like if you're asking a professor a question about hard science.

<comment><AUTHOR> Funny enough, I once was on a team that was working on this exact technology. Sadly the company was dysfunctional beyond redemption.

</comment></comment></comment></comment><comment><USER36> I switched to DuckDuckGo - it isn't as good as google, but it is 90% of what I need. For the rest I have to slightly tweak my search criteria - but that is not a bad thing because it forces me to use my little gray cells.

YouTube and Gmail substitutes and then I am Google free.

<comment><USER37> What do you use for maps?

<comment><USER25> [https://www.openstreetmap.org/](https://www.openstreetmap.org/)

</comment></comment></comment><comment> oh-kumudo So no evidence is offered, only imagination.

</comment><comment><USER38> Google will inevitably become a blundering bureaucracy like every behemoth before it. The inevitable corporate politics will cause it to crumble from within. My bet is Chinese companies will outmaneuver Google outside western markets (US and EU). Also, Google is primarily an ad display company. Global marketing firms should support competitors to blunt Google's dominance, especially outside the US. Finally, the EU will declare Google a monopoly. All this will take a long time though, just like Microsoft.

</comment><comment><USER39> A better search could be made and likely is out there already, but one sums it up best. How often do your peers use Yahoo? Still, the company gets enough hits to be worth billions. Part of that is a global market, Yahoo is big in Japan supposedly, but part of it is your Uncle having made his decision pre- dotcom crash.</comment>


Ask HN: Good books on scalability - aman-pro Is there any good book that talks about scalable web application? By scalability I mean not just scaling in terms of infrastructure but also design.
We want to build something similar to JIRA that will allow it's users to make things as configurable as possible. Also, it's important to allow 3rd party developers to develop things on top of our platform.
I'm looking for some books or resources that can help us build a perfectly modular and scalable/extendable codebase. <comment><AUTHOR> In terms of software design, I found that Designing Data Intensive Applications to be very informative, I am going to give it another read next year. It cites a lot of references at the end of every chapter for the reader to explore the various topics further.</comment>


Students put AccuWeather long-range forecasts to the test - <AUTHOR> http://www.washingtonpost.com/blogs/capital-weather-gang/wp/2013/12/26/students-put-accuweather-long-range-forecasts-to-the-test/

<comment><USER2> Interesting. For folks not familiar, AccuWeather is a State College, PA corporation which not coincidentally is where Penn State is located as well. The owner of AccuWeather (Joel Myers) is also a member of the Penn State Board of Trustees (and has been for way too many years according to some people).

I'll also mention that Joel Myers has several times gotten members of Congress from PA to sponsor legislation to eliminate the National Weather Service (can't imagine why).

The author who is currently on the Penn State faculty was formerly an on air presenter with the Weather Channel, a competitor of Accuweather.

Not sure this has anything to do with Accuweather long range forcasting prowess but context is always a good thing when one is analyzing with a skeptical eye.

The article itself is very interesting and shows that outside of 2 weeks or so, predictions are not very accurate but within 2 weeks close to climate weather modeling results.</comment>


Show HN: [video] Does this look like your marketing team? - <AUTHOR> https://www.youtube.com/watch?v=VP9vo9-NNo0 <comment><AUTHOR> Would love to know what HN thinks of the video itself and the product idea too!</comment>


Functional Programming in 5 Minutes - <AUTHOR> http://slid.es/gsklee/functional-programming-in-5-minutes <comment><USER2> As a still-learning programmer, can someone point me towards the ELIF (Explain Like I'm Five) version of this? Some of the first questions that enter my mind after reading this intro --

Why is this relevant? Why do we as programmers want to know about pure functional programming? What are its advantages? What's the point? This seems to add complexity. Etc.

I know there are good answers to these, but this intro has done little more than whet my appetite a bit...

<comment><USER3> When you say "add complexity", I think you mean "add difficulty". Because for example, a language that has _only_ one-argument functions, and builds multi- arg functions on top is a simpler one than one that has multi-arg functions built-in.

Simplicity is hard -- and pure functional programming is a lot about simplicity, which does make it hard -- hard to learn, and hard to figure out how to tackle various problems.

But the simplicity has many rewards. Mathematical simplicity makes a lot of mathematical deductions tractable -- this is what is typically referred to as "ease of reasoning" about code.

Referential transparency adds a whole lot of ease to the reasoning process.

The pure functional approach also means that type safety goes much further. If you forget to hook up your functions together properly (forget an input, ignore an output) you're likely to get warnings/errors. In the imperative approach, if you forget a side-effecting statement that adds another input to some code, the compiler cannot help you.

Imagine testing -- imperative code requires tests to build up a mock world as input for the code, and then inspect the mock world that results as an output from the code.

Testing a referentially transparent function requires just calling it with differing inputs. It makes property-testing possible, too!

Imagine composition -- pure function composition of two functions composes the meanings of those functions. If those two functions work, so will the composed one.

Try to combine two pieces of imperative code -- that's not necessarily true at all, one might mutate data that's in use by the other. Aliasing issues may arise, etc.

So functional code is easier to reason about, more composable, easier to test, and gets more safety from type checking. It is harder to learn to use, and harder to figure out how to use it to solve certain problems. With time, however, more and more problems yield to the pure functional programming approaches.

<comment> a-nikolaev I would like to add that recursive calls can be nicer than loops, when multiple conditions or branching are possible in the loop body.

An equivalent implementation with while loops, if conditions, continues, and breaks are usually harder to design correctly than a good recursive function.

Functional programming encourages use of small simple datatypes. Tuples instead of small structs. Lists instead of more complex container types. First-class functions instead of classes.

However, IMO 'purity' is a bit of a buzzword when applied to functional programming. You may disagree, but that's how I feel about it..

<comment><USER4> > I would like to add that recursive calls can be nicer than loops

Having a good library of higher-order functions that encapsulate common recursion patterns is a lot nicer than doing recursion by hand, or having to read code where someone did recursion by hand and you have to not only figure out how the recursion works, but whether the author did anything wrong.

Higher-order functions are control structures, and we should encourage their use for all the same reasons we encourage the use of while loops in preference to people building their loop structures by hand out of gotos and conditional gotos.

<comment><USER5> As another nice effect, higher-order functions (or as we call them in their use as control structures: combinators) unify data structure and control structures. E.g. folding over a list is equivalent to various loops, the Monad instance of Maybe represents simple exception handling, trees and their traversal are identifiable in some sense, etc.

At least in lazy, statically typed functional languages, like e.g. Haskell.

</comment></comment></comment></comment></comment><comment><USER6> Not a very good intro to functional programming or currying mostly because it never explains WHY you would ever want to use currying.

<comment><USER7> The answer is that currying reduces the cost of breaking apart and combining functions on their arguments, two things that are done frequently in functional programming.

Currying allows functions to be broken apart ("specialized") on certain arguments for virtually free because specialization and normal function application, in effect, become the same thing.

Consider Haskell's _map_ function for example:

        map :: (a -> b) -> [a] -> b

You can specialize it into a function that adds one to every element in a list by simply applying it to its first argument:

        incList = map (+1)

Currying also reduces the cost of combining functions by allowing any function that returns a function to have the returned function applied to any following arguments directly, without need of intervening syntax. For example, _flip_ modifies a function of two arguments (or more, thanks to currying) to receive its first two arguments in "flipped" order, the second first and the first second:

        flip :: (a -> b -> c) -> (b -> a -> c)

To flip _map_'s arguments, I don't need to write

        let flipMap = flip map in flipMap [1,2,3] (+1)

but, thanks to currying, can simply write

        flip map [1,2,3] (+1)

The value of these tools, however, is not to be able to write complete calls like those in my examples above but to quickly assemble from simple functions the exact functions needed to solve the problems at hand, usually by feeding those functions into the higher-order functions found in libraries.

In sum, currying makes some of the most frequently done things in functional programming virtually free.

</comment></comment><comment><USER8> That slid.es presentations are really pretty. It seems it's from <http://hakim.se/> , You may remember his experiments here <http://www.hakim.se/experiments> .

<comment><USER9> I really love Hakim's work. I've been looking for a way to integrate his Avgrund modal interface into some of my projects <http://lab.hakim.se/avgrund/>

</comment></comment><comment> peter-fogg I think the title is a bit misleading. Perhaps "a quick explanation of one common feature of functional languages in five minutes" would be more appropriate?

</comment><comment><USER10> It would have been great to have a real world example when currying/uncurrying would have been useful.

</comment><comment><USER11> He lost me here:

function g(h) { return function(y) { return h(h(y)); }; }

81 === g(function(x) { return x * x; })(3);

Specifically, why is this allowed and where can I go read about it?

return h(h(y));

<comment><USER12> Could you be a bit more specific as to what you find confusing? Is it:

\- That you can use the name of a variable, h, as if it was a function? That's because Javascript has first class functions [1] - the language is defined to support passing them around as variables and calling them like that.

\- That you can use h at all even though it's neither a local variable nor a parameter of the anonymous function? That's because functions in javascript aren't simply procedures in the traditional sense - i.e. description (function signature) + code - they are also closures [2]. If you declare one function inside another, it can capture (have a reference to) variables and parameters of the outer one. You are also guaranteed that local variables and parameters will not get cleaned up while a closure still exists that holds a reference to them.

[1] : <http://en.wikipedia.org/wiki/First_class_function>

[2] : Can't vouch for any particular article, try googling Javascript closures

<comment><USER13> OOOOOOh, ok I see how this is working a bit, I think. I am very inexperienced with Javascript, and I think I only just "got" what was being done here, so I'll try to explain my thought processes as a newbie:

So, in Javascript, variables can be functions. Which means you can pass in a function as a variable to another function. And the part that says h(h(y)), basically says that "h" has to be a function. Which means you pass in a function, and then it get's applied to itself in the way specified within that function, "g".

Another odd part is the function you pass in:

        g(function(x) {
            return x * x;
        })(3);

because you are passing in a function, but I'd assumed that if you can only pass in one variable, and that variable has to be a function, then it seemed like you wouldn't be able to pass in an initial value for the function you want to apply. But I guess in Javascript you can pass in a value for an anonymous function defined inside a function call by using this syntax:

        g(function(x) {
            whatever it is that happens in this function;
        })(some_value_to_be_passed_into_the_previously_defined_anonymous_function);

<comment><USER14> `g(f)` returns a function, which is then immediately called with another value. You're passing `3` to the result of `g`, not to the function you passed to `g`.

<comment><USER13> Ah, I see, that makes sense. Thanks for the explanation.

</comment></comment></comment></comment></comment><comment><USER15> It never occurred to me to try some currying in CoffeeScript, but man this looks expressive:

      f = (x) -> (y) -> x + y
      g = f 6

<comment><USER16> For comparison, here's the same thing in Haskell

        f = \x -> \y -> x + y
        g = f 6

with the added bonus of automatic documentation

        ghci> :t f
        f :: Integer -> Integer -> Integer
        ghci> :t g
        g :: Integer -> Integer
        ghci> :t uncurry f
        uncurry f :: (Integer, Integer) -> Integer

<comment><USER17> You don't actually need the second lambda since all Haskell functions take one argument, so you can just do

      f = \x y -> x + y

and you'll have an implicit lambda before the y.

<comment><USER16> Yes, but that has an obvious lack of syntactic parallelism, one especially important when talking about currying since you might be tempted to relate that to the coffee script

        (X, y) -> x+y

It also has a subtly different performance characteristic in GHC, it turns out. Same semantics though.

</comment></comment></comment></comment><comment><USER18> This is a really excellent presentation. It got me to finally make the connection between currying and closures - I think that was the missing awesome piece I was missing for really understanding the importance of closures.

</comment><comment><USER19> IMO currying is a bit advance idea for non-functional programmers. If I were to explain functional programming in 5 min, I would start from Functions and Values.

In FP, there is no difference between a Function and a Value. A function can be defined without a name. You can say every thing is a function & a function takes an input and after performing its magic (calculations), it must return you an output. All values are also functions. So technically there is no difference between x = 2 and x = function(){....}.

Now when you realize that all values are also functions or all functions are also values, you can pass functions inside other functions. Typically in imperative programming your functions only accepts values (like integers, strings etc.) and returns you values. But in FP you can pass functions inside other functions and you can return functions from functions.

Lets define a function doSomething(input){ return input } . Now you can call it by passing x where x could be a value or a function.

y = doSomething(x)

Now if x = function(){ ..} or x = 2, it really doesn't matter for doSomething because doSomething crunches an input and returns it.

By learning this technique, you can do lot of "interesting things". And Currying is one of those "interesting things". Every thing in FP really boils down to functions/values. 5 mins are over now.

</comment><comment><USER20> Currying is stupid. It's more complicated and less flexible than just explicitly defining a new function. For example, try to do this with currying:

        var x = function(a,b,c){ return   a - b * c };
        var y = function(a,b)  { return x(a,  b,  5) };

Also, currying is married to positional arguments. What if you're trying to use keyword arguments? Can you curry this?

        var x = function(params) {
            return params.top - params.bottom;
        }

</comment><comment><USER21> If you're like me, this was a little odd:

function g(x) { return function(y) { return x + y; }; }

f(1, 2) === g(1)(2);

How does this work? Since the function g is itself also returning a function, the call g(x) is itself literally another function address (if you will) awaiting an additional parameter with an invisible (y) on the end.

I have been dabbling in functional programming for a short while now, but this one took me completely by surprise. I had no idea JS would pass a function like that.

<comment><USER20> The way functions work in JavaScript is awesome. Just think of a function as another value a variable can have. This might be more clear if we wrote it as:

        var g = function(x){
            var f = function(y){
                return x + y;
            }
            return f;
        }

Also because of the magic of Lexical Scoping, the new function f holds onto a reference to the variable x that it saw when it was created. If you run var myfunction = g(5), you effectively get this:

        var myfunction = function(y) { return 5 + y }

</comment></comment><comment><USER22> Nice overview for 5 minutes, but you will need a lot more to really understand functional programming

<comment><USER23> Look no further: <http://learnyouahaskell.com/>

[http://learnyouahaskell.com/higher-order- functions#curried-f...](http://learnyouahaskell.com/higher-order- functions#curried-functions)

</comment></comment><comment><USER24> this is great! (both because of content and presentation tool)

so why is there a limitation of just one argument? since lambda expressions can receive multiple arguments, and simply resolve them in order, why can't functional programming do the same? is this just a stylistic thing?

<comment><USER16> Because lambda expressions of just one argument are the simplest possible thing that works.

One of the neat things you learn if you start playing with lambda expressions in languages with algebraic data types is that multiple argument functions are modeled perfectly as functions which take single, tuple-typed arguments.

        f :: (Int, Int) -> Int
        f = \(a, b) -> a + b

        ghci> :t curry f
        curry f :: Int -> Int -> Int

        ghci> f(3,2)
        5

So, if you let your lambdas be as simple as possible then you naturally get "multi-argument lambdas" as the combination of tuples and lambdas.

</comment></comment><comment><USER25> Here's another fun walkthrough that was posted here a little while ago. <http://stevelosh.com/blog/2013/03/list-out-of-lambda/>

</comment><comment><USER26> As I'm already familiar with currying, the highlight of this slideshow had to be the slideshow. That is a pretty slideshow!

That said. Looks like they hold your slides hostage if you don't pay. Scary.

<comment><USER27> Nah, the presentation framework is open source (<http://github.com/hakimel/reveal.js>) and we provide an export option that lets you easily get the HTML contents out for migration.

<comment><USER26> Super cool!!

I have a habit of assuming bad faith whenever money is involved, but looking at your pricing information, you're really just charging for a service...

and oh god, look at that mark up.

      <section data-markdown>
        <script type="text/template">
          ## Markdown support

          For those of you who like that sort of thing.
          Instructions and a bit more info available [here]
          (https://github.com/hakimel/reveal.js#markdown).

          ```
          <section data-markdown>
            ## Markdown support

            For those of you who like that sort of thing.
            Instructions and a bit more info available [here]
            (https://github.com/hakimel/reveal.js#markdown).
          </section>
          ```
        </script>
      </section>

That's cool.

</comment></comment></comment><comment><USER28> Can someone explain to me like a child what makes JavaScript more "functional" than any of the many, many, many other languages that offer anonymous code blocks? kthnx.

<comment><USER14> I suspect that the audience for these slides is Javascript programmers, which is why JS is heavily emphasized.

I think lambda functions is the only truly FP feature Javascript provides, but it's so darn useful that it really should be emphasized. Lately, I can't stand writing in languages that don't provide lambda functions (like PHP pre-5.3, or current Java), so at least Javascript has that going for it.

</comment></comment><comment><USER29> This gave me an AHA! moment. I really like it when tutorials can do that. Thanks gsklee, I'll be keeping an eye on you ;)

<comment><AUTHOR> Thanks! ;)

</comment></comment><comment><USER30> Not enough for an epiphany, but enough to try until understanding occurs. Not bad for <5 minutes!

</comment><comment><USER31> OT: this slid.es presentations are even on Mobile Safari so butter smooth like native apps.

</comment><comment><USER32> Want to learn functionnal programming , just download GCL

<http://www.cs.utexas.edu/users/novak/gclwin.html>

check out a few Lisp tutorials on Youtube and you good to go. Dont try to apply fuctionnal principles to procedural languages , if you are a beginner.

Using Lisp will force you to do and understand functionnal programming. And frankly , Lisp is a lot of fun and easy to start with. Dont be afraid by all these nasty (()) and weird (+ 4 5) operations , it will make sense quite fast.

something like

        (defun add(a b)
            (+ a b))

        (add 4 5)

is actually easy to understand , isnt it ?

<comment><USER3> I don't think CL is a particularly functional language. It is not much more functional than say, Python.

<comment><USER32> So what would you qualify as a "pure" functional language ? does python has tail recursion optimization ? ( it is a question ).

<comment><USER17> Python implementations do not have tail call optimization but that doesn't really have anything to do with functional programming.

Common Lisp has mutable data structures by default and actually I think one of the most elegant parts of CL is the setf macro [http://www.lispworks.com/documentation/HyperSpec/Body/m_setf...](http://www.lispworks.com/documentation/HyperSpec/Body/m_setf_.htm), which is a very clean interface to changing state.

The best functional lisps to use right now would be Clojure and Racket. They both use immutable data structures by default, though neither is "pure". Clojure if you want all the good JVM bits and maybe actually convincing your manager to use it and Racket if you just want to learn using a language that's more beginner-friendly (<http://htdp.org/> and the DrRacket IDE) or (mostly) compatible with Scheme (SICP, Little Schemer, etc.).

I've found there aren't really any widely used purely functional languages out there except Haskell (which needs it due to laziness).

<comment><USER33> Purity is a false idol. CL is a functional programming llanguage. Functional as in programming with functions. Maintenance of referential transparency is the duty of the programmer. As long as you have HOFs and some form of lexical closure as basic language features, you can call a language functional. tail- call optimization, default immutability, automated structure cloning, parameteric datatypes, default currying and h-m type inference are language features that make mathematical reasoning easier, but they are neither essential nor definitive requirements of a functional programming language.

<comment><USER3> Then python is also a functional language just like cl. Except no-one calls python a functional language, and everyone seems to call cl a functional language.</comment></comment></comment></comment></comment></comment>


Hybrid Memory Cube is 15x faster and 70% greener than DDR3 - <AUTHOR> http://www.hybridmemorycube.org/technology.html

<comment><USER2> That's a disgusting amount of marketing hype. I wonder what the reality is.

If it's for real, let some independents play with a prototype and it will sell itself.

</comment><comment><USER3> Will make caching in HM EC2 instances easier - if they work as well as stated - just stack a few of these puppies together and you could run your DB entirely in memory :D</comment>


Assange criticises unauthorised Wikileaks memoir - <AUTHOR> http://www.bbc.co.uk/news/uk-15014133

<comment><USER2> I can't feel too much pity for Mr Assange here.

You'll notice he never said that the publisher had no authority to do this release - because you can guarantee that they do. Julian is hardly the first author they'll have had bail out after an advance check has been cashed, and their contract will allow them to recoup the costs any way they see fit, including releasing drafts as is, sending the manuscript to (another) ghost writer, etc.

If he is actually innocent, then it sucks that all this money is being channeled to lawyers. But even that is of his own doing. I'm relatively certain that, had he stayed in Sweden and let the legal system run its course, his legal bills would be orders of magnitude smaller - though of course there would be the possibility that he would be found guilty. Instead he chose to flee the country, and his exorbitant costs are due to the fact that he's not now in a Swedish courtroom with an attorney defending sexual assault charges, but in the English High Court with a team of QCs and SCs specializing in constitutional and human rights law defending an extradition request, so as to deny him the ability to avoid justice, and to deny his accusers the right to have their claims heard.

</comment><comment><USER3> So... it's not ok when it's about his organization.. <http://en.wikipedia.org/wiki/Hypocrisy></comment>


Static energy consumption analysis of LLVM IR programs - <AUTHOR> http://arxiv.org/abs/1405.4565

<comment><USER2> How can they do this for IR? Wouldn't the actual hardware make a difference in power usage?

<comment><USER3> The two main inputs to their model are the IR and the ISA.

</comment></comment><comment><USER4> See also: Wattch[1], a similar framework based on a similar idea. Wattch relies on simulation of the target rather than static analysis, however, but the application of instruction-level cost models seems the same.

[1] : [http://www.eecs.harvard.edu/~dbrooks/isca2000.pdf](http://www.eecs.harvard.edu/~dbrooks/isca2000.pdf)

</comment><comment><USER5> Can they answer the question "Which architecture is most efficient?"

<comment><USER6> Nope, the ISA power model is an input to their work.

And on the underlying question, there's been recent academic work on this, e.g. in [1]. Common wisdom these days (among many people at least) is that the architecture (ISA) doesn't matter too much w.r.t. power, as compared to the microarchitecture. The reason is that modern implementations translate whatever quirks exist in the ISA into a fairly uniform set of underlying micro-ops; an out-of-order superscalar implementation of x86 and ARM will look pretty similar. (Go read Bob Colwell's book on P6/Pentium Pro, the first out- of-order x86, for some more insight on this.)

The conflation of ARM/low-power and x86/high-power is a historical thing: x86 started on desktops and moved downward, while ARM started in embedded systems and moved upward. It's becoming less true as each heads toward the same target (mobile). Remaining differences in efficiency are mostly functions of implementation choices and engineering quality.

Big disclaimer: I worked at Intel after doing grad school in computer architecture, so I may be slightly biased. :-)

[1] E. Blem et al. "Power struggles: Revisiting the RISC vs. CISC debate on Contemporary ARM and x86 Architectures." In HPCA-19, 2013.

<comment><USER7> Nit: ARM was originally developed for desktops as well, but very price constrained ones, and the story as I remember reading was that they couldn't afford the cost of a ceramic package. So they were very careful about power dissipation, and when the first silicon came back, they found it consumed 1/10 of their design goal.

The low cost and low power made it a natural for lots of embedded designs following that.

</comment></comment></comment><comment><USER8> > Using these techniques we can automatically infer an approximate upper bound > of the energy consumed when running a function under different platforms, > using different compilers - without the need of actually running it.

Wouldn't a necessary first step be to solve the Halting Problem?

Sorry, I haven't read the actual paper.

<comment><USER9> Determining the runtime bounds of a function is also undecidable.[1] That doesn't mean that we can't do it in practice for the things we're interested in.

[1] [https://cstheory.stackexchange.com/questions/5004/are- runtim...](https://cstheory.stackexchange.com/questions/5004/are-runtime- bounds-in-p-decidable-answer-no)</comment></comment>


How VCs get paid - <AUTHOR> http://jtangovc.com/how-vcs-are-paid/ <comment><USER2> This was a surprisingly interesting article.

The 2-and-20 structure is well known, but the management company details were fresh for me.

</comment><comment><USER3> Very interesting.

But this:

"First, the Chief Partner cannot be fired without his/her consent. Every other partner at a VC firm can be, including the ones who have worked hard to earn pieces of the management company. So, a partner at a venture firm is usually an employee-at-will. They can be fired at any time."

and this:

"I want to point out that this type of ownership structure is usually the norm in other asset classes."

But then they do it this way (edit: pitched as "why we are better for you"):

"when Eric joined the management company, he received his shares for free. So, we are equal partners and equal owners."

What is lacking here is some data highlighting how typical the practice is of partners being able to be fired "at will" edit: and how many firms deviate from the practice of "every other partner can be fired". How often does that happen? The OP points out that they don't do it that way (at least not with the two partners mentioned). So what percentage of VC firms operate in a similar way?

Also, how typical is it even if it is this way for a partner to get fired because business is bad? If you were from Mars and learned about speed limits you would think you get a ticket for going 56 mph in a 55 zone. But of course that is accepted to be a rare event.

<comment><USER2> It's possible that overt firing may be rare, but what would amount to constructive termination wouldn't be (I assume all you have to do to constructively terminate a VC partner is to veto their deals at partner meetings); I've talked to VCs who left larger funds to start their own, and perhaps stuff like that is why.

<comment><USER3> Until reading this, and assuming true, I was always impressed with someone who was a "partner" at a VC firm. Thinking of it similar to being a partner at a better law firm vs. an associate. Associates leave if they don't make partner (used to be 7 years but that has changed obviously).

(I mean I was probably 10 when I found out that at a bank everyone is a Vice President.)

</comment></comment></comment><comment><USER4> Considering that finance types frown upon founders having monopoly control of their companies, why would LP's agree to this sort of structure?

<comment><USER5> Two reasons LPs do this:

1\. Investing in the best funds is competitive for LPs. Top funds often have more demand for investment than the fund will accept, so the partners have greater leverage to dictate terms. It's like an entrepreneur having multiple term sheets.

2\. The big bucks come from fund returns, not management fees. In this sense, LPs and partners are highly aligned, since 80% of those returns go to LPs (assuming a 20% carried interest fee - obviously this varies by fund).

<comment><USER2> Wait, didn't Kauffman suggest that many funds were getting most of their returns from fees? That the fee structure was encouraging the creation of huge funds so that partners could profit from those fees, despite the fact that larger funds are harder to invest well? That most funds are underperforming the market?

Kauffman's portfolio included Bessemer, Benchmark, and General Atlantic, among others. They weren't talking about shady funds.

If you really are expecting to get a giant locked-in chunk of your return from fees, than the interests of partners and the "chief partner" are not necessarily aligned.

<comment><USER5> No, Kauffman simply said returns were lower for big funds and generally higher for small funds. But it doesn't really matter - most funds actually pay management fees back to LPs before they're allowed to generate carried interest.

For example, if a fund earns $10M in management fees, it would pay back that $10M from the first returns generated by the fund. Then, only after getting "breaking even," would the partners earn carried interest. If the fund doesn't hit that watermark, it loses money for investors.

There are exceptions, though most of the industry has moved this way.

For those who haven't read the report, it's here: [http://www.kauffman.org/uploadedFiles/vc-enemy-is-us- report....](http://www.kauffman.org/uploadedFiles/vc-enemy-is-us-report.pdf)

Personally, I don't put much weight into it. It's conclusions are heavily skewed by the decade after 2000, which destroyed returns for most investing asset classes. (Despite the report's claims that it covers "20 years" of funds, most charts and examples, esp about mega funds, are recent).

<comment><USER2> Thanks. I had been reading political crud about PE firms and re-skimmed the Kauffman thing looking for confirmation.

</comment></comment></comment></comment></comment><comment><USER6> As an interesting aside, I'm pretty sure the technique used in this related post: [1] is how the press figured out that Romney was involved in Bain Capital after his supposed departure in 1999.[2]

[1] [http://jtangovc.com/vc-economics-and-control-unveiled-on- the...](http://jtangovc.com/vc-economics-and-control-unveiled-on-the-web/) [2] [http://www.latimes.com/news/opinion/opinion-la/la-ol-mitt- ro...](http://www.latimes.com/news/opinion/opinion-la/la-ol-mitt-romney-bain- capital-departure-date-tempest-20120713,0,6775629.story?track=rss)</comment>


Two Australian University Students make a better Census in 54 hours - <AUTHOR> http://eftm.com.au/2016/08/how-two-uni-students-built-a-better-census-site-in-just-54-hours-for-500-30752 <comment><USER2> WooHoo!! They hosted their website on AWS. And totally ignored privacy sensitive nature of census. Also deployed Google Analytics. And as with anything these days, added in a healthy dose of Trump. Neat work, guys.

BTW, this looks like neat program name, "Bernd is studying Creative Industries and Information Technology".

<comment><USER3> AWS isn't capable of supporting confidential information?

I'd think I'd have read about that somewhere because it seems like a fairly serious limitation.

<comment><USER4> We've managed to get confidential data stored in Azure for a large financial organisation, all compliances they required passed.

A server is a server right?

Problem could be cultural and generational. Some old school types like the idea of a server without redundancies and fire prevention and fault tolerance and high security clearance in a data center. They want it to be blinking lights at them in a cupboard on premises. They feel it is safe due to physical proximity, even though their firewalls are like cottage cheese.

We're noticing that issue with health data for medical practises. Older people are suspicious of cloud. The younger generation are more savvy.

<comment><USER5> The younger generation are more gullible, lacking awareness of data security, oblivious to data sovereignty, and easily distracted by squirrels.

An Australian census is never going to take place in hardware controlled by a foreign national on foreign soil, especially not in a country where cloud servers have been seized in the past for simply having the possibility of containing data associated with a person associated with a crime.

One thing you will learn as you gain real world experience is that there is no such thing as "too paranoid" when it comes to IT projects handling sensitive data.

</comment></comment></comment></comment><comment><USER6> Nice demonstration of smart system design, but the first item on the Australian government's specification would be the use of a private Australia- based system. The bureaucrats who wrote the spec will have limited understanding of data security, and will believe building their own local system costing an order of magnitude more than a cloud-based system must be an order of magnitude more secure.

On a much smaller scale, we provide a school interview booking system used by thousands of Australian schools, built on Appengine. Sadly Queensland's state government has woken up to the fact that the data (names, email addresses and booking times - not hugely sensitive information) is stored overseas, and we're having to jump through all sort of hoops to avoid a blanket ban.

Basically if your customers are not in the US, you'll be well aware of this issue.

</comment><comment><USER7> A bit of context for foreign readers. Every 5 years a mandatory national census is undertaken by Australia's premier data gathering agency, the Australian Bureau of Statistics (ABS). For over 100 years the census has been completed on paper forms delivered and collected by government employees.

Political interference by prior governments who cut funding and left the department without a boss for 12 months. Change of leadership, no re-funding and the newly appointed ABS leader over promises savings while implementing a new online census without a backup plan. At the same time (this is the real story) decides to collect names and addresses of every person completing the census to link these previously anonymous data gathering.

New code, untested systems and an expected audience of 15 million people logging on, most likely after dinner around 1930 EST. The system experiences load, the site admins panic, make mistakes then pull the server off-line. At the same time politicians and other stake holders deride ordinary Austrians who question the _name-gathering_ issue. As the service goes off-line and people try to enter the census, the site is down, the PM reports on twitter everything is good just before 1930. The ABS continues to auto-tweet the service is working. Australian gold medal swimmer at the Olympics derides convicted Chinese swimmer of drug use. Australian politicians blame Chinese for hacking. [0]

72 hours later the service was still down. The census requires around 95% completion to be useful. 10M AUD is spent and we have around a 50% completion. The Australian security services investigated the alleged hack and found the administration and contractor (IBM) to be at most fault.

An all round cluster-f*ck.

I saw this claim yesterday ([https://twitter.com/peterrenshaw/status/764991292828815360](https://twitter.com/peterrenshaw/status/764991292828815360)) and had a quick chat to Austin (SWE) and Adam (Organiser/AI & Neural networks) asking for them to write a summary of what they did addressing both non- technical for the benefit of very non-technical press and political wonks as well as a technical article that explains the assumptions made and addressing how the ABS may have technical reasons for not using third-party computing services. As far as I can tell this article is the general non-technical article by Adam.

[0] check my twitter feed for examples of articles explaining the buildup: [https://twitter.com/peterrenshaw](https://twitter.com/peterrenshaw)

<comment><USER8> Good summary. The only thing I wanted to add is that the site was load tested at 1 million submissions per hour, which if obviously not enough for the evening peak time on census night.

<comment><USER7> _" the site was load tested at 1 million submissions per hour, which if obviously not enough for the evening peak time on census night."_

Yep. There were some other technical/spec insights. Like the router failure [0] and the most important bit the use of really poor techniques [1],[2] to ID sensitive data and the potential sale of it. [3]

[0] [https://twitter.com/riskybusiness/status/763583981749100545](https://twitter.com/riskybusiness/status/763583981749100545)

[1] [https://twitter.com/peterrenshaw/status/763266008383578112](https://twitter.com/peterrenshaw/status/763266008383578112)

[2] "using publicly available data @TurnbullMalcolm yr #SLK581 is URBCO241019542" ~ [https://twitter.com/peterrenshaw/status/763244867564601344](https://twitter.com/peterrenshaw/status/763244867564601344)

[3] [http://www.smh.com.au/federal-politics/political- opinion/cen...](http://www.smh.com.au/federal-politics/political- opinion/census-meltdown-just-the-latest-bureau-of-statistics- bungle-20160809-gqow3e)

</comment></comment></comment><comment><USER9> > How would it cope with a Denial of Service attack though? "Fine" – "it would > have racked up a bill, but it would have survived"

Uhm... so an unbound AWS bill... that doesn't sound "fine" to me.

</comment><comment><USER10> Not much more was needed than an editable Adobe PDF form and a web server that accepts POST data.</comment>


Discount software is a myth - <AUTHOR> https://journal.standardnotes.org/apple-should-remove-the-99-tier-from-the-app-store-bac65b116b97?source=linkShare-165de613e5d2-1501689441 <comment><USER2> > Can you imagine if I had to repeat all that work every few months to bring > in that same amount on a rinse-repeat basis?

Uhm... So you're looking for a way to set something up once, and then live off this single effort it for years? Because that's the impression I got. You do realize that almost no field in the world works this way, right?</comment>


Is 37 Signals Selling Behavioral Targeting Data? - <AUTHOR> http://news.ghostery.com/post/200516394/is-37-signals-selling-behavioral-targeting-data <comment><USER3> No, we are not selling behavioral targeting data - or any other data - <USER2> our visitors to anyone.

Our Product Blog (which is referenced in the screenshot) is hosted on Typepad.

It looks like Typepad injects javascript from Quantcast and cdn.media6degrees.com at the bottom of Typepad-hosted pages. This appears to be related to Typepad's internal analytics reporting. More info here: [http://support.typepad.com/cgi- bin/typepad.cfg/php/enduser/s...](http://support.typepad.com/cgi- bin/typepad.cfg/php/enduser/std_adp.php?p_faqid=1162)

Check out some other Typepad hosted blogs (<http://www.avc.com>, for example) and you'll see the same code. In fact, I can't seem to find a Typepad-powered blog that doesn't have this code. Here's a long list: <http://featured.typepad.com>

This code appears to be what Ghostery is picking up and calling out.

<comment><USER4> Uh oh, _actual facts_?

Damn it, I just bought a pitchfork and really wanted to use it for something!

</comment></comment><comment><AUTHOR> This is the author of Ghostery. Sorry if it came off that way that is not my intent. I am not pitching my "free" product.

The difference here is that Media6 Degrees collects your behavioral data ties it with your social graph (your friends) data packages it up and resells it to other ad networks to target you.

Google Analytics data doesn't get sold to 3rd parties nor is it used by AdWords/AdSense to target ads at you (at least that is Google's claim).

Sorry if this came off as an ad, its not.

<comment><USER5> It may have to do with the ad network they are founders of- thedeck

<comment><AUTHOR> Thought that might be the case but couldn't find it on any other "Deck" ad sites.

Interesting

</comment></comment></comment><comment><USER6> Warning! Entering the fact-free zone.

Seriously, it's impolite to publish articles that are angry accusations without (a) consulting the accused and (b) limiting one's accusations to the evidence at hand.

Your article makes it sound like they collect confidential data from their apps and sell it for money. Can't understand why so many people would upvote this.

<comment><USER4> Clearly you know nothing about blogging! Letting facts get in the way of a hate session is simply not profitable!

</comment></comment><comment><USER7> Can someone explain how this is any weirder than 37signals using Google to serve ads? I'm not expressing an opinion, I just don't know what this post is trying to say.

<comment><AUTHOR> See above for my full comments but in short the difference here is that Media6 Degrees collects your behavioral data ties it with your social graph (your friends) data packages it up and resells it to other ad networks to target you.

<comment><USER8> It feels like there should be some commas in your sentence.

</comment></comment></comment><comment><USER9> It looks like the guy is using it to pitch his product.

<comment><AUTHOR> See below for my full comments but in short this is not an ad for my "free" product. I've updated my post to link to other ad blockers to make this crystal clear.

<comment><USER10> You can't say "above" or "below" on a site like Hacker News :-)

<comment><USER11> Especially with the new comment sorting algorithm.

</comment></comment></comment></comment><comment><USER12> If you were truly legit you would have first asked them. I flagged this post.

<comment><AUTHOR> Huh? I should ask every site on the internet that is tracking your behavioral information why they're doing it?

I think we the users should decide what info gets shared with who. I also think we have the right as their user to publicly call them on questionable practices.

I'm a fan of their products too, just not a fanboy, there's a difference.

<comment><USER13> _I should ask every site on the internet that is tracking your behavioral information why they're doing it?_

If you're publicly accusing them of doing so, and doing so for monetary gain, then yeah, it does seem like some measure of journalistic integrity would require at least a half-assed attempt at getting the other side of the story. Even TechCrunch shoots out an email so they can say that they asked the company what their side is.

If you're really searching for the truth, you should have approached them and asked, especially since your title is a question and you have this line in your post:

 _I can't figure out why 37 Signals would be selling this information to ad networks._

Your post is making an implication that something nefarious is going on, without actually having the guts to come out and say it. Instead, you pretend to be confused, and state that you're really not sure what's going on. If that's actually the case, why not just ask them?

As it is, it appears that you think you do know what's going on, you want to stir the pot and get some publicity for your product, and by keeping it vague, you protect yourself if you're wrong.

<comment><AUTHOR> Ryan,

Not interested in a flamewar but happy to follow-up and clarify.

1\. I'm not a journalist.

2\. The fact that Media6 Degrees, a behavorial targeter is on their site is binary. Look at the source, it's there, pretty simple.

3\. See #2 for the truth.

4\. Depends on your world view. For people who don't want to be targeted by behavioral ad networks this is nefarious. For those who don't care it isn't.

5\. I couldn't care less about "getting publicity" for my product. It's free and I don't need the publicity.

<comment><USER14> In your post you wondered _why_. That's not binary.

The reason is that Typepad, which hosts their blog, does this on all their hosted blogs.

You could have found this out by asking 37signals, or doing some basic research. Instead you chose to fling feces their way and get some attention for your product.

Classy.</comment></comment></comment></comment></comment>


Books Won't Die - <AUTHOR> https://www.theparisreview.org/blog/2019/09/17/books-wont-die/ <comment> aaron-santos I interviewed at a print on demand book binding automation shop about five years ago. Naturally one of the topics was the sustainability of paper media on short and long terms. I'll be the first to admit that the interviewer had a vested interest in selling the idea that paper books aren't going away any time soon, but the argument was compelling.

As long as children are taught to read on paper books, we will have an emotional connection to the printed page.

I've taught my children to read first using board books and then moving on to paperbacks. Printed books are uniquely suited as teaching materials for children. They are robust to dropping, food spills, and drink spills (if you're quick to react). Losing one book doesn't imply the loss of the whole library.

Most of my kids' book reading takes place at home so the portability afforded by e-readers is not a concern. Children love repetition and reading the same book over and over helps them internalize the information so being able to carry around thousands of books electronically isn't a use case for them.

Maybe some parents are teaching their kids to read on tablets or e-readers. If so, I'd love to hear your experience and the pros and cons.

<comment><USER2> > _As long as children are taught to read on paper books, we will have an > emotional connection to the printed page._

 _I 've_ learned to read on paper books and I have _zero_ attachment to them at this point.

In fact, I cringe when I occasionally have no alternative (or just scan it myself if it's not too much).

Old books now seem to be broken to me. You can't do anything with them except read (linearly). So much functionality is missing, it's unbearable :DD

I have no idea how representative my experience is but I know of at least a few others who feel similarly.

<comment><USER3>
      Old books now seem to be broken to me. You can't do anything
      with them except read (linearly)

At times this is a plus too. While reading online many a times I get distracted by some reference and go tangential looking for more details on that than moving on with the book.

<comment><USER2> The "trick" I use is I'm offline by default and have to "turn the internet on" on most devices (except the phone). Been doing thst for 8 years now, works pretty well.

</comment></comment></comment></comment><comment><USER4> I've tried every format and device and I can't read e-books. Nothing, to me, beats a real book. I don't enjoy the experience for one, it strains my eyes (yes even e-ink). But also, and this is something I wouldn't have considered back when I was younger and it seemed like books surely must die in their dead-tree form, I actively seek ways to not be interacting with electronics and books are sublime for this purpose. I work all day on computers, I carry a small one in my pocket that bothers me constantly through the day, so when I want to read. I want to read. I have no desire to have that experience coupled in anyway to the internet or electronics.

<comment><USER5> For me, it depends on the book.

For recreational reading, I strongly prefer real, printed ones.

For reference materials, I strongly prefer electronic ones (stripped of DRM and converted into a non-proprietary format). I can keep my entire technical library on my phone and I can grep through the entire set of books for something in particular that I need to find. I remember the days when my technical library was in printed form. It took a lot of space and often I'd be unable to predict which book I'd need at home vs at work, and end up not having it available. On this front, electronic books were a total game-changer for me.

<comment><USER6> Huh, I have the reverse preference. Recreational books are read sequentially, like tape, so they suit e-book readers well. Also, they're usually plaintext. Reference/education books - with those I need fast random access, which mostly rules out the usual digital form, and extra formatting and media used (tables, images, figures, equation) make them problematic on e-book readers.

<comment><USER7> Same for me. I would say an electronic book has the advantage in searchability, but a well curated index might actually beat a naive text search most of the time.

<comment><USER6> On desktop, maybe, but I haven't used a decent enough reading software (like most web stuff, Amazon cloud reader is barely fit for purpose, and while I don't know what's "state of the art" in epub/PDF readers on desktop, the few I tried didn't facilitate reliable search and fast navigation either), and most technical e-books I keep as PDFs anyway, because the formatting almost always matters.

On e-book readers like Kindle, a profound disagreement. I can easily find what I'm looking for in a 1000 page book even without using an index in less time than it takes to type in a search query into Kindle's searchbox (especially since I switched from the old keyboard Kindle to touch-only Paperwhite). If there's a well-curated index at the end of the book, it's only that much better.

I think software could get somewhat closer to paper experience, but it needs to be _faster_. As long as random page access takes more than ~100 ms from selecting the page to full render (and in my experience, it's often close to 300-500 ms), you cannot really flip through an e-book the way you would through a paper book.

(Tangent: it's another of many cases where performance _actually matters_ , because the difference between lighting fast and fast enough to tick boxes on your sprint plan is entire family of use cases.)

</comment></comment></comment></comment></comment><comment><USER8> It's amusing to note the short time frame the "books won't die" idea is working with. The original Kindle came out in 2007, just over ten years ago. That's a tiny blip in the passage of history.

I don't know what the long-term fate of books will be. What will things be like in 50 years? 100 years? 500 years? I do know that if you expected books to be gone barely ten years after the first mainstream ebook reader your perspective is severely limited. I was resistant to ebooks for a long time; I'm relatively recent adopter; I'm surprised at how much headway ebooks have made in such a short time.

Several years ago I got rid of several thousands of pounds of my books. They were like a dead anchor in my life, a huge pain in the ass to move every few years. I love having a library of ebooks that are weightless, spaceless, and can be easily copied among different devices. I have de-DRM'd most of them and can have them in whatever format I want. It's a feeling of freedom. I think long and hard before I buy a paper-book now, and rarely do.

As far as aesthetics, yes, it's true, reading a good paper book is a nice experience. I'm not sure it's better than reading a book on the Kindle app on my iPad Pro, though. Different, but both are nice. And the paper book experience has no analog to switching to a different book in your library when you're reading but not at home. Or to carrying your library with you wherever you go. There are other important things (e.g., searching) that paper books simply have no good way to do.

<comment><USER9> cars are nice but they wont replace horses. your car ever mowed your lawn for you before? You ever hear of mowing a lawn before cars? Your car ever come when you whistle because it likes apples?

this car thing is a fad. I'm putting all my money in horses.

</comment></comment><comment><USER10> What I find missing with ebooks is a sense of 3D space.

With a paper book, my brain seems to tag my memories of sections and scenes with how far into the book they were and where they were on the page. If I need to refer back to some earlier section when reading, that tagging lets me find it quickly.

With an ebook I don't get that page tagging, and also depending on the format and the reader might not get position on the page tagging.

For some ebooks, the ability to search by words is enough to make up for this, but for a lot of books I can find a given previously read section much faster and easier with the paper edition. If it is a book where I am likely to have to go back frequently, I'll probably get the paper edition.

Perhaps someday they will be able to make a thin enough display that someone can make an ebook reader that has a hundred of so screens bound together like the pages of a book. That would be awesome.

<comment><USER11> I've had some success with liberally highlighting ebooks — the highlights become the "tags".

</comment></comment><comment><USER12> Note that this is basically an advertisement for the author's new book which primarily focuses on the future of reading: [https://www.basicbooks.com/titles/leah-price/what-we-talk- ab...](https://www.basicbooks.com/titles/leah-price/what-we-talk-about-when- we-talk-about-books/9781541673908/)

</comment><comment><USER13> I didn't think the idea that books _would_ die to be all that widely help of an opinion. So it's a pretty easy argument to agree with. Change? sure. Adapt to new reading habits mediated by technology? Yep. Incorporate features made possible in the digital realm? That too. Die? No.

<comment><USER14> I think it was in the mid-to-late 90s as the internet was just becoming more available to lower income groups.

"Nobody buys physical encyclopedias anymore, everything else is going to go that way soon too"

In high school debated on the side of the demise of books (2002) and I won. Back then I convinced myself of my side for the sake of my debate performance, but I'm pretty sure today that books are going nowhere in a hurry.

<comment><USER15> This is true. When eBooks started becoming big, my wife threw out all of her books figuring that electronic was the future.

She really regrets doing that.

<comment><USER16> I moved country and had to make decisions about which of our books were valuable. In the end our criteria came down to 'would we read it again', 'is it a nice edition' and 'does the physical book have a special memory'. That meant that we gave away probably half of the books. You can always buy or download them again in the future.

</comment></comment></comment></comment><comment><USER17> I hope if you know spanish you can read my essay about "the end of books made of paper" [http://minid.net/2013/02/07/el-inevitable-fin-de-los- libros-...](http://minid.net/2013/02/07/el-inevitable-fin-de-los-libros-en- papel/) if you don't I think Google Translate will do a good justice. Basically, it is clear that the concept of books will be difficult to eradicate. I find it hard to believe that we lose this great cultural format; the compilation of writings with a particular objective. Reports will continue to exist, but books, as a format, they will dissapear on paper format but they will continue on digital. Because of this, it is probably that some things will change.

I have an startup right now about resuming books on audio. It's becoming increibly popular among the new generations: they don't want to read an entire book, they want the best highlights of it. Maybe in the future we will face a change in the format we write books: ultra resumed, different grammar, different format.

<comment><USER18> PDF readers are pretty pathetic. For example:

1\. cannot recall where you were the last time you were reading the file

2\. cannot display pages side by side in full screen (you know, like a book can)

3\. herky-jerky scrolling because the programmers do not understand how to write concurrent display code

4\. no way to create a 'stack' of temporary bookmarks so you can scroll around while keeping your place

5\. no way to set a paper-like background

6\. no way to open multiple pdfs at the same time and display them in different windows (even my 30 year old text editor can do that)

7\. display the first page of the pdf as the thumbnail

8\. make the thumbnails much, much larger - like the size of a paperback book

(Some pdf readers do one or two of these.)

It's like the people who program pdf readers never use them.

<comment><USER19> > _herky-jerky scrolling because the programmers do not understand how to > write concurrent display code_

Yes, PDF readers are bad.

What makes the problem worse is that the PDF itself, is sometimes a resource- intensive format as well. Finding information from a modern datasheet is a pain, finding information from a scanned 300 MiB datasheet from the 1980s is _real_ pain. Lots of rendering.

None of the problem (other than keyword searching is not available) exists in a physical book, the human brain is a great pattern-recognizing machine. Nothing beats flipping through the pages and using fingers as markers yet...

<comment><USER18> What I mean by concurrent display code is the display of the pdf file is always up-to-date even when the renderer cannot display the data fast enough.

The trick is to abandon the current render whenever the position in the file changes, and start a new render.

I did this back in the 1970's (!) when I designed and built a 24x80 glass terminal. The 6800 microprocessor simply could not keep up with 9600 baud serial data coming in. So what I did was hook an interrupt handler to the serial port, which stored the incoming characters into a 24*80 circular buffer.

The display renderer would start at the beginning of the circular buffer, writing characters to the display buffer. If more characters entered the circular buffer which would invalidate the display, the renderer would simply start over.

Whenever the data coming in paused slightly, the display would catch up almost faster than you could see.

It worked great!

I since incorporated the same idea into the MicroEmacs text editor in the 1980s, meaning the editor display was always crisp and responsive despite running on an 8088. (Other editors would fall behind, and when you took your finger off the auto-repeat page-down key they'd eventually catch up. This behavior is what most PDF readers exhibit.)

</comment></comment></comment></comment><comment><USER20> We still have candles and candleshops. Candles are an old obsolete technology but they're still nice to have around.

</comment><comment><USER21> Why buy a book when you're limited to the device you can read it on and at the whim of when the company will revoke your license to read it?

Nevermind you're also subject to poor application design. Has anyone tried to read books on Windows and had a decent time? I can't find a single app that keeps track of where I am in ebooks or PDFs and it's terrible.

<comment><USER22> > Why buy a book when you're limited to the device you can read it on

You mean a single-use device made of paper, that you have to wait to be shipped if buying online? I agree, that's terrible :)

<comment><USER21> You must have never owned a Kindle that died on you. Now all my books are inaccessible.

<comment><USER23> Did you somehow get banned from Amazon?

My Kindle died on me. All my books that were from Amazon are still available:

1\. for download to the Kindle app on my computer

2\. for download to the Kindle app on my phone

3\. for download in a format I can read (and deDRM and convert) with Calibre

The ones that weren't from Amazon were on my computer before they were ever on the Kindle, so they're still there, along with the ones I backed up.

</comment></comment></comment></comment><comment><USER24> I am sure the Babylonians thought tablets to be superior to papyrus.

<comment><USER25> Yeah, papyrus can burn to ash. If you burn a tablet, it just gets more permanent. In fact, a lot of cuneiform tablets that have survived are ones that were in fires.

</comment></comment><comment><USER26> What will the books of the future be made from? Will people living on Mars or in space stations pay dearly to ship books made from dead trees all the way from Earth?

<comment><USER27> They will probably use a paper like substance created using biochemical factories and print locally.

</comment></comment><comment><USER28> Just a general piece of information to share here, since I think everybody in here has an interest in e-readers:

did you know that you can get a mint condition kindle 3 with 3G (free data for the device for life) on ebay for $30?

I consider the kindle 3 a nearly _flawless_ device (save for it's lack of a frontlight). The fact that they are available, and the included 3G which just _works_ , for $30, is a technological miracle in my mind.

<comment><USER16> The hardware may be good, but you're locked into Amazon's non-standard formats unfortunately.

<comment><USER29> You can also read DRM free MOBI and PDF books on Kindles. It's also possible to to break the DRM on Kindle books if you own a physical Kindle device.

</comment></comment></comment><comment><USER30> Tablets didn't die. We still inscribe words onto metal and stone. And, yes, I'm including tombstones and other memorials as being tablets.

I can't think of anyone who still makes scrolls, or papyrus, or vellum, or writings on birch bark, but I'm sure _someone_ does it, if only as art.

Some technologies do die, like Williams-Kilburn tubes and mercury delay line memories, but others are relegated to roles where they still shine.

</comment><comment><USER31> In my personal case it is because there are no good e-ink devices. That gray background plus either bad size or horrible interface and horrible price are not doing it for me.

<comment><USER32> This comment kinda reeks of that "everything is amazing and nobody is happy" thing. I mean, "horrible" everything? Really? A device that lets you carry practically infinite books with you? Because the background color and all the available dimensions out there don't scratch your specific preference?

<comment><USER31> Mobile phones, tablets, computers, TVs are amazing e-ink devices are not working specifically for me :(.

</comment></comment></comment><comment><USER33> Correct, books won't die, but copyright (as we know it now) will.

What's needed in this industry is social innovation, not technological innovation.

Technology is already doing all it can.

</comment><comment><USER34> I wonder if books would be considered a carbon sink? Or if the paper manufacturing process would negate it.

</comment><comment><USER35> Horseriding never fully died either.

</comment><comment><USER36> After using the Onyx boox max (all versions up to 3 which was released recently), I am convinced books will die.

<comment><USER37> Can you elaborate on your experience with it? Is that thing really worth €820? I like the idea of a giant e-reader but that's really quite a lot of money for such a device.

<comment><USER36> For me it is worth it.

Made a review some time ago [https://www.youtube.com/watch?v=W5tIhuk8yAU](https://www.youtube.com/watch?v=W5tIhuk8yAU)

Only used to read technical stuff and I have not missed physical books.</comment></comment></comment>


Mathematicians Cut Apart Shapes to Find Pieces of Equations - <AUTHOR> https://www.quantamagazine.org/mathematicians-cut-apart-shapes-to-find-pieces-of-equations-20191031/ <comment><USER2> Here's a scissor's congruence app on github

[https://dmsm.github.io/scissors-congruence/](https://dmsm.github.io/scissors- congruence/)

</comment><comment><USER3> It seems obvious that you cannot cut a circle into finitely many pieces and combine them into a square of the same area.

Hence, I suppose that in the starting statement of "If you have two flat paper shapes and a pair of scissors, can you cut up one shape and rearrange it as the other?", the concept "flat paper shapes" refers to polytopes [1]. That is, N-dimensional generalizations of polygons.

Otherwise the statement "For two-dimensional shapes, the answer is easy: Just determine their areas. If they're the same, the shapes are scissors congruent." is wrong with the circle - square case as a counter example.

[1] [https://en.wikipedia.org/wiki/Polytope](https://en.wikipedia.org/wiki/Polytope)

<comment><USER4> How is it obvious? I am a mathematician and do not find it obvious in the least...

<comment><USER5> As a non-mathematician, for a 2d circle on a flat plane:

\- The edge of a circle is curved (convex)

\- It does not matter how small a piece you cut of the edge, there will always remain a convex curve.

\- The edge of a square has straight edges, so you cannot put this piece at the edge. This means the old outside edge will have to be on the inside.

\- You cannot fit the convex edges to each other or to a straight edge.

\- Cutting a concave edge from the inside of the circle to fit the convex edge from the outside to will not help as it will produce a new convex edge.

Ergo: there is no place to put the convex outside edge of the circle, so you cannot turn it into a square.

<comment><USER4> So not so OBVIOUS, anyway. You need the notion of convexity (not so easy to give abstractly unless you already know the definition). Items 4 and 5 look clear but from there to obviousness...

Being visually intuitive is very different to being obvious.

<comment><USER6> This seems a bit pedantic. I'm certainly not a mathematician but it does seem obvious that you cannot cut a circle into any number of pieces and rearrange it to be a square, as a circle has curves which would prevent you from making the square a solid without gaps

<comment><USER4> No no; I'm trying to explain that "obviousness" is a bad idea to prove anything...

Like "an infinite te has an infinite branch"...

</comment></comment></comment></comment></comment></comment><comment><USER7> There's a fairly recent Numberphile video about this.

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

</comment><comment><USER8> Didn't the topology folks figure some of this out a few years ago? Felt like scissors congruent was just a restatement of some of the basics in topological analysis, from what I (probably incorrectly) recall.</comment>