Beginnings of Science Fiction - <AUTHOR> http://wewanttolearn.wordpress.com/2014/10/05/beginnings-of-sf/ <comment><USER2> I always derided art-talk. Art history, movements, art-appreciation. I saw BS and I assumed it was BS. I now think that art is just hard and part of why it's hard is that nonsense and sense are hard to tell apart. It's not that objectivity doesn't play a role, it just requires some work in applying it. In any case, I missed out on stuff I shouldn't have missed out on. Young me's loss. Old me's gain.

One idea, that I think could be expressed as one of those movements which encompass science, art and philosophy starts with the definition of history, which basically defines history as stuff people wrote about things that happened. Prehistory is the stuff that happened before with a hundred years of commentary, nuance, various waves of correctness and such. But, arbitrary demarkations are uncomfortable. We much prefer a nice definable river or mountain range to act as our border than a straight line on a map. As definition go, history's in an interesting one. Someone writes about a guy who was the king, that's history. Someone finds bones and a fancy hat in a lavish grave, that's prehistory.

Now, by that definition we're running into some interesting hockey stick phenomenon. Our accumulation of history, via the digital record is growing f-ing vast. Vast! Google decided (independently, which is creepy but moving on) to make me a little album with dates and places of a recent trip I took. It's choice of photographs was good and so was the labeling.

So, written history with some guy or girl compiling a list of kings and laws and even daily accounts of wars and politics and money are now superseded. Written history is giving way to recorded history. Is recorded the right word? Is history? Post-history?

Back to sci-fi. Sci-fi of the 20th century was about technology. Video phones and space blimps. Alien invasions and human colonization of new worlds. Fantasies of mixed specie societies reflecting our struggles to transcend ethnicity and culture. Today's science fiction is, I believe most enlightening in describing the human response to technology. What will the world be like when tinder puts you in a virtual room with a would be friend? How do we react to real wars (as apposed to a science fiction version of romantic fantasy) in the communication age. How will it feel to be a 90 year old who can run a half marathon. What will it be like for people who can access thousands of hours of conversations their grandparents had with _their_ parents?

These are interesting questions.

<comment><USER3> > What will it be like for people who can access thousands of hours of > conversations

Along these lines I highly recommend episode 3 of Black Mirror "The Entire History of You". It is essentially a British version of The Twilight Zone.

</comment></comment><comment><USER4> Nice article; I got deeply into science fiction through collections of stories culled from the magazine. I love earlier stuff - Wells etc, but the pulpy golden age stuff is just fantastically easy to read.

If anyone is interested, there's a 2 volume set from 1959, A Treasury of Great Science Fiction, edited by Anthony Boucher, copies of which are always dirt cheap on Amazon; it got a few duds, but it's one of the best collections I've ever read, and an amazing introduction (has The Stars My Destination [as Tiger! Tiger!], the Chrysalids, Waldo, the Weapon Shops of Isher, among loads of other stuff). This site is amazing as well, if you can hack the weird design: [http://greatsfandf.com/](http://greatsfandf.com/)

<comment><USER5> Recommendation seconded, the Boucher anthology is full of great old stuff. There's a fuller description of it at [http://www.philsp.com/articles/anthopology_101_07.html](http://www.philsp.com/articles/anthopology_101_07.html)

</comment></comment><comment><USER6> (Science fiction, not San Francisco.) Having never really experienced the genre much, I have recently been trying to assemble (and eventually read) a list of influential and quintessential science fiction books, and while my informal research into the beginnings of sci-fi as an identifiable genre led me to earlier authors like Verne and Wells, I had never heard of this fellow or this magazine.

By the way, if one wants to read a quick standalone sci-fi novel, I just finished Heinlein's The Moon is a Harsh Mistress, and I can't recommend it strongly enough.

<comment><USER7> I tend to rate Mary Shelley as the earliest sci-fi author. Not just for 'Frankenstein', but also for 'The Last Man'.

I would strongly recommend tackling Issac Asimov's 'Foundation' series as one of the all time classics.

Another pretty early one to take a look at is 'We' by Yevgeny Zamyatin. It was the first book banned by the USSR and was the inspiration for Orwell's 1984.

<comment><USER6> The Foundation series is certainly on my list. I have been giving series lower priority, simply because I want to go breadth-first, but I'm not confident this is a reasonable strategy, especially since I could just read the first entry and decide from there how to proceed.

I had not heard of We, but I will look into it.

<comment><USER8> Some iconic science fiction books that can stand alone:

        Asimov: The Gods Themselves
        Clarke: Childhood's End, Rendezvous with Rama
        Herbert: Dune, Whipping Star
        Bradbury: Fahrenheit 451
        Bester: The Demolished Man, The Stars My Destination (also called "Tiger, Tiger")
        Niven: Ringworld
        Niven and Pournelle: The Mote in God's Eye, Footfall
        Gibson: Neuromancer
        Stephenson: Snow Crash, The Diamond Age
        Bear: The Forge of God, Eon
        Sagan: Contact
        van Vogt: The Voyage of the Space Beagle
        Lem: Solaris
        Atwood: The Handmaid's Tale
        LeGuin: The Left Hand of Darkness
        Lewis: Out of the Silent Planet

Some of these are the beginnings of series or have sequels, or exist in a larger continuum of stories. But each can be read and appreciated on their own. If you find one you really like, it's not hard to see if there are more in a series or sequel.

Edit: formatting

</comment></comment></comment></comment><comment><USER9> "Ralph 124C 41+" is awful. After that, Gernsback published SF of others, rather than his own, and as a publisher did much to launch SF as a genre.

Before SF, there were "Edisonades", the classic being "Edison's Conquest of Mars". That's a milestone in science fiction. It's one of the first space travel stories, and it's reasonably plausible given scientific knowledge at the time.

Heinlein is not from the "beginnings" era. Heinlein is from the "golden age" of SF, when a space-oriented future looked not only technically possible but close. Watch "Destination Moon". Most of Heinlein's better works predate the discovery that Mars barely has an atmosphere and Venus is well above the boiling point of water. Planetary colonization within the solar system looked possible back then.

<comment><USER9> (Sorry about posting that twice. Hacker News was reporting gateway timeouts.)

</comment></comment><comment><USER10> I think short form scifi is where it really shines:

[http://www.terrybisson.com/page6/page6.html](http://www.terrybisson.com/page6/page6.html)

<comment><USER11> this has been posted on HN before, but it's relevant: [http://www.multivax.com/last_question.html](http://www.multivax.com/last_question.html)

</comment></comment><comment><USER12> If you're interested in Sci-Fi, especially some of the older stuff, there's an unbelievable treasure trove of books, short stories, scanned magazines, old radio dramas and books on tape all for free at archive.org.

Finding stuff there is a mess though, but even just a search for "science fiction" is like falling into a dragon's hoard of genre pieces.

<comment><USER13> Also lots of free stuff at Project Gutenberg, including a bunch of Astoundings (which I believe is what Amazing Stories became?): [http://www.gutenberg.org/wiki/Science_Fiction_%28Bookshelf%2...](http://www.gutenberg.org/wiki/Science_Fiction_%28Bookshelf%29)

</comment></comment><comment><USER11> Gernsback was the man, but I feel the need to mention: H.G Wells, Jules Verne, Mary Shelly, H.P. Lovecraft, Edgar Rice Burroughs...</comment>


Show HN: An experimental Github/trending User Interface - <AUTHOR> https://github-trending-plus.surge.sh/ <comment><USER2> Make the project title a link. It isn't intuitive that the "Star It" button is the link out. I want to see a project before I consider its value (adding a star).

Animations aren't awful here. (Core i5, 12Gb RAM, Linux, Firefox)

You could convey more information with a table. It would be more readable, easier to look over, and accessible. You could even have fancy animations and decorations when a user selected a cell/column/row.

This kind of zoomy interface doesn't easily allow lateral movement in the data (in fact, it forces the user into a sort of 'depth-first' navigation).

<comment><AUTHOR> Thank you for take your time to comment! I understand your preference for a more classical approach, but in this experiment, I'm just exploring some uses of the zircleUI library.

Regarding the label "star it", you are right it is confusing because you are not actually adding a star, you are just opening a link to the repository.

Sorry about that It would be great if you want to open and issue in [https://github.com/zircleUI/github-trending- plus](https://github.com/zircleUI/github-trending-plus)

<comment><USER2> > It would be great if you want to open and issue

Consider it done.

> I understand your preference for a more classical approach

It isn't a preference for the 'classic' so much as I have a certain expectation of functionality.

If you had a way to navigate to other nodes at the same level in different branches , I would be much more comfortable with the usability.

<comment><AUTHOR> Thank you. I'm totally agree on what you said. It would be easier to navigate the different repos without zooming-out and zooming-in every time you want to see next repo.

</comment></comment></comment></comment><comment><USER3> * Animations are jaggy. On a quadcore. Just why?

* Accessibility is 0. Cant open external links in a new tab. None of my navigation shortcuts work.

<comment><AUTHOR> Thats weird usually the animations tend to be smooth even in less powerful cpus and I've just check the external links and seems to work well. Could you tell what type of device and browser are using? Thanks

<comment><USER4> It's also pretty stuttery on my 2017 MBP in Chrome, for what it's worth.

Maybe try developing with CPU throttling activated in the Chrome DevTools? [https://umaar.com/dev-tips/88-cpu-throttling/](https://umaar.com/dev- tips/88-cpu-throttling/)

<comment><AUTHOR> Sorry I made some changes... could you try it again?

</comment></comment></comment></comment><comment><AUTHOR> Hi all! this is an experimental Github trending UI that records the permanence of repositories and developers on trending chart and their relative gain / loss positions.

The frontend is based on zircleUI, which is a frontend library to develop zoomable UIs I created a year ago, while the backend is powered by the awesome work of Hu Chen ([https://github.com/huchenme/github-trending- api](https://github.com/huchenme/github-trending-api))

There are a lot of cool projects based on Github Trending (you can find some of them at [https://libraries.io/search?q=github+trending](https://libraries.io/search?q=github+trending)), this proposal is just a conceptual approach.

Here is the repo [https://github.com/zircleUI/github-trending- plus](https://github.com/zircleUI/github-trending-plus)

<comment><USER5> Thank you for making ZircleUI!! It's been insanely fun to make interfaces with and I use it for a smattering of apps on my desktop.

<comment><AUTHOR> It's very rewarding for me to know you like zircleUI and you are doing things with it. Thank you!

</comment></comment></comment><comment><USER6> The design is neat and cute but doesn't serve any useful purpose. I like the concept but the website only gets in my way.

But for what it's worth, it does work nicely on my mobile device. That was a pleasant surprise.

<comment><AUTHOR> Thank you! Yes I think I put more efforts on mobile devices than desktops.

</comment></comment><comment><USER7> Seems really the wrong application for this paradigm.

Animations are fluid on my laptop, but IMHO too long. Especially if there's little on the screen at once, transitions have to be fast and not get in the way.

<comment><AUTHOR> I think for this kind of UI the transitions shouldn't be so fast because the idea is not loose context. However, I would add a property to ZircleUI to set the speed the developer feel more confortable.

<comment><USER8> I do think this kind of UI _needs_ an animation, but I don't think its necessary for that animation to be slow.

I too feel like I'm waiting forever for it to "get there". The other thing I don't care for is that it takes 2 steps to go change the language...

This is solved in this app by repeating the language switcher under the top list, but then repeating content starts to break the "Where am I" question.

</comment></comment></comment><comment><USER9> I don't know why you are being downvoted. It is a cool project, and, as its title says, it's experimental. It's okay to miss a few details.

Keep building stuff.

<comment><AUTHOR> Thank you! I will :)

</comment></comment><comment><USER10> Reminds me of Grokker [https://www.researchgate.net/figure/Grokker- Visualization-of...](https://www.researchgate.net/figure/Grokker- Visualization-of-the-results-of-a-web-search-on-Ontology- Visualization_fig9_200473570)

<comment><AUTHOR> haha yes!

</comment></comment><comment><USER11> I personally love this! I think the concept is especially fitting for mobile use. It would be nice to be able to swipe left/right to advance between project pages and projects themselves.

Good work!

<comment><AUTHOR> Thank you for your comment!! I agree with you this thing seems to fit better on tablets/mobiles

</comment></comment><comment><USER12> I just have a few try on it and I find it quite laggy. Example : go to -> top devs -> choose one dev -> go back . Here is super laggy. Am I the only one ? (Edit : no i'm not :D)

<comment><AUTHOR> I've just made a change in the source code. I don't know if now it's working . Could you try it again?

<comment><USER12> Yes it is working ! :D

</comment></comment></comment><comment><USER13> feedback: the labels below the circles are very hard to read because they get cut off so soon.

<comment><AUTHOR> Thank you for the feedback. Yes you are right I have to improve this part... cutting off or not depending on what device is being using.

</comment></comment><comment><USER14> Think you might not be encoding the language filters correctly. I'm seeing a lot of C when filtering by C#

<comment><AUTHOR> It seems that now it's working well [https://github.com/huchenme/github- trending-api/issues/14](https://github.com/huchenme/github-trending- api/issues/14)

</comment></comment><comment><USER15> Awesome product - one suggestion, add support for browser history and pressing the back button.

Looks great!

<comment><AUTHOR> Thank you! this feature should be easy to add since zircleUI can be use with vue-router. I'll try in some days

</comment></comment><comment><USER16> Cool project :) Not something I'd really use but it's neat to make.

Small mistake though, when it can't find trends, it has a small typo in the error message:

         Oops!! No trending developers for Python. Try another Languaje / time

Languaje should be Language :)

<comment><AUTHOR> Indeed that is my Spanish :) Thank you!

<comment><USER16> I was thinking it sounded a bit like "Lenguaje". It turned into Spanglish :)

De nada ;)

</comment></comment></comment><comment><USER17> Ha this reminds me of Flash websites from the 90s. Looks kind of cool but it's not a practical UI at all.

Much worse than a plain list in terms of usability (and thankfully most web designers seem to have learned that lesson).

Still, nice experiment.

</comment><comment><USER18> While this looks cool, I've got a feeling that soon there will be office assistant paperclip and skype integrated to github.

</comment><comment><USER19> Filtering by C# filters by C instead

<comment><AUTHOR> It seems that now it's working well [https://github.com/huchenme/github- trending-api/issues/14](https://github.com/huchenme/github-trending- api/issues/14)

</comment></comment><comment><USER20> Really cool!!</comment>


Lisp and the Jedi Masters - <AUTHOR> http://tagide.com/blog/2014/10/jedi-masters/

<comment><AUTHOR> Staying with the Star Wars theme here is a great quote:

On Mutation and Programming: Assignment leads to mutation. Mutation leads to pointers. Pointers lead to suffering! \- Anton van Straaten</comment>


Higher-order list operations - <AUTHOR> http://matt.might.net/articles/higher-order-list-operations/

<comment><USER2> One really cool thing is that you do not you do not need to stick to lists. Many of these functions naturally generalize to other data types.

The simplest is map. It turns out that there are _a ton_ of types that you can map a function over, and many of them are extremely useful. There are obvious examples like trees and arrays, but they don't even have to be containers. In Haskell, we call any type with a map function that behaves like the standard list function a _functor_. This is all a functor is--pretty simple.

The next interesting example is fold. We can also fold over non-list structures. In this case, the structures are usually containers like trees and arrays.In Haskell, this is what the Foldable class represents.

You can also think of zipping--in a very abstract sense of applying a multi- argument function to a bunch of structures--as generalized by applicative functors. However, lists by default form an applicative functor with pairwise application rather than zipping; there is a wrapper called ZipList that does a normal zip. Applicative functors also come up very often, not just for container types.

All these generalizations let you take all the powerful list functions you're familiar with and use them in new contexts. They also let you write more polymorphic code.

Interestingly, you can also generalize these functions in a different way-- instead of taking a different structure, take a different function. This is where monads come in: you can generalize these functions over monads. In Haskell, the generalized versions are named by a trailing M: foldM, mapM and so on.

At a high level, this lets you customize how functions get applied. So you can have a fold that maintains internal state, propagates errors or even computes the result non-deterministically. The exact behavior is specified very declaratively by your choice of monad.

And, of course, as with any good abstractions, you can combine these. Particularly, you can take a foldable and use a bunch of the monadic functions on it. So you might end up using a non-deterministic fold on a tree. Just by itself, this seems exotic and hard to grasp. However, since it was built up step-by-step from familiar abstractions, it's actually easier to understand. Each step along the way is relatively simple and intuitive; you just have to put them together.

Now, what are the benefits to all this? The main one is that it gives your code more structure. A map a fold always behaves the same way for a given type where a for-loop could be doing anything. This makes it easier to read because you know the structure of the computation just from its name. It also makes the code easier to write since all the iteration logic is hidden away; you only have to write the function dealing with one "step"which means you cannot accidentally mess up how the steps are combined (no more off-by-one errors) and you can't accidentally couple the computation itself with the iteration logic. They're guaranteed to be separate because one is encapsulated into the higher-order function.

In many ways this parallels the transition from goto to structured programming.

Another advantage is that it lets you write more generic, more polymorphic code. This sort of code is easier to write because the types are more restrictive. There are simply less ways to mess up. Also, naturally, the code is more general, letting you reuse it in more places.

<comment><USER3> > In many ways this parallels the transition from goto to structured > programming

This is imho the most important bit an imperative programmer needs to learn and understand functional.

<comment><USER4> But it's not necessary to use these operations with functions at all; they were mostly invented and refined in the array programming space like APL. Just in a functional language you have all those nice lambdas to help out and can keep your language simple.

</comment></comment></comment><comment><USER5> I haven't actually learned monads yet, but am I correct that the end of this article leaves readers a hair's breadth away from an introduction to monads (and without another round of distracting analogies)?

And that reminds me, lately I have been kicking around a suspicion that, given the right example, it wouldn't be hard to understand how to use call/cc to implement a lazy function in Scheme--perhaps one that returns a lazy list of the natural numbers.

As a step in that direction, I managed to construct the following example, which I hope is pretty clear.

; Return anon function returning its argument's value at n: _(n).

(define (at n) (lambda (s) (s n)))

; The curried (schönfinkeled) function t(m, n) = 2m+n: (t m) returns anon function 2m+_.

(define (t m) (lambda (n) (+ (* 2 m) n)))

; Example of using these "at" and "t" together.

(define (f n m) ((at n) (t m))) (display (f 5 3)) (newline); 11

(display (f 3 5)) (newline) ; 13

; Write an equivalent function inside-out using call/cc!

(define (g n m) ((t m) (call/cc (at n)))) (display (g 5 3)) (newline) ; 11

(display (g 3 5)) (newline) ; 13

<comment><USER6> You're absolutely right that the end of the article is a hair's breadth away from monads.

In fact, monads were secretly used throughout the article in the form of the comprehension notation (which desugars to the List monad).

There's also a tight connection between continuation-passing style, continuations and monads.

More on that in a future post...

</comment></comment><comment><USER7> Manipulating lists is a solved problem in functional programming IMO, but I struggle to define good higher-order tree operations. Complex operators compose very poorly, and have too many options. So instead I write many simple operators, most of which I don't use frequently enough to remember that they exist at all. Or, I just give up and use recursion.

<comment><USER6> Stay tuned.

That's a major topic in my compilers class, and I'll likely write a post on that as well.

In the meantime, I recommend you check out "Scrap Your Boilerplate" in Haskell.

<comment><USER8> Is there any chance of you ever doing your compilers class on Coursera or just posting videos of the lectures online somewhere? Your blog posts are great, I'd love to be able to see the lectures as well.

<comment><USER6> Thanks for the kind words!

I don't know if my teaching style would translate well to Coursera or Udacity.

My classes tend to be very interactive. Assuming I recorded in front of a live class, some of that would come across.

But, it would lose some of the spontaneity that comes from sitting in the class and being able to interject.

I do post my (unanimated) lecture slides online as pdfs.

</comment></comment></comment></comment><comment><USER9> Learn You A Haskell is a really great book for newcomers to functional programming, I can't recommend it enough.

<comment><USER10> It also takes the same approach as the posted article: reimplementing basic standard library functions. It's really enlightening.

<comment><USER6> I love the "reimplement the standard library" approach to learning a programming language.

When I learned C and Unix, the instructor had us reimplement libs like string.h and stdio.h, command line tools like date, ls and cut and then build tools like make.

It made me a much better C programmer.

<comment><USER9> C is a language I'd like to see make a reappearance in CS curricula. It's great that most programmers today don't have to deal with memory management and pointers, but I think a CS degree should leave the student with a basic grasp of the full stack of programming paradigms.

I think a nice approach would be to start off with a high-level, functional language like Haskell or Scheme, and then move down the ladder of abstraction in subsequent courses, culminating in a hardcore C (or maybe even assembly) course.

<comment><USER2> This is exactly what my school did. The first CS class was in Scheme, based on SICP. The next one was about data structures and based on Java. The last one was about computer architecture and used C followed by MIPS followed by designing a simple CPU with logic gates.

Overall, it's a pretty good system. The middle Java class was completely worthless and a big waste of time though; in hindsight, I should have skipped it. Also, while we learned a bunch of cool things in the SICP class, every single other class except for programming languages/compilers completely ignored it. Most retaught some of the same concepts, but poorly.

Also, apart from SICP, there aren't any undergraduate classes doing functional programming! What's up with that?

At least at my university, there's plenty of C and C++--even in places where it blatantly doesn't fit, like the other version of the compilers class. And far, far too much Python. And too little functional programming. Ah well, c'est la vie.

I would love a compilers course taught in ML (maybe OCaml?), and it's a possibility, but not before I graduate :(.

<comment><USER9> Where are you studying? My undergrad (City College of New York) was mostly C++/Java with the exception of the PL course, which used Scheme. We also had an elective that taught x86 assembly.

I had to discover and learn Haskell on my own :)

<comment><USER2> I'm at Berkeley.

I also had to find Haskell on my own, but I think it worked out reasonably well in the end. The type theory/semantics class did use a bit of OCaml, but it took a while to get to it.

Also, I should add that--largely due to my own preferences--I've taken a disproportionate number of classes that do not really focus on programming at all. The aforementioned type theory/semantics course only had a token amount of programming, and three other CS classes had no programming at all. They were also some of the coolest and most fun. (After all, I can do programming on my well enough; theory is a bit harder.)

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> Another insightful note from Matt Might. There's more in his blog, <http://matt.might.net/articles/>.</comment>


Apple's Audacity - <AUTHOR> https://stratechery.com/2019/apples-audacity/ <comment><USER2> "Sign In with Apple" \- the likely effects of this policy change is frankly great as far as I'm concerned, but its another example of the industry trying to police privacy itself. I think the net effect of Apple's decision is likely positive, but they've effectively been forced to almost abuse their dominant market position to do it.

In a better functioning world, I'd have hoped this kind of thing would have been driven by sensible legislation across the entire industry, rather than relying on the good intentions of Apple and the success of the App Store to push the change.

<comment><USER3> It never ceases to amaze me the trust that the tech industry has in both the competence and the benevolence of the government.

<comment><USER4> I don't think that the government is generally competent or benevolent, but I am 100% sure that the tech industry is not benevolent, and that bothers me in direct proportion to their competence.

<comment><USER5> Furthermore, with government, there is at least _some_ notion of accountability. Imperfect as it may be, _generally_ speaking when people in government fuck up, they have to deal with repercussions and consequences. Furthermore, there are mechanisms such as FOIA that any citizen or organization can utilize to find out if and when those fuck ups happen, as well.

Big Tech though is basically a closed black box that has immense power and is almost totally unregulated. This leaves an incredible amount of room for abuse. Therefore, I am totally okay with a semi-competent, sometimes- benevolent entity that is accountable to the public (government) to much more tightly regulate this industry.

<comment><USER6> > generally speaking when people in government fuck up, they have to deal with > repercussions and consequences.

Re-election rates for congressmen over the years hovers at around 90%. Senators are around 85%. Perhaps they're all doing a great job, but I'm skeptical

[https://www.opensecrets.org/overview/reelect.php](https://www.opensecrets.org/overview/reelect.php)

</comment></comment></comment></comment></comment><comment><USER7> Why are we satisfied with Sign In with <Big Company>? Shouldn't this be an open standard? I mean, I know open/federated identity systems have failed several times, but there's no reason why we can have a spec where your device or browser generates per-site credentials and stores them in some encrypted replicated storage. And for email-relay, that's been going on since penet.fi in the 90s. Email is already federated, and there's no reason why you can't use third party email anonymizing services.

Apple had an opportunity to produce something that might be adoptable by everyone, but instead they went walled-garden again.

<comment><USER3> And then you have to trust the third party.

<comment><USER7> You only have to trust a third party with a throw-away email forwarding system. But we know how to do anonymous remailing/forwarding already, and Apple could have adopted a spec that forces developers to use a forwarding system that is end-to-end encrypted if they want to email your throwaway.

<comment><USER3> And part of that "email forwarding" is access to all of your mail including your password resets.

<comment><USER7> You missed the point. There's no access because you can require end-to-end encryption for mails that use the forwarding system, just like the PGP remailer/forwarding systems, so the remailer node isn't subject to MITM.

Moreover, if you're using "Sign in with X" in the first place, there's no password and no password reset. Key Exchange is the big MITM vulnerability.

There's decades of experience now around building distributed identity. Bitcoin wallets are a large scale example of that. If we're going to finally flip the switch on not using verifiable, public email addresses as part of credentials, we should rip the bandaid off and get rid of the centrality all together.

<comment><USER3> So instead of asking developer to support another Oauth provider which should be a simple change, now they have to support an encrypted email system that isn't widely supported. Also, an iCloud ID doesn't require you to use an Apple email address. So you also have to have an email provider that supports E2E encryption.

<comment><USER7> Sure, why not. Folks have no trouble laying on all kinds of requirements when GDPR is brought up, but now suddenly requiring S/MIME or alternatives is a bridge to far.

If we're going to have single signon for the world, and finally get rid of passwords, it should not be locked into one OS platform.

If I sign on from Apple, how go I log in on my Linux desktop or non Apple device?

<comment><USER3> You're depending on every single email provider and client to support it.

GDPR is not a great example. A lot of American companies didn't even bother and just blocked everyone with an EU IP address.

<comment><USER8> Well as an end user, I do trust Apple. I want to put this in the hands of a for profit company that has the reach and know how to make this viable right now, not in some far distant future where adoption is low. While I like the idea, in practical terms the goal is:

1\. Make a login system that is private, secure and easy

2\. Have it be widely adopted right now

3\. Have it work forever, seamlessly

A for profit company with the reach of Apple is the perfect solution for all three points.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> > Apple is going to leverage its monopoly position as app provider on the > iPhone to force developers...to use Sign In With Apple.

So, is Ben making the argument that the above is illegal? I don't see any difference to Apple "requiring" developers to use a new framework.

He later says that even Android developers will be required to offer Sign In with Apple... but I don't see how that is possibly the case.

<comment><USER10> I think you may be misunderstanding what he's saying about Android. Here's what he wrote:

> Apple is going to leverage its monopoly position as app provider on the > iPhone to force developers (who use 3rd party solutions) to use Sign In With > Apple. Keep in mind, that also means building Sign In With Apple into > related websites, and even Android apps, at least if you want users to be > able to login anywhere other than their iPhones.

The developer will be required to support "Sign in with Apple" on the iPhone - otherwise Apple will reject your app.

Once a user creates an account with "Sign in with Apple", the developer has a choice. They can either:

1\. Exclusively support iOS, or

2\. Add "Sign in with Apple" across all platforms they support.

Both of these advantage Apple.

<comment><USER11> What's audacious is that Ben thinks Apple hasn't considered the antitrust implications of the above hypothetical.

I really doubt they'd force developers to use Sign in with Apple, instead they'll just make it desired and profitable. My guess: this goes as far as Apple Pay app integration does now - some but not all apps, and in the least required.

<comment><USER4> > I really doubt they'd force developers to use Sign in with Apple

If developers allow any third-party authentication (Google, Facebook, etc), they must also allow Sign In with Apple. This is a June 3 update, and it will be a requirement before the end of the year.

</comment></comment></comment></comment><comment><USER12> The author heard Cook's comments as advocating for privacy, but that's wrong. He's advocating for privacy legislation.

The utility of privacy legislation for a company like Apple is to protect itself from completion by firms too small to afford the armies of lawyers and compliance experts that Apple can. The tech industry it seems has finally caught on to the age old racket of regulatory capture. Every big tech chief can be heard begging governments to "stop us before we sin."

With their business models well proven and scale achieved, they will lobby for more regulations and of course volunteer to bring their distinctive expertise to the drafting table.

</comment><comment><USER13> These iPhone price graphs would be better if they accounted for inflation - which still shows a large increase in price, especially if you look at the flagship phones.

[https://kyso.io/eoin/iphone-prices](https://kyso.io/eoin/iphone-prices)

<comment><USER14> > These iPhone price graphs would be better if they accounted for inflation

I started normalizing the prices to 2018 prices after reading your comment, up until I realized the title points out that the values are inflation adjusted.

Also followed the links to find the original posting if anyone was curious.

[https://www.reddit.com/r/iphone/comments/9v45n9/the_cost_of_...](https://www.reddit.com/r/iphone/comments/9v45n9/the_cost_of_each_iphone_at_launch_adjusted_for/)

</comment></comment><comment><USER15> I would love for Apple to create an App Store populated only with apps that did things their way, guaranteeing a certain level of security and privacy.

They could easily allow other app stores that did things the other way, surviving off capturing user details and selling it off wholesale or whatever.

Let consumers make their own choice.

It would enable Apple to get rid of a shedload of insecure , spammy apps that provide minimal benefits to users in a crowded app market.

Apple could, if managed properly, turn it into a major selling point.

<comment><USER16> > It would enable Apple to get rid of a shedload of insecure , spammy apps > that provide minimal benefits to users in a crowded app market.

But those apps would still be Apple's problem, because they run on Apple's _operating system_. If Apple lets other "stores" on the platform, you can bet one of them is going to be the cesspool of every bad app there ever was; and when those apps do damage, Apple will be blamed.

Think of it this way: At the moment, there are two layers of protection for iOS users. The first layer is the app approval layer; the vast majority of malicious apps just don't get approved at all. Then, for those that slip past that defense, there are the normal OS defenses. And if an app is caught violating the rules, they can be kicked out.

If they let other app stores onto their platform, suddenly that first layer is gone: every malicious app in existence _will_ find its way onto a chunk of their users' phones, at which point the OS protection are a single point of failure.

<comment><USER17> > If Apple lets other "stores" on the platform, you can bet one of them is > going to be the cesspool of every bad app there ever was; and when those > apps do damage, Apple will be blamed.

Google is doing just fine with 70-80% of the world I'm sure Apple can figure it out.

<comment><USER3> As long as you exclude China from the world - they mostly use AOSP variants with no Google Services.

</comment></comment></comment></comment><comment><USER18> Ben doesn't explicitly draw this line, but it seems Apple is betting that courts reward orientation towards privacy in the face of monopolistic actions.

<comment><USER19> It's not just the courts. There's tremendous consumer frustration with the invasiveness of Facebook and Google tracking. Since Apple doesn't really make that much on being a service provider, relative to FB/Google, it gives them more room to make a strong play for the privacy market.

Being "the big tech company that doesn't stalk you like a creepy ex" is a potentially huge market.

<comment><USER2> > Being "the big tech company that doesn't stalk you like a creepy ex" is a > potentially huge market.

Genuine question - has anyone actually reliably demonstrated a pro-privacy position to meaningfully increase sales in the tech industry? Doing the opposite certainly doesn't seemed to have harmed the financial success of many so far...

Sure Apple are very pro-privacy and I applaud them for that, but if their approach was, say like Googles, I think they would probably still be selling largely the same number of iPhones.

Perhaps I am wrong, and let me be clear I like Apple's position. I just don't know today that it translates to the masses as a sales driving proposition.

<comment><USER20> I don't know of any numbers, but it is certainly a lockin factor. I once thought about android, now I never would as long as apple has this privacy stance. I have talked to others who feel the same.

Again, no hard numbers, but it's at least common enough that others I speak to routinely agree its important to them.

</comment></comment></comment></comment><comment><USER21> Is pro-film and audio production the target market for the new MacPro?

At first I thought they might be going for the ML demographic, which has the budget and demand for beefy workstations, but they're using AMD GPUs, not nvidia.

<comment><USER22> Mostly yes.

Apple has traditionally been _the_ computer for creatives. In recent years, they've let their pro hardware and software lines languish and I think they've lost quite a bit of ground since you can buy a windows computer that runs the same editing software for quite a bit cheaper.

Pro film and audio production people also have huge budgets, as evidenced by the $43000 reference monitor they compared the new display to in the keynote.

<comment><USER23> Macs are so, so, _so_ good for audio, nothing else comes close. Super low- latency out of the box, no drivers to install for either interfaces or MIDI controllers, and compatibility with Firewire and Thunderbolt interfaces on every machine built in the last 10 years. CoreAudio is incredibly stable and performant thanks to a double-buffer queue [1]. Logic Pro is an incredible feature-complete DAW for $200 that competes with Digital Performer ($500), Ableton ($750) and Pro Tools ($600).

[1] [https://www.cs.cmu.edu/~music/cmsip/slides/09-audio.pdf](https://www.cs.cmu.edu/~music/cmsip/slides/09-audio.pdf)

<comment><USER24> That's not really true because Windows does come close, and I say that as someone whose every day DAW is running on MacOS. I also have Windows on other machines to compare it to. Out of the box a Mac is fine as is but a well configured well spec'd Windows box is really good once paired with a decent interface.

</comment></comment></comment></comment><comment><USER25> The audacity of the monitor stand?

<comment><USER26> More like the audacity of using its monopoly position on app distribution to push for their new SSO solution, Sign In With Apple.

</comment></comment><comment><USER27> Isn't Single Sign On monopolistic by definition? Do we want 400 SSO providers? Wouldn't that not be "Single" Sign On? Before we ring the alarm of anti-trust and monopolies, do we really understand what the alternative means?

<comment><USER28> This is interesting...Apple and Google are going in totally different directions, based on their market strengths. Not a shocker but I'm interested to see how it plays out.

I've not read any of the apple docs so I'm not sure but I suspect Sign In with Apple is going to be required as an option, not required to be used. In other words a given app may have Facebook, Google, Apple sign in.

I don't think it's required today but what if Google takes the same stance as Apple and mandates that all Play Store apps must have Google sign in available.

So not 400 but at least two and likely three since Facebook is popular too.

If Apple mandates the use of Sign In then I think there may be some monopolistic issues. I'm not familiar with the actual law, grossly generalizing some comments below the theme is Apple cannot be monopolistic since there is an alternative in Android and Android has a larger world wide market share. I don't understand that line of reasoning but admit I do not know what the law says. Seems to me if you have complete control and it's harmful than that is monopolistic...

</comment></comment><comment><USER29> I think the general U.S. population is okay with monopolies that make their lives better. Apple will continue to push the envelope. Developers can fight back (does anyone remember the Apple vs Spotify thing?) but if Apple keeps putting out a consistent quality experience, the vast maturity of the population won't be sympathetic.

<comment><USER30> How is Apple a monopoly? They don't even have a majority of the US market.

I do agree they have incredible market strength. But that comes from a large base of loyal customers with deep pockets, not from monopolizing the market.

<comment><USER31> You don't have to have the majority of the market to display anti-competitive behavior.

<comment><USER32> The EU assumes you have a market-dominant position at a market share of 40%. You don't even need a majority of the market to be treated as a "monopolist".

</comment></comment></comment></comment><comment><USER33> What happens if sites start blocking Apple's anonymized login just like they block disposable emails?

</comment><comment><USER27> Ya know, I know everyone hates the big guys, but I'm pretty impressed with the new releases, including the Apple Sign On. I personally have never liked the way Facebook Connect or Google have implemented their frameworks. To add random email and optionality (not sure if others allow optionality with sign on or if they are still all or nothing based on requested permissions) is a win in my eyes. Yes, the requirement is a little strict but that's why their ecosystem yields consistent experiences across apps. And yes, they aren't a non-profit, but most of us have signed up for capitalism and if this enhances our privacy long-term then I don't think this is the worst outcome.

</comment><comment><USER34> With everybody now having an iPhone and Macbook, they don't feel that exclusive anymore. So they need to up the game, to show they are still a luxury product.

A $50k computer is certainly a good start from this point of view, Apple needs to reassert itself as a status symbol. They need to get the word out far and wide that they are selling a computer with the price of a good car.

<comment><USER35> don't worry, green texts keeps people snobby even if they don't know what it means.

<comment><USER36> There's definitely snob, but SMS is a really bad protocol by today's standards. (Most of my family is on RCS (aka Google Chat) now, and it's a huge improvement while still being worse than iMessage.)

<comment><USER3> So unencrypted RCS is better than unencrypted SMS?

<comment><USER36> The vast majority of people don't care about E2E encryption, and those that do still probably prefer RCS to SMS (typing indicators, messages send faster, images aren't compressed as all hell, group chats work, read receipts)

</comment></comment></comment></comment></comment><comment><USER37> This sort of articles always show up after Apple announcement.

I see the same cycle over and over again: laughter, rage, acceptance, repeat.

<comment><USER38> The sentiment of the article leaned more toward praise than any of those you enumerated.

<comment><USER37> You are correct. I saw the 6000 figure at the top and thought oh not again.

Serves me right for not reading the rest before commenting :(

</comment></comment></comment><comment><USER39> Does this mean we can't have our own login system anymore? If so how will you authenticate with APIs? You need to login to get tokens.

<comment><USER40> Unless I misunderstood, _Sign in with Apple_ is a required option, not the only required way to login. Of course it remains to be seen how long other options are allowed to coexist.

<comment><USER41> Required if you have other THIRD PARTY logins.

If you are your own (and only) account provider you should be fine.

<comment><USER42> is active directory (a product not a service) a third party?

</comment></comment></comment></comment><comment><USER43> Could it be that the new price tag of $6000 of the mac pro is a correction for the inflation Apple witnesses after 10 years of quantitative easing?

[https://editorial.azureedge.net/miscelaneous/chart1-63651777...](https://editorial.azureedge.net/miscelaneous/chart1-636517773869379779.jpg)

</comment><comment><USER44> I'd buy it, why's everyone always get so upset about price. If you get so upset by price you probably arent the target market for a 32-core computer.......... go build your own PC

<comment><USER45> What if I'm in the market for a solid Mac workstation? The lowest spec option for a Mac Pro is 6000 dollars. That is a lot of money for a computer.

Barring the Mac Pro, what are my options? There's the Mac Mini. Reasonably priced perhaps, but pretty low on specs and upgradability. I also have my concerns over the cooling.

Then there's the iMac. Again, concerns with the upgradability and cooling. At least the pricing is decent for a Mac. That is unless you go for the iMac Pro, which is almost the same level as the entry-level Mac Pro. At least the iMac Pro comes with a monitor stand.

<comment><USER44> I guess if a fully loaded iMac or MBP are not suitable to your needs, then you are in a particular niche where I would expect a person not to balk at $6000. There's not much either my MBP or iMac can't do and I heavily abuse them. The only thing I can think of would be very very intensive video editing, and in that case, $6000 is a drop in the bucket compared to most professional editing tools and software.

<comment><USER24> Except it's not a drop in the bucket anymore. All of the costs have come way down. To be honest I don't think they are targeting the everyday video producer. They are targeting the high end as like you say a lot of people could use the other products.

So why wouldn't we use the other products - they are not upgradable and rely on lots of cables and external boxes hanging off them. And for me personally the thermal design is poor. My MacBook Pro gets too hot, the fans kick in and then it's throttled.</comment></comment></comment></comment>


No, Seriously: Microsoft Patents Page Up & Page Down - <AUTHOR> http://gigaom.com/2008/08/27/seriously-microsoft-patents-page-up-page-down/ <comment><USER2> People just don't get it. Microsoft didn't patent Page Up, Page Down functionality. They patented a specific way of using page up and page down that goes down to the next page at the exact same section as the current page, which as far as I can tell nobody actually cares about.

</comment><comment><USER3> Tagged - "you_got_to_be_kidding_me." ;)

Patent system is _...as dysfunctional as Britney Spears_ \- love the analogy.

This is too detailed a patent and one can easily set the page down to one line above or below in the scrolled page and claim they don't infringe. Hence this patent is essentially useless.

<comment><USER4> Most patents provide implementation details just as an example and often have a disclaimer that basically says all other varying incarnations of the idea is covered by the patent. Yet another reason why most software patents aren't helpful.

<comment><USER5> Incorrect. The only legally valid part of a patent is in the exact language of the claims. Any other description makes no difference, and anything not laid out precisely in the claims is not covered by the patent. In fact, the body, abstract, description makes no difference - it's only to lay the foundation for the claims themselves.

</comment></comment></comment><comment><USER6> Explanation for the patent in a reddit comment: [http://www.reddit.com/r/programming/comments/6xjmq/us_patent...](http://www.reddit.com/r/programming/comments/6xjmq/us_patent_7415666_method_and_system_for/c054yj8)

</comment><comment><USER7> with our patent system I bet this patent infringes on one of the prior ones, I just don't believe that none of the early keyboard manufacturers didn't bother to patent such an innovative leap in keyboard technology

</comment><comment><USER8> I can't read the patent because I don't want to infringe it by using my PgDn.</comment>


Patent troll drops case one day after Newegg's lawyer calls - <AUTHOR> http://arstechnica.com/tech-policy/2016/01/patent-troll-realizes-it-sued-newegg-drops-lawsuit-the-next-day/?comments=1 <comment><USER2> Link to article rather than comments: [http://arstechnica.com/tech- policy/2016/01/patent-troll-real...](http://arstechnica.com/tech- policy/2016/01/patent-troll-realizes-it-sued-newegg-drops-lawsuit-the-next- day/)</comment>


PictureSwap: Upload a picture to discover what the last visitor uploaded [nsfw] - <AUTHOR> http://pictureswap.org/ <comment><USER2> Reminds me of a game you could play on PC Pursuit [1] called PC Roulette: Connect to the remote dial-out modem and type "A/" [2] to dial out to the last phone number somebody else called.

[1] [https://en.wikipedia.org/wiki/Telenet#PC_Pursuit](https://en.wikipedia.org/wiki/Telenet#PC_Pursuit)

[2] [https://en.wikipedia.org/wiki/Hayes_command_set#The_basic_Ha...](https://en.wikipedia.org/wiki/Hayes_command_set#The_basic_Hayes_command_set)

</comment><comment><USER3> Hmm, just browsing to [http://pictureswap.org/success](http://pictureswap.org/success) gives you the other side's image without uploading one yourself :/ That's probably not what it's supposed to do?

<comment><USER4> You can also accidentally forget to browse for an image, just click the 'Upload Picture' button, and get taken to the same page :)

</comment></comment><comment><USER5> Why is hackrrnews linking to a site with porn ads?

</comment><comment><USER6> Anybody else got the same pic they uploaded?

Edit: Second time worked. Apparently a lot of people google "stupid" and upload the first image... Lovely.

</comment><comment><USER7> I really font like these kinds of posts that just shows a meaningless website that doesn't intrigue me at all. A side project and hobby project should be advertised on their own facebook or twitter, not on hackers news.

EDIT: OP is self promoting, look at his/her history posts about exact site. Flagged

</comment><comment><USER8> i just get random google image search images...

<comment><USER9> That is better than the "chat roulette penis gallery redux" I was imagining this to be.

</comment></comment><comment><USER10> Who remembers Facebook's Slingshot?

</comment><comment><USER11> It showed me my own upload.</comment>


Estimated Excess Mortality from Hurricane Marie [pdf] - <AUTHOR> https://publichealth.gwu.edu/sites/default/files/downloads/projects/PRstudy/Acertainment%20of%20the%20Estimated%20Excess%20Mortality%20from%20Hurricane%20Maria%20in%20Puerto%20Rico.pdf <comment> a-fried-egg What were the actual results?</comment>


Debbie Harry: 'Music matters. YouTube should pay musicians fairly' - <AUTHOR> https://www.theguardian.com/music/musicblog/2016/apr/26/debbie-harry-youtube-royalties <comment><USER2> Musicians used to make money from copies of their works, but technology has lowered the price of copies to nothing so now successful musicians charge for performances or initial releases. What is fair has changed. What is unfair is charging consumers as if the world were still as it used to be full of expensive copies.

<comment><USER3> It also seems unfair for hundreds or maybe thousands of unlicensed copies of an artist's music to exist on a service like YouTube and that artist not receiving any revenues for those streams. At least Spotify and Apple Music pay royalties.</comment></comment>


Emacs adventures - a couple of things I've learned - <AUTHOR> http://hcoder.org/2011/11/28/emacs-adventures/

<comment><USER2> One way to learn Emacs is to study other people's .emacs files. The stuffs there usually address real world problems people facing. I always learn something new when looking at other .emacs files.

</comment><comment><USER3> He doesn't mention emacs-starter-kit, so as a community service, I'm pointing it out. I had used Emacs for a long time, and switching to this made my life much easier. And my customizations still worked fine (although I was able to remove many of them)

<https://github.com/technomancy/emacs-starter-kit>

WARNING!!! The version in git is for Emacs 24. You will need to actually download the earlier version to use with Emacs 23.

<comment><USER4> Much of the stuff in the starter kit (but not all of it) is actually in emacs24. Phil has been influential in making this happen, I think.

I too got started using emacs with technomancy's starter kit.

BTW I am not a fan of js2 mode based on my initial use of it, but perhaps I'll try the tweaks.

</comment></comment><comment><USER5> Does hippie-expand have any real advantages over autocomplete-mode?

</comment><comment><USER6> Site's down

<comment><AUTHOR> It seems to be up now, but maybe a bit slow?

</comment></comment><comment><USER7> In Emacs you often need to make Lisp macros for customizations. I love Emacs and have been using it daily for the last few years, but it's not newbie friendly. Making small tweaks can require extensive Google searching.</comment>


The Hardest Logic Puzzle Ever - <AUTHOR> https://en.wikipedia.org/wiki/The_Hardest_Logic_Puzzle_Ever <comment><USER2> This is amazing - thanks!

Now I can die perplexed :)

</comment><comment><USER3> Dope. Thanks for the post!</comment>


TCP in 30 instructions (1993) - <AUTHOR> http://www.pdl.cmu.edu/mailinglists/ips/mail/msg00133.html? <comment><AUTHOR> Previous:

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

I was looking for a good link, this is a bit nicer to read but in pdf:

[http://people.cs.clemson.edu/~westall/853/notes/vanjtcp.pdf](http://people.cs.clemson.edu/~westall/853/notes/vanjtcp.pdf)

Stumbled upon when reading the linux receive path:

[https://github.com/torvalds/linux/blob/dd5cdb48edfd344017990...](https://github.com/torvalds/linux/blob/dd5cdb48edfd34401799056a9acf61078d773f90/net/ipv4/tcp_input.c#L5193)

</comment><comment><USER2> The 30 instructions don't include

" _In the case of TCP, the upcalls almost always go two levels: IP finds the datagram is for this host & it upcalls a TCP demuxer which hashes the ports + SYN to find a PCB, lays the packet on the tail of the PCB's queue and wakes up any process sleeping on the PCB. The IP processing is about 25 instructions & the demuxer is about 10._"

Further, note the "almost always"; it's true, but it's not "always".

Also, there's

" _So, the first term of the 'if' checks four different things simultaneously: \- that the window is what we expect \- that there are no tcp options \- that the packet has ACK set & doesn't have SYN, FIN, RST or URG set \- that the connection is in the right state and the 2nd term of the if checks that the packet is in sequence..._"

The result is that

" _On the normal receive data path we execute 16 lines of C which turn into 33 instructions on a sparc (it would be 30 if I could trick gcc into generating double word loads for the header & my carefully aligned pcb fields)._"

Note the phrase, "normal receive data path". Again, "almost always" is not necessarily "always". This heavily optimizes the common path while penalizing the uncommon path.

IBM's AIX also did something similar, back when I knew anything about it; it did almost all of TCP in the hardware interrupt handler, making the same assumptions of windows, options, flags, connections, and sequence numbers. It was ridiculously fast.

On the other hand, the non-fast-path cases have to be handled somewhere and are considerably more than 16 lines of C. Further, I'm not sure all of the assumptions are valid any longer. One assumption in AIX was that the incoming packet was the next segment of the same connection as the previous packet. That was true then, but may not be true now given that servers are handling more connections than back in 1993.

YMMV. Offer not valid in all 50 states. Don't shoot the messenger. Yes, we have no bananas.

</comment><comment><USER3> This is neat to see! Reminds me of the 200 line TCP/IP stack:

[http://www.moserware.com/2008/04/towards-moores-law- software...](http://www.moserware.com/2008/04/towards-moores-law-software- part-3-of-3.html)

which has a previous HN discussion: [https://news.ycombinator.com/item?id=846028](https://news.ycombinator.com/item?id=846028)

</comment><comment><USER4> "A full TCP/IP stack in under 200 LoC (and the power of DSLs)": [https://news.ycombinator.com/item?id=846028](https://news.ycombinator.com/item?id=846028)

</comment><comment><USER5> Van Jacobson is the man.

I was interested to read this line:

> There is exactly one, contiguous, packet per 'pbuf' (none of that 'mbuf' > chain stupidity)

because we recently switched to the same design in Snabb Switch: [https://groups.google.com/d/msg/snabb- devel/8P7U3a55hVQ/_GAs...](https://groups.google.com/d/msg/snabb- devel/8P7U3a55hVQ/_GAs3XPdLNcJ)

</comment><comment><USER6> 30 SPARC instructions. I wonder if it'd be smaller in x86, which is denser.

</comment><comment><USER7> > call _in_uiomove,0

Should probably add a few more for the called function, no?</comment>


How Fair Is My D20? (2015) - <AUTHOR> http://www.markfickett.com/stuff/artPage.php?id=389 <comment><USER2> As an approximation, we can estimate each face with an approximation to the binomial at looking at where the cut off is for rejections at p=0.05.

If you're looking at a single face,

With 2000 rolls, you would expect a range of 81-120. (0.0405- 0.0600)

At 3000 rolls, that "narrows"\\* to 127-174 (0.0423 - 0.580)

At just 100 rolls, anywhere between 1 and 10 occurences looks fair.

However, it would be better to do a proper chi-squared test, this was just illustrative, so let's do that.

Let's take the chessex opaque purple, which looks like it has 8300 rolls. By our approximations above, we expect to see rolls between 377 and 454.

In our actual data we appear to have a minimum of 313 with face13, and a maximum of 531 with face17.

So let's do a pearson's chi-squared test. Rolling 8300 times we expect 415 for each face.

We calculate for each observation, the difference between that and the expected value, and divide by the expected value, and then sum over all faces.

This gives a value of 155.3108 . We then have to compare this to the chi- squared test for 19 degrees of freedom. (There are 19 degrees of freedom because we have 20 faces, so after we have 19 results, the 20th must be fixed by being 8300 minus the sum of the first 19 faces).

Digging out our statistical tables (you DO have statistical tables right?), and lookup at 19 degrees of freedom, we can see 155 far exceeds even the p=0.01 level.

So we can conclude that the chessex opaque purple die rolled here is biased. (Or the die-roller is).

\\* It narrows in proportion to the total, the absolute margin is wider. This is something that people often forget when dealing with the law of large numbers.

<comment><USER3> Python3

        import random, statistics

        num_of_sims = 10000
        num_of_rolls = 3000
        results = []

        for s in range(num_of_sims):

            sum_of_rolls = 0

            # roll 20 sided dice
            for r in range(num_of_rolls):
                sum_of_rolls += random.randint(1,20)

            # keep track of the average value
            results.append(sum_of_rolls / num_of_rolls)

        print("ave: ", statistics.mean(results)) # which is 10.49915
        print("stdev: ", statistics.stdev(results)) # which is 0.10492

Now where did I put my statistical tables?

</comment></comment><comment><USER4> I have worked, about 15 years ago, on a contract for a company that amongst other things produced automated roulette tables.

They had a large hall packed with those that would constantly spin up, drop the ball and record results. There was mathematician employed to check series for any statistical anomalies. I had few chats with the guy, I was quite impressed the level of detail and care to make sure the wheels are perfectly symmetrical and fair.

Most of the cost of the machine goes into making the wheel symmetrical. I remember something like 20 or 30 thousand dollars spent on the single piece of metal that becomes the wheel.

<comment><USER5> It's interesting they put so much work into that because roulette tables have a ~5% house edge, so even a fairly large bias wouldn't cost the house.

<comment><USER6> Until that 5% edge turns out to be a 7% edge (thanks to the bias) and the relevant regulators come down on you like a ton of bricks for cheating your players.

<comment><USER5> Any fixed predictability can only decrease the house edge. The players make the bets, not the house. Obviously if you could vary the predictability you could cheat people by selectively avoiding payouts for large bets, but that's separate.

</comment></comment></comment></comment><comment><USER3> The mechanical rolling and computer vision is impressive, but wish he had noted if the results were statistically significant. Just a final touch to the article. At 100-150 rolls per face, my gut is saying no. I guess I'm going to have to whip up a couple loops in python after work to satisfy my curiosity.

<comment><USER7> The usual gut reaction for statistical significance is that n*p should be 20, or 20 rolls per face. 100-150 should be statistically significant.

<comment><USER2> You can't assign significance to a sample size alone.

A sample size of 10 can be significant (if it were 10 1's for example), and a sample size of 100,000 can be not significant, for example if you were to roll 4,953 1's.

<comment><USER8> i believe the op meant "Statistical power"

</comment></comment></comment></comment><comment><USER9> Makes me wonder the extent to which the rolling surface would affect the outcome. A harder surface would cause more bouncing. Would more bouncing increase or decrease the relative fairness?

<comment><USER10> One common test of a die's fairness is floating it in salt-water, which allows any irregularity in the weight distribution to show itself. From that, intuitively I would assume that zero resistance (as much bouncing as possible/needed) would result in the unfairness making itself most apparent. Meanwhile, zero bouncing would cause the die to stick where it lands, making any unfairness the result of how it was thrown, and it's easier to cause a lot of randomness in that regard.

That said, I'm not sure that's generalizable to more realistic amounts of bouncing ("only a bit of bouncing" as opposed to "none at all", and "kinda a lot of bouncing" as opposed to "effectively zero resistance").

<comment><USER11> I've never actually heard of the salt water test. It makes sense thinking about it. I got a bag of dice from my dad, from his d&d days, from when he was younger than me. There's a huge mix of some really weird dice in there. They're fairly worn, some of the numbers aren't visible any more, and their original quality ranges wildly. I wouldn't mind dropping them all in a bucket of salt water to see now. I've drawn my own conclusions about them over the years of using them, it'd be interesting to see how well they match up.

Also, i wonder how my dad's homemade d20, made out of a double d10(d20 with 0-9 twice, 0's used as 10 and 20) with half the numbers coloured red(11-20 is red), with a pen, would rank up, it was likely just done randomly.

<comment><USER10> If you're going to do the salt water test, only use a glass of water, not a bucket. It takes quite a bit of salt to make the density of the salt water higher than most dice.

</comment></comment></comment></comment><comment><USER12> For the graphs showing "normalised frequencies", I'd drop the "based at zero" bars and draw them from 1 instead. You'd lose a lot of orange ink that's distracting and show the deviation much more clearly.

Something like [https://rjp.is/dice-graph.png](https://rjp.is/dice-graph.png) (best I can do with Preview, sorry!)

</comment><comment><USER13> This reminds me of an old post with a dice rolling machine for a gaming site capable of producing 1.3 million dice rolls per day, [http://gamesbyemail.com/News/DiceOMatic](http://gamesbyemail.com/News/DiceOMatic)

<comment><USER14> > Currently, GamesByEmail.com uses some 80,000+ die rolls for play in games > like Backgammon, Gambit (a RISK clone), W.W.II (an Axis & Allies clone) and > others. To generate the die rolls, I have used Math.random, Random.org and > other sources, but have always received numerous complaints that the dice > are not random enough.

That's a super cool machine, but the justification seems a bit silly. The randomization library in any programming language should be good enough for casual games, and random.org uses atmospheric noise which is almost certainly more random than dice: [https://www.random.org/history/](https://www.random.org/history/)

<comment><USER5> This is to make players happy, not to provide better randomness. Many players will not trust any random data coming from a computer.

<comment><USER15> As a player, I'd be amused by using radioactivity-generated randomness!

[https://www.fourmilab.ch/hotbits/](https://www.fourmilab.ch/hotbits/)

</comment></comment></comment></comment><comment><USER16> I would love to see this experiment done with the d20 from The Dice Lab. They make their d20 dice with "ideally-balanced vertex sums while retaining the opposite-side numbering convention". They explain why this makes for a bit fairer dice here. [https://mathartfun.com/thedicelab.com/BalancedStdPoly.html](https://mathartfun.com/thedicelab.com/BalancedStdPoly.html)

<comment><USER17> > They explain why this makes for a bit fairer dice here.

Well... they explain why the opposite-side numbering convention makes for fairer dice. They don't say anything at all about balanced vertex sums other than "we believe it's important".

Just compare the reasoning:

> If a die is unintentionally oblate (slightly flattened on opposing sides), > the flatter regions are more likely to turn up when the die is tossed. If > these two opposite numbers were 19 and 20 for example, then the die would on > average roll high, since these two numbers would come up too often. Having > the two numbers add to 21 avoids any such bias in the average number rolled. > For this reason, the opposite-side numbering convention improves fairness.

vs

> Equally important in our opinion is balancing of the vertex sums.

This does not give me confidence that the vertex sums matter.

<comment><USER18> The paper describing these dies might help then:

[http://www2.oberlin.edu/math/faculty/bosch/nbd.pdf](http://www2.oberlin.edu/math/faculty/bosch/nbd.pdf) Bosch, Robert; Fathauer, Robert, Segerman, Henry - Numerically Balanced Dice (2016)

(btw., here's the about page for The Die Lab: [https://www.mathartfun.com/thedicelab.com/DiceDesign.html](https://www.mathartfun.com/thedicelab.com/DiceDesign.html))

More various stuff on fair dice:

On fair but irregular plyhedral dice:

[http://statweb.stanford.edu/~cgates/PERSI/papers/fairdice.pd...](http://statweb.stanford.edu/~cgates/PERSI/papers/fairdice.pdf) Diaconis, Persi; Keller, Joseph B. - Fair Dice (1989)

[https://mathoverflow.net/questions/46684/fair-but- irregular-...](https://mathoverflow.net/questions/46684/fair-but-irregular- polyhedral-dice)

[https://pp.bme.hu/ar/article/download/7607/6570/](https://pp.bme.hu/ar/article/download/7607/6570/) \- Várkonyi, Péter L. - The Secret of Gambling with Irregular Dice: Estimating the Face Statistics of Polyhedra (2014)

[https://web.archive.org/web/20110925191300/http://blog.eqnet...](https://web.archive.org/web/20110925191300/http://blog.eqnets.com/2009/08/24/dynamical- bias-in-the-dice-roll/)

Note: The link to [http://maths.dur.ac.uk:80/~dma0cvj/mathphys/supplements/supp...](http://maths.dur.ac.uk:80/~dma0cvj/mathphys/supplements/supplement2/supplement2.html) in the comments there is broken and the archived version doesn't have the images, but the PDF copy survives in the archive. (One can find the other PDFs from that page here, by filtering: [https://web.archive.org/web/*/http://www.maths.dur.ac.uk/~dm...](https://web.archive.org/web/*/http://www.maths.dur.ac.uk/~dma0cvj/mathphys/*))

"Polyisohedral" dices: * [http://loki3.com/poly/polyisohedra.html](http://loki3.com/poly/polyisohedra.html) * [http://loki3.com/poly/fair-dice.html](http://loki3.com/poly/fair-dice.html)

[http://www.mathpuzzle.com/MAA/37-Fair%20Dice/mathgames_05_16...](http://www.mathpuzzle.com/MAA/37-Fair%20Dice/mathgames_05_16_05.html)

[https://web.archive.org/web/20050602020925/http://www.geocit...](https://web.archive.org/web/20050602020925/http://www.geocities.com/dicephysics/)

[https://savevsdragon.blogspot.com/2011/11/brief-history- of-p...](https://savevsdragon.blogspot.com/2011/11/brief-history-of- polyhedral-dice.html)

[https://journals.aps.org/pre/abstract/10.1103/PhysRevE.78.03...](https://journals.aps.org/pre/abstract/10.1103/PhysRevE.78.036207) How random is dice tossing?

</comment></comment></comment><comment><USER19> Interesting. I went to the most recent Prerelease event for Magic: the Gathering and my first opponent told me to not use the D20 that came with the kit and to use his individual D6s. He said they had known biases. Maybe he was on to something.

<comment><USER20> As a mtg player, I really don't get why can't we use spin-down dice as high roll at the beginning of the game.

<comment><USER21> I'm a former competitive MtG player. My playgroup found that with a bit of practice and a specific technique, we could roll 17+ on any spindown dice almost every time (try rolling the die with it starting in your hand with the 20 facing upwards with a sideways motion). While technically you can use any method you choose to randomly determine the start of a game, these dice have been proven to not be "random" thus cannot be used in a tournament. It doesn't matter at all in casual play, but in a tournament, you're just giving your opponent a chance to play first for free.

</comment></comment></comment><comment><USER22> there is also the saltwater float test for lighter plastic dice.

[https://www.youtube.com/watch?v=VI3N4Qg- JZM](https://www.youtube.com/watch?v=VI3N4Qg-JZM)

Anyone know of an easy way to do metal dice?

<comment><USER23> Have you ever seen numbers run on float tested dice that test as biased?

Metal dice are less likely to have balance issues on the individual dice as long as the mold is balanced (because they are solid and heavy).

Source - I own a dice company.

<comment><USER22> I have not, but that sounds like a great kinda thing that a dice company should post! My d&d players are _kinda_ dice obsessed. What is your company? My buddy and I run a small business making dice towers/trays on a laser.

<comment><USER23> Yea, it's something that we want to do at scale (rollers, dice) via machine vision so all the "well actually" people that pop out of the woodwork with edge cases can be addressed ahead of time.

Hahaha, not ready to dox myself yet but you can probably figure it out with a little digging.

</comment></comment></comment></comment><comment><USER24> Von Neumann's algorithm for simulating a fair coin from a coin which is arbitrarily biased (but with independent throws) has moral analogs for any number of faces. By using more state you can also extract more data per throw.

Pieter Wuille created a table based implementation for a d6: [https://gist.github.com/sipa/1913cf8aae565ddad0d1de7f2e9f7f3...](https://gist.github.com/sipa/1913cf8aae565ddad0d1de7f2e9f7f31) though it isn't terribly efficient -- extracting only 2.722 bits per 4 roles, instead of the 10.34 which is theoretically possible -- because the table becomes fairly large fairly fast. d20 would be even worse.

[https://gist.github.com/sipa/1621c40775007f1c27a39b608a765b1...](https://gist.github.com/sipa/1621c40775007f1c27a39b608a765b16) is a similar implementation for two sides that extracts more than half the theoretical entropy.

If your application wanted uniform d20 throws a table that converted independent but biased d20 throws into unbiased d20 throws would be possible (though like above it would be inefficient unless it were very big.)

</comment><comment><USER5> Interesting that this confirms other findings that the gamescience dice must have the sprue-stub removed for fair rolling. This is intuitively true, but contrary to Gamescience's marketing.

</comment><comment><USER25> Related, on d6's: [http://variancehammer.com/2015/07/31/musing-on-custom- dice/](http://variancehammer.com/2015/07/31/musing-on-custom-dice/)

<comment><USER26> Here's a fascinating vizualization of 6000 simulated D6 rolls - [https://www.reddit.com/r/dataisbeautiful/comments/au25nq/sim...](https://www.reddit.com/r/dataisbeautiful/comments/au25nq/simulating_6000_die_rolls_visualization_created/?st=JSM726PF&sh=a4988eeb)

</comment></comment><comment><USER27> Should add [2015] to the title

<comment><USER28> Hah yes, as the author I was surprised to see this pop up again! But it's a pleasant surprise for sure.

<comment><AUTHOR> It was on Lobste.rs first and I thought people here might like it as well.

</comment></comment></comment><comment><USER29> I wonder about auto-correlation and repeated sequences of runs. If it isn't totally random, then it is partly not random. What is the nature of the non- randomness?

</comment><comment><USER5> It would be interesting to take some of the unfair dice and sand down the faces until they are equal diameters. That's a big time commitment though.

</comment><comment><USER30> Would have liked to have seen a bootstrap estimate of the die's empirical entropy to see how much it is lacking against uniform.

<comment><USER28> If you want to do that analysis, I'd be very interested to see it / hear how you do it. All the data is in the GitHub repo, for example [https://github.com/markfickett/dicehistogram/blob/master/dat...](https://github.com/markfickett/dicehistogram/blob/master/data/151023d20chessexgeminicoppersteel/labels.csv) lists the rolls for one test.

I ran bootstrapped subsampling to estimate confidence intervals (see comment above), not sure how similar that is to what you're asking about.

</comment></comment><comment><USER31> That's pretty neat. Wonder if he wore a hole in the wood veneered desk.

</comment><comment><USER32> Very nice work! I am not sure what method of analysis would be the most appropriate, but the sequence matrix deserves a closer look. You mention the possibility of one side being preferentially followed by another one, but you only investigate the simple case of the two sides being equal (preference for the diagonal). However, the correlation could be less obvious, such as one side being followed by its opposite, or by an adjacent one.</comment>


Surviving reformats by infecting the hard disk firmware - <AUTHOR> http://www.malwaretech.com/2015/06/hard-disk-firmware-rootkit-surviving.html <comment><USER2> _This rootkit is designed for a major brand of hard disk and can infect the firmware from within the operating system (no physical access required), it 's also completely undetectable to software running on the host computer._

Skeptical about this -- especially the claim that it's "completely undetectable". One of the projects[1] we've worked on for 01.org now ships with UEFI SCT[2], which was designed to address this very issue.

Flash LUV to a USB and run the suites.. the tests will write to a folder on the USB, both "raw" and "parsed" results, so you can essentially have a log[3] of any issues.

      [1] https://github.com/01org/luv-yocto
      [2] http://firmware.intel.com/blog/linux-uefi-validation-project-incorporate-uefi-sct
      [3] https://01.org/linux-uefi-validation

<comment><USER3> Well the bootkit is undetectable to the _compromised_ OS, but not to another OS booted safely from another boot device (such as a USB stick).

As the author explains in his slides, only the first read of the MBR will return the bootkit. Subsequent reads will return the legit MBR. So a compromised OS attempting to check its own MBR will see legit data. But an OS booted from another boot device can read the MBR one time and can immediately see the MBR contains non-standard code (eg. not the standard Windows or Grub boot loader) and can conclude it is compromised.

</comment></comment><comment><USER4> It's a mystery to me why, in this day and age, anyone is making firmware- upgradable hardware and not checking a digital signature on the firmware upgrade.

I mean, 20 years ago there might have been space constraints, but these days that hardly seems like a worry. So why isn't secure firmware the standard?

Or will it take some malware being publicly released to get the hardware companies to take notice?

<comment><USER5> That would infringe on the end user's right to install their own customized firmware.

Seriously though, signed firmware is something that is inevitable but also easy to delay with some shady dealing. With NSA buying a non trivial number of disks to store their illegal collections, they could easily induce disk manufacturers to put off introducing firmware signing.

<comment><USER6> You could have a physical switch on the device that lets it temporarily accept unsigned firmware.

<comment><USER7> You could have a physical switch on the device that lets it accept firmware, full stop. How often does a drive's firmware get updated during its lifetime? Very slightly more than zero times on average, I would imagine.

<comment><USER6> The manufacturer may need to push updates to consumers who aren't comfortable opening their computer. The set of people who want to install alternate firmware is however included in the set of people willing to physically open a computer.

<comment><USER8> The switch could be extended to the outside of the box - shock/horror.

How hard a single pin/paper-clip button that protects all critical files unless it's depressed and when it's depressed let's you install new firmware, OS and whatever else.

</comment></comment></comment></comment></comment></comment><comment><USER9> This is why all the data that goes to a hard drive should be encrypted before it gets there. No reason for the system to be trusting that the storage isn't malicious. If all the storage sees is encrypted data then the worst that it can do is fail to store the data. What it can't do is substitute malicious code for my desired code.

<comment><USER10> Maybe what could happen though is that when booting the operating system, instead of reading whatever code normally runs as the kernel launches, some malicious code could be sent to the processor instead

<comment><USER9> I'd like to see the firmware decode/encode the MBR or MBR-equivalent. Encryption only being available if someone sets a jumper on the mobo during OS installation.

</comment></comment></comment><comment><USER11> The average computer has how many places to store malware outside of the filesystem?

The classics are MBR and BIOS.

These days IPMI BMC and storage device firmware are becoming popular.

However, we also have PCI device firmware (eg. GPU firmware, network card firmware), connected firewire device firmware, USB input device firmware... others?</comment>


Intel's Tiger Lake 11th Gen Core I7-1185G7 Review - <AUTHOR> https://www.anandtech.com/show/16084/intel-tiger-lake-review-deep-dive-core-11th-gen/ <comment><USER2> Even with AMD's better performance, OEMs are still shipping their flagship with Intel since Intel partnered in many of the laptop designs. I really wanted to hop on the Ryzen train, but USB4 isn't here yet (despite being able to, no devices have Thunderbolt), the displays for Ryzen models are all lackluster, and other premium features seem to be missing. With this being the case along with the number single-core performance means to some and the Xe graphics overhaul, Intel is still in a great spot on mobile.

<comment><USER3> I made the mistake of buying a T14s to replace an aging POS Xiaomi (and get off the world of "switchable graphics" forever)

The colour accuracy on the screen given was something like 37%. When I enabled any sort of colour shifting program, it would go completely sideways. Comparing it to a $300 (AUD) Oppo cell phone [https://i.imgur.com/Rnh6leC.jpg](https://i.imgur.com/Rnh6leC.jpg)

/r/AMDLaptops has a surprisingly comprehensive guide of what is out there at what price points and markets

After Lenovo refused to replace the panel with the only part their own forums stated was the "good" SKU, I purchased the only other seemingly decent looking Ryzen 4000 laptop. The MSI Modern 14

I think the best description I can give of the laptop is "I like it but"

It has a nice screen, the keyboard is comfortable (and doesn't have an annoying layout like the Thinkpad with the FN/Ctrl keys)

But the tradeoffs for it are

\- No USB-C charging. The USB-C port doesn't support power delivery (and is only 5Gbps, not 10Gbps)

\- The SSD is utter garbage. 480 gig on a single NAND flash chip. I was having Linux stall on writing PNG icon files to the chip for 10~ seconds at a time while installing XFCE4!

\- USB 2.0 in 2020 shouldn't be a thing on an "Ultrabook" laptop

\- The Ryzen model only has a 6 thread(?) CPU, and it does get a bit toasty with the "meh" cooling fan in the laptop

<comment><USER4> I find Lenovo's QA and support absolutely atrocious. My organization bought a ton of ThinkPad X1 Yogas - quite expensive devices. Turns out that everyone's TouchPad would stop working properly (intermittent 2 second lags every couple of seconds) when waking up from a screen-off in battery mode. Workaround is closing the lid to bring it into standby, open it and sign in again. Thousands of users reporting the same thing for various models over the last 2.5 years, absolutely no response from Lenovo. Do only Apple users expect their stuff to actually work and hold them to that standard?

</comment></comment></comment><comment><USER5> These single-threaded results are spectacular. This laptop posts a web browser performance score (on Speedometer 2) higher than any system AnandTech has ever tested, save one (a Core i9-10900K, a factory overclock in essence). A laptop that beats almost all high-end desktop systems in web browser performance would be nice to have.

<comment><USER6> This is a really important result for Intel, as they might continue to keep on being competitive for certain workloads. Intel managing to eek out some more life out of the one thing they still had (and were about to lose): single thread performance.

One thing that Intel has done incredibly well these past five years is eeking out every damn thing out of Skylake they had (IIUC this is still fundamentally an iteration on Skylake, albeit the biggest we had since 2015). Their inability to improve process and architecture is painful to watch but man have they stretched what they already had under this competitive pressure.

That power consumption though, oof. Anything that is remotely multithreaded suffers immediately, and this will be obliterated again by Zen 3 APUs, and likely Apple's A14X. But there's some chance now they will still be able to win _some_ benchmarks against AMD and Apple into next year, so good for them!

<comment><USER7> This isn't a Skylake-derived CPU, this is a Willow Cove CPU, which is based on a new uarch.

<comment><USER8> AFAIK the lineage can be traced all the back to Sandy Bridge in 2011. Fundamentally, it seems Willow Cove is an iteration of Skylake which in turn is an iteration of Sandy Bridge. Some buses and internal caches were widened but the general structure is fairly similar to Sandy Bridge.

Some quick review suggests the big change for Willow Cove was a cache redesign [1]. The previous generation, Sunny Cove, added widened reorder buffers, a larger L1 data cache, added components to some integer units (including an integer division unit), doubled the load/store buffers, and widened the vector units to handle 512 bit instructions without splitting them (like Ryzen currently does). But, the architecture and core structure is still the same as Skylake. Same number of integer, vector, and floating point units, fairly similar front end, etc.

For reference: [https://www.hardwaretimes.com/intel-sunny-cove-vs- zen-2-core...](https://www.hardwaretimes.com/intel-sunny-cove-vs-zen-2-core- architectures-comparing-comet-lake-ice-lake-and-ryzen-3000/) [https://www.anandtech.com/show/15971/intels-11th-gen-core- ti...](https://www.anandtech.com/show/15971/intels-11th-gen-core-tiger-lake- soc-detailed-superfin-willow-cove-and-xelp/3)

</comment></comment></comment></comment><comment><USER9> There's almost no comparisons made to AMD in the article, which I would have been interested in. Last sentence:

> Tiger Lake isn't sardine oil basting AMD just yet, but it stands to compete > well in a number of key markets.

That just sounds like a polite way of saying that AMD is still very much on top.

<comment><USER10> _The new Tiger Lake stills falls down against the competition when we start discussing raw throughput tests. Intel was keen to promote professional workflows with Tiger Lake, or gaming workflows such as streaming, particularly at 28 W rather than at 15 W. Despite this we can easily see that the 15 W Renoir options with eight cores can blow past Tiger Lake in a like-for-like scenario in our rendering tests and our scalable workloads. The only times Intel scores a win is due to accelerator support (AVX-512, DP4a, DL Boost). On top of that, Renoir laptops in the market are likely to be in a cheaper price bracket than what Intel seems to be targeting._

As I read this, and other reviews/analysis of the Tiger Lake node I can see Intel competing with the only tool it has left, specialized instruction sets. This continues to create a gap between things built for "i86-64" architecture vs "x86-64" architectures. What I expect to see from that is Intel touting performance advantages in applications that I don't use, and never comparing the performance of applications I do use. This is a bad place for Intel to be, but it is kind of like sailboat racing. In sailboat racing one boat can appear to be ahead of its rival to non-sailors, but sailors who know the boat is going to have to tack to make the mark recognize it is actually behind.

So much of technology is like this, where the choices today ripple through the opportunities and choices you will have in the future, trying to guess which are the important ones feels more like divination than decision making.

This is the second time AMD has made some good decisions that have resulted in an advantage. AMD's challenge has been to make these sorts of decisions on a regular enough cadence to _maintain_ that advantage. If I were a leader in the CPU architecture or the manufacturing processes group at AMD I would be soooo stressed these days.

<comment><USER11> Here is some more divination stuff: [https://www.tomshardware.com/features/intel-11th-gen- tiger-l...](https://www.tomshardware.com/features/intel-11th-gen-tiger-lake- superfin-10nm-benchmarks)

which I've found to be more informative regarding the memory- and the bus- bandwith.

tl;dr would be it has about 50% more peak memory bandwith than the best Renoir from AMD, which translates to about one third when all its cores use that. And can dynamically downclock the ring-bus and memory-interface while the cores are running at full speed. Which depending on the task can be good or bad for the task, but always good for battery. While AMD is still on top of that when all cores are used, because it has twice many of them.

edit: Some other report mentioned almost instaneous resume, and never more than 8 seconds boot time from cold start to running desktop.

<comment><USER10> Agreed, however there is a caveat. One of the things we discovered at NetApp doing performance analysis of Intel vs AMD designs (during the early Opteron days) is that Intel's memory bandwidth was constrained by the transaction rate of their memory controller. Between pre-fetch traffic and pointer jumping workloads (which cause frequent TLB invalidation) they were never able to actually reach their theoretical bandwidth even with static ram instead of DRAM on the memory bus.

</comment></comment></comment></comment><comment><USER12> I am sort of sad to see those numbers, not because they are bad, but they are better than what I expected. And I cant help but think had Intel had this in 2018 as they were originally scheduled. Apple wouldn't have to switch over to ARM ( Yet ). These CPUs are 25W, meaning not MacBook Pro TDP range.

Even though I intensely dislike the new keyboard, not fond of the Touch Bar, at least I could get a x86 compatible MacBook. Now it is increasingly looking like the current Intel MacBook Pro may be the last.

</comment><comment><USER13> How will this fare against A14?

</comment><comment><USER14> AMD is still behind when it comes to real-time signal processing. Ryzen benchmarks look impressive, but sadly they can't top Intel's single core performance.

</comment><comment><USER15> Anyone know why Anand hasn't reviewed the 3080 yet?

<comment><USER10> Have you seen a 3080 somewhere? Like in a store where you could buy it? :-). Could just be the Bay Area but those things seem to be pretty scarce.

<comment><USER5> You can't buy a Tiger Lake in a store, either.

<comment><USER10> Don't disagree, but the GTX3080 is, in theory, shipping. Whereas Tiger Lake is a chip preview without any manufacturers yet announcing product. :-)

</comment></comment></comment></comment><comment><USER16> Intel has really improved their GPU. Intel 11th gen come with av1 hardware decode, amd does not even do VP9.

<comment><USER17> AMD does VP9 since Raven Ridge (i.e. since introducing VCN). The last chip without VP9 was Vega.

All GPUs coming this year support AV1 decode: Intel gen11, AMD Navi 2 and Nvidia RTX 30.

<comment><USER18> The new 4000 series ryzen chips have vega graphics, if we're comparing apples to apples with Intel. I have no idea what they decode, just pointing that out.

<comment><USER17> With Vega, I meant discrete cards. They feature Unified Video Decoder (UVD).

APUs, while they contain cut-down Vegas, use Video Core Next (VCN) for video. It is worth saying, that the new 4000 series Ryzen APUs use VCN 2.0, which does NOT support AV1 decoding. For that, VNC 3.0 is needed, which is coming with Navi 2 chips.

</comment></comment></comment></comment><comment><USER19> If they can't come up with any better products at the moment, they could at least ditch these National Geographic-themed compound codenames: Coffee Lake, Whiskey Lake, Kaby Lake (named after a Portuguese footballer?) and now it's Tiger Lake for a change.

Since there isn't even a single "lake" named after something that can actually be found _in_ a lake or _near_ it, such as an aquatic animal, and there are also products from the same category with unrelated codenames (East Beach, Basin Falls, Chief River, River Forest, Forest Crystal, etc.) [1] why not just keep the first noun only and make things simpler. It's not as if it would cause any further confusion at this point.

1\. List of some recent Intel codenames (not for the faint-hearted): [https://www.intel.com/content/www/us/en/design/products- and-...](https://www.intel.com/content/www/us/en/design/products-and- solutions/processors-and-chipsets/platform-codenames.html)

<comment><USER20> Intel CPUs have been named after geographic locations since Pentium II days.

For the record, this is the lake gen11 is named after [https://goo.gl/maps/qGDcVhrudoEJZou18](https://goo.gl/maps/qGDcVhrudoEJZou18)

<comment><USER21> Thanks for this. I worked on Tiger Lake and no one ever told us it was a real lake.

<comment><USER22> I think that's on you to catch on to the pattern after 30 years.</comment></comment></comment></comment>