CA:WoSign Issues - <AUTHOR> https://wiki.mozilla.org/CA:WoSign_Issues <comment><USER3> So, can I ask an awkward question? Realistically speaking, is there _any_ chance that a large CA would ever actually be removed from Mozilla's store, no matter how severe their malfeasance?

I started wondering this after they declined to remove StartSSL after the Heartbleed fiasco, and while I sort of understood the reasoning there in isolation, between that incident and this long list of WoSign violations, I'm really getting the sense that CA's are "too big to fail" and that the downsides of suddenly breaking huge parts of the internet on unsuspecting users mean that the threat of removing badly-behaving CA's is an empty one. What would a CA have to do to _actually_ be removed, especially if they were to sign really huge sites?

<comment><USER4> CAs have been caught issuing CA=YES certificates and Mozilla have done nothing.

[https://bugzilla.mozilla.org/show_bug.cgi?id=724929](https://bugzilla.mozilla.org/show_bug.cgi?id=724929) WONTFIX

<comment><USER5> I think Chinese CAs are also special cases. If American browser vendors remove a Chinese CA like WoSign, there is the possibility a fork distribution will replace Mozilla in China by inclusion of these certificates. I think it would take the cooperation of the Big 4 browser/OS vendors to remove a CA, and the Chinese market often responds by creating its own internal distribution.

<comment><USER6> But Firefox probably could name-constrain WoSign to .cn. Firefox could probably also name-constrain all StartCom-issued certificates after some cut- off-date to .cn or just ban new StartCom-issued certificates entirely.

<comment><USER7> Reprising a previous comment about this suggestion:

This is one of those ideas that sounds like common sense when you hear or think about it the first time, but falls apart on scrutiny. Ryan Sleevi has done a much better job picking it apart than I can here, but among the numerous problems with it:

* The most important TLDs are transnational, and their trust hierarchies back into corporations (corporations, I will cheerfully and without irony point out, who are subject to the whims of the FVEY IC).

* It's jingoistic, suggesting we should base trust decisions not on technology or even, really, on policy, but rather on nationalism.

* It consigns residents of countries with oppressive governments to total control by their governments, while at the same time making usage constraints based on those TLDs (such as local mandates to use services whose names end in .XX for XX in $bad_countries) much more powerful.

* It further promotes the idea that security should somehow be tied to the DNS, despite the fact that the DNS is itself not transparently managed, and is often managed at odds with the interests of Internet users as a whole.

* By factionalizing Internet trust, it harms interoperability and also makes it harder to introduce further constraints into the certificate system by essentially declaring up front that we're conceding Internet trust policy to individual nations. * It greatly complicates the security stories of companies that have adopted vanity domain names in random countries, which, whatever you think of those companies (koff! Pinboard), is an unforced error.

Of all the things we can spend time on to improve Internet security, this is not one of the better ones.

<comment><USER8> Let's see if you still think my .IN "vanity" domain is a mistake come November 9. I'm putting my chips on the world's biggest democracy!

<comment><USER7> HE'S NOT GOING TO WIN EVERYTHING WILL BE FINE SHUT UP

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> Does anyone know if it's possible to write a Firefox add-on that could warn you that the site you're connecting to uses one of these less trustworthy or esoteric CAs? I've looked through the APIs, but I don't see any hooks for that kind of info.

EDIT: Now that I think about it, it must be possible, Certificate Patrol is looking at the cert info, I'll see how they do it.

<comment><USER10> You could probably use the website URL + an API (such as [https://www.ssllabs.com/projects/ssllabs- apis/](https://www.ssllabs.com/projects/ssllabs-apis/))? There might be a better way, though.

<comment><USER11> If someone shady was MITMing your traffic, they could just block access to the API. If you wanted to do the checks before loading each URL, it would make things very slow.

</comment></comment></comment><comment><USER12> I'm starting to think that a service such as SSL Labs should also grade CAs (perhaps by looking through Certificate Transparency logs as well, once all CAs have to use them).

Then if you use like a "C-rated" CA, your HTTPS score is also limited to B. A B-rate CA would limit your HTTPS score to A, and only an A-rated CA would allow you to get A+ on SSLabs. Something along those lines.

I imagine rating the CAs would be quite a complex task, but they could start with the big ones first that own 80-90% of the market.

<comment><USER13> For that to be useful, browser vendors would have to start showing something other than a binary "secure" "not secure" setup to the user along with some of that info.

Also, it sounds like something that will be very easy to corrupt.

<comment><USER14> SSL Labs is a tool mainly used by the website owners/administrators, not so much by end users (and if at all an end user will then complain to the owner about a low rating).

Downgrading the rating because he used a "fishy" CA might motivate the website owner to switch to a CA with better standing. The bad CA will feel pressure to clear their standing.

</comment></comment></comment><comment><USER15> > For example, a cert where the owner validated "netwi.ru" was able to add > "mx.idisk.su", an entirely different domain, without validating it.

Now that's odd, because I know those two domains. I've even requested some certificates for them myself before (never had anything odd - I think I would've noticed if there was a way to add a domain without validation), but I left the company in January 2015.

It was my coworker requesting that certificate, and I've just found - <USER2> have the access to the servers as I help them with small issues on rare occasions - that at the same date it was issued (Feb 26, 2015) he had most certainly got a validation file (idisk.su.html) and put it into idisk.su's static root.

Webserver logs are, of course, long gone so can't really tell if it was actually accessed or not, but I think when I had requested certificates myself it was a wizard-style process where one got a file to download and the only next action was to validate it, no other way to proceed.

I mean, at least he got the file and put it there, in a proper place. And it's also weird that the certificate in question ([https://crt.sh/?id=29805560](https://crt.sh/?id=29805560)) had included another idisk.su subdomain (mail.idisk.su) that wasn't marked as not validated in the report ([https://www.wosign.com/report/wosign_incidents_report_090420...](https://www.wosign.com/report/wosign_incidents_report_09042016.pdf;) page 13).

I don't doubt there was a severe bug. But this leaves me wondering whenever the analysis followed was really accurate (not saying it wasn't, but still sort of curious that it could be).

</comment><comment><USER16> Where WoSign have demonstrated glaring incompetence and utter ignorance of security practices as an CA, I doubt these issues aren't violated at quite a few dozens of other CAs. These are good lessons for other CAs.

To me, the ultimate question is this: if we are trusting CAs as the 3rd party entity in order to make PKI schemes work, then who's going to be auditing the "supposedly trustworthy" party?

<comment><USER17> I've at least started a list of CA incidents here, to try and make this a bit more transparent: [https://git.cryto.net/joepie91/ca- incidents](https://git.cryto.net/joepie91/ca-incidents)

Contributions are more than welcome.

</comment></comment><comment><USER18> While I've seen some scripts to "blackhole" so-called bad/suspicious CAs, I have yet to find something that cleans things across the board for different browsers.

Apple's implementation of "Rootless" while useful for other things hasn't helped by denying the ability to remove certs unless one reboots into recovery and does "csrutil disable".

</comment><comment><USER19> Hopefully one day we will replace CAs with something decentralized(i.e based on DNSSEC). CAs make sense only if you need an EV certificate.

<comment><USER20> DNSSEC is _not_ decentralized -- it follows a _strict_ hierarchy from ICANN => TLDs (world governments) => you.

DNS is _distributed_ , not decentralized.

<comment><USER19> Right... but at least you cut off the CA from the scheme. You depend on ICANN -> TLD anyway.</comment></comment></comment>


What's up with monomorphism? - <AUTHOR> http://mrale.ph/blog/2015/01/11/whats-up-with-monomorphism.html

<comment><USER2> I love the illustrations.</comment>


A Call for Responsible Steam User Reviews in 2016 - <AUTHOR> http://www.indiegamegirl.com/steam-user-reviews/ <comment><USER2> Are people supposed write an extensive in-depth review for everything they rate? Surely you wouldn't want the plebs buying games to put you out of a job.

If someone's honest opinion is "disappointed, not worth $18" then who are you to say that they shouldn't leave that comment and rating? If you don't like the text perhaps you should ask Steam to allow rating without a comment. I think you would still complain that a bad rating might cause bad sales. Does it ever occur to you that the game is just bad?

You aren't going to get me to spend more money by trying to make me think of the team that made it. You claim that isn't your intent but I think it clearly is. You are advocating in favour of changes to get more sales.

I'll wait years and pick the gems from among the rubbish for a pittance.</comment>


Homeless hostel ranked in city top ten on TripAdvisor - <AUTHOR> http://www.tnooz.com/2013/04/26/news/homeless-hostel-ranked-in-city-top-ten-on-tripadvisor-as-pranksters-game-the-system

<comment><AUTHOR> As the screenshots in this article show, the reviewers weren't trying hard to make their submissions look 100% genuine. However, in the multitude of intentionally deceptive reviews, I wonder what patterns emerge? And have TripAdvisor and Yelp (and whoever else relies on user-generated reviews) ever worked together to try and crack this nut?</comment>


Creating full width layouts in Bootstrap - <AUTHOR> http://mattlambert.ca/blog/creating-full-width-layouts-in-bootstrap/

<comment><USER2> You can create full width layouts by using container-fluid. You can also nest a container inside of a container-fluid.

<comment><AUTHOR> container-fluid is no longer valid in Bootstrap 3.0. Also, in previous versions of Bootstrap it still included a small right and left margin around the container. It just doesn't apply a fixed width to the container. If you want your carousel, background, etc... to bleed right to the browser edge, you need to work outside the container class.</comment></comment>


Standardized Ladder of Functional Programming [pdf] - <AUTHOR> http://lambdaconf.us/downloads/documents/lambdaconf_slfp.pdf <comment><USER2> One way to process this list is to see it as an elitist construct intended to put you down or degrade you or extract money from you for training etc.(which might even be true, but generally it is better, ime, to assume that people are genuinely trying to provide what they see as value)

The other is to ignore any insult, intended, perceived, or a mix of both, ignore all the hierarchy labeling - 'beginner', 'advanced beginner', "standard ladder" etc who tf cares? - and just see if there are skills you can pick up or explore on your own.

That said, I laughed at 'equational reasoning' being considered an 'expert skill'. It is _considered_ an advanced technique but imo the basics are trivial to pick up, and I had a lecture/demo on this at a local fp conf. Sure it can get very hard if you tackle a hard _problem_ , but that is true for everything.

<comment><USER3> I saw this pdf before all the angry comments, and was very excited to see a list of fun topics to explore and learn. I love skill trees in Skyrim etc, and to me this looked like a real life version! Time to level up!

<comment><USER4> Yeah, not sure what all the fervour is about. I've found the biggest hurdle to advancing is knowing what to study next; this helps solve that.

<comment><USER5> I definitely agree that the most difficult part of learning something new especially something as esoteric as FP is knowing where to start and then where to go from there. I also benefited from and highly recommend functional- programming-jargon([https://github.com/hemanth/functional-programming- jargon](https://github.com/hemanth/functional-programming-jargon)).

</comment></comment></comment></comment><comment><USER6> Some complaints about this list:

1\. This list is _very_ Haskell-focused: it includes lots of features which only make sense in Haskell or very Haskell-like languages, and lacks mention of many interesting functional programming concepts which don't appear in Haskell (like ML-style modules and functors, row types, macro systems and homoiconicity, and so forth.) There are a lot of functional languages which have very different ideas about how to program, and this list doesn't reflect that.

2\. Some of the 'skill hierarchy' choices feel a bit confused and arbitrary. For example, 'Use lenses & prisms to manipulate data' appears as a _Competent_ skill, but 'Use optics to manipulate state' appears as a _Proficient_ skill, despite being slightly different ways to refer to an effectively identical skill. (I assume the latter means "…use lenses & prisms to manipulate data, but in a state monad," which is only a tiny difference.)

3\. While I like the idea of a list of a road-map to learning, I feel like this gives the unfortunate impression that many of these are _obligatory_ skills. It calls itself a "standard" hierarchy (which makes it sound like a consensus, rather than just a single person/group's opinion) and has language like "…skills that developers _must_ master on their journey…" (emphasis mine), but the list includes a lot of things that are _far_ from necessary for deeply understanding functional programming. You could lead a long (academic or industry) career in functional programming without a deep understanding of many concepts listed: things like comonads, recursion schemes, finally tagless interpreters, higher-order abstract syntax, and so forth. All of them are useful concepts and deserve study, but you can _definitely_ be a functional programming expert without ever having seen a comonad.

In many ways, I wish this list took a cue from Benjamin Pierce's _Types and Programming Languages_ which features not an ordered list but a _graph_ of the concepts related in the book, and how they relate to other concepts. It would be more complicated, true, but also a lot more honest about the academic and intellectual path you might want to take through functional programming, and without giving the idea that you need to master the vagaries of dozens of Oleg Kiselyov's papers just to be "competent" in functional programming.

<comment><USER7> This is ... much more politely and detailedly stated than I managed on Twitter.

I work in FP, programming Clojure for real-world web applications every single day, and 90% of this list is completely meaningless to me.

It's nothing less than more of the Haskellite strain of "everything must be hideously complicated type theory or it's not 'real' FP."

And that shit can fuck right off. It's incredibly hostile and disrespectful both to new programmers and existing ones. It's even harmful to Haskell itself as a language, because this persistent attitude that you have to learn advanced type theory just to get anything done in Haskell is one of the biggest barriers to adoption and learning of the language, especially when even most of the material supposedly for "beginners" insists on thrusting this attitude on the reader.

Once again, just as they did by platforming an open fascist, LC demonstrates a complete cluelessness both of the community it claims to represent, and of the impact their "representation" has on said community.

<comment><USER8> The fact that it's meaningless to you doesn't mean it doesn't have any meaning :)

Your "hideously complicated type theory" is many peoples' "hideously horrible paren-based syntax" \- i.e. Lisp. So, how many people don't learn Lisp _only_ because of its syntax? I'd say a lot.

Many of the concepts make sense when having an explicit type system, so if you want types you may want to learn them.

Others I suspect you are already using, even if you don't know them by name. Have you ever used streams? Congratulations, this is what codata is.

<comment><USER9> > "hideously horrible paren-based syntax" \- i.e. Lisp. So, how many people > don't learn Lisp only because of its syntax? I'd say a lot.

But the point is that nobody's putting 'S-expression syntax languages' in a Lisp-centric list of essential functional programming skills. The idea that half this stuff is supposedly mandatory is a skewed perspective.

> Others I suspect you are already using, even if you don't know them by name.

And if the list is comprised of Haskell-centric jargon for more generic notions, that's obviously grounds for criticism.

<comment><USER8> > But the point is that nobody's putting 'S-expression syntax languages' in a > Lisp-centric list of essential functional programming skills.

They should've probably said "FP-only" (i.e. pure) languages to exclude imperative languages that merely support functional programming constructs, like Clojure, Erlang, etc.

I agree, many of the concepts that are useful in pure languages (i.e. monads) are not that practical in imperative/impure or dynamic languages (at the cost of reduced ability to reason about your program.)

> And if the list is comprised of Haskell-centric jargon for more generic > notions, that's obviously grounds for criticism.

It's the other way around - the items on this list are the more generic concepts [0]. Less expressive languages lack the (practical) ability to reason about those concepts generically, hence the need for more specialized constructs, like i.e. streams, transducers, etc.

[0] [https://en.wikipedia.org/wiki/Coinduction#Codata](https://en.wikipedia.org/wiki/Coinduction#Codata)

<comment><USER7> _They should 've probably said "FP-only" (i.e. pure) languages to exclude imperative languages that merely support functional programming constructs, like Clojure, Erlang, etc._

Ahh, and there would be that definition again, the one at the root of the problem.

Please find your nearest whiteboard and write the following 100 times or until it sinks in: "Haskell is not the only Functional Programming language."

FFS, the languages that _invented_ functional programming are not Haskell, and predate it by some time. Lisp dates back to 1958. Scheme first appeared in 1970. ML dates to 1973. Haskell didn't even exist until 1990.

This weird ahistorical definition of "functional programming" is both useless and inaccurate. Strict typing and purity are not the sole measure of whether a programming language is functional and never have been. It's only been in the last few years that there seems to be this desperate push to define FP as "Haskell", which as far as I can tell is the product more of a desperate kind of evangelism than any sound argument for such a limited definition.

We get it, you like Haskell. But some of us also like Clojure, and Erlang, and Elixir, and F#, and OCaml, etc. etc., and you don't get to just redefine terms to cut out languages you don't like. Reality doesn't work that way.

<comment><USER10> But Haskell does stand out among your list as being a pure functional programming language (it is not the only example of course). Whether this is a good or bad thing, I will not get into. When programming in a pure language you typically have to use some quite recent/advanced ideas such as monads and lenses, just to get practical work done. This is not the case with Clojure, F#, Scala, Erlang etc, where side-effects are idiomatic. In fact, if you tried to go fully pure with these languages, you would run into problems with performance.

To avoid confusion, they should have used the term "pure functional programming" or even "typed pure functional programming".

<comment><USER7> _To avoid confusion, they should have used the term "pure functional programming" or even "typed pure functional programming"._

That's what was used when I started learning FP, which was maybe three or four years ago. There was FP, and then purity was a secondary characteristic. Haskell was pure and typed, but that didn't make other languages not FP, when they still had all the same basic tools and the same idiomatic focus on composition of functions over mutable state and imperative logic. No, you didn't need a special magic word to allow you to have side-effects like I/O, and most _also_ allowed for mutability (even Scheme had set! after all), but they are first and foremost functional languages. In many ways, Haskell was and still kind of is the odd one out, not counting experiemental academic languages like Idris and Coq.

This wasn't even a controversial statement just a few years ago. But as Haskell has been more and more in vogue, there's this weird fixation on redefining the window of what "FP" is to only refer to, well, Haskell. And it's very clearly what the LC list is all about, because so many of the concepts described are both largely unique to Haskell and it's closest relatives, and unnecessary to do practical, everyday work in a vast majority of FP languages.

And ultimately, attitudes like that hurt the whole field. In trying to fix Haskell's image problem by brute force, they wind up damning the larger domain in the process.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> I get the sense that most engineers would almost never use, and never need to use, most things beyond advanced-beginner in this sheet. It may be fun to brag about knowing how to use "embedded DSL with combinators," but is that really the best thing to help your startup succeed?

I suppose I'm slightly bothered by the fetishizing of challenging knowledge for challenge sake. Most of the people I know who learn about "Embedded DSLs with combinators" and set theory seem to not be able to stop rubbing in how smart they find themselves, and yet strangely they never seem to be the most productive engineers (in terms of delivering useful and reliable code).

I know it can be a little disappointing to feel like there isn't a pot-of-gold at the end of the rabbit-hole, but this is no different than most disciplines. You use arithmetic daily, algebra weekly, calculus monthly, imaginary numbers annually or less.

<comment><USER12> A lot of these techniques are things that take a bit more up-front effort but pay off over the long (or even medium) term. I think that's why it might make people _seem_ less productive—although of course a lot depends on your perspective and experience. Measuring productivity is an open problem in software engineering and, in my experience, people's intuitions about it are all over the board, which means that nobody's any good at it.

DSLs are a great example of this long-term dynamic. Compared to throwing together an ad-hoc library, a DSL approach takes a lot more design effort but, ultimately results in a system that's more coherent, elegant and expressive.

I've worked on both kinds of projects and the difference is palpable: with the first style, productivity is constant at best—getting things together in the first place is a struggle, and then adding features or fixing bugs _continues_ to be a struggle. On the other hand, the second style of project is even _more_ of a struggle at first, but once it works it's like magic: new features are easier to add than you'd expect, and I've had way more things work _after my first attempt_ than anyone has a right to expect.

I know which style _I_ prefer, and it's definitely not because I "fetishize challenging knowledge for challenge sake"—it's because I'm willing to put effort up front for a long-term reward. And it's not even _that_ long- term—I've found these things pay off over _weeks_ or _months_ , not years, so I'd take the same deliberate approach unless my deadlines were literally days away.

<comment><USER11> Well, I can't speak to your career experience, but I can speak to mine.

My experience has been (31, SF) that companies are fundamentally disorganized, frequently reinvent things (a behavior seen at all levels), are skewed by politics, and ultimately are rarely successful due to the code. The fact is, that for most startups it's not the code that's make-or-break (twitter, snapchat, facebook, airbnb, uber), it's the business execution.

It's been my career experience that the only way to be a 10x engineer is to prevent management from engaging in unnecessary projects (Bob wants to rewrite X in node, Joe wants to make a service that only has the responsibility of CRUD to 1 table, Sally wants to move it all to noSql). It's been my career experience that soft skills give the best ROI.

So when I see a list like this, I find it hard to imagine how "Profunctor Optics" is what Zynga (or any company I've worked at) needed to be successful.

<comment><USER13> >So when I see a list like this, I find it hard to imagine how "Profunctor Optics" is what Zynga (or any company I've worked at) needed to be successful.

I mean, by that criteria, why learn anything?

The world is not just startups btw, I work on products that have very _very_ defined requirements. Hell, sometimes I'm implementing an RFC. FP is a huge win for us, and yes i've used profunctor optics in a high performance network application.

<comment><USER14> >I mean, by that criteria, why learn anything?

This might be tongue in cheek, but I agree with the parent. Engineering excellence will not further your career much, companies tend to oversell meritocracy. Salaries flat out quickly, and there is a huge supply of good enough developers, if you step out of the line too much.

<comment><USER13> > Salaries flat out quickly

What other professions besides lawyers or doctors regularly have a 3 or 4x range for salaries of people more or less with the same job description?

<comment><USER14> In addition to those? Actors, musicians, sport people. In the office? Managers. Hence the advice, focus on soft skills. I would wager the top 1% on the developer track earn nowhere near to the top 10% on the managerial track. And your best bet is to regularly change jobs otherwise good luck getting anything more than a 5-10% increase, while managerial salaries and bonuses scale with the size of the organization. Also, there is a lot to be said about the difficulty of the work.

</comment></comment></comment></comment></comment></comment></comment><comment><USER15> Most useless thing ever created for functional programming anything.

It's not even biased towards Haskell; it's biased towards working at Slamdata, where they abuse free monads for everything.

When you write Javascript and use first class functions (ideally without side- effects, but who the fuck really cares), _that 's_ functional programming.

Tired of this elitism.

<comment><USER16> Elitism is learning more powerful constructs? There's a lot of elitism in the construction industry then with people checking the load bearing of materials rather than building everything from mud.

<comment><USER17> Load bearing materials _actually_ carry significantly higher loads than mud; those Haskell constructs have not even been used to build software as intricate as common industry practice, let alone break new ground. Are they truly more powerful? That's a popular hypothesis among those who are aesthetically drawn to those concepts.

<comment><USER10> I gave you an example last week, which you are conveniently ignoring. We have millions of lines of Haskell code at Standard Chartered bank. The type safety and purity have helped us build a more reliable and maintainable codebase compared to previous efforts. Ultimately the language is just a tool. If you are not interested in type safety, purity or expressivity then it isn't the tool for you.

<comment><USER17> I am not ignoring anything. On the contrary: You yourself have said that the kind of software you write isn't any bigger or more complex than similar software written in more mainstream languages, and that you have no evidence of significant bottom line benefit (except claim that your software is more maintainable, but without any metrics). I never claimed that Haskell can't be used to write simple software as well as other languages, or even marginally better (for some definition of better). But the commenter I responded to claimed that those advanced abstractions are analogous to building materials that are used to build much bigger buildings than those possible without them. You have not even made that claim.

No one is interested in type-safety or purity for their own sake (except for aesthetic reasons). I'm interested in better, cheaper software. If Haskell's purity (there are simpler languages with similar type systems) provides that then there should be evidence of that before the claim is made. You have not provided any such evidence, and even implied that you're not even carefully collecting metrics that can be used to construct such evidence.

<comment><USER10> > I never claimed that Haskell can't be used to write simple software

I can assure you our software is not at all simple. Standard Chartered has industry leading portfolio compression and XVA compute. Barclays has industry leading pricing of exotic derivatives (including pricing on GPUs). Both industry leading solutions built in Haskell on top of frameworks/APIs in Haskell.

> No one is interested in type-safety or purity for their own sake (except for > aesthetic reasons).

So are all forms of static verification just aesthetics to you? Or just those offered in Haskell?

> I'm interested in better, cheaper software.

Then hire good people and let them use the tools they want.

The only evidence I could ever hope to offer is that good people build good software. But that would never make an interesting management report.

<comment><USER17> > So are all forms of static verification just aesthetics to you? Or just > those offered in Haskell?

As someone who makes use of formal methods regularly, I am aware of how weak Haskell's static guarantees are. That is not to say they may not be useful in practice, but that's an empirical question, and the one that I'm desperately waiting for answers to.

> The only evidence I could ever hope to offer is that good people build good > software. But that would never make an interesting management report.

It also doesn't support the claims made that Haskell makes a significant contribution.

<comment><USER10> Yes Haskell makes a significant contribution. The person responsible for our industry leading portfolio compression joined us because we use Haskell.

<comment><USER17> > Yes Haskell makes a significant contribution.

That's excellent. So please publish some numbers so we could estimate the contribution. With so much hype and zero data I think that the skepticism is very well justified.

> The person responsible for our industry leading portfolio compression joined > us because we use Haskell.

I have no doubt that some people really like Haskell, but that's not data.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER18> When working with functional languages (my current choice is Scala), I do feel that they require a level of mastery that "traditional" imperative languages do not. I also feel that if computer science/software engineering is ever going to gain any sort of repeatability it will be through functional design.

That said, functional programming is incredibly difficult to do well without years of practice and the languages still suffer from limitations with performance that are hard to debug. While I still feel that functional programming is the "future" of software engineering, I feel it is quite a ways in the future.

<comment><USER19> With time travel debuggers being the notable exception, where FP is enabling much better debugging.

[http://debug.elm-lang.org/](http://debug.elm-lang.org/) as one example.

<comment><USER20> Maybe I'm missing something, but how is that different to something like rr[0]?

[0]: [http://rr-project.org/](http://rr-project.org/)

<comment><USER21> From the rr site: Remember, you're debugging the recorded trace deterministically; not a live, nondeterministic execution. The replayed execution's address spaces, register contents, syscall data etc are exactly the same in every run.

Elm's debugger (and similar projects like the Pux debugger from PureScript- land) are live systems. They are replaying all events deterministically but you can edit your code, reload it and then replay the exact same series of events or toggle events on/off and see what the resulting state is. rr is super cool and I'm very glad it exists but it's a static analysis tool where the Elm debugger is almost REPL-like in terms of how you can play with things and see the results live.

</comment></comment></comment></comment><comment><USER17> Actual ladder:

1\. Writes simple programs

2\. Writes more complex programs

3\. Writes programs that are maintainable

4\. Writes programs that are maintainable by others, and communicate module intent clearly to team members who interact with it

5\. Writes programs that are maintainable etc., and also make good use of resources, both computational and human

The emphasis on language concepts seems so distracting that I wander how much time people have left to make their program _externally_ better (better functionality, better performance, more maintainable by others) rather than _internally_ better (make use of clever abstractions). That the two are related is a hypothesis which doesn't seem to be supported by evidence, and is believed by those who enjoy thinking about the latter more than about the former and want to justify their focus.

<comment><USER22> +1.

Also, s/wander/wonder/.

</comment></comment><comment><USER23> It says something slightly worrisome about the functional paradigm that "profile, debug, and optimize purely functional code with minimal sacrifice" is considered an expert-level skill.

<comment><USER24> Oh come on. Please do not troll. That says absolutely nothing about functional programming in general and absolutely everything about the publisher. Not only could this not be further from the truth, but it's a cheap and lazy attack on a rigorous and proven paradigm. Give it a try. You might just surprise yourself.

<comment><USER17> > a rigorous and proven paradigm

I'll give you rigorous, but how is it proven? I think it is a fair guess that the number of non-tiny programs (>100KLOC) making use of the "expert" concepts and skills is ~0. The number of large programs (>1MLOC) at the proficient level is also ~0.

<comment><USER16> I would surmise from what I've heard that Standard Chartered easily on their own break this rule.

<comment><USER17> What I heard is that all of their Haskell software combined is about ~1MLOC (and they don't comprise a single system), and a huge chunk of that (a couple 100KLOCs at least) is the Haskell compiler itself, which they've modified and consider a part of their codebase. The Haskell compiler is still the largest Haskell program, and if it isn't, there are no more than a couple programs that are larger.

<comment><USER25> > a huge chunk of that (a couple 100KLOCs at least) is the Haskell compiler > itself, which they've modified and consider a part of their codebase

Please don't talk about what you don't know. Standard Chartered's Haskell compiler is written completely from scratch and is not based on any existing compiler.

<comment><USER17> Sorry, that's what I'd heard (or I may have misinterpreted "a variant of Haskell" as "a variant of the Haskell compiler" all on my own); thank you for correcting me. So what you're saying is that biggest Haskell program isn't _the_ Haskell compiler, but that the _two_ biggest[1] Haskell programs are two completely different Haskell compilers.

(Also, while it has little to do with my point, I've also heard that the person behind SC's Haskell compiler is the one who'd written the first ever Haskell compiler, long before he started working for SC; is that true?)

[1]: Please don't take this too literally. In the two decades that have passed since Haskell was declared the language to end world hunger, someone may have written a bigger program. Maybe even two.

<comment><USER25> AFAIR the Mu compiler is not even the biggest program written in Haskell inside Standard Chartered.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER26> I am generally a pragmatic person, but some of these arguments are wandering into a defense of ignorance. I am hoping that learning about these things will improve my problem-solving in general, and I don't mind being labeled a beginner.

It is also clear that there is not just one FP.

</comment><comment><USER27> Even being a Haskell enthusiast and loving playing with stuff in the list, this does not reflect well on Lambda conf and, unfortunately, on Haskell.

The smugness and self-importance displayed in there is quite the opposite of the virtue of code simplicity put forward by e.g. Don Stewart at HX this year.

<comment><USER28> > e.g. Don Stewart at HX this year

Can you give some link? I wasn't able to google it.

<comment><USER29> [https://skillsmatter.com/skillscasts/9098-haskell-in-the- lar...](https://skillsmatter.com/skillscasts/9098-haskell-in-the-large-the- day-to-day-practice-of-using-haskell-to-write-large-systems)

Requires registration.

</comment></comment></comment><comment><USER30> I agree with others that there's far too much Hasochism in this list. I _do_ think of FP as being like a ladder or spectrum, but rather than progressing towards some elitist niche, I see it as more empowering and _anti_ elitist.

In my opinion, if you refactor a Java class to change a setter into something which returns an altered copy, you've just made your code a little bit 'more functional'; if you use a list comprehension in Python instead of a for-loop, you're code's become 'more functional'; and so on. The nice thing is that many of these small changes are _also_ good practices to be following regardless of whether you want to be 'functional' or not.

Regarding the 'advanced' concepts, I'd say they exist mostly for library/DSL authors who don't want their users to have to care about those concepts.

 _Using_ libraries based on these ideas is great, as the author may have chosen these techniques in order to give the library correctness guarantees, or efficient resource usage, or good error messages, etc.

Using these ideas to _write_ a library can, occasionally, provide a solution to an otherwise tricky situation, e.g. if you need to maintain state, whilst offering the users a pure interface.

Using these ideas to write a library _for your own usage_ changes the cost/benefit calculation considerably, since you're not limited to providing an API: if you want efficient resource usage, can you achieve that by keeping resources in mind when writing the application code? If so, you probably don't need to over-engineer one particular component to enforce this for you. And so on.

Another thing I'd change about this ordering is to put dependent types much earlier, e.g. at "advanced beginner". Dependent type systems are _very_ simple; they're just a slightly more complex version of lambda calculus. Sure you can _use_ dependent types in complicated ways, just as you can write complicated lambda functions. They're certainly easier to grasp, and strictly more powerful, than Haskell's complicated mess of monomorphism restrictions, singletons, kinds, type families, etc.

<comment><USER31> I agree with you about the gradual refactoring. I love FP and according to that list, I'm mostly an "advanced beginner"... and I see nothing wrong with that.

Even "just" refactoring Java or Python code to be more functional is a huge win. Even "just" using Scala in a more or less FP way is a huge win. I don't fret being unfamiliar with Lenses or whatnot yet.

</comment></comment><comment><USER32> "Copyright Fantasyland Institute of Learning" \- I think that says it all ... in case you missed the big unicorn logo at the top.

<comment><USER33> I attended LambdaConf last year and felt it was not worth the money, to say the very least.

</comment></comment><comment><USER34> Any resources on where to go to learn these topics?

<comment><USER35> HaskellBook.com will teach you quite a number of them. :)

The Reddits for the different functional programming languages are a good place to hangout (and a frequent source of blogs and videos on these topics), and for FP in non-FP languages, there are good Github communities (e.g. [http://github.com/fantasyland/](http://github.com/fantasyland/), no association with FIOL).

I'd also humbly suggest that LambdaConf 2017 (May 25-27) is a great place to learn more about functional programming. There will be a special two-day LambdaConf workshop prior to the conference that introduces the basics of functional programming (no background knowledge), another that is aimed at a slightly more experience audience, and then at the subsequent conference, plenty of workshops and sessions to learn many of these topics (and others).

It's a journey, but everyone can get there if they have the interest. Most of the resources out there (blogs, videos, even e-books) are free, and the remainder are low-cost if you are already working in tech.

Good luck and please just let any of us lurker functional programmers know if you need a hand. :)

<comment><USER36> Is there anywhere to preview some content from HaskellBook.com ? Its a little pricey for to just take a chance without seeing any same content. The TOC looks good but that's not much indication of writing style.

<comment><USER37> There's a sample excerpt containing a few chapters: [http://haskellbook.com/assets/img/sample.pdf](http://haskellbook.com/assets/img/sample.pdf) .

</comment></comment></comment></comment><comment><USER38> In related news: How To Use Black Backgrounds To Make Sure Nobody Likes To Print Your Document .

</comment><comment><USER39> I love this list. Sure, shortcomings might be there, but trying to create a list of actual topics and ranking them is not a bad thing. It would really help folks at any end of the spectrum to explore new topics on their own.

</comment><comment><USER40> Unicorn level: Explain what a monad is to CS101 students and have them grasp the concept.

;P

</comment><comment><USER41> s/Ladder of Functional Programming/Our Ranking of Things We like in Haskell/

<comment><USER42> s/Functional Programming/Haskell ?

</comment></comment><comment><USER43> It's funny to see that singleton types are within the highest level: 'expert'. While in Typescript they're, together with union types, the most intuïtive thing ever. I guess that's because to express them in a language that doesn't have native support requires advanced deftness in typelevel programming. Like f.i. implementing them yourself in Scala 2.x. So I expect the coolness factor of singleton types and union types to fall precipitously as soon as Scala 3.x/Dotty becomes prevalent. They'll be 'just' a powerful feature that everybody understands and uses all the time.

<comment><USER15> wrong "singletons"

[http://stackoverflow.com/questions/16017294/singleton- types-...](http://stackoverflow.com/questions/16017294/singleton-types-in- haskell)

Singletons are a way to emulate dependent types with typeclasses, datakinds, and GADTs

<comment><USER43> No it isn't [http://www.slideshare.net/yoozd/union-types-and-literal- sing...](http://www.slideshare.net/yoozd/union-types-and-literal-singleton- types-in-scala-and-typescript)

</comment></comment></comment><comment><USER44> There was something similar suggested by Martin Odersky for scala few years back: [http://www.scala-lang.org/old/node/8610](http://www.scala- lang.org/old/node/8610)

It didn't get much traction back then.

But overall I like the idea as a roadmap for learning particular language or skill set. I'd like to something like that but with references to material where particular skill can be learned, etc

</comment><comment> loup-vaillant Reading this list, I was tempted to rename the hierarchy thus: Novice, Apprentice, Journeyman, Expert, Master. Maybe I'm playing too much Skyrim…

</comment><comment><USER45> I prefer this one : [http://www.scala- lang.org/old/node/8610](http://www.scala-lang.org/old/node/8610)

I think it's a better idea to separate skills required to use most of the language, and the ones required to create libraries.

</comment><comment><USER46> speaking of functional programming language, here's a nice history of ML (from stratchey to milner, landin et al.)

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

</comment><comment><USER47> Looking forward to Chris Allen (@bitemyapp) opining on this over on lobsters.

<comment><USER48> I don't really want to though.

Here's a couple threads: [https://twitter.com/bitemyapp/status/803720075702255616](https://twitter.com/bitemyapp/status/803720075702255616)

[https://twitter.com/jdegoes/status/803721209439514624](https://twitter.com/jdegoes/status/803721209439514624)

</comment></comment><comment><USER49> Best way to convince someone that they will never, ever have any chance of understanding functional programming and therefore should not even bother trying it.

<comment><USER31> Why? Even at the level of Advanced Beginner (which is pretty concrete and easily attainable), FP is already hugely useful. Everything at that level is both useful and relatively easy to understand. It's going to improve your code even if you use a language not particularly tailored for FP.

The rest is just icing on the cake, and you don't have to deal with it if you don't find it interesting.

</comment></comment><comment><USER50> I just found the path of light, I feel truly blessed</comment>


Tell HN: Review my startup and get it for free until 2020 - <AUTHOR> Hi HN,
https://www.sunsed.com is a programmable website builder (like Weebly but for developers).
It has a cool programming language that allows you to create your own HTML tags to abstract different parts of your websites (something like React.js but server side).
The product is at it's early stage, and I'm in desperate need of your help and feedback!
Just open an account, then write about what you think on your blog, tweet about it or shoot us an email firstname.lastname@example.com and we will thank you with a ~2 years free account.
Thank you so much!
-Sed :) <comment><USER2> \- loads very slowly (Pixel 1, latest Firefox, latest Android) and renders slowly/choppily

\- Custom languages would be a dealbreaker for me. Just use XML or HAML or something.

\- Why use this over SquareSpace (for non-devs) or almost-free S3 (for devs)?

\- Why a custom cloud editor?

<comment><AUTHOR> Thank you for your comment!

Except your first point (I don't know why it was slow on your side), we are working on the rest by adding more value with useful libraries that makes web development easier for developers.

<comment><USER2> It's probably slow because the page is loading almost 3MB, and it has a ton of JavaScript. It's an informational page -- what is all that JS doing?

Also, I'm still wondering what niche you're trying to fill. For someone who doesn't want to touch code, there's SquareSpace (which I believe is cheaper).

For someone who doesn't mind code, there are a million static site generators that will deploy to S3 or Digital Ocean or whatever. They get the same amount of customization and it's almost totally free.

So what is someone paying for when they pay you?

<comment><AUTHOR> Except for the syntax highlighter (prism.min.js) and YouTube video I think there is no other JavaScript library.

Could you please double check the performance on Firefox? I think the issue was with grayscale filter in CSS.

> For someone who doesn't mind code, there are a million static site > generators that will deploy to S3 or Digital Ocean or whatever. They get the > same amount of customization and it's almost totally free.

You are right! The competition is crazy! I HOPE that creating tags that make it easier for designers/developers to build websites faster/easier could be the reason.

So for example, to create a slideshow in HTML all you have to do is to use <remark:it> tag and put the slideshow content inside that tag.

And here is the source code for that tag: [https://github.com/SunSed/remark](https://github.com/SunSed/remark)

So imagine if there was 1000s of tags like that one that makes web development like Lego peaces that you put together.

What do you think?

Can I email you and continue the chat over email? :)

<comment><USER2> Sure, feel free to email me.

> _So imagine if there was 1000s of tags like that one that makes web > development like Lego peaces that you put together._

For marketing, e-commerce, blogs, etc., this experience already exists with SquareSpace and its competitors (Wix, Weebly, WordPress, Drupal, etc.) Those platforms can all be pretty close to drag-and-drop without any coding required, but with all the necessary hooks for people who know HTML/CSS/JavaScript.

<comment><AUTHOR> Thanks! I'll email you! Connect with me on Twitter @sed_seyedi</comment></comment></comment></comment></comment></comment>


Why Most Video Game 'Aggression' Studies Are Nonsense - <AUTHOR> http://kotaku.com/why-most-video-game-aggression-studies-are-nonsense-1724116744

<comment><USER2> Esssentilly, what all the studies did was asked the equivalent of, "Did you threw your controller at the screen when the boss cheated and killed your whole part in one move?" Of course, most people will answer yes. But that doesn't mean most people are going to go out and do a mass shooting at the mall.

It's the same nonsense as, "Does playing sexiest video games like GTA makes your sexiest?"

Really, if it was that easy for video games to brainwash and control people, the Russian government would have used video games to brainwash and control all their citizens so long ago.</comment>


Ask HN: Pinterest for Text? - <AUTHOR> I keep text snippets saved from webpages (thousands of them) and would like to present this collection online.
I haven't found anything good enough for this.
Ideally it should be like Pinterest (or maybe Instagram) for text, an unlimited canvas of text previews (masonry.js style or stacked design). A search function would also be useful.
I was thinking that this description is close to a blog but I'd like it to be optimized for displaying a lot of different snippets (as in Pinterest and giving the choice to the user to "peruse" through the entries quickly) but clicking on an entry should result in expanding into full content (again like Pinterest).
A Hugo blog offers a clean view of the titles (one after the other) but no preview of the actual content. Wordpress is optimized for only a posts per page. On the other end something like Bret Victor's quote page is too simple and doesn't offer the "read more" feature: http://worrydream.com/quotes/
Anyone has seen anything out there that matches my needs? I don't mind paid services. <comment><USER2> Shameless plug: bmarks.net

I could implement a text preview feature if you want. Currently you can have long titles and descriptions with Markdown support

Here's an example with articles I have saved: [https://bmarks.net/felipecortez/tag/articles/?expand=all](https://bmarks.net/felipecortez/tag/articles/?expand=all)

</comment><comment><USER3> I use Pinboard for this. It doesn't have the masonry-style layout, but it's quite functional.

You can make your posts public and they'll be shown on your usage page, for example: [http://pinboard.in/u:incredimike/](http://pinboard.in/u:incredimike/)

<comment><AUTHOR> I had seen this but it wouldn't work well for my case because the link leads to the article url, whereas it should lead to the "expanded" saved snippet saved from that page. Having a link pointing to the original url is still useful though.

Evernote does something like this (web clipper). In the left pane it shows the first lines of the saved fragment, in the right pane it show the full saved fragment and it also includes a link to the original work

Evernote works well for saving, but not for presentation. and its search is sluggish with a bad UX.

I like search on HN (by Algolia), it feels snappy and I can find what I'm looking for relatively fast.

In other words, I want to curate my Evernote notes list in a web app where design is a first class citizen. That doesn't mean pompous or flashy stuff, for example I find HN's design serves its content well and pg's site does the same for essays.

Sometimes I think about taking a Wordpress theme with masonry and stripping it down so that it has no visual distractions other than the content (and then adding the extra functionality needed). I'm not sure if that's better than building something from the ground up.

</comment></comment><comment><AUTHOR> I believe that a different tool is needed for capturing notes and a different one for presentation.

Evernote does the capturing well enough. Both Evernote and OneNote allow capturing parts of a web page with their web clipper but OneNote's workflow is cumbersome.

I think about this like in writing (pg's model of writing essays), where you write a lot of ideas down in no particular order, dumping random thoughts as they come and then on subsequent "passes" you try to bring the scattered thoughts in order, arrange them in paragraphs etc.

Another tangential idea is Jupyter notebooks for research ("research" as in studying a topic). For example if you're researching a topic, you can use Evernote web clipper to do all the capturing from various webpages and then you would have curate/organize this information in a "jupyter notebook for text"/blog post. Maybe offer the functionality to add comments/marginalia (like distill.pub's implementation, e.g. [https://distill.pub/2018/differentiable- parameterizations/](https://distill.pub/2018/differentiable- parameterizations/)).

Drawing snippets from multiple web pages and books also brings Ted Nelson's transclusion concept to mind: [https://en.wikipedia.org/wiki/Transclusion](https://en.wikipedia.org/wiki/Transclusion)

</comment><comment><USER4> > A Hugo blog offers a clean view of the titles (one after the other) but no > preview of the actual content.

This is not hardcoded behavior. You can change this in a theme pretty easily.

</comment><comment><USER5> Now defunct QUOTE.fm tried to do this for a year or so. Until they ran out of money. Archive.org link: [https://web.archive.org/web/20150324043301/http://quote.fm/w...](https://web.archive.org/web/20150324043301/http://quote.fm/welcome)

</comment><comment><USER6> I thought about this for months some years ago. Is there a way to bookmark, tag and index only parts of a web page? Like paragraphs, diagrams or bits of video. I often find true gems of advice and insights among mountains of fluff and later forget about them.

Edit: I don't want to watch the whole game I just want highlights.

<comment><AUTHOR> Evernote web clipper

</comment></comment><comment><USER7> This has been and still is one of my main quests, too.

I have tried almost everything: Evernote, OneNote, Google Kepp, lastly Wenote (Android), Dokuwiki, etc.

Currently I'm jumping between Notion and Telegram (saved messages).

I'd be more than interested if something 'better' emerges. Or, when I know code, I'll probably start my own as a side-project.

<comment><AUTHOR> I really wanted to like Notion. For me it's completely unusable.

Notion feels like the opposite of the Unix tenet, "do one thing and do it well".

I was somewhat excited when they released their web clipper recently but I found out it doesn't allow to save snippets from a page (only allows to save the url), which makes it useless for me.

Also the emojis are very offputting. Maybe it works well if the user wants to organize a trip with friends but I want to use it as a research tool.

</comment></comment><comment><USER8> Right now I'm experimenting with the sheets functionality in Notion, mainly for book and web quotes in my case, but there is a lot of things I don't like. The mobile app is sluggish, and the display options are not ideal for this usage. I think it would be awesome if it would have an API I could work with.

<comment><USER8> I realize this is not at all optimal for sharing, and I've played with some static site generators for this (but it's way too much work)!

I think a webapp for this would be simply awesome. (Sharing quotes and text snippets through collections).

I'd love to know if someone has another suggestion

</comment></comment><comment><USER9> I've wanted something like this too, mostly for learning and food for thought.

Memo tried to carve out a niche ("Facebook is for photos. Twitter for discussing sports and Donald Trump. Memo is for learning.") ([https://web.archive.org/web/20161021001811/http://memoapp.co...](https://web.archive.org/web/20161021001811/http://memoapp.co/home)) but they ultimately threw in the towel. ([http://memoapp.co/](http://memoapp.co/))

I doubt there's going to be a successful new product for this because Pinterest and Twitter cover the use cases pretty well and are hotter media (à la McLuhan). Images are mostly a superset of text use cases. You can always put great text into an image, and doing so gives is more context and emotional color.

Also funny, if you search Hacker News for "pinterest text" you get this Ask HN and a Show HN from six years ago: [https://news.ycombinator.com/item?id=5558714](https://news.ycombinator.com/item?id=5558714) So it looks like QuoteRed also tried and gave up.

Maybe an open source app would work because it wouldn't need much of a sustainability model, just a few passionate dogfooding developers.

<comment><AUTHOR>
      Images are mostly a superset of text use cases. You can always put great text into an image, and doing so gives is more context and emotional color.

I disagree, it should be optimized for high density text-only content.

HN attracts the kind of people it attracts because of its simplistic design, no images and focus on content.

</comment></comment><comment><USER10> Shameless plug: I am building something that is still WIP and will have something similar to what you described.

Here's the link if you'd like to give it a try: [https://frackxn.com](https://frackxn.com)

</comment><comment><AUTHOR> There was also a service where you could enter your collection of quotes/snippets and it would send you an email daily with a random quote.

Anyone remember what it was called?

</comment><comment><USER11> Outside the box thought: why not make a private subreddit? With RES/old reddit you see the titles and then can expand the text. Issue here would be searching.

</comment><comment><AUTHOR> If anyone wants to chat about this, send me an email.

I've been thinking about it for a long time and have several ideas and opinions.

</comment><comment><USER12> [https://www.are.na/](https://www.are.na/) should be a good fit

</comment><comment><USER13> Hey Throwaway, can we talk? I might be working on something you can use! My email is firstname.lastname@example.com :)

<comment><AUTHOR> Sent you a mail

</comment></comment><comment><USER14> You might be able to arrange something satisfactory with Blogspot using either Emporio or Notable as your theme.

</comment><comment><USER15> twitter, and then copy paste your quotes? and inside the tweet link to the full context?</comment>


What every programmer should know about memory, Part 1 - <AUTHOR> https://lwn.net/Articles/250967/ <comment><USER2> Note: Article is from 2007.

Interesting discussion from 2012: [https://news.ycombinator.com/item?id=3919429](https://news.ycombinator.com/item?id=3919429)</comment>


Tesla is hit by $2B patent troll case from Nikola Motors - <AUTHOR> https://electrek.co/2018/05/02/tesla-semi-patent-troll-nikola-motors-design/ <comment><USER2> Musk's comments from yesterday's earnings call:

"We have a slight laughable lawsuit recently from some company ironically called Nikola. Nikola is suing Tesla. That's hilarious. Fate loves irony. But they're suing us because the way the trucks look, which is absurd. Nobody's buying a Semi truck because the way it looks, or because going to wraparound windshield or whatever. Please."

[https://seekingalpha.com/article/4169027-tesla- tsla-q1-2018-...](https://seekingalpha.com/article/4169027-tesla- tsla-q1-2018-results-earnings-call-transcript?page=12)

<comment><USER3> > But they're suing us because the way the trucks look, which is absurd. > Nobody's buying a Semi truck because the way it looks, or because going to > wraparound windshield or whatever. Please."

Whether that's true or not, it has absolutely no bearing on the validity of the lawsuit.

<comment><USER4> doesn't it? does this kind of thing depend on exactly whether whatever characteristic was copied/stolen is actually responsible for any of the revenue/purchasing?

<comment><USER5> No. That is at best a question of damages, not infringement.

<comment><USER6> I think, for most people, the damages are all that matter. Whether you are theoretically infringing on something is not what you lose sleep at night over. It's whether you're going to be sued and lose a lot of money.

<comment><USER7> > I think, for most people, the damages are all that matter.

They certainly aren't all that matters legally, because damage awards aren't the obly remedy in patent cases, injunctive relief is available.

> It's whether you're going to be sued

While damages effect the risk that you will be sued, Tesla is in fact being sued here.

> and lose a lot of money.

Sure, but damages aren't the only costly outcome. In this case, an injunction that forces a non-infringing redesign would be expensive for Tesla even before considering any damage award.

</comment></comment></comment></comment></comment></comment><comment><USER8> How is this a patent troll? Nikola isn't a non-practicing entity. They have their own competing product.

Was the Apple-Samsung patent litigation "patent trolling?"

<comment><USER9> It doesn't matter if they are a practicing entity or not: they are still clearly using their patents in a trolling fashion. After all: (1) who had ever heard of 'Nikola' before this, (2) these patents are too dumb for words, (3) good luck showing $2B in damages and (if any) and (4) if you really believe that Nikola is now associated with Tesla because of battery fires then you're silly. These people are patent trolls pure and simple, that they do other stuff besides doesn't really matter.

Oh, and these patents shouldn't have been granted in the first place, they are design patents, and the design is right along the lines of other futuristic looking trucks that still look like trucks.

<comment><USER10> >"who had ever heard of 'Nikola' before this"

I mean, apparently some large companies like Anheuser-Busch, (people who actually buy trucks) have heard of them, if they announced they are buying up to 800 of them from Nikola...

That said, I do agree that these (and a LOT of design patents) are questionable at best, but I don't have any skin in the game when it comes to the trucking industry.

<comment><USER9> With 0 risk they could state they will buy 10000 of them and it would be worth just as much. You can go on their website and reserve 100 of them with absolutely no commitment on your end. And it's anybody's guess what will happen three years down the line (which is when they say they will start delivering vehicles, small detail, they still need to build a factory, but they did have a functional prototype).

</comment></comment></comment></comment><comment><USER11> For those wanting to evaluate whether they think the Tesla Semi infringes on the patents, the 3 patents are:

U.S. Pat. D811,944 (issued March 6, 2018) on fuselage shape [http://pimg- fpiw.uspto.gov/fdd/44/119/D08/0.pdf](http://pimg- fpiw.uspto.gov/fdd/44/119/D08/0.pdf)

U.S. Pat. D811,968 (issued March 6, 2018) on wrap windshield [http://pimg- fpiw.uspto.gov/fdd/68/119/D08/0.pdf](http://pimg- fpiw.uspto.gov/fdd/68/119/D08/0.pdf)

U.S. Pat. D816,004 S (issued April 24, 2018) on side doors [http://pimg- fpiw.uspto.gov/fdd/04/160/D08/0.pdf](http://pimg- fpiw.uspto.gov/fdd/04/160/D08/0.pdf)

<comment><USER12> How you can patent the shape of a fuselage is nuts, when it should be easy to show prior art for wind tunnel work by others going back to the early 1950s.

<comment><USER13> [https://en.wikipedia.org/wiki/Digital_Millennium_Copyright_A...](https://en.wikipedia.org/wiki/Digital_Millennium_Copyright_Act#Title_V:_Vessel_Hull_Design_Protection_Act)

<comment><USER14> Holy shit, I thought you were just linking to the article on the DMCA at first. (The link is to a subsection: "Title V: Vessel Hull Design Protection Act")

</comment></comment></comment></comment><comment><USER15> If I was a shareholder in Nikola Id be worried. A new company should be focused on making great products and innovating. Getting into the patent suing game for what seemed to me to be trivial design elements seems like someone is distracted.

Maybe they did it for a little attention and feel the cost is worth it...

<comment><USER16> If they did it for a little attention that is even dumber. All this will bring is negative attention as the article headline suggests. They have already been branded patent trolls

</comment></comment><comment><USER17> The author here appears to be confusing design patents with regular patents. A design patent covers the specific appearance of a product, functioning more like a trademark than a patent for an invention. The relevant matters here would be whether the appearance is similar enough to cause confusion, not whether anyone has ever used a wrap windshield before.

That being said, I do agree that they look nothing alike, so I would not expect this to be a very strong suit.

</comment><comment><USER18> As soon as you admit to yourself that all vehicles must have certain features that "overlap" (such as the requirement of having a windshield on the front of the vehicle so the driver can view the road in front of them, aerodynamic properties), you quickly realize those 2 pictures at the top of the article look nothing alike. All press is good press? I get the feeling if that was the goal here it's going to backfire badly for Nikola Motors.

</comment><comment><USER5> Just to note: These are design patents, not utility patents. They protect look and feel. IE you'd only infringe by having a windshield that looks the same, not a windshield that does the same thing or operates the same way, but looked different than the protectable parts.

<comment><USER11> Am I correct in thinking that since a design patent protects ornamental design, then if a design is necessary for functional reasons, the design patent doesn't protect it? That you couldn't design patent a wheel looking like a circle, because that is a necessary part of its utility?

Because the filed complaint itself seems to admit that the protected fuselage shape is necessary to achieve the ~0.37 drag coefficient that both vehicles have, which it also admits is necessary to attain appropriate range on EVs of this class.

<comment><USER5> That is correct, it does not protect functional portions, but it's fairly nuanced.

[https://www.wintechblog.com/2016/04/functional-features- in-d...](https://www.wintechblog.com/2016/04/functional-features-in-design- patents/) is some recent caselaw on this

</comment></comment></comment><comment><USER19> I have almost no knowledge of patent law, but calling this a troll case seems a bit naive. If it comes down to market confusion, than probably this won't stick, because as mrw34 said - nobody buys a truck for it's look, or at least no serious share of the electric semi truck market I think.

But if the major deciding issue in a patent case is whether or not a feature of a patented product infringes on another feautre of a patented product - then this could very well be serious.

<comment><USER20> The Nicola Motors allows you to reserve up to 20 trucks in exchange for your e-mail address and $0.

I don't think they're really building anything.

</comment></comment><comment><USER21> Would be even funnier if they were called Edison Motors.

</comment><comment><USER22> Why are these designs patented? Design and art usually fall under copyright.

</comment><comment><USER23> Can we remove "patent troll" from the title.m? Thats a bias! Not every lawsuit against patent is trolling!

<comment><USER24> The title of the article matches the title of the submission, which is usually HN policy.</comment></comment>


Another US visa holder was denied entry over someone else's messages - <AUTHOR> https://techcrunch.com/2019/09/02/denied-entry-united-states-whatsapp/ <comment><USER2> I flagged this article, and I am happy for someone to explain if that isn't the correct action.

I flagged it for the reason that the headline purports to know something tech crunch can't possibly know: the reason the individual was denied entry.

It's clear that the CBP says whatever they are saying, and it's clear the individual has a different version of events.

That's all that's clear from this as far as I can tell, yet tec crunch is asserting this is a particular pattern they have somehow discovered.

This feels beyond biased in to deliberately misleading.

<comment><USER3> > I flagged it for the reason that the headline purports to know something > tech crunch can't possibly know:

That's a reason to suggest modifying the HN headline from the source headline to something more accurate for the factual content; flagging is for a story that is out-of-bounds for the site, not for suboptimal (including clickbait, editorializing, or outright misleading) headline on an otherwise appropriate story.

<comment><USER4> True, but I'd argue the non-clickbait version of the story is out of bounds for the site. "Some guy says CBP lied about why they denied him" doesn't exactly lead to deep discussion.

<comment><USER5> HackerNews covers far more benign examples of someone's privacy or rights being violated. I'm not sure how this is somehow out of bounds on the site compared to discussions about YouTube deleting [x] videos and so forth.

</comment></comment></comment></comment><comment><USER6> All the people here trying to throw CBP under the bus, did you read their report?

If I have a 'terroristic' picture on my phone and I try to cross a border, and at the same time I tell CBP that I want to work in my cousin's gas station so that he will be freed up to do other things, it is reasonable to think that CBP might exercise their right to decline to admit me.

Commenters who are saying that CBP are lying: if its he said / she said, I am going to believe the person without the dead baby image on their phone. Not the person with the 5 year visa who wants to be away from their wife and child for three months for 'vacation'.

It seems a bit weak to me to call CBP liars absent any evidence (and here there is none) that they have lied.

Mainly what I want to say is about the dead baby image: if my 'friend' sends me that photo, we are having a talk stat about good judgement, he is not sending me any more photos, I am probably blocking him, and that photo is getting deleted.

And if I have that photo on my phone and I choose to tell some bullshit story about child safety PSAs etc, and about my cousin's gas station, I have to expect that discretionary decisions are not going to go well for me.

</comment><comment><USER7> A few too many question marks here. A message with a dead child from an acquaintance he met at Hajj? A 3 month visa to travel with his wife and child who weren't with him yet? But he was visiting his relative who owned a business...

Surely he can see why this looks bad.

</comment><comment><USER8> So.. at this point nobody should try coming into the U.S. with a non-clean- wiped phone, eh?

<comment><USER9> Don't travel with electronics. It'll ask just as many questions of why you have a wiped clean phone or laptop. In this story they were simply looking for justification to deny the guy and they found it. I'd gauge that the border guards here would use clean electronics for the like as 'you must be hiding something'.

<comment><USER8> How long until you can't get a US Visa if you don't have a facebook account? You need to have one, so they can snoop it. If you say you don't have one, you must be lying.

<comment><USER9> About now by the looks of the new social media reporting requirements. You don't have a FB account? No US visa for you!

</comment></comment></comment></comment><comment><USER10> In a positive turn of events, Ismail Ajjawi has now been granted a new student visa and can attend classes at Harvard as planned:

[https://www.theguardian.com/education/2019/sep/03/palestinia...](https://www.theguardian.com/education/2019/sep/03/palestinian- student-harvard-ismail-ajjawi-immigration)

</comment><comment><USER11> Unfortunately large portions of the US government operate outside of civilian oversight. (TSA, CBP, NSA) etc. At this point foreign governments should probably be advising their citizens to take a burner phone to the US.

</comment><comment><USER12> Completely unrelated to the article, dealing with TechCrunch (Oath's) cookie privacy notes is an absolute nightmare. No (clear) way to opt out of them. Sad.

<comment><USER13> Firefox + uBlock Origin will do the trick.

</comment></comment><comment><USER14> > The officers asked Dakhil if he wanted to claim for asylum, which he > declined.

Interesting. They are denying him a tourism entry but also asking him if he wants to stay indefinitely.

</comment><comment><USER15> Mods: unflag this. This is a prime example of ideological abuse of the flagging system.

</comment><comment><USER16> Crossing any border with pictures of dead children on your phone is plain stupid regardless of the recent idiotic U.S. visa policy.

<comment><USER17> You do not control what is on your phone.

Any app/website can put whatever it wants on your phone and you would have no idea.

</comment></comment><comment><USER18> The document states he claimed he was going to work at his relative's gas station, which seems plausible. This is a visa violation, and would get you denied from basically every country in the world.

<comment><USER19> Did you read the text of the article? He vehemently denies that he was going to work at his relative's gas station.

 _One line of questioning focused on an officer's accusation that Dakhil was planning to work at a gas station owned by his cousin — which Dakhil denied._

 _"They totally changed this scenario," he said, rebutting several remarks and descriptions reported by the officers. "They only disclosed what they wanted to disclose," he said. "They want to justify their decision, so they mentioned working in a gas station by themselves," he claimed._

<comment><USER18> Read the report of the officers, Techcrunch intentionally put it at the end of the article to bury it, but there are two sides to this story and the report is quite plausible:

"[] stated that he was not sure how much he would get paid or how many hours per day he will work. [] stated that by working at one of the gas stations, this would free [] of the responsibility and allow [] to work at a different gas station."

There's a lot of detail in that statement that lends credibility over what Dakhil says.

<comment><USER10> It just lacks plausibility. Ismail Ajjawi doesn't come across as illiterate, and certainly would have been aware of seeking work on a student visa being grounds for denial of entry. Besides being general knowledge, it would have come up several times during his visa application process.

<comment><USER20> Here[1] a NZ journalist, who tried to come for work on ESTA visa waiver shares the horrors of CBP nazis not understanding that it's hard to get J-1 visa and denying entry. This proves that being literate is not enough to understand requirements of various visas.

[1] [https://www.nzherald.co.nz/nz/news/article.cfm?c_id=1&object...](https://www.nzherald.co.nz/nz/news/article.cfm?c_id=1&objectid=11494827)

</comment></comment></comment></comment></comment><comment><USER21> Tell me who your friends are and I will tell you who you are

Edit: I'm not condoning or arguing against the CBP decision, just pointing out that their line of thinking is not novel. It has been around since the times of Socrates.

<comment><USER22> Viral whatsapp messages are common in south asia. Receiving a message doesn't mean it's from a friend.

<comment><USER23> Tell me what subreddits you subscribe to and I'll tell you who you are.

<comment><USER24> Most of my subscriptions are ones I accidentally clicked while scrolling through r/all</comment></comment></comment></comment>


Josephene Myrtle Corbin, the Four-Legged Woman - <AUTHOR> http://www.phreeque.com/myrtle_corbin.html Josephene Myrtle Corbin, the Four-Legged Woman, was born in Lincoln County, Tennessee in 1868. Rather than having a parasitic twin, Myrtle's extra legs resulted from an even rarer form of conjoined twinning known as dipygus, which gave her two complete bodies from the waist down. She had two small pelves side-by-side, and each of her smaller inner legs was paired with one of her outer legs. She could move the smaller legs but was unable to use them for walking.  At the age of 19, she married a doctor named Clinton Bicknell and had four daughters and a son. It has been said that three of her children were born from one set of organs, two from the other. Myrtle died on May 6, 1928. <comment><USER2> Strangely, this site has a fair amount of seemingly obscure medical information. I find myself surfing it in spite of the fact that such photos tend to disturb me.</comment>


Show HN: Hush, an "incognito mode for Facebook" - <AUTHOR> http://hush.sh <comment><USER2> I use an incognito mode for Facebook. It's called not having a FB account and not allowing any javascript from their domains to run in my browser. Just quit FB if you care about your privacy.

Why go to such lengths to avoid being exploited by a service designed to exploit you? Just stop using it.

</comment><comment><USER3> I'm sorry, it's a bit early in the morning for me. I browsed the 'about' page and could not understand what the application DOES. I am not about to log into facebook through some application somebody put up randomly on the internet just yet, simply to see for myself. So, to get me started what does this application do? Thanks!

<comment><AUTHOR> Well, quite simply, you can anonymously[1] discuss things with your Facebook friends (or the whole world, if you'd like).

[1]: That is, apart from the login and pulling in your list of friends so as to populate your "Friends' feed", we don't use Facebook IDs or names at all.

<comment><USER3> Thanks. What is the identity that shows up on the friend's feed? Is it a constant one so that it can be blocked if needed? If one of your friends goes 'rogue' and starts to spam/harrass you through this will you have to systematically unfriend everyone till you find the culprit?

Why would you want to have an anonymous conversation on facebook anyway? Sorry, don't get it.

<comment><AUTHOR> The friends' feed (or any other place, for that matter) doesn't _show_ any identities.

For "rogue" friends, we have on our roadmap a mechanism to "flag" users for a review of their postings. That'd trigger an admin banning them if necessary.

The facebook component, is intended to be for a couple of things. Firstly, to allow you to restrict your discussion to just your friends (there are several scenarios in which you'd like their opinions, but you suspect they might not be completely honest with you if you knew who they were). Second, it allows us to be able to keep out bots en masse. The assumption being, of course, that Facebook polices its user-base to keep them out. In turn, the general quality of the discussions stays decent (well, for an anonymous platform, at least).

</comment></comment></comment></comment><comment><USER4> What's with the astro-turfing comments in this thread?

<comment><USER5> This is the second time I've seen astro-turfing on HN in as many weeks. On the following thread there were hilariously bad (registered within the hour, first comment on the product "wow great!") fake accounts.

<http://news.ycombinator.com/item?id=4682896>

</comment></comment><comment><USER6> I'm pretty sure the web is already full of anonymous forums where you don't have to give up your identity by signing in with Facebook.

<comment><USER7> True, but this is for people who want to be anonymous _on_ facebook.

<comment><USER8> The idea is, that you want to make statements, but you want people you know to hear them as well. That's why we use facebook's social graph. :)

</comment></comment></comment><comment><USER9> The contrast and font size of this site are a total disaster, my eyes are bleeding.

</comment><comment><USER10> What I'd really like is an extension for a Facebook "read-only" mode, so I can leave myself logged in without worrying about accidentally clicking a "like" button somewhere.

</comment><comment><USER11> By logging with fb, your app will have at least my user id and email. Any data breach on your side and all the "anonymous" posts are not so anonymous anymore.

<comment><USER8> We can assure you from our side, that the way the app is structured, no part aside from login, uses facebook's user ids. We've tried to be very strict about that.

<comment><USER12> How do you filter my "own" posts without correlating my Facebook id with a post-author id?

<comment><USER8> All user associated data uses our own user ids, not facebook's ids. That includes post author ids.

<comment><USER12> Your system seems to be able to correlate the FB id and user id on login to filter my own posts and aggregate my friends postings.

Am I wrong to assume that this ability might enable de-anonymization of postings after a server compromise?

<comment><AUTHOR> No, you're correct in that assumption.

In case of a complete server breach, that would indeed allow for de- anonymization of posts.

</comment></comment></comment></comment></comment></comment><comment><USER13> Most people won't understand what "Flavoured Markdown" means.

</comment><comment><USER14> you should give the possibility to sign up without a facebook account.

<comment><AUTHOR> To be honest, without the facebook integration of being able to talk to _your friends_, there are-as has been pointed out-far too many anonymous forums already.

<comment><USER14> And that's ok. But you'd like to test:

1) how many people would sign up without a facebook account? 2) how many of them could you "convert" and sign-in again with facebook? (saying something like "ok..now, how about you use your facebook account to [blabla] with your friends on facebook?

I'd say people are more willing to give it a try and see how it looks without passing facebook credentials first... That's just my hint..

<comment><AUTHOR> Hmm. I'm beginning to suspect that you're right. We'll be looking into implementing this. Thanks

</comment></comment></comment></comment><comment><USER15> 4chan with facebook login?

</comment><comment><USER16> now we can all bitch about that friend together digitally.

</comment><comment><USER17> pretty cool idea :D !

</comment><comment><USER18> i say Yes.

</comment><comment><USER19> nice work!

</comment><comment><USER20> Super awesome! Finally I can express my opinions without offending sponsors and the like.

</comment><comment><USER20> Awesome idea! Now I can make honest comments and opinions that won't offend the wrong people!

<comment><USER21> Did you just make two separate comments praising this, both within two minutes of registering?

<comment><USER4> There look to be a lot of new accounts all praising this.</comment></comment></comment>


If the Earth Stood Still - <AUTHOR> http://www.esri.com/news/arcuser/0610/nospin.html

<comment><USER2> They modeled gravity but not the atmosphere. So the most drastic effect isn't even mentioned - the much longer day length would roast the planet on one side and freeze it on the other.

Also, no mention of what the weather would be like without Coriolis "force" - no cyclones, no prevailing westerlies, no geostrophic winds. Would you get one big Bénard cell or multiples? (Currently there are six).

I suspect that these changes would be much more dramatic than the ones they discuss. Surely some hard SF writer has thought through this further?

<comment><USER3> I don't think weather is what they were interested in.

Notice they said it was done to demonstrate GIS technology, and GIS stands for _Geographic_ Information Systems

<comment><USER4> You might have confused "geographic" with "geologic". The use of GIS for meteorology is probably just a little younger than GIS itself.

</comment></comment></comment><comment><USER5> I think they're overlooking the effect on the atmosphere. If the water will all flow to the poles, so will the air. If the difference in distance to the center of the earth is 21km then there would be little air left at the equator -- it would be like standing on Everest, or thereabout. Plant and animal life would not survive across broad regions of what is currently inhabitable land.

Further, the water at the poles would be extemely deep, and subject to cold (winter) temps year.

</comment><comment><USER6> Earth has locked rotation with the sun rather than stopped altogether, but this is related and a fun read: <http://en.wikipedia.org/wiki/Hothouse_(novel)>

</comment><comment><USER7> i think the title is misleading - they mean if the earth stopped --rotating-- around its axis

<comment><USER8> If the Earth stopped altogether it should fall into the Sun. No maps to draw, then :)

<comment><USER9> Stopped altogether from which frame of reference? ;)</comment></comment></comment>


Will AT&T buying T-Mobile make jailbroken and unlocked iPhones finally legal? - <AUTHOR> http://www.cringely.com/2011/03/will-att-buying-t-mobile-make-jailbroken-iphones-legal/

<comment><USER2> According to [http://arstechnica.com/tech-policy/news/2010/07/apple- loses-...](http://arstechnica.com/tech-policy/news/2010/07/apple-loses-big-in- drm-ruling-jailbreaks-are-fair-use.ars) jailbreaking is already legal per the DCMA exemptions.</comment>


I've been out for 10 years and life is great - <AUTHOR> http://anthonybishopric.com/post/19282111000/ive-been-out-for-10-years-and-life-is-great

<comment><USER2> I think that graph should be titled "fabulousness" :)</comment>


Mediabattl - <AUTHOR> http://mediabattl.es Mediabattl is a fun way to share the media (videos, images, sounds) you like and to organize battles around them. Battles are fun competitions where people can vote for one of the two opponents of a battle and can comment the battle. <comment><AUTHOR> I created Mediabattl to compare songs and covers and share these with my friends. For example, here is an example of a battle I really like: [http://www.mediabattl.es/battles/19/preview](http://www.mediabattl.es/battles/19/preview). Note that you don't need to be logged in to enjoy the battle.</comment>


Information Dashboard Design, 2nd Edition - <AUTHOR> http://chartio.com/blog/2013/08/informationdashboarddesign

<comment><USER3> I used to work in finance (esp Market Data) and now I've ended up in Employee Analytics.

One thing I've observed is that a user's requirements always flip, and they're usually not aware of it. The two biggest bits of feedback I've heard are "too much data" and "not enough data" \-- often from the same person, and occasionally on the same dashboard.

People just want the highlights, except when they don't, in which case they want everything. The former is really hard because highlights require a lot of rule-based context. The latter is also hard because "everything" is often meaningless. Too much flexibility in your data exploration tool and people just go on random fishing expeditions.

Now I try and structure data in terms of a conversation, with an information "needs" to determine the priority order. Start with the hurdle requirements (e.g. something key like sample size), move through the highlights then present the bare minimum to guide further exploration. If you make data exploration easy from that point it this seems to work well, but I'm still learning.

I must admit, I took one glance at the "ideal dashboard" and was a bit bewildered. I had no idea what I was meant to be looking at, or the relative importance of things. Perhaps there is some critical, specific domain knowledge that I'm missing. Either way, will definitely get this book to find out more.

<comment><USER4> "People just want the highlights, except when they don't, in which case they want everything."

This is quote worthy.

</comment></comment><comment><USER5> Super glad that this is on the frontpage. Dashboard design is probably the single biggest thing that analytics companies overlook when building product. It took us nearly 5 iterations to get our dashboard to a decent point.

What's worst is when offering free trials of an analytics product and then realizing that all freemium customers engage with a dashboard once, and then dropoff forever. Event tracking and various stages of a/b testing can be dangerous because they steer engineers to local minimums in designing a product.

Having a logical understanding of every element of the dashboard is the best way to approach the design.

Great post, we need more resources like this out there.

<comment><USER6> What's your company's name? Checked your HN profile but no luck.

<comment><USER5> Crowdery (YC S13)

</comment></comment></comment><comment><USER7> I'm an educator so it was interesting to see the example of an education dashboard in the competition. This is something that we struggle with - <USER2> educator has different needs and so it's really a difficult challenge to satisfy teachers with digital solutions for their registers and record- keeping.

In this case, I was super-surprised that the letter grades were barely visible on the winning design. The post-competition design was far better in the respect that it displayed the key takeaways prominently.

The register of attendance was lacking in several aspects compared to the common/traditional way it's done on paper. For example, since we probably need to see exactly what dates/days/lessons were missed, having the data in a standard per-week format would be more useful.

From an educational point of view, we should want to use computers to improve the quality of the data, rather than just displaying the data prettily. It would be better to link together the available information to provide educational insight.

Ideally, we might want to say something like: "You missed the class on X, and performed poorly in those questions on the associated test, so you need to catch up by studying the following", using the dashboard to access this type of info.

Further thought: It would be awful to have the data displayed worst-to-best. The comments pick out that this is because teachers should spend more time on the worst performing students - in my mind, this is a fallacy (under- performing students, perhaps yes). Worse than that - I would typically want to easily identify the data for a particular student, in which case the data would be better in some consistent (alphabetical) order.

</comment><comment><USER8> Bought Few's book. Information design is something I'm really interested in, yet I haven't found too many resources on it, other than Tufte's books (obviously) and a couple others. One of my favorites is _Information Graphics: A Comprehensive Illustrated Reference_ by Robert Harris [1]. It offers little discussion, but is an excellent catalog of all of the various ways you can represent data.

For more exploratory information design, check out the stuff by Nicholas Felton. He's a big quantified-self guy who every year publishes a really nicely designed annual report of his life [2]. I emailed him once asking for more sources on info design and he linked me to the site of a course he taught that contained some great resources [3].

[1] [http://www.amazon.com/gp/product/0195135326/](http://www.amazon.com/gp/product/0195135326/)

[2] [http://feltron.com/](http://feltron.com/)

[3] [http://interactiondesign.sva.edu/classes/spring11/informatio...](http://interactiondesign.sva.edu/classes/spring11/informationvisualization/resources/)

<comment><USER9> Good stuff, thanks for the links. Especially Felton's course page has several good references that were new to me. Ellen Lupton's Thinking with Type [1] seems a fun read. Great designs also on the competition page [2].

[1] [http://thinkingwithtype.com/](http://thinkingwithtype.com/)

[2] [http://www.perceptualedge.com/blog/?p=1374](http://www.perceptualedge.com/blog/?p=1374)

<comment><USER8> I would actually spend the money to buy _Thinking with Type_ , if you're really serious about learning typography. Having the tree version lets you get really up close and personal with the various types, and it's easy to flip between pages to compare letterforms, etc. Another one to check out is _Elements of Typographic Style_ [1].

1\. [http://www.amazon.com/dp/0881792063/](http://www.amazon.com/dp/0881792063/)

</comment></comment></comment><comment><USER10> Analytics Press doesn't seem to have any eBook options. I hope that changes.

<comment><AUTHOR> Stephen Few actually self publishes for reasons he explains here: [http://www.perceptualedge.com/blog/?p=1521](http://www.perceptualedge.com/blog/?p=1521)

I'm not sure why he hasn't made an ebook though. This is a new release so it may be coming.

<comment><USER11> KDP/Createspace [1] make it really easy to self-publish on Amazon. There really is no reason not to have ebooks at launch these days. _Especially_ if you're self-publishing. There are plenty of apps that help (had to research this personally recently):

[1] [https://kdp.amazon.com/](https://kdp.amazon.com/)

[http://www.booktango.com/](http://www.booktango.com/)

[http://www.bookbaby.com/](http://www.bookbaby.com/)

[http://vook.com/](http://vook.com/)

[http://pressbooks.com/](http://pressbooks.com/)

<comment><USER4> It's probably not trivial to make an ebook for a book as graphic and layout intensive as this one.

He doesn't appear to be interested in working with a publisher either.

So it's either him or no one. I know I'd rather spend my time writing books, not formatting ebooks.

</comment></comment></comment></comment><comment><USER12> Damn you for making me drafting dashboards for random things now. I had stuff to do.

</comment><comment><USER13> Man, how do people do stuff like that in Excel? And does it feel like a design problem that's a good fit for Excel? Just curious.

<comment><USER14> Google for sparklines excel to see some examples.

</comment></comment><comment><USER15> I've been working pretty extensively on our in-house dashboard. We've settled on the Dashing framework written by Shopify with some rather heavy customization.

The main focus has been on readability from long distances and the ability to switch context when up close using the leap motion.

Check it out here - [https://www.youtube.com/watch?v=kMM2rPX2Rok](https://www.youtube.com/watch?v=kMM2rPX2Rok)

There seems to be some pretty useful information in this book that we can apply to our current setup.

Dashing here - [https://github.com/Shopify/dashing](https://github.com/Shopify/dashing)

<comment><USER16> What's powering your setup? I've also been using Dashing to create my company's internal dashboards and decided to hook a Raspberry Pi up to the display to show the dashboards. Unfortunately it's turned out to be massively underpowered, especially because our dashboards are pretty data / chart heavy. Was just going back to the drawing board when I saw your post.

<comment><USER17> Your experience is interesting because Raspberry Pi will be my first thought for a setup like this. Can you elaborate a bit about your load problems? You said your dashboards are heavy: are you doing heavy data elaboration on the rPi (i.e. getting data from multiple sources, calculating stuff etc..) or it is just too heavy for handling the ruby/sinatra site with data being pushed from outside via http?

<comment><USER15> From my experience of first trying a lightweight media center PC, leaving the browser open for extended periods caused pretty severe memory issues with the computer in general, that combined with the fact that Dashing itself is a Sinatra based application with a bunch of ruby jobs running in the background can cause some serious slowdown.

</comment></comment></comment></comment><comment><USER18> This guy has a few books that, from the face of them, seem very similar. Can anyone point out the important differences or give some advice (e.g. which to pick in what order)?

<comment><AUTHOR> Information Dashboard Design - is definitely the first one you should read. It really gives a more high level overview of charting best practices and dashboard design.

Show me the Numbers - goes much more in depth about the details of the different chart types and visualization best practices. There's a chapter or two on each of the main chart types.

Now You See It - This is described as a companion book to Show me the Numbers and focuses on data analysis as opposed to pure visualization.

</comment></comment><comment><USER19> What are some good resources to get inspired about Dashboard Designs, say a reddit-subreddit or a blog or an aggregator.

Thanks!</comment>


Does an Apple Watch Discount Point to Flagging Sales Numbers? - <AUTHOR> http://www.forbes.com/sites/theopriestley/2015/11/01/does-an-apple-watch-discount-point-to-flagging-sales-numbers/ <comment><USER2> Apple usually have a discount on their products every Black Friday, I'm not sure this points to anything.

In addition, I wouldn't be surprised if Apple Watch doesn't take off that fast or if it flops. It's the first gen of a new platform, it's the second and third generation that will define the platform IMO for Apple. Let's see what they can do in a few years.

</comment><comment><USER3> Tim Cook: Sales of the Apple Watch are increasing.

Analysts: SEE! THAT'S PROOF THAT SALES HAVE CRATERED!</comment>