Propellerhead Software - Application Programmer Test - <AUTHOR> http://www.propellerheads.se/company/employment/index.cfm?fuseaction=display_test <comment><USER2> This test would be _much_ more useful if they put all the errors into a broken string class, and asked you to find the bugs. Glancing at a broken class and seeing all the standard C++ bugs "pop out" is a useful skill for a C++ programmer. But instead of defining an actual, useful class with a bunch of bugs, they use horrendously nonsensical and broken code fragments. For example, I can't even figure out what the GrowArray function is supposed to do.

It's sort of like memorizing a chess board: A chess expert can memorize an actual game-in-progress quickly. But if you just place a bunch of random pieces around a chess board, a chess expert can't memorize it any better than anybody else.

The later examples with memchr are less painful, because memchr actually has well-specified behavior. But even there, the code (most likely) dereferences a pointer one past the end of an array, which is (1) invalid C++ and (2) not on their list of possible bugs. Granted, memchr is an internal compiler function, so it's allowed to rely on undefined behavior. But if this is a multithreaded system, that code potentially corrupts the heap's bookkeeping data structures while memchr is running.

Just _looking_ at the first part of this test is like listening to somebody drag their fingernails across a blackboard. I'm sure that they're a lovely company, but _ugh_. To paraphrase Wolfgang Pauli, that code's so bad it's not even buggy—it's just semi-coherent nonsense.

Another interesting aspect of this test: Both the code examples and the bugs are pre-STL, pre-boost, and pre-TR1. For example, there's no question asking why you can't put a std::auto_ptr into an STL collection. And a huge fraction of the bugs in the test could be avoided by making rudimentary use of modern C++ APIs. Granted, some companies have legitimate reasons to avoid std::vector and std::tr1::shared_ptr. But avoiding those classes makes C++ vastly more error prone, which is usually a poor tradeoff in the modern world.

<comment><USER3> Its been awhile since I C++'ed heavily, but I think this isn't quite right:

"But even there, the code (most likely) dereferences a pointer one past the end of an array, which is (1) invalid C++ and (2) not on their list of possible bugs."

There's a weirdo thing with array allocation in C++ at least which makes it valid to use arrays with all of the std:: algorithms that take a start and end parameter. Unfortunately I can't remember it well enough to find a good reference but as I recall it was more than just a pointer comparison as the std:: algorithms wanted to be able to dereference it occasionally.

Then again its been about four years since I've touched C++ so some of these details have leaked out and gotten mixed up.

<comment><USER2> _There's a weirdo thing with array allocation in C++ at least which makes it valid to use arrays with all of the std:: algorithms that take a start and end parameter._

The actual rule is pretty subtle, and I don't have a copy of the C++ standard in front of me. But let's see if I can remember the precise rule.

Given an array _arr_ with length _len_ , you're allowed to create the pointer _arr+len_. This is the _end_ pointer you see everywhere in modern C++ APIs. However, if you try to deference _arr+len_ , or try to create the pointer _arr+len+1_ , the result is undefined. Typically, the former might point to a locked page, and the latter might overflow the pointer size. But if your compiler applies very aggressive optimizations, even stranger stuff can happen when you rely on undefined behavior:

[http://blog.llvm.org/2011/05/what-every-c-programmer- should-...](http://blog.llvm.org/2011/05/what-every-c-programmer-should- know_14.html)

In the _memchr_ example, the code potentially writes to _arr+len_ , which has a decent chance of temporarily corrupting the implementation-dependent internal headers of the next heap block. In the presence of threads, this would very occasionally corrupt the internal state of _new_ and _delete_ , and debugging it would be a stupendously painful experience.

</comment></comment></comment><comment><USER4> These guys are behind what is easily the most robust and reliable audio app on the market (Reason). Whatever their code practices are internally, they're doing _something_ right.

<comment><USER5> Easily? Meeeeh. I really, really like Reason, but for me it lives as a bag on the side of Ableton (Record doesn't cut it) and I've never had an issue with Ableton either.

<comment><USER4> I love Live but Ableton themselves admitted that Live 8 wasn't as stable as it should have been and stopped production on Live 9 to iron out the many, many crash bugs in Live 8.

Reason may not be the most full-featured audio app but it's certainly the most stable.

<comment><USER5> Really? Huh, I've never had a stability problem with it (even with my own home-rolled VSTs). The more you know...

</comment></comment></comment></comment><comment><USER6> Q1 and Q2 are horrible, but it picks up a bit after that.

Q1: I see a problem on all lines 1 through 6: The class doesn't _do_ anything. There is also no documentation as to what it is intended to do. Here it becomes, as leon_ also comments, a game of "guess what the test writer wanted you to answer".

Q2: "It will work if..." is a meaningless phrase, because I am not told what the code is supposed to do.

Q12: "How many books have you read this year?" It is immediately obvious that "5 or more" is the answer that will give me the highest ranking from their application sorting robot. Everyone is going to answer "5 or more". The honest ones will then flip through the needed amount of books before the interview. The question is as meaningless as "are you a good developer or a bad developer?"

</comment><comment><USER7> The main problem with these trick programs is that as a software engineer of n years I don't debug programs by staring at them for a long time or by memorising a lot of tricks. I usually do it by running them and checking their output, or by catching runtime errors in a debugger. Writing software is not a one way process, it's a skill or an interactive process with the machine.

</comment><comment><USER8> In my book their value "1) Good interface: safe to use - hard to misuse" is the same as their non-value "3) Grand design for the future".

</comment><comment><USER9> I think is may not be testing the right things.

For example, what if the test was in Visual Basic, and instead of asking questions about non virtual destructors in virtual classes, it was asking questions about uses of various database Apis. " Oops, you used the wrong enum value in that function call."

Would that test yield top programmers, or just people who knew a database API very well?

Also, it doesn't demonstrate the ability to solve problems by writing code. At best it tests C++ code review skills.

</comment><comment><USER10> Unfortunately what half of those questions tests are pointless - don't test C++ minutia (especially not in 2011), test whether the candidate can code.

<comment><USER11> They weren't testing minutia, they were testing depth of understanding and experience. I thought they did a decent job, too.

I would have preferred to be able to get a result without actually applying for the job though...

</comment></comment><comment><USER12> Q10 is missing the correct answer: "someone inexplicably decided to implement part of the C standard library in C++".

Not to mention the function's name will be mangled, making it unusable for C users.

</comment><comment><USER13> Facebook has a (somewhat) similar process: <http://www.facebook.com/careers/puzzles.php>

</comment><comment><USER14> This test sucks - I just spend 15 minutes and I don't even get a result!

</comment><comment><USER15> Warning, some spoilers ...

I don't like this kind of tests. I always stumble upon questions where I wonder if it's a trick question or just a typo/mistake by the test creator. Example:

Function D will loop for ever if size_t is an unsigned type. Function E won't even compile because of the comma and the missing * in the first line. Function C is an edge case. The external effect is the same only in a single threaded environment. If there's parallelism or interrupts the external effect might not be the same for certain conditions.

So what do I do? Do I check the box or not? If I do, it might fire back because "I didn't catch those obvious errors". If I don't then my application might fall through the grid because "too many wrong checkmarks". Maybe the recruiter is just a mindless HR bot and doesn't understand any of these questions. So arguing would be pointless.

If you want to determine my skills, give me something to do. Say give me 6 hours to implement a server or something (not too big, not too small for 6 hours), then shuffle through my code and see if its quality pleases you. Being bombarded with off-by-one trick questions just annoys me.</comment>


Developing Blockchain for Healthcare, Primer - <AUTHOR> https://medium.com/@rambossa/developing-blockchain-for-healthcare-primer-d23004de7aed <comment><USER2> Nothing in this proposal warrants development of a new blockchain. Simply fork ethereum and run the nodes on a private network to avoid congestion.

<comment><AUTHOR> The proposal pretty much suggests that.</comment></comment>


IBM improves delivery of nanomeds that kill bacteria where antibiotics fail - <AUTHOR> http://venturebeat.com/2013/01/23/ibm-vastly-improves-delivery-of-nanomeds-that-kills-bacteria-where-antibiotics-fails/#p5d5RLQJhPaVt56O.02 <comment><USER2> Original press release here, but it doesn't mention HIV <http://www.ibn.a-star.edu.sg/images/cms_press/press_82.pdf>

My interpretation is that the hyrdagel-based "nanomeds" have the main advantage that they break-up biofilm colonies, which have a higher (100-1000x) drug resistance than free floating bacteria. It seems to be operating through mechanical rather than biological methods, but the exact mechanisms aren't described well in either article.

<comment><USER3> Would switching from a chemical/biological to a mechanical form of attack against bacteria be expected to produce an evolution of _mechanically_ resistant bacteria?

Be they variants that don't have the same properties that cause the nanogel to be attracted, or have cell walls that are too strong to be disrupted by the nano-stuctures, etc?

I guess my question is: are we talking about a 'final weapon' sort of thing, where any potential 'defense' would require ditching some attribute that makes bacteria feasible in the first place? Or are we just talking about a _new_ weapon, one that we fully expect to eventually wane in effectiveness and thus will have to continue iterating upon?

<comment><USER4> From my quick skip of relevant literature (there's a butt load of research in antibacterial hydrogels), we really aren't in any position to answer that question yet. The mechanism described in the press release is actually speculative.

Many of the papers raise that mechanism as a possibility, but they'll also note that there are many human cells that have a cell membrane at least as electronegative as bacteria, and that they witness antibacterial effects against relatively neutrally charged bacteria membranes as well. One example can be found here [1]. Try flipping through the mechanism and cytotoxicity (how dangerous it is to human cells) sections.

Basically, this is all exciting new research, but there really are no hard answers yet.

[1] <http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2650250/>

</comment></comment></comment><comment><USER5> Why is parkinson even mentioned? It is not a disease that is caused by infection.

Same question for HIV. It's a virus so it doesn't have a membrane which this gel is supposed to attack.

Same question for toenail infections. This is caused by fungi, not bacteria.

Lots of marketing hype here. I don't believe a word of it.

<comment><USER6> I got the impression that when mentioning HIV and toenail infections etc., he's talking about the overall technique of a "nanomedicine" delivery via a hydrogel that "self assembles" when it comes into contact with water.

The _specific_ instance of that which they are currently focusing on appears to be targeting only bacteria, but since the method is focused on mechanical destruction of the cells, presumably they might be hoping that they can adapt the technique to detect and destroy other things as well.

</comment></comment><comment><USER7> The mention of HIV in an article talking about bacteria confuses me. Do bacteria and the HIV virus share some physical/biological property that makes it possible for them to be targeted and destroyed via the same mechanism?

</comment><comment> super-serial That's great it kills bacteria... but what about the text spelling applications?

I want a vial of that stuff, and then if someone asks me a question I don't like... I'll say "here, this gel will give you the answer." Then I'll walk away, and the gel will slowly form into the letters "Fuck You."

</comment><comment><USER8> The real hard bit is to break is the idea that every bacterial disease needs antibiotics NOW. If used sparingly, those that were given a medication may actually benefit from it. But it's likely easier to create a new breed of medications than it is to reset expectations.

</comment><comment><USER9> "We can kill 100 percent of the bacteria"

Didn't read further. There's no such thing as "100%" in medicine (even pure alcohol does not). They're not scientists.

<comment><USER10> It's possible that alcohol kills 100% of the exposed bacteria, but we can't be sure due to measurement limitations, so that's why the bottles will say 99.99%.</comment></comment>


Interview with Simon Peyton Jones (2018) - <AUTHOR> https://www.microsoft.com/en-us/research/blog/functional-programming-languages-pursuit-laziness-dr-simon-peyton-jones/ <comment><USER2> I actually listened to this interview a few weeks ago and thought it was an exceptionally good rundown of the basic philosophy of functional programming. Of course, YMMV, but I found Jones's discussion of the history of Haskell and the discussion of laziness to be great. Nothing earth shattering or enlightening, just a good introductory talk that has some depth for listeners who don't use and study functional languages as a hobby or career.

<comment><USER3> I think most people miss the philosophy of FP; even practitioners of FP. A good chunk of React and Javascript developers just don't get it. They harp on about immutability but really the statement is meaningless to them as it is essentially a buzzword.

I feel to really see the full picture you need to be able to do point free programming with a language that supports the point free style as a first class feature.

Functional programming is about function composition. If you haven't picked up on this notion, than you haven't fully understood FP.

<comment><USER2> First, I happen to strongly agree with your point-of-view/philosophical stance that composition is the essential nature of 'functional programming'. However, and it is a big one, a vast majority (including the leading researchers and academic authorities in the area) are hopelessly and willingly tied to applicative programming as not only the default paradigm, but as they see it, the only paradigm.

I am quite aware Backus was talking about compositional programming in his Turing Award speech, and his work backs that position up, and as I stated, I think that is the proper ground level for functional programming, but most programmers do not agree.

The wide-spread and well understood meaning of functional programming is programming in an expression oriented way, with immutability of data and lack of side-effects being the tent pole rules, laziness/eagerness of evaluation becomes the pivot point between most languages, with the divergence between compositional and applicative languages being almost completely absent.

With all the conflation and mass propagation of the term functional, I have to agree with Conan Elliott and recommend a more rigorous approach to terminology, I don't whether is adopt his usage of denotational in place of functional, but some clarity in the semantic space would be a good idea.

— Edited to fix autocorrected errors.

<comment><USER3> Really? Category theory (when applied to FP) is basically the theory of function composition. I would think this point of view is huge in academia due to the prevalence of CT among academia and FP.

>with the divergence between compositional and applicative languages being almost completely absent.

Most FP languages have facilities to do both anyway. And the isomorphisms between the two concepts are small in distance so it doesn't matter too much if you use applicative over compositional. So really when I say you should do "point-free" to see the big picture I'm advocating that more for educational purposes rather than practical (though I'm not opposed to practical).

That being said you and I are pretty much in agreement, I was just unaware of the whole academic thing.

<comment><USER2> With regard to the prevalent academic opinions, I was really referring to the nature of programming language syntax and semantics. I would say that Category Theory is essentially about function composition, but that then gets filtered down into so-called applicative languages. This designation is based heavily on the lambda calculus, in which application of terms to other terms is the prime mover for computation. Backus certainly wasn't talking about lambda calculus based semantics for FP, he was focused on strict compositional semantics with only non-named pipelined data being fed to compositional units. Most language researchers and writers just assume that any programming language uses function application as the basic unit of computation and so the language is naturally built in layers on this basic unit. So, 'point-free' programming in a language like Haskell is typically just considered good programming style, it is still used in a primarily applicative way. I'm not quite a no-application purist, but I really do see the algebraic beauty in avoiding named variables and skipping application as anything other than a definable operator to work on other higher-order functions.

Just for reference, if you want to see the divergence between applicative (which is basically every modern language in production or in research) and compositional look at some of Manfred von Thun's papers he wrote about the Joy Programming Language. Some people strongly disagree with his stance, but I find him easy to read in any event, see the link below. Also, in several places linked from [0], Thun discusses the Categorical Abstract Machine and has a few references which served as a nice jumping off point for more reading.

[1] [http://joy-lang.org/papers-on-joy/joy-compared-with-other- fu...](http://joy-lang.org/papers-on-joy/joy-compared-with-other-functional- languages)

<comment><USER3> Thanks. Very informative. I actually didn't know about Backus. I just assumed because of CT all academics who study FP view FP this way.

Do you have the source where Backus actually talks about the stuff you mentioned?

<comment><USER2> The canonical source for Backus is his Turing Award Lecture, which was turned into a paper, by which time he had renamed his system FFP (Formal Functional Programming). [0]. There was some longer term research into his FFP system, done by Williams and Wimmers (who gave a much loved talk titled 'Sacrificing simplicity for convenience: Where do you draw the line?' that I can not find a copy or transcript of to save my life in 1988) which evolved into The FL language also by Backus, with Williams and Wimmers[2]. There is a great succinct rundown of Backus' work in this area and those who continued it in [3], it is a little lengthy so I didn't want to just big block quote it.

Also, with regard to the CT thing, I totally get that. The predominance of CT- based concepts (no matter how far they are actually removed from the mathematical background of actual CT) are one of the defining features of modern functional programming, to the point people make jokes about needing to know CT to write 'Hello World' in Haskell. However, and I admit to having an unhealthy obsession with following PLT academia, it really is a little bit of a smoke screen. Nearly all 'functional' languages are based on the lambda calculus and various augmentations thereto, and so most of the CT applied in the area tends to be refinements and imports of various constructs into some potentially BiCartesian Closed Category (which is what the lambda calculus with the common functional programming additions of product and sum types and 1st class functions is as a category). But as I said before, the fundamental construct in the computational model is application via substitution. All of the advanced categorical constructs and tools still hold for compositional languages, but, as the theory goes, you gain an algebraic theory of manipulation of the actual programming language by virtue of the categorical properties of composition (and the inferred lack of hand-wringing over the semantics of substitution.

Sorry for the wall of text, this particular corner of CS and PLT is my favorite place, so any chance to talk about it I jump on.

—————————————————————- 0 - [https://www.thocp.net/biographies/papers/backus_turingaward_...](https://www.thocp.net/biographies/papers/backus_turingaward_lecture.pdf) 2 - [http://citeseerx.ist.psu.edu/viewdoc/citations;jsessionid=B9...](http://citeseerx.ist.psu.edu/viewdoc/citations;jsessionid=B954240F0724D34E06A7F8334B11867E?doi=10.1.1.142.362) 3 - [http://joy-lang.org/papers-on-joy/joy-compared-with-other- fu...](http://joy-lang.org/papers-on-joy/joy-compared-with-other-functional- languages)</comment></comment></comment></comment></comment></comment></comment>


The Rise and Rise of Chinese Science Fiction - <AUTHOR> https://factordaily.com/china-science-fiction/ <comment><USER2> Cixin Liu's 'Remembrance of Earth's Past' trilogy are the greatest sci-fi books I've ever read. I still remember when I picked the first volume and than patiently waited for a very long time for translations of the next books to arrive. The wait was well worth it. He manages to put his characters into seemingly insurmountable situations and it feels like he won't be able to write his way out of them but somehow he manages to achieve the impossible. His world-building skills are second to none and he introduced so many novel and interesting technologies into his universe.

Liu's a true master of sci-fi (and definitely a genius) and these books are my favorite fiction books of all time. After I finished the last book, I was depressed because I realized that I'm not going to read something this great again for a very long time. They're also the first Chinese sci-fi books I've ever read. Since then, I read the rest of Liu's books (including the Ball Lightning which came out last year).

Can't recommend these books highly enough but beware that it might make subsequent sci-fi books less enjoyable since you'll be judging them by a different yardstick. I tried to read so many sci-fi books since (I usually buy various award winning books since it's a decent filter) but I rarely finish them because they never capture my attention (and imagination) like Liu's books.

<comment><USER3> I think it depends on what you want out of it.

In western sci-fi, the story exists to make the reader feel good about themselves. At least, the successful ones are like this. It makes for good movies, and good story telling.

Think about that for a moment. All the western sci-fi that we've been used to: Star Wars, Star Trek, Battlestar Galactica, etc.. All these stories are not really science fiction, but rather, science fantasy.

It goes through the normal story telling, of establishing a good guy and a bad guy. And it tries to pull you in, to empathize with the challenges of the good guy, so that you can experience his trials and tribulations. And then, at the end, the good guy always wins. He always succeeds, in some way or other. And you're left with feeling a sense of joy.

But, Cixin Lui's stories, threw all that aside. He presented you with the cold hard reality, of survival in the jungle. That there are not really any good or bad sides. Just different perspectives. And everyone is just trying to survive.

And the jungle is the galaxy. Western sci-fi is all about being human-centric, as if we are the only species in the universe that matters. Whereas Cixin, presented us with a reality, where humanity is only one of billions of intelligent species. Those that had survived the jungle, or those that hide from the rest, or those that evolved into another form, or those that end up hunting, to maintain their probability of survival.

So, if you want to continue to feel good about yourself, then stick with what you know. Keep reading western sci-fi. If you want to expand your mind, then try out Cixin's novel.

Admittedly, I think something was lost in translation. The translated text was overly wordy. But the concepts behind it, was still incredible.

I especially loved the story about the human computer system, the Qin 1.0 Operating System. That was quite creative.

<comment><USER4> I don't think the cliche Hollywood ending that presents the feel good about yourself, happy resolution, complete with positive family messages at the end of absolutely sodding everything is anything to do with good story telling. It's just the very tired Hollywood cliche that's proven time and again can draw an American family audience.

It's not an either/or. Books are often much, much darker than Hollywood adaptations.

Why is a US programme such as Breaking Bad considered ground breaking and hugely refreshing? For the first time in decades the USA has produced something where the hero is also the bad guy. You end up with some sympathy, and conflicted, for a complex main character, with many shades of grey and black. None of the usual black/white, so obvious it's painful.

Something like Stross's Merchant Princes can finish with a horrible ending and still be a fabulous series and story telling without many reasons to feel good to be found. Then derail after those 6 brilliant books with a clumsy reboot/relaunch.

<comment><USER5> > It's just the very tired Hollywood cliche that's proven time and again can > draw an American family audience.

Global family audience. They're doing something right.

As big as China is getting and will get in the future, I wonder if their movie industry will ever become a global draw. They seem to be awfully local right now. Same goes for Japan or even India.

</comment></comment></comment></comment><comment><USER6> Three body problem does suffer the problem of weak characterization. Liu's account of his characters are often robotic and functional, in a way that is pretty anti-climatic, since you hardly feel for those characters and their fate. They are disposable vehicles with string attached, who don't control their own fate or make their own decisions but simply carry out appointed missions from the author himself.

Granted, his vision for the story is simply brilliant, which covers up a lot of weak points in his literary skills, but weakness is weakness nevertheless. In a way, Three Body Problem series aren't good novels, since it lacks humartian elements in them, but great sketchbooks of some of the craziest, but at the same time, most beautiful SF ideas in decades.

<comment><USER7> So basically your saying: don't read the novels but instead read the Wikipedia articles if you're interested in crazy SF ideas?

<comment><USER8> I think he's saying the ideas are good, but characterization sucks. I might compare it to Asimov: one would never read Asimov for the characters or the psychological insight (like one would read Tolstoy), but one reads Asimov for the plot and the ideas. It's not for everyone, but you would need to read the book to see if it's for you. To say just read the Wikipedia articles would be unjust.

My advice: read it if you liked Asimov or learning about Chinese culture. For example, another commenter pointed out one theme in this trilogy is "The most powerful human trait is the ability to hide ones true feelings and thoughts from others". This is a markedly Chinese trait that it was noted by a missionary who visited China in the 19th century and wrote a book called "Chinese Characteristics".

</comment></comment></comment><comment><USER6> Chinese book market, or fiction market has now almost fully embraced digital self-publishing. Magazine are now almost dead, books are just physical copies of their online version.

Sad but true, the one most important Chinese SF magazine, the SF World, where all the mentioned authors started their career, has been hanging on the edge and gradually becoming irrelevant for some time now.

The new generation of readers has put their vote on longer, daily updated, fast paced Wuxia(Martial Arts)/Xianxia(Martial Arts with Fantasy element) series, which focuses entirely on pleasing the readership with favorable characters/troupes.

With a strangling market, I wouldn't say the Chinese science fiction's future is a bright one.

<comment><USER9> Do you value the medium or the content? I can't see why you think 'digital self-publishing' is a bad thing.

If anything, digital publishing where you can circumvent the publishers should allow for more content to reach market (not saying it's all good...see geocities webpages as an example of this) but I'm not sure why you think this would be bad for the Chinese SciFi scene.

<comment><USER6> The problem with digital self-publishing in China is a unique one. I don't want to expand too much on this subject because it is pretty complicated, but in short, digital self-publishing is not merely a publishing channel, it has reshaped the fiction genre in return.

The Chinese online fiction is now a rat race, every author is measured by the characters they are written PER day, which ranges like 3000 characters to 10k characters. To output that amount of text per day is not trivial task, it is not writing more like manufacturing. And works that doesn't meet such standard gets no chance to even reach the readership at all, per algorithm.

So, to answer your question, medium and content in this case are intervened. Medium is not neutral, it shapes the content by itself, and sadly in China's case, it opts to optimize for volumes not quality, and changes the readers' taste and expectation along the way.

Tradition publishing has one unique quality to itself that it offers advice and quality control through editorship. Not the case for self-publishing though, the market is flooded with more products with lower qualities, and it makes no easier for real good work to stand out since there is too much noise.

<comment><USER10> Sounds a lot like the market for many genres on Amazon.

I will say you're not wrong about the value of editors in traditional publishing. As far as I know, there isn't really much of an answer to that in the "new media" world - even if you want to pay someone directly for the work, editors open to such engagements seem hard to find.

</comment></comment></comment></comment><comment><USER11> I have only read "Three-Body Problem", and I found it to be atrocious writing on pretty much all levels. Language-wise, it was more cliched and wooden than many fanfics I've read. Character development is non-existent, and most of the characters are very shallow and only exist to advance the plot. The plot itself, aside from the basic idea of a three-body system with life, was also very boring - the only part of it that I actually looked forward to continue reading was the Cultural Revolution flashbacks. And then there's the whole sci-fi part of it, which was beyond ridiculous - sentient elementary particles etc.

I still don't understand how that book gets so many good reviews, and especially don't understand people comparing it with Heinlein. Those reviews were the only reason why I forced myself to read it all the way through, and it still feels like some elaborate hoax, or accidentally ending up in some postmodernist art convention by mistake.

<comment><USER12> There are more axes than character development or adherence to the constraints of current scientific understanding on which to judge a book.

To me, originality and "philosophical development", or how the perspective of science influences the future and nature of humanity are very important, and that's why I consider this series an absolute masterpiece.

It's great in the same vein as 2001: a space odyssey, or rendezvous with rama, or childhood's end

<comment><USER11> I didn't see anything particularly original in the first book. Maybe it shows up later.

The other axis is quality of writing - i.e. how easy it is to read and understand, and how aesthetically pleasing the writing is. On that axis, I would also rank it very low.

</comment></comment></comment><comment><USER13> No Harry Potter local as no magic, no god, no fiary after 1948.

Too violent no ...

It is not just the rule. It is the arbitrary rule suddenly comes up. Any funny bear like honey

<comment><USER14> I can't parse this

<comment><USER15> it looks like he's posting from hong kong, and he is trying to avoid the Chinese government censors or get thrown in jail.

<comment><USER16> Fair enough statement, but it looks more like a direct translation from Chinese sentences to me.

> "No Harry Potter local as no magic, ..."

We don't publish localized Harry Potter (don't they? I am not sure) because magic fantasy is abandoned.

> "... no god, no fiary after 1948."

Why 1948? The year is not that meaningful for modern Hong Kong people, but it is a important year for China and Taiwan. At 1948, KMT was de facto defeated by CCP and start to retreat to Taiwan.

> "Too violent no ..."

A book cannot be published if it is too violent.

> "It is not just the rule. It is the arbitrary rule suddenly comes up."

I suppose this looks like normal English? Chinese Government intentionally keeps the publish law vague and blur, so that they can "dynamically" decide what to ban and who to capture.

> Any funny bear like honey

@flukus got this.

<comment><USER17> The first sentence is probably parsed wrong, Chinese fairy/mythological novels are very popular in China, they've surpassed Chinese martial arts novels which has broken my heart because the fairy/mythological novels suck: [https://en.wikipedia.org/wiki/Xianxia_novel](https://en.wikipedia.org/wiki/Xianxia_novel)

Note 仙 can mean fairy in Chinese, they are part of the Chinese category known as 仙侠 or 玄幻,which is Asian/Chinese themed fantasy that differs from Western fantasy novels because its about Taoism/Buddhism, Chinese dragons, demons, immortals and Chinese legends.

As well Chinese magical fantasy or 奇幻 is still alive and well but they're basically Western fantasy genres written by Chinese people with similar ideas of Kings, Queens, Western Dragons.

<comment><USER18> Xinxia has some really high highs, and some really low lows. There are epic moments that make your blood pound mixed with endless repetition of things like mc meeting paper thin arrogant masters that are there only for some satisfying face-slapping scene.

</comment></comment></comment></comment></comment></comment><comment><USER19> Long overdue. When South Korea and Japan have super interesting Sci-Fi books and movies (e.g. Korean Bladerunner "Natural City"), why not China? I am glad China is coming along.

Since I learn Mandarin, feel free to recommend Chinese movies. (I am trying to read 三体 already, don't need more books).

I start with the first (non-scifi) movie:

[https://en.wikipedia.org/wiki/Peace_Breaker_(film)](https://en.wikipedia.org/wiki/Peace_Breaker_\(film\))

Please recommend more Chinese movies if you can

<comment><USER20> Wong Kar-Wai is a Chinese director I like a lot.

<comment><USER21> Wong Kar-Wai grew and made his main films in Hong-Kong, which was not part of China (AKA People's Republic of China). I believe most of his actors spoke Cantonese, not Mandarin. Since these languages are mutually unintelligible, it's of little use to the OP which was learning the latter.

</comment></comment></comment><comment><USER22> As far as I know the Chinese book market is heavily censored.

I'd be curious about how this affects Chinese authors, and if and how they have to limit the topics and the creativity of their writing due to this.

<comment><USER23> I read Liu Cixin's trilogy cover to cover about a year ago. Many references to Western thought including the Bible, social topics, and a surprising (for me) amount of diversity injected into the plot line. Grand and sweeping, it's great Sci Fi literature. It's hard to imagine that it is the result of any significant censorship. I found it a fascinating glimpse into the modern Chinese way of thinking.

<comment><USER24> But it wasn't written today. Can someone point to such a free and exploratory book is written in China today? I hope writers there will again have the freedom of the three body rule.

</comment></comment></comment><comment><USER25> I really enjoyed Liu Cixin's Three Body Problem trilogy when I read it last year. Really creative and interesting. I also just finished his prequel to the trilogy Ball Lightening.

<comment><USER9> Would you recommend reading Ball Lightning before the TBP Trilogy if I've never read any of this...because it's a prequel?

<comment><USER26> I've read (and thoroughly enjoyed) them all, didn't even know Ball Lightning was a prequel (it was written after the trilogy). Perhaps some repeat characters?

I don't believe there are any spoilers either way.

<comment><USER25> I only know about it being sort-of a prequel because of the afterward material in the audible audio book. The books can be enjoyed in either reading order.

</comment></comment></comment></comment><comment><USER27> Strong recommendation for "Usurper of the Sun", have yet to read another book like it.

</comment><comment><USER28> > science Literature which first came out in 1979, continued to publish during > the campaign against spiritual pollution and continues to this day under the > name of Science Fiction World.

Here are some interesting trivia about _Science Fiction World_

\- Nearly all of Liu Cixin's work was first published on this magazine

\- The publisher was located in Chengdu, Sichuan, it's an official member of Sichuan Science Society, which is under direct control of Communist Party Sichuan Committee.

\- One of the chief editor of SFW, A-Lai[1], who is a Tibetan, also a very established award-winning writer. His most famous work is about the conflict in feudal serfdom Tibet in the 20s century. A very interesting novel.

\- SFW was once considered the largest science fiction magazine published by volume. In 2010 there was an online campaign from its staff requesting step down of Party appointed president & chief editor, LiChang.

\- LiChang was also responsible for opening another magazine lineup, the famous Magic Fantasy World. Because of the LotR and Harry Potter influence. The magazine was discontinued in 2013.

[1] [https://en.wikipedia.org/wiki/Alai_(author)](https://en.wikipedia.org/wiki/Alai_\(author\))

</comment><comment><USER29> Cixin Liu and Ken Liu (admittedly American) are in my top-10 SF authors now.

</comment><comment><USER30> Cixin Liu's "Three Body Problem" is a trip. Recommended.

</comment><comment><USER31> I had not an inkling of an idea that this was a thing; but I am glad that I have stumbled upon this. Thank you for sharing! Will have to explore further.

</comment><comment><USER32> Do they have any scifi to speak of in TV yet? I wonder how long it will take, given the growing popularity of these novels.

<comment><USER33> There is the series _Guardian (2018)_ , which is interesting. Probably more fantasy and really low budget though:

[https://www.imdb.com/title/tt8551028/?ref_=fn_tv_tt_1](https://www.imdb.com/title/tt8551028/?ref_=fn_tv_tt_1)</comment></comment>


Investor Liability for ICOs Could Be Substantial - <AUTHOR> https://hackernoon.com/investor-liability-for-icos-could-be-downturn-catalyst-e902ffdb9eeb <comment><USER2> a lot of ICOs just bar US citizens:(little US with a bar across it icon)

[https://www.smithandcrown.com/icos/](https://www.smithandcrown.com/icos/)

<comment><AUTHOR> True - I wonder how much actual KYC those guys are doing though, so much as claiming they don't market to US citizens and then doing no real background checking. It won't pass muster if there aren't any real teeth to it.</comment></comment>


Usability of iPad Apps and Websites: First Research Findings - <AUTHOR> http://www.nngroup.com/reports/mobile/ipad/

<comment><AUTHOR> Discussion already started, go here:

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


Why I'm starting a blog - <AUTHOR> http://jordanburgess.com/post/35606480702/why-im-starting-a-blog

<comment><AUTHOR> that post took me 5 hours to write. i really hope at some point I can write better and care less.</comment>


What Microsoft wants from Yahoo (Yahoo's paid-search patent) - <AUTHOR> http://techuser.net/microsoft-yahoo.html <comment><USER2> If this is even half true this might be the most scandalous thing I've read in years.</comment>


Ask HN: What would be a cool goal setting tool? - <AUTHOR>

Hey guys, I am currently looking into creating a tool to track goals. Those could be either life goals, projects or single tasks. Maybe some of you guys already use things like trello etc., or just the good old fashioned paper.
To get a rough idea what i'm thinking of, see this: https://www.dropbox.com/s/i5t0ei7iusk95i8/Screenshot%202015-03-20%2019.11.59.png
Would you use something like this?
What features do you think it needs to have? <comment><USER2> Your sample reminds me of the ABLE Process.

Access Build Launch Evaluate

I use it to achieve some goals but It's typically used for management planning.

In my personal and life goals I start with the end in mind. So I would prefer something more along the lines of a time line. Start with the goal you want to complete and then select milestones and dates you will need to accomplish to get there.</comment>


"Cigarette smoking causes about one of every five deaths in the US each year." - <AUTHOR> https://www.cdc.gov/tobacco/data_statistics/fact_sheets/health_effects/tobacco_related_mortality/index.htm <comment><USER2> So what do we do? I don't believe in making them illegal as that infringes on others rights to choose what they put in their body, but I do feel for the kids and family members who have to put up with the habit.

<comment><USER3> Well, this is my personal opinion but here it goes.

It's not about our rights, it's about public health. Cigarrettes should be illegal, and all the companies making these products shluld be banned. This is costing the entire world millions every month.

I am a smoker. I smoke about a pack everyday. And I've tried quitting more than once, but this thing is more addictive than a lot of substances you can buy on the street. The only reason it's legal is because some people get huge profits from it. If they asked me, I would ban it in a second. In the US there's people in jail for selling a joint in the street, but nobody has done anything to put the people owning the companies who manufacture shit that kills so many people everyday behind bars. I don't get it. I mean, I do, but it just shows how nasty some parts of every goverment are

<comment><USER4> Have you considered switching to an e-cigrarette _without the intention of quitting_ (which is where I think most people trip up)? I have a friend who uses a balance of nicotine in his e-cigarette that is way way more nicotine than he would ever get from a normal cigarette, he is extremely happy (and claims that the real trick is you need to not use a cheap e-cigarette but get one that nails the temperature consistently), and as far as we can all tell he is avoiding the horrible health effects. I mean: you are addicted to nicotine, not tar, right?

<comment><USER5> "as far as we can all tell he is avoiding the horrible health effects"

No. Nicotine is a carcinogen. Forgive my surprise, but I'm absolutely blown away that this isn't common knowledge in 2017.

Edit: I appreciate the distinction that folks are making as far as what constitutes a carcinogen. Yes, the science we have today falls short of us classifying nicotine as a 'complete carcinogen'. If that makes you sleep better, then ok, but the science shows carcinogenicity in vitro, and substantial ability to promote tumor growth, metastasis, and recurrence in vivo [0][1][2][3].

Your friend is also potentially exposing himself and those around him to formaldehyde and diacetyl and so on, which is present in many e-cigarette liquids.

Folks: eat healthy, get a bit of exercise, read good books, and most of all, develop relationships with people you truly trust. If you find yourself needing to rely on smoking or drinking to get you through the week, take a step back and garbage-collect your life and decide if you're living the life you want, or if it's a life that's in need of radical restructuring.

[0] doi:10.1371/journal.pone.0007524

[1] [https://www.ncbi.nlm.nih.gov/pubmed/7848904](https://www.ncbi.nlm.nih.gov/pubmed/7848904)

[2] [http://www.mdedge.com/ccjm/article/101393/adolescent- medicin...](http://www.mdedge.com/ccjm/article/101393/adolescent- medicine/e-cigarettes-safe-recommend-patients)

[3] doi:10.1158/0008-5472.CAN-14-0681

<comment><USER6> Source please.

<comment><USER5> i did not downvote you. asking for a source is not a bad thing.

in addition to what i posted above, this paper is a good summary of what we know at this point: doi:10.1038/nrc3725

</comment></comment></comment></comment></comment></comment><comment><USER7> Its also a nightmare when you rent. Luckily I see more rental properties banning smoking, but they are still in the minority.

Its not just smoke wafting in from neighbors, but also the third hand smoke deposited in the unit you may be exposed to by previous smokers.

For example, its almost impossible to remove the third hand smoke from ventilation systems that use flexible duct tubing because they tear.

The cost of a total clean-up is so high, I bet nobody actually does it correctly. Since there is no transparency in this matter, as a consumer you can't make an educated decision on the unit you area about to rent.

<comment><USER8> Where are you based? I've been in many rental properties over the last 10 years; my own, my parents, and friends of. Oth of us. Every single one I've seen has banned smoking.

<comment><USER7> Arizona - but to clarify, I'm talking about apartments. For example the Mark Taylor properties I've stayed at permit smoking.

</comment></comment></comment><comment><USER9> Based on the references, I believe this should be tagged (2015)

Also, article title is "Tobacco-Related Mortality"

<comment><USER10> Can you name any relevant "tobacco-related" activities that are not "smoking"?

(Technically, it's true that the term "cigarette smoking" is too narrow. When my mother asked my father to quit cigarette smoking, he happily obliged and started stuffing a tobacco pipe instead.)

<comment><USER8> Don't know if they're "relevant" but snuff is common in certain places - [https://en.m.wikipedia.org/wiki/Snuff_(tobacco)](https://en.m.wikipedia.org/wiki/Snuff_\(tobacco\))

Edit: actually there's a full Wikipedia article on smokeless tobacco - [https://en.m.wikipedia.org/wiki/Smokeless_tobacco](https://en.m.wikipedia.org/wiki/Smokeless_tobacco)

</comment></comment></comment><comment><USER11> 1 in 5! That's astounding

<comment><USER12> not sure what kind of information gain "each year" is supposed to provide in the title though....

<comment><USER13> It means that next year it will be 2/5...</comment></comment></comment>


Postliterate America - <AUTHOR> http://www.unz.com/ldinh/postliterate-america/ <comment><USER2> "there is no subtlety left to language"

There can be and English is well suited to it, though it is rare.

Crazy example is Paris Hilton's use of a single term: "That's Hot"

Basically, she would use the simple two words to both openly mock and demean someone, subtly enough that only erstwhile 'in the know' people would get it ... but at the same time, it was in a way earnest, honestly supporting the authenticity of whatever she's commenting on.

Example, some odd guy from the sticks would say or do something a little bold, play some crazy song on a banjo, and she'd say 'That's Hot' as if to say "That's so laughably lame, but also, kinda cool and authentic, Bravo".

In only two words.

Aside from the 'sour grapes of the author having been displaced by globalized concentration in journalism ... he does make a point.</comment>


Show HN: A Customisable Dashboard Service for Your Pi, Smart-Mirror and Browser - <AUTHOR> https://centralboard.app/ <comment><AUTHOR> A friend and me have been working on this for the last few weeks during lockdown. Since Panic stoped Status Board we were using a prototype of this. Feel free to give it a try. We are happy to answer your questions.

<comment><USER2> Thanks kekub for your support and help over the last weeks! @all feel free to ask some questions about the project.

</comment></comment><comment><USER3> Not sure if it is a typo, but the Dashboard Features link goes to the Register page. I was hoping to see what kinds of widgets are on offer.

Also, I was unable to determine if, under pricing, "4 Widgets" and "10 Widgets" are taken from a limited pool of widgets or if they can include any 4 or 10 widgets from the pool of "Unlimited Widgets".

</comment><comment><USER4> Seems interesting, would like to try it out on a smart mirror, if I had one D:

<comment><USER2> It is easy to start/test with a basic raspberry pi and a old display The PI only needs internet connection & chrome in kiosk mode.

After this "setup" you only need a two-way mirror :-D</comment></comment>


2048 x 2 = 4096 - <AUTHOR> http://martijnkorteweg.github.io/4096/

<comment><USER2> > NOTE: This site is the official version of 2048. You can play it on your > phone via [http://git.io/2048](http://git.io/2048). All other apps or sites > are derivatives or fakes, and should be used with caution.

Might be good of you to remove that bit.

<comment><AUTHOR> good note, adjusted the page to give credit where credit is due

</comment></comment><comment><USER3> I actually did the same %s/2048/4096/g in the code the other day after getting 2048. And I finally beat it! [http://i.imgur.com/pC51sNT.png](http://i.imgur.com/pC51sNT.png)

I suppose the next step is to make it endless and see how high you can go.

</comment><comment><USER4> 2048-AI can solve this one too, and I think with a little refinement 8192 is definitely possible.

See the screenshot at the bottom: [http://stackoverflow.com/a/22389702/1056032](http://stackoverflow.com/a/22389702/1056032)

</comment><comment><USER5> I though I would see this sooner. This might be barely solvable, but the next power( after 4096 ) is almost impossible to reach and there should be some innovation in gameplay.

<comment><AUTHOR> main reason for me was that i kept on beating the 2048 one, so lets see if this one is beatable :)

<comment><USER6> The lack of challenge was a good cure for addiction...

</comment></comment></comment><comment><USER7> I mean no negativity here, but isn't it neat how this is sorta like Call of Duty 5 or whatever sequel they're on now? Where people use terms like "milking the franchise."

Clearly, these forks/derivate works have some value (both to creators, and those playing), but I find the parallel to be interesting.

<comment><USER5> I don't see it. The 2^n games are free of money and adds.

</comment></comment><comment><USER8> 4096 = 2^12. So you would need to utilize at least 12 out of 16 squares (if done perfectly) in order to beat it.

Since there are 16 squares total it is not hard to put upped limit on highest possible variation of the game that you can actually beat at 2^15 = 32768. Unless somebody expands the field of course.

<comment><USER9> Actually, the smaller number that appears is 2, and if you are lucky the last two numbers you get are 4. The smaller number must be repeated to start the massive collapse. So the greatest winnable version is 4+4+8+16+...+65536 = 131072 = 2^17.

<comment><USER8> (4 + 4 + 8 + 16) + (32 + 64 + 128 + 256) + (512 + 1024 + 2048 + 4096) + (8,192 + 16,384 + 32,768 + 65,536)

You are correct good sir, in the analysis above I eliminated luck whatsoever and set all numbers appearing to 2 make an argument. My analysis still holds with that restriction.

I've seen numbers as large as 128 appearing, so if we go that route greatest winnable version would be even higher. I suspect that maximum number appearing is based on max number on the board now, so while we are speculating, it could be possible to make endless game by dynamically adjusting window of appearing numbers.

<comment><USER9> The new tiles are only 2 (90%) and 4 (10%). From the source [https://github.com/gabrielecirulli/2048/blob/master/js/game_...](https://github.com/gabrielecirulli/2048/blob/master/js/game_manager.js#L43)

      // Adds a tile in a random position
      GameManager.prototype.addRandomTile = function () {
        if (this.grid.cellsAvailable()) {
          var value = Math.random() < 0.9 ? 2 : 4;
          var tile = new Tile(this.grid.randomAvailableCell(), value);

         this.grid.insertTile(tile);
        }
      };

</comment></comment></comment></comment><comment><USER10> You can play 4096 on android

[https://play.google.com/store/apps/details?id=com.runningwit...](https://play.google.com/store/apps/details?id=com.runningwithknives.twentyfourtyeight)

</comment><comment><USER11> I beat this with first try. I feel like I could almost always win with my strategy... [http://imgur.com/HtC2mOh](http://imgur.com/HtC2mOh)

</comment><comment><USER12> Is 6100[1] good?

1.) [http://i.imgur.com/c62H5We.png](http://i.imgur.com/c62H5We.png)

<comment><USER13> Well, to beat the game you need a score of ~41000. So you are in the bottom 15%.

</comment></comment><comment><USER14> Alternative challenge: least number of moves to game over.

<comment><AUTHOR> feels that that would be the true score of the game, least number of moves to win.

</comment></comment><comment><USER15> I'll just wait for the 4096 AI version to play...</comment>


Second step with non-linear regression: adding predictors (2017) - <AUTHOR> https://www.r-bloggers.com/second-step-with-non-linear-regression-adding-predictors/ <comment><USER2> Polynomial regression isn't really a good way to obtain highly nonlinear models for two reasons at least:

\- Runge's phenomenon: high-order polynomial interpolation is really unstable; high-order polynomial regression can avoid this fate if your points are well spread around each potentially unstable region of the regressor space. I.e. not realistically.

\- Leverage points: a linear regression is pinned at the point (mean y, mean x), and points at the edges of regressor space have a disproportionate influence. Polynomial regression is just this in higher-dimensional space; but then this gives you heartache trying to allocate weight to x^2 and x^4 terms, for example.

There's a lost art of understanding regression as approximating y = f(x,z....) and setting the linear functional form in order to give partial derivatives/marginal effects dy/dx, dy/dz... that reproduce the effects you expect. For example -- we may not believe that some phenomenon is actually quadratic but we expect it to have a single optimal point. Then if we regress

y ~ a + b \\* x + c \\* x^2,

we have dy/dx = b + 2cx and a single optimal point at x = -b/2c. So for example a model's earnings might be a function of weight-hips ratio (WHR) but there's a platonic ideal of perfection, not an indefinite preference for small or large waists. On the other hand, if the same model's earnings also depends on weight and height, the following model

y ~ a + b WHR + c WHR^2 + e WEIGHT + f HEIGHT + g WEIGHT \\* HEIGHT + h WEIGHT^2 \\* HEIGHT

has the following additional partial derivatives

dy/dWEIGHT = e + g HEIGHT + 2h WEIGHT HEIGHT

which gives us the optimal height-dependent weight

-(e + g HEIGHT)/(2 h HEIGHT)

The trick is to start thinking qualitatively from partial derivatives and think of the polynomial model as a kind of Taylor approximation to the exact nonlinear model you can't find.

<comment><USER3> It's interesting that your experience has focused on polynomial regression. My experience is that "nonlinear" regression more means adding interaction terms, testing for discontinuities, and allowing for partially pooled separate linear functions based on strata of the data, like hierarchical regression.

For anything truly needing to model nonlinearities in the manifold of the input data, I'd instead use tree based regression, SVM regression with an appropriate kernel, Gaussian Processes /krieging, etc. I've never experienced pragmatically useful results with polynomial regression that wouldn't have been more easily obtained from more appropriate nonlinear models, and wasn't aware anyone would ever actually try this in practice.

<comment><USER4> I think it is a matter of discipline. My economic background would emphasize the polynomial approach to these sorts of problems over less parametric methods such as regression trees. Fixed effect modeling (strict Hierarchical modeling) is a standard practice is my domain as well.

</comment></comment></comment><comment><USER5> r-bloggers is a mostly an article aggregation site, that republish (with permission) other blog post, in poorly formatted versions. I absolutely hate reading stuff on r-bloggers.

Read the original article here [https://datascienceplus.com/second-step-with- non-linear-regr...](https://datascienceplus.com/second-step-with-non-linear- regression-adding-predictors/)</comment>


Ask HN: How Hard to Make App for Android? - <AUTHOR>

Is it a lot harder to make an app for android than for the Apple devices? <comment><USER2> In my experience, no not at all. Really the hardest part is eliminating any/all of your ANRs (Application Not Responding), which is pretty easy if you just build it from the ground-up with a liberal use of AsyncTasks, Background Services, Content Providers, and BroadcastReceivers. If you can imagine a possible way to take a portion of your code off the main UI thread: do it.

The only advantage that I've seen with iOS development is default UI and animation behavior. With Android you don't get much by default, and there's not really any Open Source scene that I've been able to find. Some would also say that debugging is easier with iOS's emulators, but I just debug straight onto my Android phone hooked up to my workstation.

Fragmentation isn't the problem that people make it out to be. If you write flexible UIs and performance-driven code to begin with, you're not going to run into any real problems outside of game development. Only then do things get tricky with all the possible hardware configurations.

<comment><USER3> A good way to figure out if you are doing something that you shouldn't in your application is to use the new StrictMode API: [http://android- developers.blogspot.com/2010/12/new-gingerbre...](http://android- developers.blogspot.com/2010/12/new-gingerbread-api-strictmode.html)

<comment><USER2> Oh very cool. That will definitely make tracking down some hard-to-reproduce ANRs easier.</comment></comment></comment>


The Shifting State of Remote Work - <AUTHOR> https://www.yac.chat/blog/the-shifting-state-of-remote-work <comment><USER2> > One explanation is that Buffer's sample population may have changed over the > years. However, Buffer sampled well over 1,000 employees in each annual > report and doesn't provide any indication that their sampling technique > meaningfully deviated from past years.

Sampling technique might not have differed or it might have. I did some deeper diving on the stats because I have a hard time believing remote shot up drastically like it makes it seem and that it suddenly pays great...

2018: [https://open.buffer.com/state-remote- work-2018/](https://open.buffer.com/state-remote-work-2018/)

2020: [https://lp.buffer.com/state-of-remote- work-2020](https://lp.buffer.com/state-of-remote-work-2020)

Compare 2018

> Most of the folks we surveyed work in the software industry (26%) followed > by IT and Services (20%) and Marketing (19%). Only 5% of respondents work in > Education and 8% in Media and Publishing.

To 2020

> Forty-one percent of those who took the survey work at organizations in > software space. Other industries include: IT and Services (19.5 percent); > Marketing (8.7 percent); Other (7.3 percent); Financial Services (4.6 > percent); Media and Publishing (3.6 percent); Education (3.3 percent); > E-commerce (3 percent); Medical and Healthcare (3 percent); Consumer > products (2.3 percent); Travel and Tourism (1.6 percent); Non-profit (1.5 > percent); Government (0.6 percent); and Law and Legal Services (0.6 > percent).

Do we think that software suddenly had a 50-100% rise in engineers working remotely in 2 years? Maybe - but, personally, I'm skeptical. Seems more likely that the way they sampled their population changed.

And it's almost like the increase in software engineers reporting directly correlated with a rise in wages. Go figure...

<comment><USER3> I would be interested to see how they qualify respondents with respect to "remote." If it was in the report, I missed it. Presumably there has to be some floor higher than "I travel a quarter of the time" or I work from home Fridays.

I do see something of an increase in the number of tech people who can reasonably be described as working remotely but that does seem a big change in a couple of years. (Though it's not just software engineers but senior people in tech generally.)

<comment><USER4> Even "I work from home Fridays" would be a relevant bar I think.

It wouldn't be allowed, or technically unfit (no access to critical tools) in a lot of companies I've seen 10 or even 5 years ago. Someone "working from home" would be considered traveling and lose most of the work resources.

<comment><USER3> Fair enough. For many of us in professional tech jobs today, it's easy to forget just how normed working from home now and then has become. In my first longtime job in the computer industry, I would travel some but the expectation was absolutely that I'd be in the office if I weren't even if the weather was crappy, etc. For one thing, if I weren't in the office, I was pretty cut off from routine communications like phone calls, network access, and so forth.

I'm not sure I'd consider one day a week working "remote" but it does point to an expectation of a lot of flexibility for many professional jobs even if they're not technically remote-first.

</comment></comment></comment></comment><comment><USER5> I think remote work is best suited for pretty senior people who don't need much coaching. So that may shift salaries up a little.

A while ago there was a small discussion in another thread about onboarding remote junior and I got the impression that nobody really knows how to do that well.

<comment><USER6> Yep, this. You don't hire interns, grads, and juniors for remote work. So automatically the average salary is higher for remote work when you limit it to mid level and above.

<comment><USER7> Right, and in my experience at least a lot of remote workers are not people who are hired for a remote job but a senior(ish) person who negotiated with their employer to transition to being full-time remote, even if the company doesn't explicitly allow or support remote work.

<comment><USER3> Right. I work with a lot of people (and am one myself) who were hired into an office but are reasonably described as remote, whether or not 100%, now.

</comment></comment></comment></comment><comment><USER8> It's not surprising given that those who are able to dictate their desired setup (remote work in this case) can command higher salaries. Would be nice to see the graph of years of experience + salaries for remote vs onsite workers.

<comment><USER9> At my employer we have zones and your salary is adjusted based on COL compared to say SF.

I'm doing well as a remote worker, but I've been browsing job boards and many advertised ranges are about half of what I'm currently earning. It needs to get better.

<comment><USER10> > At my employer we have zones and your salary is adjusted based on COL > compared to say SF.

Would be an example of someone not dictating their setup

<comment><USER11> Agreed. Any remote company that adjusts salaries based on location gets a hard pass from me.

<comment><USER12> I think its perfectly reasonable to do this. As someone who would love to be a remote worker as long as my total comp package is acceptable to me, I don't really give a crap if they are paying someone in SF 25% more.

I would more look at compared to local jobs in my area.

For example, my job, my years of experience, in my area (Midwest USA) is roughly $175K on a W2 salary. If that same position is 275k in NYC, but I'm offered it at $175k, sign me up!

I'm sure they would pay me the $275k if I moved to New York...but not living in New York is worth $100k a year to me.

<comment><USER11> While true, you're going to miss out on some percentage of applicants that are willing to interview a bit more to get a non-adjusted rate. This might be fine if you have a good hiring funnel, but if you're a scrappy startup, this could be challenging.

Also, you will likely end up with a slightly higher churn rate (since smart employees will continue interviewing to see if they can get a higher salary from a place that doesn't adjust based on cost of living).

It's a perfectly reasonable approach to take as an employer, and if you can make it work, all the more power to you.

</comment></comment></comment></comment></comment></comment><comment><USER13> I work remote so I have more free time.

No commute, can work from many places, can do chores between work, etc.

<comment><USER14> Same. I was offered a promotion at my current job, but it would require being on site at different locations. I turned it down because I get paid well enough to work from home, plus I get an extra 2-3 hours of free time every day since I don't have to get dressed or deal with traffic.

<comment><USER13> I "lost" a few promotions because working remote too.

Still worth it.

</comment></comment></comment><comment><USER3> The change isn't especially surprising. Given that the survey allows for even <50% remote work to be factored in, I expect that there's been an increase in the number of better compensated/more senior people who work remotely as opposed to being primarily contractors, support staff, etc. The article speculates about this but it seems pretty obvious among a lot of people I work with and know.

<comment><USER15> Anecdote - Talked to a highly paid contractor from Nasa the other day. He said he's been working in-office 30+ years and just this month was allowed to work full-time remote.

Renaissance of remote work approaching imo.

</comment></comment><comment><USER16> Agree with @bradlys' comment: This just suggests more highly paid people are being allowed to work remote, vs. remote jobs being paid more.

Given the expansion of high paying roles across geographies, this could be driven almost entirely by FAANG opening engineering / R&D centers in other cities like Denver / Dallas, etc.

Also 'remote' could be laxer standards for these same companies on going down to Mountain View / Menlo Park driven by commute and traffic. Many of my friends commute 2x a week, passing the 50% threshold for remote work, even though I wouldn't consider Menlo Park / Mountain View to SF 'Remote'

<comment><USER3> To be honest, of course. If remote work is paying substantially better it's because higher paid people have jobs that fit under some technical definition of remote.

To your example, I don't work in the Bay Area but I'm theoretically in an office about a 30 minute drive away. However, I gave up my desk and only go in for meetings sometime. I'd definitely self-report as Remote even though I technically aren't.

I wonder if some of it is just changes in attitudes. Lots of people in tech and elsewhere (e.g. sales) have long spent very little time in their offices even if they had one. I wonder if they consider themselves Remote today when they wouldn't have in the past because they were technically in an office.

</comment></comment><comment><USER17> I've been looking on and off for a few months to see what the remote market is like. It's rare to find senior dev jobs paying >130k and even rarer to find local jobs that let you be remote a fixed number of days a week. It seems at least around here you would need to take a good pay cut to have a remote option.

<comment><USER18> Anecdotal, but myself and two other people I know at two other places work "mostly remote," meaning commute once a week or less.

In each case, we started by commuting full time, and added remote days after some months. Also for all of us, we have a good number of co-workers that go into the office most days.

I found the same as you, in that looking for positions specifically billed as remote positions, the money is really not there.

<comment><USER15> The good news is that remote jobs are growing by the day. Remote.co is doing a good job at snagging high quality jobs [https://remote.co/remote- jobs/developer/](https://remote.co/remote-jobs/developer/)

</comment></comment></comment><comment><USER19> It occurs to me that, in at least some cases, employers don't want to have remote workers (fear of loss of control), but will accept it if they cannot fill the position otherwise (e.g. there are no available programmers in our town).

So, it will be interesting to see what happens when the next labor market downturn comes.

<comment><USER20> Remote work is all about trust. Find good talent that you don't have to micro manage and you'll see that the output is 2x what the input used to be. It's amazing how much you can get done when you're left alone and not interrupted by meetings and a distracting workplace

<comment><USER15> True story [https://www.forbes.com/sites/abdullahimuhammed/2019/05/21/he...](https://www.forbes.com/sites/abdullahimuhammed/2019/05/21/heres- why-remote-workers-are-more-productive-than-in-house-teams/)

</comment></comment></comment><comment><USER21> I would love if sites like levels.fyi had a checkbox for remote work. Since there's few stats out there: $150k base, $50k stock ($200k / 4 years), no bonus. Focus on front end, 5 YOE.

<comment><USER22> Haha, I'd love to have this as well, sign me up for a job like this :)</comment></comment>


Issue with Git branching - <AUTHOR> http://blog.rubydubee.com/post/12750333272/issue-with-git-branching

<comment><USER2> Sorry, but the author just has not understood how git works. It is explained in the Stackoverflow answers linked to.</comment>


Your harddrive *will* fail - it's just a question of when - <AUTHOR> http://successfulsoftware.net/2008/02/04/your-harddrive-will-fail-its-just-a-question-of-when/ <comment><USER2> Actually, I've never had a hard drive fail. I've always wanted to upgrade before it happened.

I recently got my hands on a Drobo for free. It is awesome. Literally a black box for storage, will scale well as disks get faster, and I'll always be buying disks at the optimal $/GB. The time saved in not thinking about it is awesome.

www.drobo.com

<comment><USER3> Having a hard-drive fail is a great experience. Only then will you forever change your habits on backup policies, redundancy and fail over.

Only the loss of something really value-able gives you that.</comment></comment>


The Typestate Pattern in Rust - <AUTHOR> http://cliffle.com/blog/rust-typestate/ <comment><AUTHOR> I find this interesting because it's an easy pattern in Rust and yet very difficult to emulate in most other languages.</comment>


Guy Kawasaki: How to Get the Most Out of Posterous - <AUTHOR> http://www.openforum.com/idea-hub/topics/the-world/article/twelve-tips-and-tricks-to-get-the-most-out-of-posterous-guy-kawasaki

<comment><USER2> Is that really the more easy to use interface for the average person? They would probably run away screaming if they were told to program, but here they manage a sort of email command line.

</comment><comment><USER3> Am I the only person who mentally prepends "pre-" when I hear the name of this company?

</comment><comment><USER4> As far as I understand posterous does not have comments functionality. Is this correct?

<comment><USER5> Every posterous blog comes with built-in commenting</comment></comment>


World's largest grid battery will be installed in China by 2018 - <AUTHOR> https://spectrum.ieee.org/green-tech/fuel-cells/its-big-and-longlived-and-it-wont-catch-fire-the-vanadium-redoxflow-battery <comment><USER2> If I'm reading this correctly, the "world's largest battery site: a 200-megawatt, 800-megawatt-hour storage station in China's Liaoning province" has enough capacity to power 10% of Portland, Oregon's residential use for a day... and the article says this factory is producing 300 MWh of batteries per year right now ("eventually... 3 gigawatts per year").

Utility scale batteries are just for surge production; when the wind isn't blowing and the sun isn't shining within efficient transmission distance. Yet it seems like there is a lot of opportunity for more "20 soccer field" sized battery factories.

[TFA] 800 MWh battery [0] 265,439 households [1] 0.901 MWh per month, per average household

0.901 * 265439 = 239,160 MWh per month / 30.44 days per month = Portland's household consumption is 7,856.8 MWh per day

[0]: [https://www.census.gov/quickfacts/fact/table/portlandcityore...](https://www.census.gov/quickfacts/fact/table/portlandcityoregon/PST045216)

[1]: [https://www.eia.gov/tools/faqs/faq.php?id=97&t=3](https://www.eia.gov/tools/faqs/faq.php?id=97&t=3)</comment>


Campfire – Put in an artist, get genres - <AUTHOR> https://campfire.ratwires.space/ <comment><USER2> Cool idea! The string matching seems a bit brittle on the names I tried -- "Beatles" turns up no results, but "The Beatles" works. Same goes for "Rolling Stones"/"The Rolling Stones".

<comment><AUTHOR> That's true, I'll look into having it try more variances on the entered name when it searches Wikipedia

</comment></comment><comment><USER3> This is interesting. Would be cool to see it spit out example YouTube urls. I might give that a go someday.</comment>


Implement BeamAsm – A JIT for Erlang/OTP - <AUTHOR> https://github.com/erlang/otp/pull/2745 <comment><USER3> This is amazing. Huge props to Lukas Larsson and the OTP team!

Some background on the journey to BeamJIT: [https://drive.google.com/file/d/1hHCs90kDX_wJ9AbLzGNu5bZKdIV...](https://drive.google.com/file/d/1hHCs90kDX_wJ9AbLzGNu5bZKdIVWsLsg/view)

<comment><USER4> So this is not quite beamjit, but a sort of rewrite?

<comment><USER5> I understood it as a completely new, simplified approach that Lukas Larsson started beginning of the year.

It's not a tracing or optimising JIT, but instead at load time translates the BEAM opcodes to native code using asmjit.

</comment></comment></comment><comment><USER6> I love how much thought and polish went into this, just like so many other Erlang features in recent years: counters, persistent_term, thread progress, ETS scaling, process groups...

There's been talks of JIT for quite a few years, but they didn't want to merge it in until they had something that's easy to maintain, and doesn't introduce significant performance regressions. The end result looks really solid.

<comment><USER7> What do you mean by "thread progress"?

<comment><USER6> [https://erlang.org/doc/apps/erts/ThreadProgress.html](https://erlang.org/doc/apps/erts/ThreadProgress.html)

</comment></comment></comment><comment><USER8> So this JIT supports everything but HiPE and will be included in OTP-24 and is production ready(???) and dramatically improves performance across almost everything? Seems too good to be true. What has been the bug finding process so far in this PR?

<comment><USER9> Probably a case of the low hanging fruit. With most projects you start off with a bunch of improvements with very few side effects - at present - <USER2> quickly start to encounter trade offs. Both in the form of new improvements introducing more development overhead, and the fact that open ended things are generally hard to make fast.

To make something faster may mean calcifying some part of the architecture; this code handles every scenario that the design defines now, but it can't handle other scenarios we might have wanted to consider later. Those are now harder to implement or counter to our assumptions. People don't like it when you take back things you previously gave them, meaning no new feature or a huge opportunity cost for that feature (because it's reimplementing other features as well as adding a new one).

<comment><USER8> I don't think this is at all true... I mean the PR changes 350-odd files and adds some crazy JIT engine. It's hardly low hanging fruit... I don't know enough about how this is implemented to say it will make future features harder, they even state in the PR maintenance is very important to the design here so I'll assume it won't be a weight around their necks.

</comment></comment></comment><comment><USER10> Very exciting.

Also Facebook open-sourcing its static typed Erlang prototype in November.

<comment><USER11> Any idea how they handled static typing for messages? As I remember from previous conversations, that was an issue.

<comment> lf-non I may be missing some context but can't it be done similar to how we handle data from outside world in TS ?

A runtime type guard that asserts that the shape of data conforms to a particular type and from that point forward compiler will trust the guard and assume that the message is of particular type.

In a dynamically typed world, I doubt one could do much better.

<comment><USER11> The thing is; messages for Erlang are far more part of your programming/architecture than in other languages. You are basically writing 'nanoservices' all the time. I saw quite a lot of people mentioning it in discussions, including here, for instance [0].

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

</comment></comment></comment></comment><comment><USER12> I'm soooooo excited about this.

Question: how does performance compare to HiPE. I see reference to improvements over the Interpreter but what about performance vs HiPE?

</comment><comment><USER13> Can someone break this down and explain what this means in practical runtime performance gains?

I know it's probably "it depends", but in Elixir let's say you were doing a lot of string parsing or mucking around with a bunch of Enum functions or doing a bit of math. Will this put Elixir's performance on par with at least Python and Ruby in those cases?

I know this feature is meant for Erlang but I'm assuming it applies back to Elixir too?

<comment><USER14> It does apply to Elixir. It will help all around performance but more so it does this on a per-instruction level by reducing dispatch cost in that the interpreter pays (as well as managing to specialize things a little better than what the fixed instruction tables can express).

To get an idea of the instruction stream of the BEAM (not the same as .beam asm), you can use the erts_debug module:

        iex> :erts_debug.df(String)

This will dump a BEAM machine instruction stream to a file named Elixir.String.dis in your current working directory. You'll see things like:

        000000001B81AFB0: i_func_info_IaaI 0 `'Elixir.String'` `at` 2
        000000001B81AFD8: is_integer_fx f(000000001B81AFB0) x(1)
        000000001B81AFE8: is_ge_literal_fxc f(000000001B81B008) x(1) `0`
        000000001B81B000: i_call_only_f loc(`'Elixir.String'`:`do_at`/2)
        000000001B81B008: allocate_tt 2 2
        000000001B81B010: move_window2_xxy x(1) x(0) y(0)
        000000001B81B018: i_call_f loc(`'Elixir.String'`:`length`/1)
        000000001B81B020: i_plus_xyjd x(0) y(0) j(0) x(0)
        000000001B81B030: is_ge_literal_fxc f(000000001B81B060) x(0) `0`
        000000001B81B048: move_shift_yxx y(1) x(0) x(1)
        000000001B81B050: i_call_last_fQ loc(`'Elixir.String'`:`do_at`/2) 2
        000000001B81B060: move_deallocate_return_cQ `nil` 2

Each of those instructions are what the .beam file loader currently generates. With the JIT, these will be replaced by machine code.

</comment></comment><comment><USER15> I wish they'd kept it C-only instead of introducing C++ (plenty of runtime code generation libraries written in C).

There is something to be said about internal consistency and for a codebase as established as this, C++ is more of a detriment than a gain.

<comment><USER16> I imagine developers as experienced as the creators of this evaluated the C options and decided C++ was in fact not more of a detriment than a gain.

It has its problems but blindly being anti C++ is silly.

<comment><USER15> Hardly blindly.

It's been a C codebase so far. Introducing C++ makes this no longer the case. This has strong implications for both development and deployment. I'm perplexed since there exist battle-tested code generation engines written in C (e.g. dynasm). Correct me if I'm wrong but it doesn't look like asmjit is anything special in that regard.

I can't imagine Joe Armstrong being happy about this.

<comment><USER17> Dynasm depends on Lua for pre-processing into pure C. I guess you could write an Erlang version? There's a Ruby meta-assembler in Safari JavaScriptCore!

<comment><USER15> Dynasm can be compiled with minilua.c (a single file), which can simply be embedded into the Erlang build.

[https://corsix.github.io/dynasm- doc/tutorial.html](https://corsix.github.io/dynasm-doc/tutorial.html)

<comment><USER18> "We also considered using dynasm, but found the tooling that comes with asmjit to be better."

[https://github.com/erlang/otp/pull/2745#issuecomment-6914821...](https://github.com/erlang/otp/pull/2745#issuecomment-691482132)</comment></comment></comment></comment></comment></comment>


Alex Gaynor - Dive into Python 3 Review - <AUTHOR> http://alexgaynor.net/2010/jan/12/dive-python-3-review/

<comment><USER2> One difference from _Dive into Python_ that jumped out at me is that the original book generally started each chapter with a short working program and then dissected that program to explain a given language feature (e.g. operations, functions, string formatting, list comprehensions).

In contrast, DiP3 opens the first chapter with a working program that uses several language features and then dissects those features over the next several chapters. I'm not sure if that's a better approach. On the one hand, by the end you're really intimately acquainted with the code. On the other hand, there isn't the same sense of payoff at the end of each chapter.</comment>


Ask HN: What random things do you do while you wait for the build? - <AUTHOR> I read BBC, HN, and random wikipedia articles. I just read that the song Asereje by Las Ketchup has demonic lyrics: https://en.wikipedia.org/wiki/The_Ketchup_Song_(Aserej%C3%A9)#Controversy_and_supposed_Satanic_references
I also double/triple check my phone for whatsapp messages.
PS I'm waiting for the build <comment><USER2> Generally I try to do non-random things -- like work on other aspects of the project, you know, in parallel.

That is, if I care about the project at least. When management goes out of its way to make me not care? Then I check HN and WP, just like you.

</comment><comment><USER3> for builds locking the IDE I usually peek at my inbox, unless I have a second IDE were I'm working on something else. For build running remotely it depends, if the build takes 10-20 mins (in my ideal projects) I just keep working. In other worse projects were it can take 1-2 hours, I tend to run them at the end of the day so I don't have to think about context switching too much.</comment>


Ask HN:  Best application to run PC programs on a MacBook? - <AUTHOR>

I have the PA Bar Exam this month and for some reason they require it to be taken strictly on PC's... I am very used to my keyboard and would like to use my macbook - any suggestions?  I've heard Virtual PC but is there anything free out there?<p>Thanks <comment><USER2> I'm assuming you mean Windows. If you have a copy of Windows which you can install, running it on VirtualBox (virtualbox.org) isn't a bad option. The Windows will cost you (or you already have your license) but virtualbox is free to use.

</comment><comment><USER3> I think VMWare fusion is worth the 70 bucks - I find the performance much improved from the others options out there and it just works. I like to set up a couple of spaces and stick whatever VM I am running in full screen mode in one of them so I can quickly switch between the mac and VM. You can also use fusions unity mode and run IE or whatever other application you need along side your mac's apps as if they where native to OSX.

</comment><comment><USER4> A free option to try would be darwine (<http://darwine.sourceforge.net/index.php>), but it can be difficult to get some things working on it. If you have access to the program you need to use before hand, try this out, but otherwise you're probably safer with an option like bootcamp.

</comment><comment><USER5> Another option if you are planning to take the Mac into the exam room with you would be to install Apple's BootCamp, though again you will need to purchase a copy of Windows

</comment><comment><USER6> VMWare, VirtualBox and Parallels.

VirtualBox is free and works great.</comment>


Sex, Drugs and Fraud: I spent 6-figures on a nightmare of a SaaS Company - <AUTHOR> https://medium.com/@bjcohen/i-spent-6-figures-on-a-dying-saas-company-d0b0ef8191f1 <comment><USER2> Riveting read, on part 4 now and still cannot stop. This guy can really write!

</comment><comment><USER3> thank you for posting!!!!!! and appreciate the writing compliment. so fun seeing this up here.</comment>


Lenovo Believes in the Linux Desktop - <AUTHOR> https://www.zdnet.com/article/lenovo-believes-in-the-linux-desktop/ <comment><USER2> In a way, I think Google and Microsoft have the right idea with an excellent desktop experience with Linux on the side.

I recently switched to ChromeOS beta channel from 20 years on Linux and have no intentions of going back. I can get real Linux on a cloud VM when I need it, most everything is containers now and that does work in the LinuxApp (a chroot plus things I haven't looked into)</comment>


Image Correction for Color Blindness - <AUTHOR> http://www.vischeck.com/daltonize/ <comment><USER2> I'm pretty color deficient. I have trouble reading charts and graphs. Anything I make that's color coded uses vastly different color so that at least I can tell them apart. My UI/UX portfolio is "unique" to say the least.

Subtle differences in color impossible. Can I tell the difference from Salmon or Melon? no way.

Consequently I have developed a much different relationship to color than most. I tend to ignore it mostly. eg: My friend came to visit me in NYC and asked which train to take into Manhattan, I told him "Take the Q" and he said "the yellow train?" I realized that he had never really looked at the letters I had never really looked at the colors.

I still have the same "emotional response" to color (i associate green with life) but I have trouble with the informational side.

One last anecdote, my first "tech job" was tech support for Adobe Acrobat in the early 2000's. It was right when a great deal of the printing industry was switching to PDF's. Periodically I would get the calls related to color correction, and I was generally no help as I couldn't tell which color profile was making the print out too green.

<comment><USER3> I, too, am severely chromatographically challenged.

At a former employer, I wound up being a part-time guinea pig for our UX staff - to the best of my knowledge, we were the only major SCADA player to have dedicated GUI colour schemes for colour deficients.

The downside? A number of phone calls to our support hotline made by customers who had accidentally switched to, say, the tritanopia-optimized palette. They generally went along the lines of "Geez, did you guys hire some colour-blind dimwit to do your displays?" -"Matter of fact, we did." -"Oh."

<comment><USER4> We recently had a look at these palettes:

* Article: [http://mkweb.bcgsc.ca/colorblind/](http://mkweb.bcgsc.ca/colorblind/)

* 7-color palette: [http://mkweb.bcgsc.ca/colorblind/img/colorblindness.palettes...](http://mkweb.bcgsc.ca/colorblind/img/colorblindness.palettes.trivial.png)

* 12-color palette: [http://mkweb.bcgsc.ca/colorblind/img/colorblindness.palettes...](http://mkweb.bcgsc.ca/colorblind/img/colorblindness.palettes.simple.png)

* 15-color palette: [http://mkweb.bcgsc.ca/colorblind/img/colorblindness.palettes...](http://mkweb.bcgsc.ca/colorblind/img/colorblindness.palettes.png)

Can you or the grandparent elaborate whether they are working for you?

We always try to combine color with an icon, e.g. green - check vs red - X, so that people having problems with colors are able to differentiate.

<comment><USER3> I am tritanope, with a (very mild) deuteranopia on top for good measure.

The 7-colour palette works well - I can see seven separate hues (well, eight if you count the black.) The hardest ones to tell apart are the vermillion and reddish purple - I don't think I'd be able to tell the difference unless I had both in front of me simultaneously.

The 12- and 15-colour palettes don't do much for me.

Kudos for not using colour as the only cue!

</comment></comment></comment></comment><comment><USER5> I'm surprised no one has mentioned CubeHelix -- [https://www.mrao.cam.ac.uk/~dag/CUBEHELIX/](https://www.mrao.cam.ac.uk/~dag/CUBEHELIX/) \-- which, as I understand it has the property of "working" just as well in grayscale. Handy not only for color blindness but for grayscale printouts of images featuring color. There is support out there for D3 and various other visualization systems.

</comment><comment><USER6> Site author here - AMA (except why we haven't updated it in 10 years... ) Also - check out our other site : www.tinyeyes.com

<comment><USER7> This site isn't resolving for me and neither is www.tinyeyes.com. I don't get any error, just Chrome spinning and saying "Waiting for www.tinyeyes.com", same with vischeck.com.

<comment><USER6> Sorry about that - it will come up eventually - it's being hit pretty hard right now. There's a cache here: [http://webcache.googleusercontent.com/search?q=cache:http://...](http://webcache.googleusercontent.com/search?q=cache:http://www.vischeck.com/daltonize/)

</comment></comment></comment><comment><USER8> There is a setting in the Android Developer options to simulate different kinds of color blindness live on anything displayed on screen. It's called "Simulate color space" and has 4 different settings (monochromacy, deuteranomaly, protanomaly and trianomaly).

For me the Enchroma glasses made the world more colorful (now I understand why they're called high-visibility jackets). But they don't have a huge effect.

<comment><USER4> I previously used a chrome extension which supports 9 different settings to simulate different kind of color blindness.

[https://chrome.google.com/webstore/detail/spectrum/ofclemegk...](https://chrome.google.com/webstore/detail/spectrum/ofclemegkcmilinpcimpjkfhjfgmhieb?hl=en- US)

</comment></comment><comment><USER9> I first heard about the Daltonize filter when I was working on Call of Duty. A large percentage of the Call of Duty audience is male, and by association a lot of the players are colorblind, so making the game colorblind friendly was important. This blog post by one of Activison central tech's technical directors has some interesting thoughts about colorblind filters [http://c0de517e.blogspot.com/2013/02/color- blindness.html?m=...](http://c0de517e.blogspot.com/2013/02/color- blindness.html?m=1)

</comment><comment><USER10> Another useful tool is Sim Daltonism ([https://michelf.ca/projects/sim- daltonism/](https://michelf.ca/projects/sim-daltonism/)). I always try to spot-check figures I'm making for scientific publications to ensure that I'm not excluding too many of my readers from being able to understand key points.

</comment><comment><USER11> why does this is to me invisible [http://www.vischeck.com/images/ishihara_45.jpg](http://www.vischeck.com/images/ishihara_45.jpg)

but I can see the different colours here [http://www.vischeck.com/images/oranges_small.jpg](http://www.vischeck.com/images/oranges_small.jpg) ?

<comment><USER6> If you can't see the number 45 in the first image you probably do have red/green colorblindness. But you can still see the other color dimension (blue/yellow) just fine - so most likely you are seeing _some_ but not _all_ of the colors in the second image.</comment></comment>


Answer Engines vs. Search Engines - <AUTHOR> http://www.twine.com/item/122tfm1r8-7k/answer-engines-vs-search-engines

<comment><USER2> The first comment there:

 _People don't go to Google thinking "I must see some documents". They just want questions answered._</comment>


Apple is dropping imagination GPUs from A-series Chips - <AUTHOR> http://www.reuters.com/article/us-imagntn-tchnlgs-apple-idUSKBN1750HR <comment><USER2> And Apple holds an 8 percent of Imagination's shares.</comment>


Firebug 1.3.0 Final Released - <AUTHOR> http://antennasoft.net/robcee/2009/01/07/firebug-130-final-released/

<comment><USER2> Don't forget to nab the UJS plug-in for it:

[http://remi.org/2009/01/06/using-firebug-to-debug- unobtrusiv...](http://remi.org/2009/01/06/using-firebug-to-debug-unobtrusive- javascript.html)

Now you don't have to guess what events were bound to which elements!

<comment><USER3> That's fantastic. Are there any other great tools I should be aware of?

<comment><USER4> Have you come across Yahoo!'s YSlow plug-in for Firebug? It scores your page against their "Best Practices for Speeding Up Your Web Site", and is handy for looking at the page's external resources and relevant HTTP headers.

<http://developer.yahoo.com/yslow/>

<http://developer.yahoo.com/performance/rules.html>

<comment><USER4> If you have used YSlow before you might be interested in the upcoming YSlow 2.0. I just came across a slideshow while looking for URLs for my comment above. The extensibility looks quite interesting.

<http://www.slideshare.net/stoyan/yslow-20-presentation/>

</comment></comment></comment></comment><comment><USER5> Some other tools I use day to day when working on websites:

Measure it - adds a ruler to FF for pixel pushing: <https://addons.mozilla.org/en-US/firefox/addon/539>

Web Developer Toolbar - adds a whole bunch of inspector type stuff <https://addons.mozilla.org/en-US/firefox/addon/60>

Color Picker - Lets you get the color of a pixel by clicking on it <https://addons.mozilla.org/en-US/firefox/addon/271>

IE also has similar tools: <http://en.wikipedia.org/wiki/Microsoft_Script_Debugger> [http://www.microsoft.com/downloadS/details.aspx?familyid=E59...](http://www.microsoft.com/downloadS/details.aspx?familyid=E59C3964-672D-4511-BB3E-2D5E1DB91038&displaylang=en)

</comment><comment><USER6> Arggg.. no Firefox 3.1 support

Firefox plugin API really needs an overhaul. It shouldn't be assumed that everything breaks on every point release. Firefox needs to come up with an API going forward and stay backwards compatible till the next full version number.

I think Chrome is going to lead the way here. Their plugin strategy seems to be based off fixing the mis-steps of firefox.

<comment><USER7> I just use extensions.checkCompatibility=False in about:config and most extensions work just fine.

Also, they've changed addons.mozilla.org where most addon authors just have to flip a dropdown box to move support to a new version-- no new upload required. Many authors don't know that, so they wait until the full release to change their support.

FF 3.1 should break very few extensions. Almost none of mine died, though Firebug is particularly sensitive. But I used Firebug 1.3.0 betas just fine for a while on FF 3.1. (My new laptop isn't using FF3.1 at this moment, though.)</comment></comment>


"RIP Twitter": Twitter to Introduce Algorithmic Timeline as Soon as Next Week - <AUTHOR> http://www.buzzfeed.com/alexkantrowitz/twitter-to-introduce-algorithmic-timeline-as-soon-as-next-we <comment><USER2> I worry more that this will turn twitter into more of a filter bubble. I use twitter largely as a news feed, and hence include a lot of sources that I frequently disagree with but still like to be exposed to.

I'd much rather just drink from the firehose than have an algorithm automatically hide stuff just because it's not similar to what I've favorited in the past.

</comment><comment><USER3> Makes sense for Twitter to do this, with a couple conditions: 1\. Keep existing users happy by letting them opt-in but not forcing them to, and letting them easily switch back 2\. Default new users to the algorithmic timeline to get them hooked by providing good content right away (note: from people they aren't following?).

As an existing Twitter user with a highly curated timeline that I'm very happy with, I have no problem with this at all unless they force me to start using it.

<comment><USER4> So it makes sense for them to do it if they do two points you raised on HN and otherwise not? Ok whatever.

</comment></comment><comment><USER5> Hopefully the API will keep working the same way, so that clients won't be affected.

I never use the Twitter website. I don't understand how it works. Tweets seems to be randomly ordered, and many that I am seeing in Echofon are not visible on the website. Viewing new tweets requires clicking constantly. The website also constantly tells me to follow people I am already following.</comment>