Will Robots Take My Job? - <AUTHOR> https://willrobotstakemyjob.com/ <comment><USER2> Software Developers has 4%, but Computer Programmers more than 10 times higher. Given that this titles happen to be used interchangeably, I take those numbers with a grain of salt.

<comment><USER3> A brief dig through different occupations reveals that much if not all of this is made up garbage not worthy of rational consideration.

Technical writers are 89%, maids and housekeepers are 69%, but "commercial pilots" are 55% and "airline pilots, copilots" are only 18%? Hah. Sure.

30% for "Zoologists and Wildlife Biologists"?

20% for "Funeral Service Managers, Directors, Morticians, and Undertakers"?

34% for "Detectives and Criminal Investigators"?

28% for "Athletes and Sports Competitors"?

What?

<comment><USER4> Musical Instrument Repairers and Tuners are 91% "You are doomed". Off-the- shelf instruments are notoriously badly set up, and that'd probably be the kind of "good enough" level that robots could get to. For anything more organic you'd need a human luthier or whatever. After all a human is going to play the instrument, not a robot, given musicians themselves are at a 4% "totally safe" level.

Barbers are at 80%. The amount of R&D that would be needed couldn't be justified by the low waged worker the robot would replace ($24k avg apparently). There's just so much hidden complexity with all these fine-motor skill jobs. It reminds me of those old physics problems "assuming a perfectly spherical head...". Nice idea, but in practice the incentives to create a robot barber just aren't there.

<comment><USER5> _Musical Instrument Repairers and Tuners are 91%_

I guess it's a question of how to interpret the numbers. Does it mean that there is a 91% chance that no one will work as a Musical Instrument Repairers and Tuners or that we will only need 9% or the current Musical Instrument Repairers and Tuners. The former sounds very unlikely, while the latter sounds quite reasonable.

</comment></comment></comment></comment><comment><USER6> The original paper ([http://www.oxfordmartin.ox.ac.uk/downloads/academic/future-o...](http://www.oxfordmartin.ox.ac.uk/downloads/academic/future- of-employment.pdf)) derives these numbers in the following way:

1) A selection of 70 occupations is hand-labeled as "automatable" or "not automatable" by the authors and a group of ML researchers.

2) Three statistical models are trained using nine variables (Finger Dexterity, Manual Dexterity, Cramped Work Space/Awkward Positions, Originality, Fine Arts, Social Perceptiveness, Negotiation, Persuasion, and Assisting and Caring for Others) taken from O * NET ([https://www.onetonline.org](https://www.onetonline.org)) survey data for each of 702 occupations. The models are graded by how well they match the hand labels from step 1. The best model of the three is chosen.

3) The numbers generated by this model are then reported for all 702 occupations. This includes the ones that were labeled to begin with: _" We implicitly assumed that our hand label, y, is a noise-corrupted version of the unknown true label, z. Our motivation is that our hand-labels of computerisability must necessarily be treated as such noisy measurements. We thus acknowledge that it is by no means certain that a job is computerisable given our labelling."_

This methodology doesn't make a lot of sense to me. If you allow yourself to make up (or "hand-label") 70 numbers, why not make up all 702? Why not trust your own labels in the final data? What is the statistical model even telling you when it's being trained on labels you don't trust?

<comment><USER7> I find it sociologically interesting how layers of math and publishing indirection can be used to convince people that someone's opinions and biases (hand labels) might in fact be statistically significant facts about the world.

To their credit, at least the original authors acknowledge this problem.

<comment><USER8> It's even more interesting to consider why economists might have these inherent biases. What incentives might they be responding to?

</comment></comment></comment><comment><USER9> 28% chance of 'Athletes and Sports Competitors' being replaced by robots. I for one am looking forward to a robot wars olympics.

[https://willrobotstakemyjob.com/27-2021-athletes-and- sports-...](https://willrobotstakemyjob.com/27-2021-athletes-and-sports- competitors)

<comment><USER10> But 0.71% for athletic trainers. Someone's gotta keep the bots oiled.

[https://willrobotstakemyjob.com/29-9091-athletic- trainers](https://willrobotstakemyjob.com/29-9091-athletic-trainers)

</comment></comment><comment><USER11> It strikes me as a little naive to only consider job security from the perspective of "can a machine do my job". Once AI and automation start taking people out of the workforce at scale, it seems likely there will be a lot more people competing for the jobs that are left.

</comment><comment><USER12> Interesting, the best I could find was lawyer. Politician wasn't available, I suspect that is the safest job of all, if it should ever become threatened they will simply pass a law that makes that illegal.

<comment><USER13> I looked up lawyers too ([https://willrobotstakemyjob.com/23-1011-lawyers](https://willrobotstakemyjob.com/23-1011-lawyers)). Given the fact that a lot of the legal research and discovery work that lawyers do is already being done by software instead of junior level humans, I think that number is _completely_ wrong. A lot of legal work outside of negotiation is essentially data transformation and interpretation which is exactly what machine learning is good for. Law is probably second to accounting for massive disruption in the next few years, but it's a close call.

<comment><USER12> Being a practicing lawyer is steeped in tradition and all kinds of archaic things (wigs?). What I meant by 'lawyer' is not paralegal or research but being admitted to the bar and allowed to practice law. I really don't see a computer getting a pass on that anytime soon simply because the bar association is made up of lawyers.

That research can be aided and may be done by a computer is beyond dispute at this point, but that job is called being a 'paralegal'.

Being a paralegal is usually a step to becoming a lawyer so I can see a bit of a continuity problem there.

<comment><USER14> The continuity problem will crop up across lots of disciplines, though. When we automate, we'll probably start out at the lower ends of every discipline, crowding out juniors where they'd normally onboard. That won't be too threatening to senior stakeholders in the discipline, either, so they may let it happen. And then automation will creep its way up the value chain; there'll be strong pressure for it to do so, because with automation making the onramp harder to get onto, there will be an increasing scarcity (and thus increasing profit motive) to climb the value chain.

</comment></comment></comment></comment><comment><USER15> Reality here

I'm a dishwasher partially as well as other kitchen duties like cooking/preparing food, that is what pays my bills.

My job is to organize the plates (computer vision), then I spray the food remnants off them before sliding it into the "automated" washer... then I stack them/put away where they go throughout the restaurant.

Yeah I definitely agree with that being automated/should be. I do wonder how long(when will that happen), how much of an investment to pay for it, likelihood it will break down. Then the rest of the site being automated as well.

<comment><USER16> A relevant result for dishwashers is also how did the number of human dishwashers decrease once automated ones become available. If you are the only one in your kitchen, where previously there would have had to be three for the same workload, your job is already 66% automated.

<comment><USER15> Might seem racist but a good portion of the workers are spanish-speaking primarily... I might be assuming things as well where advancement relies on being able to use English/work with others cohesively.

Even as a fumbling developer I'm glad to at least have some clue as to what can be... even if I may not reach it... Dunning Kruger effect haha... I wonder for those people what will happen. If I don't escape, I too will be in the same boat of the low-skilled, replaceable laborer, that is what I am right now.

edit: haha, "have a clue as to what can be" like nobody else wishes life was better/be what they see in the news. At least the ability to know what to look for and hopefully learn/improve my situation in life.

</comment></comment></comment><comment><USER17> How are theses numbers getting calculated? Actuaries have 21% probability of automation vs programmers who have it 48%?

<comment><USER18> Yeah, I always type in "computer programmer" first to see if they put any real thought into the dataset. 48%... whatever that means, interpreted as "start worrying".

The history of computer programming is the history of people trying to automate computer programming. All that ends up ever happening is that the nature of computer programming changes.

Just think of all those assembly-language programmer jobs that were "automated away" by the invention of Fortran. Or all of those C++ programmer jobs that were "automated away" by Java, Ruby, SQL, whatever.

<comment><USER19> But with the changing nature of computer programming, arguably programming becomes more efficient and needs less manpower. It's easy to see that programming a web app today takes less man hours than it would've if you were to try to do it 30 years ago using C.

So far it seems that these efficiency gains have been offset by growing demands in what software can do, making the industry continue to grow. I wonder if at some point in the future, these demands will stabilise and continued improvements in efficiency will necessitate a reduction in the workforce.

Will automation make a computer programmer's job disappear? No, probably not. But will it allow one person to do the job of ten? Maybe.

<comment><USER14> You'd have had a hard time coding the web 30 years ago, given that it hadn't been invented yet; but 20 years ago, Perl was about as productive as something like Python or Ruby today[1]; a web server, after all, just provides stateless RPC. What was missing was a lot of frameworks that could permit a developer ecosystem to grow, a developer ecosystem being something that lets your more easily reuse things other people wrote. Developer ecosystems with critical mass are what increase productivity, rather than technological improvements.

[1] Technically, I think common web frameworks aren't particularly productive, because they are built around a very low common denominator. I worked on a CRUD app framework in the early 2000s that would still blow something like Rails out of the water in terms of productivity.

</comment></comment></comment></comment><comment><USER20> Hmm the BBC already built a front-end for this a while ago. See [http://www.bbc.com/news/technology-34066941](http://www.bbc.com/news/technology-34066941)

</comment><comment><USER21> Seems to say journalists are pretty safe:

[https://willrobotstakemyjob.com/27-3022-reporters-and- corres...](https://willrobotstakemyjob.com/27-3022-reporters-and- correspondents)

However, I'm not sure I'd agree too much with that. Yes, some reporters and correspondents are safe, especially the ones writing opinion pieces or doing investigative journalism.

But a lot of lower level journalism is not particularly novel or interesting, with a lot of people in gaming, tech, media or sports journalism basically just writing about current events the same way as every other individual in the same industry.

I feel an AI could probably automatically write articles based on the events in a sports match (heck, I'm sure that's actually being done right now in some cases), or figure out an automated way to pick out information from a trailer or E3/Nintendo Direct event broadcast.

<comment><USER22> _an AI could probably automatically write articles based on the events in a sports match (heck, I 'm sure that's actually being done right now_

That's one of the areas Narrative Science ([https://www.narrativescience.com/](https://www.narrativescience.com/)) operates in: [http://www.bbc.co.uk/news/technology-34204052](http://www.bbc.co.uk/news/technology-34204052)

</comment></comment><comment><USER23> I was curious about how thieves will be doing after the robot uprising. The first occupation matching "thief" was "Chief Executives" [http://imgur.com/a/hDIeZ](http://imgur.com/a/hDIeZ)

</comment><comment><USER24> I am a developer, but based on a recent article I read, data scientists are less probable losing job to automation, so tried it and ended up here - [https://willrobotstakemyjob.com/15-1111-computer-and- informa...](https://willrobotstakemyjob.com/15-1111-computer-and-information- research-scientists)

I also work in insurance industry, and rumors were, underwriters are more at risk losing jobs to automation - [https://willrobotstakemyjob.com/13-2053-insurance- underwrite...](https://willrobotstakemyjob.com/13-2053-insurance-underwriters)

</comment><comment><USER25> I entered Machine Learning Engineer and it gave me a list of job titles. No automation ? (╯°□°)╯︵ ┻━┻

</comment><comment><USER26> 4.2% probability for "Software Developers", but 48% probability for "Computer Programmers"?

</comment><comment><USER27> Models shows 98% [1].

If I were Kate Upton or Bar Rafaeli, I'd start looking for a new job pronto!

[1] [https://willrobotstakemyjob.com/41-9012-models](https://willrobotstakemyjob.com/41-9012-models)

</comment><comment><USER28> Chicken Deboners: 94%

Chicken Sexers: 41%

I'm thinking I should go on that Chicken Sexing course.

</comment><comment><AUTHOR> A fun side project I worked on with a friend.

Based on a report published in 2013, find out how susceptible over 700 jobs are to automation.

<comment><USER18> Ah, the numbers looked familiar. Some of them are pretty bogus, like "computer programmer" at 48%.

<comment><USER29> That data is floating around since a long time, I've build [https://www.replacedbyrobot.info/](https://www.replacedbyrobot.info/) like over one or two years ago, I think. ;)</comment></comment></comment>


Mytechne: a site to record the history of programming langauges you've used - <AUTHOR> http://mytechne.com/

<comment><USER2> I wanted to enter my data, but doing that seems like too much work. Way too much clicking and page jumping, and then it looks like I have to fill in dates too that I'm not sure I can pull out at the top of my head. I think the UI for that could be a lot better and can fit on one page.

I'm down with the idea, though.

<comment><USER3> yeah, we're regularly trying to improve the UX. this is just the start (was only thought up last Thursday)

</comment></comment><comment><USER4> Loved flipping through all the memories. Not sure how I'll interact with it now that I've put most of my history in. I've sent it to all my co-workers and I can definitely see it making for good conversation for the next few days. I wonder what jtauber has planned for future interactions.

</comment><comment><USER5> Great example of the power of django and piano to quickly build and deploy sites.

<comment><USER6> what's piano?

<comment><USER3> a typo of pinax

</comment></comment></comment><comment><USER6> nice site, bad font choice, not very useful

<comment><USER3> Myriad Pro or the retro line printer typeface "printf"?

</comment></comment><comment><USER2> jtauber: Have you thought of cool things to do with the data?

<comment><USER3> yeah, we have all sorts of analytics planned

<comment><USER7> maybe some crosstabs

<http://github.com/languages>

Somebody from gith told me how the above was compiled, I've forgotten. #10-20 include: clojure, haskell, scala, C#, CL</comment></comment></comment>


Ask HN: How do you generate fake data? - <AUTHOR>

Do you need fake data for using on functional/unit tests?<p>How do you generate it? <comment><USER2> [https://github.com/stympy/faker](https://github.com/stympy/faker)

<comment><USER3> same

</comment></comment><comment><USER4> I used to have an R script to generate csv's containing random time series. I could specify the frequency of the time series to my functions.

</comment><comment><USER5> When you say fake data, what do you mean exactly? What type of data do you need faked?

<comment><AUTHOR> Fake names, phone numbers, addresses, etc.

"Lorem Ipsum" style data.

<comment><USER5> [http://www.generatedata.com/](http://www.generatedata.com/)

It allows for many export types.

</comment></comment></comment><comment><USER6> you can find datasets online and customize them for your application or needs?

What exactly are you trying to accomplish what kind of data are you looking to reproduce.

<comment><AUTHOR> E.g. testing an API method that creates a contact.

You'd need to craft fake names, phone numbers, email addresses, etc.

<comment><USER7> For mock user profiles, etc., I use [http://www.fakenamegenerator.com/](http://www.fakenamegenerator.com/)</comment></comment></comment>


Ruby Chocolate - <AUTHOR> https://en.wikipedia.org/wiki/Ruby_chocolate <comment><USER2> Bought a bunch of these during my last trip to Japan. They're really tasty, sweet without being overly sickening ala milk chocolate. Glad to see them make their way stateside.

</comment><comment><AUTHOR> Bloomberg piece on it: [https://www.bloomberg.com/news/articles/2019-05-14/biggest-c...](https://www.bloomberg.com/news/articles/2019-05-14/biggest- chocolate-market-gets-a-taste-of-ruby-with-u-s-launch)</comment>


Avoiding Intellectual Phase Lock - <AUTHOR> https://books.google.com/books?id=__CnDwAAQBAJ&lpg=PT21&dq=intellectual%20phase%20lock%20Frank%20Dunnington&pg=PT21#v=onepage&q=intellectual%20phase%20lock%20Frank%20Dunnington&f=false <comment><USER2> Nice, Feynman also described this in cargo cult science:([http://calteches.library.caltech.edu/51/2/CargoCult.htm](http://calteches.library.caltech.edu/51/2/CargoCult.htm))

> We have learned a lot from experience about how to handle some of the ways > we fool ourselves. One example: Millikan measured the charge on an electron > by an experiment with falling oil drops and got an answer which we now know > not to be quite right. It's a little bit off, because he had the incorrect > value for the viscosity of air. It's interesting to look at the history of > measurements of the charge of the electron, after Millikan. If you plot them > as a function of time, you find that one is a little bigger than Millikan's, > and the next one's a little bit bigger than that, and the next one's a > little bit bigger than that, until finally they settle down to a number > which is higher.

> Why didn't they discover that the new number was higher right away? It's a > thing that scientists are ashamed of—this history—because it's apparent that > people did things like this: When they got a number that was too high above > Millikan's, they thought something must be wrong—and they would look for and > find a reason why something might be wrong. When they got a number closer to > Millikan's value they didn't look so hard. And so they eliminated the > numbers that were too far off, and did other things like that. We've learned > those tricks nowadays, and now we don't have that kind of a disease.

<comment><USER3> Isn't that also an appropriately Bayesian approach to new evidence?

<comment><USER4> No, because the Bayesian conditioning ends up being used twice. If you and a friend do an experiment independently, and he gets 10 and you later get 12, you might justifiably think the answer is closer to 11.

But you shouldn't _publish_ that you got 11. Because then somebody else will see that the measurements were 10 and 11, and think the true answer is closer to 10.5...

</comment></comment></comment><comment><USER5> Sounds like the author is describing techniques to avoid Kahnemann & Tversky's anchoring effect. Avoiding one's own cognitive biases is important in debugging too; I mutter "listen to the system" as I read logs and error messages to try and avoid ignoring output that contradicts my preconceptions about root causes.

<comment><USER6> I use "what does IT think I'm asking it to do?"...

</comment></comment><comment><USER7> To summarize it for the curious in a hurry: intellectual phase lock is the tendency for people in science/intellectual-endeavors to publish/assert results that are not too far from what other people are getting. With this tendency, it can take a while for a (science) community to drift from a fashionable, wrong belief to a more correct belief. thijser's comment[0] is a good example of intellectual phase lock.

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

</comment><comment><USER8> It may be weird to some, but there are a lot of intellectual phase locks today.

A major cause is publish-or-perish. And expert-group-bias. That last one is like: "Experts in astrology agree that astrology is working well."

We can spot these phase-locks by comparing the theoretical predictions with the actual real-world results. I also noticed that some of the results are altered afterwards to fit to the model.

Another signal is that good (and friendly) criticism is attacked, with personal attacks usually. This often happen when two different experts meet. From their expertise they come to different conclusions.

I noticed that these conflicts are hidden due to the peer-review system. Each specialisation is controlled by their own experts. This means that the different experts won't touch each other areas much. And just stay at their own territory to avoid conflicts. Or do not even widely publish their conflicting results.

<comment><USER9> In programming, so many major decisions are phase locked, because not that many programmers have the time to meaningfully test out new technologies, so many of us are dependent on hearsay to choose what's "best."

</comment></comment><comment><USER10> IIRC similar care was taken for the gravitational waves paper. They had the measurement team send multiple data sets of observations to the team writting the paper but only one of them correct.

</comment><comment><USER11> As a side note, if you like collecting notes like this but find yourself frustrated that you can't copy paste from the source. I recommend you download tesseract, take a screenshot, and parse the image to extract the text. Tesseract runs really well on these kind of things and saves a lot of manual typing.

</comment><comment><USER12> More commonly called bias I think, calling it "intellectual phase lock" seems like a weird flex.

<comment><USER13> The book was written in 1987, which is before Kahneman and Tversky's experiments were popularized (at least outside of academic Psychology.)

That said, bias is a general term, and "intellectual phase lock" as described here is a more specific example. The modern terms would probably be "anchoring", "confirmation bias", "courtesy bias", which slice up the space in a slightly different way.

</comment></comment><comment><USER14> "Most people are concerned that someone might cheat them; the scientist is even more concerned that he might cheat himself."

</comment><comment><USER15> Looks like the two good comments were taken (Feynman, Kahnemann). I'll just leave a couple quotes I thought of when I read a few paragraphs further about the hierarchy for ability in math and how it can be quite upsetting to discover how far up it goes beyond you, when you thought you were pretty high up.

>> [Pascal Costanza] Why is it that programmers always seem to think that the rest of the world is stupid?

> Because they are autodidacts. The main purpose of higher education and > making all the smartest kids from one school come together with all the > smartest kids from other schools, recursively, is to show every smart kid > everywhere that they are not the smartest kid around, that no matter how > smart they are, they are not equally smart at everything even though they > were just that to begin with, and there will therefore always be smarter > kids, if nothing else, than at something other than they are smart at. If > you take a smart kid out of this system, reward him with lots of money that > he could never make otherwise, reward him with control over machines that > journalists are morbidly afraid of and make the entire population fear > second-hand, and prevent him from ever meeting smarter people than himself, > he will have no recourse but to believe that he /is/ smarter than everybody > else. Educate him properly and force him to reach the point of intellectual > exhaustion and failure where there is no other route to success than to ask > for help, and he will gain a profound respect for other people. Many > programmers act like they are morbidly afraid of being discovered to be less > smart than they think they are, and many of them respond with extreme > hostility on Usenet precisely because they get a glimpse of their own > limitations. To people whose entire life has been about being in control, > loss of control is actually a very good reason to panic.

–– Erik Naggum, 2004 [https://www.xach.com/naggum/articles/3284144796180060KL2065E...](https://firstname.lastname@example.com)

> Fermi and von Neumann overlapped. They collaborated on problems of Taylor > instabilities and they wrote a report. When Fermi went back to Chicago after > that work he called in his very close collaborator, namely Herbert Anderson, > a young Ph.D. student at Columbia, a collaboration that began from Fermi's > very first days at Columbia and lasted up until the very last moment. Herb > was an experimental physicist. (If you want to know about Fermi in great > detail, you would do well to interview Herbert Anderson.) But, at any rate, > when Fermi got back he called in Herb Anderson to his office and he said, > "You know, Herb, how much faster I am in thinking than you are. That is how > much faster von Neumann is compared to me."

\-- Relayed by Nick Metropolis

I got the second one from [https://infoproc.blogspot.com/2012/03/differences- are-enormo...](https://infoproc.blogspot.com/2012/03/differences-are- enormous.html) which also quotes this submission at the point a bit further, no wonder it was so familiar and these quotes came to mind.

<comment><USER16> Very good! I got an early education in college when I took Real Analysis in my first year (which most programmers do not take) and it kicked my ass so hard I still have impostor syndrome. But I don't make the error that I'm the smartest person around anymore.

<comment><USER9> Yeah, same here. As embarrassing as it is to admit, I think a lot of us grew up thinking we are The Smartest People Ever because it seems like so much of your self-perception is solidified in your early teenage years.

It takes a whole lot to shake that. If you see a few pieces of evidence that other people are smarter, it's easy to dismiss. However, if you regularly surround yourself with people who can run circles around you and provide so much evidence that you can't ignore it, you're eventually forced to reevaluate yourself.

</comment></comment></comment><comment><USER17> Would he have used the same approach if there were fierce competition in his field?

<comment><USER12> Probably, it only costs a couple of days to dismantle and measure and you get a very valuable source of confidence.

Of course, if the machinist messed up and made an angle outside of the allowed range that's probably a few years down the drain (but I expect he checked before putting it in, just not _too_ closely)

<comment><USER17> Ok, but with competition he probably would have had more pressure to publish sooner and more often.

</comment></comment></comment><comment><USER18> It's remarkable that in this case he was able to obscure just a single piece of information to avoid phase lock. That's rarely the case. If you wanted to avoid phase lock for most topics you'd have to completely cut yourself off from all the literature in the field. I can't think of a way to do this in any of my fields: robotics, programming languages, or algorithms.

</comment><comment><USER19> Can intellectual phase lock apply culturally, and if so, what does it look like? For example, I wonder what techniques can be used to avoid it.

<comment><USER20> I'd say absolutely. That's why new generations tend to do things differently because they come from a somewhat new slate.

<comment><USER19> Yes, so should we break out of our cultural intellectual phase lockings the way we should break out of our scientific ones?

<comment><USER20> You're free to break from it, have a breakthrough and share it with the world. On a larger scale it's a drop in the bucket though. You'd have to change how and what things are taught and sometimes the cultural intellectual phase might unlock to a worse phase. Best is to let these things happen on their own.

<comment><USER19> What does "let things happen on their own" mean in this context? One person can pivot a culture, just as one researcher can pivot a field. What's the difference?

<comment><USER20> What I mean is not try to "break" the establishment but let it "break" itself. But not in the sense that establishment is bad but in the sense that some practices have crystallized and nobody challenges them.

</comment></comment></comment></comment></comment></comment><comment><USER21> This is a great excerpt.</comment>


Show HN: FLP Impossibility Theorem Proof in Coq - <AUTHOR> https://github.com/ConsensusResearch/flp/blob/master/flp.v

<comment><USER2> For those interested in learning about Coq (and computer science in general), I'd highly recommend [http://www.cis.upenn.edu/~bcpierce/sf/current/index.html](http://www.cis.upenn.edu/~bcpierce/sf/current/index.html). Aside from being incredibly enlightening, it's also quite fun.

Set it up in emacs with Proof General and you get instant validation that you're correctly doing all the exercises as you go; it's like playing a game that teaches you type theory, proof automation, typed lambda calculus, Hoare logic and more.

</comment><comment><AUTHOR> Author here. I would be happy to get proof review.

<comment><USER3>
        (** A particular execution, defined by a possibly infinite sequence of events from
        a starting configuration C is called a schedule and the sequence of steps taken
        to realise the schedule is a run **)
        Definition Schedule := list nat.

Is `list` codata by default in Coq?

<comment><USER4> Don't you want [https://coq.inria.fr/library/Coq.Lists.Streams.html](https://coq.inria.fr/library/Coq.Lists.Streams.html) ?</comment></comment></comment>


Feedback on idea - <AUTHOR> http://care.ileanapp.com/

<comment><USER2> Is the name care or caore? On the pricing page, does 50 log entries mean per month? Front page should have some examples, maybe a mocked up chart or something. What's an example of an "acute event"?</comment>


How often do you update your landing page before launch? - <AUTHOR>

Just curious as I continue to update ours not so much based on the product being improved but my desire to continually improve upon the branding. And by continue I mean 2-3 times a year. <comment><USER3> How drastically does the landing page change? How many users do you have? This will have significant impact on the perception of your brand. If you have a lot of users, constantly updating your landing page may result in confusion and ultimately brand dilution.

<comment><AUTHOR> Good point, and the answer is right now we don't really have any users - <USER2> updating front-end stuff isn't that big of a deal. However, I may have worded it wrong regarding why the updates were made. I am a brand nazi, so we weren't changing the brand as much as we were fine tuning it and further implementing it into the front pages.

<comment><USER3> I don't see that that would be an issue. As you say, limited users and fine- tuning the brand should not be deleterious to the user perception. Of course once you get more traction every change to the branding should be validated. Good luck!

<comment><AUTHOR> Indeed! Thanks.</comment></comment></comment></comment>


Trying to prevent browser fingerprinting? The odds are against you - <AUTHOR> http://linuxbsdos.com/2015/12/18/trying-to-prevent-browser-fingerprinting-the-odds-are-against-you/ <comment><USER2> it's a bit ironic that I had to dismiss _three_ autostart video ads on this one page.</comment>


Why This Mars Rover Has Lasted 3,560 Days Longer Than Expected - <AUTHOR> http://www.sfgate.com/technology/businessinsider/article/Why-This-Mars-Rover-Has-Lasted-3-560-Days-Longer-5173078.php

<comment><USER2> What an awful article. All factual information can be summarized in two sentences:

"The mars rover lasted longer than expected because we did not anticipate the strong winds blowing dust off the solar panels. Furthermore, the rocker-bogie suspension system kept the machine from toppling over."

Everything else was non-information towards the subject. Claims that their machines are American, exquisite, sturdy, creative, well designed, excellent, fantastic and well built explain nothing.

<comment><USER3> Tough criticism.

It was designed for a few months. On its 10-year anniversary, I think it's worthy of a news article.

Sure... not much to say, but then the article wasn't very long, either. A couple facts, and the rest was filled with pride and other light reporting, like the feature article that it is. I don't know much about journalism, but it wouldn't seem out of place next to a feature about a successful restauranteur or a dog that saved someone from drowning.

Is hard-hitting and just-the-facts the only acceptable form of journalism or something?

To me, this was at least worth the bits it was printed with. I'm glad to know that people still care enough to do something so well that they can launch it on a rocket, land it on another planet, and keep it running and sending data back to Earth for 10 years straight.

<comment><USER4> > It was designed for a few months.

It was designed to, at an absolute minimum, with everything they could reasonably expect, work perfectly for 90 days. This is a bit of a different statement.

<comment><USER3> A strange point: so you're saying that because they designed it to last longer, that lasting longer is not as much of an accomplishment? Like the optimism of the engineers detracts from the results when that optimism is realized?

Regardless, it doesn't take away from my point. Getting something to work in that environment for a decade (I suppose I should specify that it's an Earth decade) is quite an accomplishment.

Let a few people feel a little pride of accomplishment. And let the rest of us feel inspired that such a feat is possible.

</comment></comment></comment></comment><comment><USER5> Always love this xkcd: [http://xkcd.com/695/](http://xkcd.com/695/)

<comment><USER6> Why does anthropomorphizing our machines always seem to lead to sadness?

<comment><USER7> There's an alternate take on the xkcd panel with a more upbeat viewpoint. I looked for it briefly but couldn't find it.

<comment><USER8> Found it [http://twicsy.com/i/vTY5E](http://twicsy.com/i/vTY5E)

<comment><USER7> Bingo. Thanks.

</comment></comment></comment></comment></comment><comment><USER9> //slightly off topic

The rock, which has a white rim and center that is deep red, is _unlike anything scientists_ have seen before on Mars.

Such statements insinuating that the scientists are somehow puzzled by that fact. Of course they haven't seen it before, because it never happened. How often do you get a rover on mars. Sooner or later a rock will get yanked from the wheels. Media is really scraping the bottom here.

edit: My guess, looks more like something metallic, like a part of the rower perhaps.

<comment><USER10> You are being overly cynic. It is a new discovery.

<comment><USER11> Exactly.

In other news, scientists astounded the world with a new discovery on mars: a small, hexagonal rock with a threaded cylindrical hole.

Slam-dunk proof Mars had intelligent life at some point!

Even more amazing: it just happened to be sitting near the rover. And it wasn't there when the rover drove up to that point.

Proof the martians are just putting evidence right in front of us, while being sneaky at the same time! How clever of them.

</comment></comment></comment><comment><USER12> I was always a little dubious of the 90 day mission length. It sounded like NASA were just giving themselves a "yeah we meant that to happen" get out if things went bad.

<comment><USER13> You need to keep in mind that the rovers also needed to survive the six months in transit in once piece, and the airbag-assisted landing in one piece, both of which add necessary reliability and durability factors to make sure that the thing lasts even the 90 days. Also, you need to keep in mind that those cleaning events came out of left field. Yeah, they were expecting to maybe get a few extra weeks out of the rovers, but because the wind behaved in a manner that was completely unexpected, the panels weren't as dust-caked as was expected, which had always been the real limiting factor.

<comment><USER14>
      > the panels weren't as dust-caked as was expected

Common, this is such a lousy excuse. If dust was a big problem I'm pretty sure they would have designed a dust-cleaning device.

<comment><USER15> Such as what, exactly? I'm sure it was considered, but it's not that simple. Would it involve air blasts? Liquid? A squeegee? The sand/dust content wasn't exactly known so a scraping motion would potentially scratch the glass surface and make things worse. Compressed air would take a tremendous amount of energy to compress and a liquid is heavy.

</comment></comment></comment></comment><comment><USER16> > Why This Mars Rover Has Lasted Longer Than Expected

It hasn't, it was designed to last this long.

But politically it's better to say it's designed for a short period in case things go wrong.

</comment><comment><USER17> I'm sure the cost of getting the thing there overshadows the cost of construction, but it seems really fabulously overbuilt. I'm sure the martian environment is horrible for plastics, but heck, they only need to last 90 days. Let them get brittle and rot. (I'm assuming plastic is lighter and therefore cheaper to transport)

I guess it's the difference between doing everything as well as possible and then dealing with the limiting factor, vs doing just enough to meet the 90 day goal. A classic quality vs value trade off.

<comment><USER18> "fabulously overbuilt"... not quite, think about this: you have _one_ chance to launch it into space, send it millions of miles away, reenter atmosphere safely and then survive a hostile environment for _only_ (?!?!?) 90 days! There is no overbuilding, by the nature of the mission itself your Factors of Safety [1] are through the roof!!

[1] [http://en.wikipedia.org/wiki/Factor_of_safety](http://en.wikipedia.org/wiki/Factor_of_safety)

<comment><USER17> Amusingly, in this case there were two chances.

I'm saying if Spirit and Opportunity were constructed less well, perhaps we could have afforded a third with the same budget.

I don't really have any honest way to value the difference between 10 years of extra data vs another location (i'd guess the more data is better, but that's hindsight bias)

Remember, every ounce of "factor of safety" is tens (or hundreds?) of thousands of dollars.

</comment></comment></comment><comment><USER7> Recognizing the premium for any mass on the mission, I've wondered why some sort of panel-duster (perhaps a spinning flail such as you'd find in a carwash) wasn't designed in.

Still, the longevity and data have been truly amazing.

<comment><USER19> You'd still have the same problem though: how do you keep a motor lubricated in the partial pressure of a pretty good vacuum? How do you stop the duster's brushes falling out or wearing out?

Not saying it's not possible, but if you consider things like reaction wheel failures, there's a lot of "might last a long time, might die in a year or two" problems in any motor in space.

<comment><USER7> There are plenty of other motors on the landers, presumably the rovers haven't been telekinesing merrily over the marscape. The brushes would be a far lower duty-cycle item.

Depending on the brush design: something sufficient to clear the panels periodically (say, based on noted solar degradation and/or self-inspection photography) might work. Clearly, incidental wind has proven sufficient.

And there's a lot of engineering work on Earth which could go into testing out the design. As I said: it's just curious that this seems to have been left to chance. Though nobody really expected the rovers to run as long as they have.

<comment><USER20> _> There are plenty of other motors on the landers, presumably the rovers haven't been telekinesing merrily over the marscape. The brushes would be a far lower duty-cycle item._

But far more exposed, though. If not the motors themselves, then the mechanics of the wiper arm.

<comment><USER7> More so than camera servos or other arms on the probes?

Again: while high-reliability, low-pressure lubrication is a challenge, it's clearly not an insurmountable one. Providing a means to ensure your only source of energy remains viable would be useful. Failure of the dusting system of itself wouldn't result in a mission failure. Success of it could prolong it, and/or allow for smaller collectors (as I recall the solar panels were oversized to allow for possible dust accumulation).

I'm thinking of some sort of rotary duster which might pass horizontally above the panels. Less a windshield wiper design than a dual-arm rocker.

</comment></comment></comment></comment></comment><comment><USER21> When the U.S. puts as much money into something as the mars rover (that isn't for killing or spying), red-blooded 'mericans want to know they're getting their money's worth. If you design a rover that's supposed to work for 10 years and it dies in 10 months, you F'd up. However, if you publish a Scotty estimate of just 6 months and it lasts 10 years...

I don't buy, even for a moment, that the mars rover wasn't designed to last. It was indeed well designed and built. The estimate for it's expected lifetime, however, was more a function of politics than engineering.

</comment><comment><USER22> Is it too much to ask that a journalist be able to convert 10 years to days correctly? I mean, it's true that it lasted 3560 days more, but I'm guessing they were shooting for 3,650 days. (or 3653 days)

<comment><USER23> it's 10 years minus 90 days (the original anticipated mission length). 3650 - 90 = 3560 days.

<comment><USER22> Thanks; my own reading comprehension failed me. I hate when I fall victim to Muphry's Law. [1]

1\. [http://en.wikipedia.org/wiki/Muphry's_law](http://en.wikipedia.org/wiki/Muphry's_law)

</comment></comment></comment><comment><USER24> This is why is seems so terribly short-sighted to me that our most recent rover is nuclear-powered.

<comment><USER25> Using RTGs for power gives the rover a ton more flexibility though, and helps make the most use out of the time that it has. I remember from reading the Mars and Me blog (written by one of the rover drivers) that the cyclical nature of solar power put some pretty big constraints on the rovers. It wasn't just a day/night thing, they had to be really careful about the orientation of the rovers' solar panels during the martian winters. A lot of the time they'd just park the rovers for the winter. Plus, the waste heat from the RTGs can be used instead of electric heaters.</comment></comment>


The government isn't collecting your data. - <AUTHOR> https://plus.google.com/115195708001192408562/posts/GmU3vNoH5eo

<comment><USER2> This is an unusually fine hair to split even for this topic.

Or wait, are we really splitting 'hairs'? Or is there some other Latin root for that idiom which is more appropriate?</comment>


Show HN: Tmuxp – Tmux session manager written in Python - git-pull https://github.com/tony/tmuxp <comment><AUTHOR> My approach to tmux session management is the following

      tm() {
          if [ -z $1 ]; then
              tmux list-sessions
              return
          fi
          tmux detach -s $1 2> /dev/null
          tmux attach-session -t $1 2> /dev/null || tmux new-session -s $1
      }

      _tm() {
        local word completions
        word="$1"
        sessions=`tmux list-sessions 2> /dev/null`
        [ $? -ne 0 ] && return
        completions=`echo "$sessions" | cut -d ':' -f1`
        reply=( "${(f)completions}" )
      }
      compctl -K _tm tm

I don't find I need to persist sessions, I just want a quick way to switch between them. This gives me a tm command that autocompletes session names and creates new sessions if they don't exist. It also detaches existing clients since I only ever connect once and this way I don't have to deal with issues of differing terminal sizes.

</comment><comment><USER2> I have used tmux and vim daily for a few years now and haven't a clue about what's being demonstrated in the linked animation.

They seem to load tmux, then some files in vim, then change panes.

<comment><USER3> I'm the same. I use tmux generally in one window, and may have several sessions within that but I do not do any kind of complex split-screen layouts etc. I find that just starts demanding too much mental attention aside from from the task I'm really trying to do.

For layout of multiple terminal sessions I use a tiling window manager on my desktop.

<comment> git-pull I was in the same boat.

I've used tiling WM's full time for maybe the past decade (xmonad, i3, awesome, dwm, scrotwm/spectrwm). Also I use rxvt-unicode with the tabs extension. That's in addition to tmux.

In practice, I do not perceive redundancy. Using the tiling WM to keep the layout of terminals doesn't persist across login/logout or even the X session. Also, you can SSH to the box via another machine and have the layout there waiting for you.

Another factor that played a roll in it probably was irssi / weechat and ssh'ing into a remote box for it. No special splits or anything crazy, just using the attach/detach feature. I started with screen. Eventually moved to tmux (one thing I missed from screen was easily being able to share the 'session', though I forgot screen's terminology for that).

Then for a time, I saw tmuxinator and teamocil out there, but felt meh, don't feel like keeping a bunch of config files floating around. This was before it came a trend to store dot-configs in git.

When I realized I could have a dot config persisted across my machines (local network and remote) via git, that's when keeping project files became less an abstract nicety and more of a time saver.

I see many gradually evolve into trying a session manager out, but also see many (like another commenter ITT) who get by fine with a simple script.

</comment></comment></comment><comment><USER4> I'm using [https://github.com/tmuxinator/tmuxinator](https://github.com/tmuxinator/tmuxinator) for quite some time and find it very convenient. Are there any advantages of Tmuxp?

<comment> git-pull I haven't used teamocil or tmuxinator in a few years. At the time, both had a few itches to scratch. i was surprised to see how well thought-out and scriptable tmux was. the often overlooked formats [1] and targets [2] options in the tmux manual had a lot of possibilities to do precise tweaks across sessions, windows and panes, but they were cumbersome to articulate. it seemed like a superb candidate to create an object mapper for in python. In recent months, I spun off the low-level python library for mapping sessions, windows and panes to objects to libtmux [3]

I will give a try at advantages, but take note its been a while and tmuxinator may have improved on these:

1\. focusing a pane in each window, as well as window in the session. So after the session is loaded, the cursor will be focused wherever you entered "focus: true". [http://tmuxp.readthedocs.io/en/latest/examples.html#focusing](http://tmuxp.readthedocs.io/en/latest/examples.html#focusing). tmuxinator's startup_window seems to only do window focusing, not pane focusing.

2\. freezing tmux layouts [http://tmuxp.readthedocs.io/en/latest/cli.html#freeze- sessio...](http://tmuxp.readthedocs.io/en/latest/cli.html#freeze-sessions)

3\. JSON support

4\. More ability to resolve paths relative to configuration file _and_ relative to start_directory. [http://tmuxp.readthedocs.io/en/latest/examples.html#start- di...](http://tmuxp.readthedocs.io/en/latest/examples.html#start-directory)

5\. before_script for bootstrapping project dependencies before launch [http://tmuxp.readthedocs.io/en/latest/examples.html#bootstra...](http://tmuxp.readthedocs.io/en/latest/examples.html#bootstrap- project-before-launch). Can target bootstrap script via absolute path, relation to start_directory and relation to config directory.

6\. Set custom indexes (window numbers) via config

These are little conveniences I don't recall seeing in tmuxinator/teamocil in 2013 (I originally used both):

\- If your tmux session is already loaded, it will offer to attach it for you instead of re-running. (I don't recall if this was tmuxinator or teamocil)

\- If you're already inside a tmux session and load a session via tmuxp, it will offer to switch-client for you.

\- There is also an ability to import teamocil and tmuxinator configs, [http://tmuxp.readthedocs.io/en/latest/cli.html#import](http://tmuxp.readthedocs.io/en/latest/cli.html#import), though it may be out of date with the latest config for them. I'm considering whether I want to remove the feature, or just try to load them natively. It wouldn't be hard.

[1] [http://www.freebsd.org/cgi/man.cgi?query=tmux&apropos=0&sekt...](http://www.freebsd.org/cgi/man.cgi?query=tmux&apropos=0&sektion=1&manpath=OpenBSD+5.8&arch=default&format=html#FORMATS) [2] [http://www.freebsd.org/cgi/man.cgi?query=tmux&apropos=0&sekt...](http://www.freebsd.org/cgi/man.cgi?query=tmux&apropos=0&sektion=1&manpath=OpenBSD+5.8&arch=default&format=html#COMMANDS) [3] [https://github.com/tony/libtmux](https://github.com/tony/libtmux)

</comment></comment><comment><USER5> They missed an opportunity to make a completely oblique literary reference by not calling it 'ptmux' (for the Pratchett fans in the audience).

</comment><comment><USER6> Honestly I think tmux session managers are great, but I usually end up not using them. I want something simple that just works. Give me built in defaults that make sense and maybe a way for users to contribute their configs to a repo with tagging, search and ratings, and I might stick with one.

</comment><comment><USER7> How does this compare against byobu?</comment>


Are real numbers uncountable? - <AUTHOR> http://knol.google.com/k/are-real-numbers-uncountable# <comment><USER2> This is a goldmine.

 _"Assuming any real number can be represented using base 10 (this is of course false, since it is not possible to represent all real numbers in any given radix system)"_ So that bit in parens pretty much refutes his whole post.

And the tree: "One can traverse it sequentially..." Go depth-first or in-order and you'll never get off the left spine. Go breadth-first and you'll never get past the first level because _the root has (countably) infinitely many children._ This is actually a very intuitive argument for why the reals (oops I mean decimals) _are not_ countable.

And the "refutation" of Cantor's argument of the reals is fun too. I've never read the original argument, but I always figured that you're supposed to jump over the entries i/j for which i and j are not relatively prime. They're easy enough to spot. I can't be 100% sure my logic is sound, but I'm sure this guy's isn't.

</comment><comment><USER3> I upvoted this because it's a wonderful example of mathematical crankiness. I've always wondered why cranks are attracted to the same things: Cantor's diagonalization proof, squaring the circle, 1=0.999.. Perhaps it's because the problems are easy to understand, but the proofs aren't.

</comment><comment><USER4> Yes, Real numbers are uncountable. Every real number can be expressed as the sum of decimal fractions, but not as a finite or regular sum of decimal fractions.

</comment><comment><USER5> I asked the author which natural number N corresponds to the real number 1/3.

It's a simple question which he should be able to answer with a finite string of digits. No words necessary.</comment>


Best way to promote an open source project - <AUTHOR> I've built a project and made it open source but I'm poorly good enough to promote such thing :-/<p>Can anyone suggest some ways for people like us? BTW here's my project https://github.com/changeweb/Unifiedtransform <comment><USER2> Also, change that graph [0]. It makes no sense and shouldn't be used in a pitch...

[0] [https://user- images.githubusercontent.com/9896315/54187725-6...](https://user- images.githubusercontent.com/9896315/54187725-68991b80-44d8-11e9-9121-bc113047e1d0.png)

</comment><comment><USER3> Probably write up a blog post about it</comment>


Using React, Firebase, and Ant Design to Quickly Prototype Web Applications - <AUTHOR> https://nrempel.com/guides/react-firebase-ant-design/ <comment><USER2> I love how ant design invents a new 'design language' and then it turns out to be yet another bootstrap.

I wish we'd get a real revolutionary design system instead of these frameworks that try solve all cases, and ultimately end up so generic you can't use them for anything -other- than prototyping

<comment><USER3> Bootstrap doesn't event define a design language.

I'm glad that there's a good UI lib that integrates with React at this level.

<comment><USER2> Point taken!

</comment></comment></comment><comment><USER4> In this mix I'd swap in Rekit ([http://rekit.js.org/](http://rekit.js.org/)) instead of plain create-react-app as it adds Redux with lots of timesaving functionality built into an included editor.

<comment><USER5> Can I eject rekit at some point? Can I use VS Code before ejecting?

<comment><USER4> The newest version is built on top of create-react-app so yes you can eject, I haven't done so though. You can use whatever editor you like, but you won't get the automated features like "Create Component" setting up your js, css, tests, and routes automatically. I expect this will be the biggest stumbling block for most devs. I may be unusual that the transition from sublime to the web based editor was very smooth and didn't slow me down.

</comment></comment></comment><comment><USER6> Wes Bos' "React for Beginners" has been my go to for tutorials using React and Firebase.

This adds Ant so I'll have to check that out. Thanks!

</comment><comment><USER7> There is also a way to use a reactive database without having to trust google by using couchdb+rxdb.

<comment><USER8> I'm constantly shocked by how few people know about CouchDB or PouchDB. Both are amazing projects that integrate perfectly.

<comment><AUTHOR> I thought about this a while ago but gave up because there weren't any good CouchDB hosting providers. I don't want to host a DB myself these days.

</comment></comment></comment><comment><USER9> I think the tutorial would be more complete if the example showed some basic security rules. Even if it's a prototype, there is the chance that a joker will delete all your test data _live_ during a demo.

<comment><USER10> Thanks for the feedback. I've been thinking about writing a guide on deploying Firebase apps to production, I can include it there.

</comment></comment><comment><USER11> from the ant front page: "A design system with values of Nature and Determinacy for better user experience of enterprise applications"

This looks like someone spent a ton of time building something that is probably very useful. So, with all due respect, what the fuck does that even mean?

<comment><USER12> This is alibaba's react component framework. It's extremely high quality, but unfortunately most the english is translated from Chinese, so awkward grammar is abound. I suggest looking past that.

</comment></comment><comment><USER13> "Firebase's core product is a real-time database service. This means that your users do not need to refresh a page to see updates to the state of the application and it"

"Once you have your Firebase project, provision a "Cloud Firestore" database"

Cloud Firestore is a traditional NoSQL DB and is not the realtime database product.

<comment><USER10> "Cloud Firestore is a flexible, scalable database for mobile, web, and server development from Firebase and Google Cloud Platform. Like Firebase Realtime Database, it keeps your data in sync across client apps through realtime listeners and offers offline support for mobile and web so you can build responsive apps that work regardless of network latency or Internet connectivity"

[https://firebase.google.com/docs/firestore/](https://firebase.google.com/docs/firestore/)

</comment></comment><comment><USER14> Initial look at the Ant Design, all of the images in the documentation are broken, so is the ng.ant.design URL. That's not inspiring any confidence in their ability guiding web application development...

<comment><AUTHOR> Maybe they're being blocked for some reason? Everything looks good for me (in Canada)

</comment></comment><comment><USER15> Nice. Please do VueJS next.

</comment><comment><USER16> Shouldn't a deletefacebook involve stopreact? surprized to see react articles on hn now...

<comment><USER17> React is a great tool with a permissive license. Abandoning it would be a case of throwing out the baby with the bath water, IMO.

<comment><USER16> aren't there actually a lot of issues with the license? and seeing that you can't trust fb..

<comment><USER17> There were many concerns and the license was updated to MIT. I haven't heard of any issues rising from the new license.

</comment></comment></comment></comment><comment><USER18> I still can't believe everyone has accepted mixing logic and presentation is a good idea. Html mixed with javascript is a mess and I can only imagine what a "mature" React app looks like after a few years of iteration. I can't wait for the "React turns out to be a shit idea" posts in a year or two just like we're seeing with microservices. It's like a mass hallucination or something. Maybe Facebook had Cambridge Analytica help them market React or something. At least that would explain the brainwashing.

<comment><USER19> This is such a poorly done react app, you can not take this as the current state of react. If you've never seen a mature react app, and have at best checked out a few blogs that try to compare it to other frameworks, then you have not been exposed to nearly enough to make a real decision and are throwing around empty opinions.

<comment><USER18> I'll admit mostly ignorance since I've only done a Udemy react course and read some blogs. However, I've never seen it done any other way. Isn't JSX an integral part of React?

<comment><USER20> I wrote an extended answer to this on Reddit a few weeks ago [0]. I'll paste it here for ease of reading:

JSX is not required. Literally, all you need is to include script tags for `react.js` and `react-dom.js`, and then you write "raw" `React.createElement()` calls.

However, most people find that to be too repetitive. So, the "default" approach is to use JSX syntax, which converts `<MyComponent a={1} b="blah">Text</MyComponent>` into `React.createElement(MyComponent, {a : 1, b : "blah"}, "Text")`.

Yes, JSX requires a transformation/compiler step. As I said earlier, a typical "real" app needs build tools to bundle anyway, and you're probably targeting a variety of browsers but don't want to restrict yourself to the least common denominator subset of JS syntax, so you're probably already using a transpiler too.

But, if you truly don't want to use JSX for whatever reason, there's plenty of choices:

\- Write raw `React.createElement()` calls by hand

\- Alias `React.createElement()` as `h()` so it's shorter

\- Use a functional VDOM wrapper generation library like `react-hyperscript- helpers` ([https://github.com/Jador/react-hyperscript- helpers/](https://github.com/Jador/react-hyperscript-helpers/)).

\- Use a runtime JS templating library like Dominic Gannaway's `t7` templates([https://github.com/trueadm/t7](https://github.com/trueadm/t7))

\- Use an actual separate templating library, like `react- templates`([https://github.com/wix/react- templates](https://github.com/wix/react-templates)) or `handlebars- react`([https://github.com/stevenvachon/handlebars- react](https://github.com/stevenvachon/handlebars-react))

Almost everyone chooses to use JSX. The docs use JSX. Tutorials across the internet use JSX. It's the accepted approach. But, it's not _required_. You do not _need_ it. There are other options. It's your choice.

[0] [https://www.reddit.com/r/javascript/comments/81fkhi/this_may...](https://www.reddit.com/r/javascript/comments/81fkhi/this_maybe_a_dumb_question_but_do_you_really_need/dv3dazy/?context=3)</comment></comment></comment></comment>


Toddlers prepare for their first big interview - <AUTHOR> http://www.bbc.com/news/magazine-32040752 <comment><USER2> NYC toddlers go through the same thing, and I hear parents here complaining about getting their kids into a good kindergarten all the time. There is a funnel from the best kindergartens to the best private schools, to the Ivy League schools, to the top law firms and medical schools, and for some of very best schools, the rate of acceptance into Ivy League schools is so high that by getting your kid into the right kindergarten they are essentially set for life. It is absolute madness that an interview at the age of four could be so determinative of one's entire life. Yet another way that privilege tends to compound.

<comment><USER3> A person who follows a path laid out for them by others from the age of four without veering will encounter challenges later in life involving self- direction and identity. 'Set for life' is a dangerous delusion.

<comment><USER4> I'm not saying you're wrong, but 'set for life' money can pay for a lot of therapy.

<comment><USER3> Unfortunately, if you get there, there's not enough therapy in the world that will help. You can never pay someone to teach you to love yourself, or to decide for you who exactly you are, or decide for you what you want. You have to claim it for yourself, and if you walk the path laid out for you by others you will not have the tools to do this. After pair bonding with the mother, the foundation is laid as a toddler, parents praising effort, not outcome, and teaching kids to learn and explore and create for the sake of their own curiosity, not tying that process to external judgements and motivators and robbing them of their agency. The goal of parenting should be to teach self reliance. Parents and our current scholastic environment are raising children that are so tightly coupled to the system that they are extremely brittle in the face of adversity, they fall apart. Their reference points are external. They have no compass. You might 'make it' by society's standards with no internal compass, but this 'making it' is incredibly deceptive. You've acquired a debt working against self realization and direction that is incredibly difficult, sometimes impossible, to pay. Countless broken homes and shattered lives result from the inevitable reckoning. Everyone will become accountable to the amount of responsibility they've taken for their life at some point, and it can be equally liberating and devastating.

<comment><USER4> I think you're vastly overstating the difference between the psychological stresses put upon affluent children versus those in middle class or poverty.

Everybody has to deal with living up to their parents' hopes and dreams, and we all manage somehow. Certainly there's plenty of room for improvement on all sides, but if you're looking for a special sympathy for the upper class, you'll not get it from me.

</comment></comment></comment></comment></comment><comment><USER5> YC16: FetusImplants.io - we are hiring !

On a more serious note. Things like this is great if done correctly.

If an professional industry can be grown around child care, I think its better than having parents do infinite amount of harm to their kids.

However its almost ridiculous that society is heading that way. One of the foundation of society is the relationship between parents and their kids. That relationship develops in early childhood.

I think parents in hong kong are taking life way too seriously - what are you gaining out of it ? Does it matter that your city is twice as performant as new-york or shanghai.

My grandmother still lives by global standards below the global proverty line by income. And she has the most chilled life I have seen. Ofcourse if your country is ravaged by malaria or violence then there is something that needs to be done.

Humans are not machines - we have computers now for that. Human creativity pays itself and creativity comes from boredom and self learing.

Also being from a culture similar to hong- kong. these types of things instil a sense of "FUCK YOU IF YOU FAIL!" This is very counterproductive attitude to have if you expect to be part of the social chain of invention from galileo and newton.

<comment><USER6> > If an professional industry can be grown around child care, I think its > better than having parents do infinite amount of harm to their kids.

We know that if you drink lots of alcohol while pregnant, you're going to harm your child. We also know that if you are abusive towards your children, they might end up with all sorts of psychological trauma.

But beyond that? Different parenting strategies probably have an effect on a kid's emotional and intellectual development, but the jury is still out on exactly how much of an effect and exactly what, then, the best parenting strategy is. So, doing an "infinite amount of harm" to your kids because you're somehow not a professional at raising kids? I don't think that's even possible.

\-- but anyway, I very much agree with the main point of your comment; society seems to increasingly want to turn people into robots.

<comment><USER7> Drinking during pregnancy is actually a good microcosm of parenting as a whole. The effect of light to moderate drinking during pregnancy on child IQ and attention is pretty much nonexistent: [http://www.cdc.gov/ncbddd/fasd/key- findings-alcohol-use.html](http://www.cdc.gov/ncbddd/fasd/key-findings- alcohol-use.html). And even among alcoholics, the probability of FAS is around 5%. Even pre-natal cocaine exposure isn't all its cracked up to be: [http://en.wikipedia.org/wiki/Prenatal_cocaine_exposure](http://en.wikipedia.org/wiki/Prenatal_cocaine_exposure).

Kids are surprisingly resilient, and the weight of the scientific evidence we have suggests that once confounding factors like socioeconomic status are accounted for, parenting choices don't have a large impact on at least the objectively measurable aspects of outcomes (e.g. IQ, test scores, attention span).

<comment><USER8> I remember hearing a story of a mom flying on a French airline. They were liberal with the wine, but freaked out when she wanted a raw salad. Every culture is different when it comes to parenting :)

</comment></comment></comment></comment><comment><USER9> > " _At one tuition company, the Hong Kong Young Talents Association (HKYTA), > a series of 12 training sessions costs HK$4,480 ($580; £390) - that 's > nearly a quarter of the median monthly household income._"

Sometimes I think that the Asian obsession with school curriculum was designed make money out of fear.

Schools' focus should be learning itself. Any form of extrinsic reward – praises, grades, smileys – adds up to nullify the learning experience.

imho we're raising a generation of selfish individuals. We're raising people who won't do anything without a solid structure and reward system to motivate them. Free play is what builds children's self-reliance and independence.

<comment><USER8> Structure can be very important to building self-esteem and confidence in a child. Many think it's critical to providing self-reliance and independence, perhaps counterintuitively. I'm not saying free play is unimportant. But structure provides routines that make kids feel confident. That the world isn't a completely chaotic place. It helps them learn about valuable skills like delayed gratification. Etc.

</comment></comment><comment><USER10> This is horrible. Kids shouldn't be stressed out like this in their early years/ Teach them how to be creative and let them play. We just went through the Princeton Waldorf school 'interview' process and guess what it was. Our 2.5 year old son playing with a wooden tow truck on the floor and slightly interacting with a 3 year old girl doing roughly the same with some other toys.

The world needs creative engineers in all industries who can come up with original ideas not ones who are good at repeating and rote memorization, although those are fantastic secondary skills.

<comment><USER11> _We just went through the Princeton Waldorf school 'interview' process and guess what it was. Our 2.5 year old son playing with a wooden tow truck on the floor and slightly interacting with a 3 year old girl doing roughly the same with some other toys._

That implies that there was a _wrong_ way to play and interact. Are they only taking _good_ kids, or something?

<comment><USER12> Guessing that the _wrong_ way involves throwing the wooden tow truck at the 3 year old girl.

</comment></comment></comment><comment><USER13> Humans making life miserable for other humans - kids edition.

<comment><USER14> Indian edition for little older kids [http://www.hindustantimes.com/newdelhi/even- class-6-students...](http://www.hindustantimes.com/newdelhi/even- class-6-students-prepare-for-iit/article1-967199.aspx)</comment></comment>


An old IBM null hardware device to handle null-pointers - <AUTHOR> https://twitter.com/thegrugq/status/1040615151605432320 <comment><USER2> ??? That makes no sense. Is it a joke? Or, like a left-handed smoke shifter, something meant to poke fun at the naive and gullible?</comment>


Wallaroo goes full Apache 2.0 - <AUTHOR> https://blog.wallaroolabs.com/2018/10/wallaroo-goes-full-apache-2.0/ <comment><USER2> Very excited to see this, I've been intrigued by it over the last few months but have avoided it because I was concerned if I built a successful project with it I'd eventually reach a hard cliff in terms of pricing. It's especially difficult to weigh cost benefit of an architecture with a new framework that has specific resource based pricing when you don't have a way of estimating resource usage because you've never used the framework.

<comment><AUTHOR> You aren't alone in that concern. We heard that from a lot of folks. And I agree with you. When I stopped thinking as "VP of Engineering at Wallaroo" and started thinking about how I would evaluate Wallaroo if I wasn't with the company, I ended up with the problem you are describing. Basically:

"why would I spend time evaluating this thing when there's that cliff that I don't know when I'll hit it".

</comment></comment><comment><AUTHOR> Hi everyone,

I'm the VP of Engineering over at Wallaroo Labs and the author of this post. I'll be keeping an eye on the comments here and I'm happy to answer your questions as best I can.

-Sean-

<comment><USER3> How does this compare with Apache Kafka? Genuine interest :)

<comment><AUTHOR> There are a couple aspects of Kafka. The primary aspect that most people use it for is as a distributed log. If you are familiar with message buses like RabbitMQ, a distributed log can serve the same "make data easily available to a variety of consumers role" while also having some interesting properties about how long the data lives in the log etc.

Wallaroo applications are often consumers of data that is read off of Kafka. Wallaroo applications can also get data from a variety of other sources including message queues, databases, files etc.

Wallaroo is more like Kafka streams than Kafka.

Wallaroo is a processing engine, taking data/events an event at time and doing running computations against it. Those computations could be creating aggregations, monitoring as part of an alerting system or a variety of other cases.

You can imagine Wallaroo as being in the same space as Spark, Flink, Storm etc. A big difference is that Wallaroo API targets Python users. Wallaroo has an embedded Python interpreter that allows the developer to use any of the standard Python libraries: Pandas, Numpy, whatever.

Another key diffence is in how we do clustering. Wallaroo was designed to make it easy to create ad-hoc processing clusters. We have a use case where based on incoming data arriving (large csv file over http), we can spin up a Wallaroo cluster (powered by Pulumi!) in AWS and have a number of Wallaroo workers that process the data. That sort of "on the fly" clustering is something that many tools have a hard time with. You can see it in action as part of our "Scale Independence" video at [https://vimeo.com/270509076](https://vimeo.com/270509076).

Not sure if that answers you question. Hopefully it does at least a little bit.

</comment></comment></comment><comment> le-mark _The features we kept under our enterprise license were scaling related features. If you wanted to use Wallaroo on more than 24 CPUs, you needed to pay us money. Upon reflection, that was a mistake. Wallaroo is about making scaling easy. We locked the core value proposition of the product behind a commercial license and tried to build an open source community._

I'm curious about this analysis; was the dual license nature really the problem, or is the "market" not as large as you may have thought, in reality? What is the business model now?

I've really benefited from your technical blog the past few years, I personally am not a wallaroo user though. Good luck!

<comment><AUTHOR> Anything I can do to get you to become a Wallaroo user? <I at least have to ask>

Also, thank you for the kind words about our blog. It means a lot. We put a lot of effort into it and we hope that it both drives Wallaroo usage but is also valuable as a general technical resource.

> was the dual license nature really the problem, or is the "market" not as > large as you may have thought, in reality?

The dual license was definitely a problem if the goal is to get usage. Would the people who balked at the license have paid us money? Maybe not but, they could have been valuable as members of the community. Could have helped us learn about new and interesting Wallaroo use cases. Could have acted as social proof for Wallaroo. We get none of those things if they are scared away the license. And I personally heard from a lot of folks who balked at the license.

I was talking to an engineer from very large company who wanted to use Wallaroo and would have made great press for us but, they couldn't without getting legal involved and the project died there. That was the day that I personally started thinking seriously about the license and if we had done the right thing.

It's hard to be out there telling people the real value of the project is in the ease of scaling but making payment required for that. Ended a lot of conversations.

> is the "market" not as large as you may have thought

Well, we went into this with "there's a small market now, but we see it growing". So, I would say no. We knew the Python streaming/event-driven application market was small compared to the Java one right now. But, we also see it growing at a steady rate (with signs of a big big jump at some point).

> What is the business model now?

Things we've found that people are happy to pay for

\- Support/license that involves us giving them the same assurances of "someone being there" that they get with proprietary software \- "Managed service", we'll install and run your Wallaroo applications for you inside your AWS/GCP/Azure accounts. \- Enterprise version. We plan on creating products that live around Wallaroo that aren't of interest to the open source community but would be valuable to enterprise users.

In the end, what's most important to us right now is getting closer to more users and using what we learn from them to accelerate our improvement of Wallaroo. The more users we have, the more chances we have learn, and the more chances we have to continue to improve our product market fit.</comment></comment>


The Power of "The Suck List" - <AUTHOR> https://www.mikecr.it/ramblings/suck-list/ <comment><USER2> I like to keep evergreen lists for everything too, I'm curious what software you're using? I've shoehorned lists into evernote and trello before but ultimately their uis are about doing something else

<comment><AUTHOR> I just use Google Keep (for lists along with notes and todos). The whole post- it note feel took some getting used to, but I love it now.

Workflowy or Dynalist would be great for lists like these as well.</comment></comment>


Skymall has filed for bankruptcy - <AUTHOR> http://www.usatoday.com/story/todayinthesky/2015/01/23/airline-catalog-skymall-files-for-bankruptcy/22213809/

<comment><USER2> Yet another legacy brand disrupted and destroyed.</comment>