skysight-inc/HackerNews huggingface dataset:
React is for scale, just not the way you think: React is designed to allow lots of journeyman web developers implement parts of a web page together, such that every component can work by itself and that one component's failure does not break other components, allowing pages consisting of multiple components that may have been dynamically assembled from dozens of different authors to work together.

This seems to be a central point that the "I can just do this in CSS/HTML/JS" crowd continually misses. It really doesn't matter that you can do it... It matters that you can dynamically compose your work with hundreds of other people.

IMHO, most expert devs don't meet this bar with pure web tech, but unlike the W3C, I don't blame the webdev for poorly composing solutions, I blame the web standards themselves for poorly defined compositional properties.

But the platform has at least risen to the level where we can define its behavior ourselves. So I think it's healthy for other sources to push innovation because React upped the ante for Web Components and Web Assembly. The W3C will eventually understand the need for composition and isolation at scale, but they would have taken a lot longer to recognize the use-case without a competing concept like React.
Why not start a vendor company? Based on the tech stack you know, you can recruit competent people and sell them as business analysts or consultants for a lot of money. They earn well, you earn just as well. That's the kind of thing I'm currently in. Boss-men were two devs some 15 years ago, threw arms in the air in a 'fuck i quit' moment. Started consulting to their previously built business connections, then recruited people one by one for the different job opportunities that were vacant at their clients.
Isn't the divorce rate ridiculously high?
Those are 2 different things, and usually both are caused by humans.

Desertification is a big problem and it has many human linked causes, large cities change rainfall patterns, deforestation causes soil migration changes the mineral content of the soil and reduces its moisture content and most importantly desertification affects humans as it creeps into arable land increasing the cost of growing crops or in some areas making it almost impossible.

The other problem is the destruction of natural deserts due to buildup of man made structures, agriculture, diversion of water sources, overall climate change (a desert doesn't have to be a "hot" place, many deserts are actually in danger due to rising temperatures which increase rainfall, melt glaciers, or soil locked ice) and many other things.

No one is inventing posteriori arguments and decides arbitrary what is good and what is bad, one environmental change can drastically affect human civilization including costing human lives in the long run, the other is unnecessary destruction or damage to existing natural habitats which do not have much (negative) impact over human civilization or lives but can and should be prevented if not reverted.
This is not different than any other preservation effort, you want bears in the wild, doesn't mean you want them living in the woods just by your house, and it also doesn't mean that you would not shoot them if they come and endanger human lives.
This is the best comment in the thread. And as if tech hiring wasn't bad enough already nearly every company hires with the expectation that you have hands-on professional experience with the framework as if it would take years to jump from Angular to React. If you're comfortable with at least one JavaScript framework, I don't see it taking anyone very long to acquire the knowledge to start working on another.
I feel a little bad that "my" GNU Octave is taking so much of the directed donations. It feels like Mediagoblin, Mailman, or Replicant would be more useful to a larger proportion of people. I wonder why this happens. It's not like we aggressively campaign for donations.
'Chemtrails' not real, say atmospheric science experts
I don't see the author arguing that being open makes software inherently more secure, but that your software shouldn't rely on being 'secure' because it's closed source, rather design the software to be secure even if the source code were to be open-sourced, which may bring additional eyes, (and if not, it's no worse than if it was closed).

I don't know if anyone has a good argument against that, but I didn't see one yet. It's not an argument to say that open-source makes your software bulletproof or even safer just by being open-source, rather if you designed your software with proper security as a goal, you shouldn't mind releasing your code.
> Don't adopt other parts of this stack until you actually really need them and you can go pretty far with just a few concepts.

Redux is very core concept. You'll have to rewrite half of an application, unless you use it from the start. Routing is essential for any serious web site, so you have to implement it one way or another, and not using working libraries looks strange. Same about babel — either use it from the start or rewrite half of code later (or have a mess). Also I think that babel currently the way to process JSX, so unless you avoiding JSX (which would be very strange), you have to use it anyway.

I don't agree, that you can avoid all this stuff, unless you are just learning on throwaway pet projects or willing to reimplement a lot of things which are already have good enough implementation.
The frequency illusion is indeed real but there has been a definite uptick in posts about Gopher here.
Ask HN: Resources for returning to Microsoft's stack
After many years of largely ignoring Microsoft’s platform, I need to refresh my knowledge. I’ve worked on a few .NET and C++ projects on Windows recently, but I’ve mostly focused on Linux and Java.

Does anyone have any non-obvious recommendations for getting up to speed with .NET and Microsoft’s stack/platform (specifically C# and ASP.NET)?
This being the Internet, I'm tempted to say it's a parody.
They were quite clear that they did not want to be associated to free software and were very annoyed and unreceptive to the idea. I can't find the exchange now, but it definitely happened. I think it was over email.
A society dedicated only to the pursuit of some so-called objective physical truth? I don't see how that could ever become a technofascist state!
But much like you say "humans have an impact on what's around them, causing it to change, and eventually that could cause loss of lives", you can also say that for anything at all, can't you? Replace humans with X = bears, trees, anything...
It almost seems, based on TFA's risibly misguided "dumb idea" link to npmjs.com, that the author thinks python's story is better than node/npm's. It's called "separation of concerns", kids, and it's a good thing, that one part of a script doesn't have to worry about what a different part of the script is doing. The fact python never got it to work correctly is python's problem; node handled it from the beginning.
Except Python you can often run from git. Git pull do some pip done.
I re-read this text in full every time it comes back up on HN and never stop to love it.
Six is a third-party library and interferes with migration to Python 3. It requires you to tiptoe around the differences between 2 and 3. 2to3 is built in and does most of the heavy lifting for you. It should be possible to package Python code using the official Python distribution and nothing else.
I did one medium sized SPA in react (using alt.js) last year and wasn't really convinced, maybe i did something wrong but i did not feel the amazing productivity boost that so many people mention. Managing a lot of dependencies of the modules i used for various things like forms, file uploads etc has been painful and in general the module quality felt very alpha in many cases so i ended up reinventing what has already done pretty well in angular in terms of functionality.
Code organization and best practices also wasn't easy to come by because of the many ways of doing things and in the end some solutions felt more like hacks than a solid implementation.
Angular1 is certainly not perfect but i found the whole thing to be much more consistent and Angular2 using Typescript is what i prefer most right now.
That's the same thing we're doing at my company (with the aim of eventually replacing the old platform entirely), and it's working out very well.
We generally started with flow charts, sketching them out on regular paper. Once we were ready to write the code, say in FORTRAN, COBOL, PL/I or assembler, we would write out the code on wide pads of paper that had graph paper like markings so that each character was written in a single box and it was easy to keep track of columns.

Every programmer I ever met punched his or her own cards. Key punch operators did exist but were more often employed to enter data at keypunch machines because data was often fed into computers via large stacks of punched cards. Data was virtually always entered in fixed fields on the 80 column punch cards.

The actual keypunching was done most often, during my time, on the IBM 029 keypunch machine. I actually started out on the IBM 026 keypunch, but the 029 was much more suitable for keypunching programs. (The 026, a 1949 design, had no plus sign or parentheses on their keyboards and required a kind of complicated shift where it took multiple key strokes to punch out the correct holes so that the Hollerith code of holes for the parentheses could be entered.) By the time I got to MIT everyone was using the much better 029.

Operating the 029 required first punching a card to be fitted on the control drum of the machine, it controlled tab stops an some other basic field skipping. One also had to learn how to clear card jams and how to quickly duplicate cards or make minor corrections in a card by duplicating parts of a card while inserting new punches at certain locations.

Once a few hundred or maybe a thousand cards were punched you carefully carried the decks in boxes to be assembled into trays of cards that the mainframe operators would take at a submission window. Then it was time for a break while you waited sometimes even overnight depending on your priority for the results, printed on wide sheets of fan-fold paper with alternating green and white stripes on it.

Careful desk checking of the code was required because turn around time was always several minutes and there were times for me when I would not get my output back for hours. Each bug or even syntax error meant starting over back at the keypunch to fix the error. One's source resided in your box of cards, it didn't remain on the machine after your run, successful or not, completed.
Could you explicate on your end-user deployment workflow a bit? I'm building a game in python and would love to distribute .exes to Windows players
Incorrect. The minimum requirement is a Mac Pro 2010 or higher. I recommended buying a Mac Pro 2012.

- http://osxdaily.com/2016/06/14/macos-sierra-compatibility-li...

- http://www.macworld.co.uk/feature/mac-software/will-my-mac-r...
Work has been done on this:

https://www.youtube.com/watch?v=flOevlA9RyQ

https://www.youtube.com/watch?v=ZaFqvM1IsP8
The code I come back to when I want to see an elegant combination of advanced concepts and exhilaratingly simple code is Peter Norvig's "Paradigms of Artificial Intelligence Programming". While it is common lisp, most of the code stays far away from the more abstract parts of the language (CLOS), and uses macros judiciously.

I think you can get most of the way there by using simple concepts of your programming language (functions, classes), but I feel that concise and simple to understand things are more easily implemented by one or two well chosen macros.

I so often long to have 2 or 3 nice macros to do really tedious stuff in my day job (C++), like:

- dispatching states in a state machine, with logging and safety checking. While I can do most of the logging and a fair amount of sanity checking in C++ with a few ugly macros converting symbols to strings, I can't easily do coverage checking at compile time, which would be very easy to do if i had a "defstate" and a "defevent" macro

- parsing and validating json by pretty much just describing the resulting struct, and letting the compiler do the rest. again, I have a literal army of JSON_STRICT_DECODE_DOUBLE etc... methods, but none of that allows me to generate a protocol documentation at compile time.

Honestly 50% of the boilerplate in the application comes from these two problems (I do embedded programming), but it's a pattern that I have when I was doing web development too. Adding decent logging and error checking is really hard to do save for adding language constructs, and in the kind of down-to-earth programming I do, it's about 80% of what I do as a programmer.
Countries at risk of losing 20-30% or more of their arable land over the next decades are not threatened by reduced profits they are threatened by famine, starvation and huge population shifts.

But this has nothing to do with preservation efforts, if anything preserving dry subhumid and semi-arid natural habitats can prove to be a good barrier to prevent further desertification countries like Israel and Spain have been doing quite a bit of work in those areas.

Wanting to preserve an existing natural environment and habitat to many species is not antithetical to not wanting to lose arable land to needless man caused or at least accelerated desertification.
> No one is inventing posteriori arguments and decides arbitrary what is good and what is bad, one environmental change can drastically affect human civilization including costing human lives in the long run

You completely nailed it. First you say that no one is inventing posteriori arguments, and then you go on to say that "changes can have effects". But, but non-changes can also cost human lives in the long run. However, you CHOOSE to defend non-changes under the (in my view, irrational) belief that the changes might cause loss of lives, even though you are perfectly content with the consequences of the non-changes, which might also cause loss of lives in the long run. Example: "if we had fewer deserts, we would have more arable land, and so food would be cheaper, and so fewer lives would be lost". So we have one argument that says that changing might cause loss of lives and another one that says that not changing might cause loss of lives. Why do you always pick the non-changing? (when I say "you" in the previous phrase, I'm referring to people who call themselves environmentalists, who always make the argument that change might cause loss of lives, and never the opposite, not you personally).
Because it makes life so much more worth living.
Damning words from the man who wanted to nuke Korea
I think your arguments against desertification have some merit. But then what's the argument pro desertification (from people who want to keep deserts desert)? Shouldn't you want to NOT preserve deserts, and instead turn them into arable land? It certainly seems more useful to me.
I understand that this is the intended policy on HN, but I have seen far too many cases where a greyed out/downvoted comment has obviously been downvoted for disagreement to believe that the policy holds in practice.

Maybe there should be an 'are you sure?' prompt on pressing the downvote button reminding users of the policy.
I thought this was about maple syrup. :/
Sorry for my ignorance.
Thanks for that link! Very timely. I have been trying to gain a solid understanding of the java memory model.
there is no such a thing 'environmental concern'. There is only concern for power of some certain individuals. All, I repeat, all environmental protection agencies are political instruments of certain power groups to impose rules on some businesses. This is far wider topic to elaborate it here in detail. When was the last time humanity saved a single species, by restoring its unique habitat and mantaining the balance of energy and materials for ecosystems? For A-B, finance me, I will get you evidence or disapprove myself. But It took me 17 years to understand clearly how these tricks work, and what actually is 'raising environmental awareness'. I myself spent tens of thousands EU taxpayers money to 'save endangered species'. Believe me, after final report NO ONE ever will ask you about the outcome.
Green Lights Forever: Analyzing Security of Traffic Infrastructure (2014) [pdf]
NPM is also a pain in the neck - I've had to wipe out the node_modules folder many times because it got in a bad state when adding dependencies.

Other than that, I agree.
Top 50 Los Angeles Digital Marketing Agencies to Consider
According to wikipedia, neither of them are actually deserts. The Carcross Desert is really a sand dune and the Okanagan Desert is really a shrub-steppe.
conda is way better than plain pip (although it is still compatible with it), and possibly better than NPM. It's just not well known enough yet.
50 stories? Or 50 steps? Because 50 stories sounds like a lot, not something you should be able to do without a lot of endurance training beforehand. At my best I could climb maybe 15 stories without running out of breath.
>Either way, the convenience definitely is definitely not 100 times higher.

The convenience/cost relationship is not linear. Cost of a 500ml bottle of water: $1. Cost of refilling that bottle from the tap: $0.0005. Convenience factor difference: almost definitely not 2000x. Yet people still buy bottled water. Is that a paradox? I don't think so, because people put various values on things like time and mental space occupied which may very well dwarf the absolute cost involved.
Humans are not really subjected to natural selection anymore, we need to really screw up the planet for that to happen and by that time it would be too late.

Nature tends to balance itself out, this is slightly harder to do with humans which have the technology to geoengineer their habitats.

But even if it was so it doesn't matter, no person in their right mind would think it's ok for me to die, and for millions or billions of other people to die just because it's the natural order of things.

And for the most part you can't even hide behind it's a "natural process" because humans are geoengineers we build huge concrete cities, we build dams, we divert rivers, we strip whole mountains and dig the decomposing biomass of our "ancestors" and burn it as fuel.

Bears and trees don't do that.
what are you guys talking about, arms economy? apple has enough cash on hand to buy almost the entire 'industrial complex'. boeing (83 b), general dynamics (46 b), Northrop Grumman (40 b), Lockheed Martin (80 b) - assumes these companies do solely defense work other than selling commercial jet airliners, etc.

if anything, we are living in a phone economy.
Probably people looking at the price of a MATLAB license and then trying to pay back at least some of it...
To be fair, you need a python runtime installed to run python, the same way you need a java runtime installed to run uberjars.

...but, the deployment is a single artifact.

I don't think doing a git clone, followed by a pip install and waiting for all the dependencies to download... and compile... (or not, if you have the wrong system packages installed) really compares.
This is only true because running 1/100th of a second faster than the last person is considered sufficient to set a new world record. Will someone eventually run very slightly faster than Bolt? Probably. But there is no real reason to think that anyone will ever, say, run 100m in 7 seconds. That's pure speculation.

I think the article also underplays the role of training. It's extraordinary how poorly athletes trained even as recently as 50 years ago. This is evident when you look at the performance of lower tier athletes. There are now very many people who can run a 4 minute mile, even though this was an extraordinary feat as recently as 1954. Are they all genetic freaks? Or are they just training more effectively than runners did in the 50s?
"It's saving 90% in launch costs, but we're only passing 30% of the savings along to the customer" doesn't sound very good in a press release.
Here is a Python serverside implementation:

https://github.com/alexcasalboni/sw-delta-python
No discussion of python packaging without mention of conda is complete. It's as good as "apt-get" for Python (and not just for Python, but ... mostly for Python).

http://conda.pydata.org/miniconda.html
An international entity, with representation from all countries, under the guide of international law that is just.

US as a world police is heavily biased to it's own interests, and not to the interests of peace and coexistence.
I've not yet seen a conclusive resolution of the sonoluminescence problem. Have a reference?
Ok, so your argument is to object to my claim that things other than humans can have an impact that leads to loss of lives? I ask this because of your final comment that "bears and trees don't do that".
I'm a phony. Are you?
Yep, I'm doing the same thing to deploy Python apps on Amazon's Elastic Beanstalk... I write an "abstract" app-requirements.txt (which typically just has a single line for my application's own package), create a fresh virtualenv, `pip wheel -r app-requirements.txt` to resolve dependencies and build wheels for all the packages, and finally `pip freeze > pinned-requirements.txt` to create a list of version-pinned packages.

Zip it all up and then deploy with `pip install --no-index --find-links=/path/to/wheels -r pinned-requirements.txt`. Et voila! Binary artifacts that don't suddenly break because PyPI goes down or a package maintainer uploads a new version that unexpectedly deprecates an API that you're using.
I've been using React for a side project for a while. Generally it's been pretty easy to understand the concepts behind it and get productive. A couple of things that have confused/irked me a little:

- Having to figure out babel, browserify and/or webpack before you can write hello world isn't a great first experience. I'm glad to see much of this has been moved to a separate page outside of the getting started guide now.

- The main React page emphasises that JSX is optional. Even looking at the trivial examples, nesting createElement statements looks horrific. Does anyone use this approach in a large-scale project? If your components are fine-grained enough, perhaps it's passable, but it looks far from ideal. Having used other frameworks, even building up a template in JSX in a return statement feels dirty. I see there are some suggestions around on splitting out JSX, but it would be great if this was the default.

- I wasn't really sure what to do with CSS. There's a brief comment on inline-styles at https://facebook.github.io/react/tips/inline-styles.html. For a library for building user interfaces, it seems like this deserves more attention. I would've expected the CSS (styling), javascript (logic and state management) and JSX (layout) to be a little less interwoven.
I don't know what this article is talking about. What is wrong with apt-get install python-something to install the python package called something? Or if it's not in the repositories, you checkout the library to a subdirectory of your project and call `import something` just like you would when apt-getting it.

So honest question, what's this easy_install stuff? Apt has been around since the nineties, just like python, and didn't change much as far as I know.