skysight-inc/HackerNews huggingface dataset:
I currently work at an embedded boards company as (technical) marketing, and using a lot of the boards outside of work too. I'm asking the same things myself too for a long time, and so far I figured about these comments to try to answer (at least in part).

Getting software right is bloody hard work! Especially with ARM where you need to redo a lot of things for every new piece of hardware.

Most companies (and most PMs/engineers) I think perceive boards as the end-products themselves, and any software development after the initial release (and maybe some bug fixes) is more of a burden than value add. This attitude needs to change, because it results in very-very few boards actually being used to their full potential. What good is a great hardware if nobody can make it work? Maybe this will change, but need good thought leaders inside companies to make that happen.

I see that upstreaming is often not considered, or couldn't be done. The quality of code is just awful, because that's not a design goal. Being part of an ecosystem, helping your future self doing a better job (not needing to start from scratch every time if things are upstreamed) is not part of the thinking for many. These things are (or thought to be) outside of the PMs responsibilities.

Resource constraints come in a lot, many companies try to support way too many products, and end up with a level of "barely" making it work, which is good enough for many traditional customers. Doing a good job needs a lot more resources. I remember reading that RPi spent about $5million worth of development on just the Linux support. Can't imagine lot of other companies putting that much into any single product.

And there's a lot of the traditional "trade secret" thinking. Lot of places are more afraid of losing sales doe to being copied than not selling boards because of lack of interest. The main goal is never really "enabling the customer/user" or giving options, but the first thing is protecting the IP because of the thinking stuck with the ways things use to work.

Also, the "software ecosystem" is highly fragmented, all projects rely a lot on volunteers, and require a lot of specialized knowledge. I don't know if it's even possible to bring people together, but whoever would achieve that would do a big service to both sides...

These are just some thoughts, I'm sure not the whole picture (and definitely, definitely do not reflect the opinion of my employer:)
I think this is pretty much what he said in his previous article on pricing going lower.

https://www.project-syndicate.org/commentary/oil-prices-ceil...

Basically saying future pricing will stable at ~$50, anything higher will create opportunity for US Shale Oil companies, anything lower they will not be able to sustain their own economies.

( I actually said something similar / if not the same and got downvoted >< )

Which got me to think, why aren't countries buying lots of cheap oil now and store them somewhere if they know prices will bounce back to $50+ in two years time? Or do setting up the infrastructure cost more then then $15 oil savings.
Revo Uninstaller Pro Crack Serial Key, Keygen Full Free
I offered a solution (patents can only be acquired if you acquire the company that owns them). I'm sure there are others.
There's actually a Windows feature intended to mitigate this, that was added sometime around Server 2003, but it's never turned on by default because of backwards compatibility issues. Look under 'Windows Settings\Security Settings\Software Restriction Policies' in a GPO to see it.
Education and Health are lumped together? These are vastly different.
That is what will happen when kids that were raised by helicopter parents grow up to become lawmakers...
Honestly, at this point, since the JS community seems to have fallen back on just lifting all of the good ideas from the Clojurescript community, why not just go straight to the source and start learning some Clojure?

- You don't need to bring your own persistent data structure lib (ImmutableJS/mori/etc,)

- Don't need to bring a functional utility lib (lodash/ramda/etc)

- The build ecosystem revolves around a really solid piece of software in Leiningen (that has a ridiculously high level of adoption)

- Hot reloading (mainly through Figwheel) is simply magical (it's stable and "just works".) The amount of work to get a hot reloading environment setup and maintained with Webpack and various loaders is way too much, and often involves actual changes to application code to support it, which is unacceptable.

- The language itself is designed from the ground up to be functional

This is just what I can think of off the top of my head after a few glasses of wine, but there's a ton of reasons why we as JS developers should start taking a hard look at Clojurescript again.
It seems reasonable, but at least one study[1] concluded that during peak hours in 2004/5 90% of northbound and 77% of southbound traffic on SR99 entered the viaduct from one of the downtown exits. WSDOT's own analysis from 2011 found almost 50% of the viaducts traffic entering or exiting downtown [2].

To my knowledge there is no plan to improve surface streets to accommodate this traffic.

[1]: http://cnu.civicactions.net/resources/publications/alaskan-w...

[2]: http://www.wsdot.wa.gov/Projects/Viaduct/Faqs
While the Embarcadero freeway was only damaged, resulting in its demolition, the Cypress st viaduct in West Oakland did collapse in the 1989 quake.

https://en.wikipedia.org/wiki/Cypress_Street_Viaduct
I'm having trouble finding the 'solution' you refer to in the video. Mention is made of working on an abstraction layer, but that does nothing to solve the mess that is embedded development.

Lipstick on a pig -- current embedded development ecosystems are fundamentally broken, and can't be fixed by just another abstraction.
That was my thought. If anything the software ecosystem around Arduinos and Raspberry Pis is much improved compared to what came before (e.g. PICs).

Partially it comes down to the constraints you're working under. When everything, program, data, and all has to fit in a few K of RAM, you use "ugly" hacks to make sure that everything fits, while leaving you the maximum amount of space needed for your data. While modern embedded system' capabilities have grown to the point where those practices aren't needed any more, the software development practices for those systems are slower to change.
It's to the point that hardware features on their own aren't really selling points, at least in my opinion. You can have high speed, tons of ram, 10 different buses/ports, and sell it for $10. But if there isn't a healthy user community, and a good bsp, all of that hardware remains highly inaccessible.

It's kind of a roller coaster of emotions. You can go from feeling like a wizard because of all of the shoulders you stand on for very little effort, to feeling like a dunce, because some driver doesn't work, and you have no idea how to go about implementing a solution.
Bundling JS files into one big file is obviated by http2.
The answer is that the interests of the creators of the chips powering these boards generally aren't aligned with non-commercial developers. So if you're a "hobbyist" you are not relevant.

Interestingly from the Commercial side, it is very different. If you've got a single board computer as part of your product and you are a going concern with the necessary legal NDAs and what not in place, the manufacturer will send one of their engineers to sit in your cube an pair program with you until your system is running the way you want. They will create custom releases of their binary blobs that do the things you need them to do in order to make you successful. That is so that your product ships and you start ordering a million a month of their product.

On the flip side there aren't too many really "open" SoCs, not like the old days where the data sheets told you everything. So things are a bit more challenging. I had hopes for the Zync series from Xilinx as they had the potential to be the basis for a good "common processor" base, a dual ARM 9 enough FPGA fabric to make a classic frame buffer, etc. But the number of people who want that sort of system is measured in the thousands, not the millions. No way to make a living at it, no way to sell it for what it would cost to support.

Intel has been bending over a lot however in order to try to take share from ARM. So they will talk to hobbyists about their smallest computers. The Galileo, compute stick, what have you. So there is an opportunity there, for the moment they are aligned with anyone trying to give them exposure.
The Curious Case of the Phantom Instance
Considering that the article was written before the talk I'm not sure the talk can be considered the primary source.
Don't take this the wrong way - I mean this with the most respect possible.

You shouldn't be recommending software to anyone.
I'm basically saying this. At work we've started to move from Ember to React over a year and a half ago, directly because of the work David Nolen has done in the space. And now we have Redux wrapping an Immutable.js map, and are trying to piece together the rest of the stack that is om.next. It would be wayyyyyyy easier and better and less hacky to just write clojurescript. Getting people on board is sadly super difficult
Things should remain backward compatible but only for a very short window, it's really unhelpful to have many many different ways of doing the same thing, it fragments everything including the learning curve. Witness Perl.

Sounds like a terrible way to build commercial software.

The problem isn't that old things don't die away quickly - far from it - the problem is that we have too many new things coming in that keep changing every few days.

I'm building a 10k line coffeescript app that works on top of react.
All I care about is getting a toolchain to compile the coffeescript and generate source maps.

I don't care about dicking around with npm and node and grunt other than to make the build process work.

Tell me why I should care about grunt or gulp or webpack?

React introduces a massive win over traditional ways of building UIs that makes learning how to write apps with it worth learning. Why should I care about learning grunt and then learning gulp and then learning webpack, when all I'm using it for is to compile my coffeescript?

If I could get away with a Makefile, I probably would.
You still have the round-trip time for each level of dependencies if they're resolved on the client, at the very least. And a real-world performance comparison where the recursive dependencies are listed up front but sent in separate requests shows unbundling losing:

http://engineering.khanacademy.org/posts/js-packaging-http2....
Reminds me of Gaiman's "Why Defend Freedom of Icky Speech" http://journal.neilgaiman.com/2008/12/why-defend-freedom-of-...
The problem is most embedded devices don't run Linux. They typically run a per-soc (or even per-board) fork of Linux, often dependant on fixed versions of binary blobs loaded from userspace.

And that's assuming you can boot the damn thing without magic incantations and smearing lamb's blood on the correct pins of the SoC.
I'm one of those people who say that almost all people in America have it really good, and everyone should stop complaining. I'm trying to understand why I'm wrong about the following:

- Most people in America are struggling

- Most people outside America are struggling much, much more, to a degree not fathomable by Americans.

- Therefore, people in America should acknowledge they have it really good and stop complaining.
I was terribly confused because I thought this was referring to Post's Correspondence Principle: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.380....

This concerns instead the Post Correspondence Problem: https://en.wikipedia.org/wiki/Post_correspondence_problem

Surprising namespace clash!
You take the struggles of a beginner as an indictment on the broader professional JS development community?
This is probably one of my biggest gripes. Our CTO/PMs are like "you weren't able to containerize and get our app autoscaling in a few days? I don't get it? How long will it take? While you're at it, can you implement kinesis/lambda/microservices for the parts of our app that are taking more than 3000ms?"

Me: "I just said I was interested in DevOps and would like to give it a shot, I don't know how long it'll take, I'm working on it."
If ISIS didn't exist, some government agency would have to create it.
I believe (and hope) this is not representative of the JS community.
I agree that good science often doesn't get recognized because it happens to rub some established scientists the wrong way.

However, the issue with Theranos is the opposite: it is getting recognized, even though we don't know whether it's good science or not, because there isn't any visibility into what they do and how they do it. The scientists you mention all published their work for the world to see; they didn't hide behind "trade secrets".

> The belief that modern healthcare is nothing but the application of science is also romantic and misguided.

I agree with this too; but again I don't see how it applies to Theranos, because they are explicitly claming that what they are doing is science. So they should be judged by scientific standards, even if the rest of the health care industry can't live up to those standards.
"Hipsters all look alike because we have defined hipster as people having a specific look."
When the men want to be funny – The Emporialist
Is it just the hipsters that are the conformists? It seems like many of that generation are somewhat more conformist than I'm comfortable with.
To clarify:

Senator Sanders is not the author of the article. Also, when I read the article there were no quotes at all from the senator.

Hacker News: Your Facebook post linking to this article has a misleading title.
I do not think any way of doing things should be killed. People should educate themselves to be able to choose the tool they feel comfortable to do what they need. It is simply as that. If the old tools work and you like them, use them. If you are a beginner and do not know what tools you should use it is your problem. I agree that the things could be better but I think that this idea of making everything super easy for beginners is not a thing we should always focus first. I do not meant to sound harsh but I do not know if things could be much better considering all the things happening with JS on the last years.
>> not trolls, but are small businesses that actually are developing technology.

While I admit that they are lots of such valid entities, by volume of lawsuits, most seem to be trolls who are developing nothing. Either they did so once upon a time (ie before the internet) or they have purchased some seemingly worthless patents for pennies and now wield them as if they were actual innovators rather than professional plaintiffs.
Stars and bars
The text of the Facebook post that links to this thread still needs to be updated.

Thank you for your alertness.
You can download all the programming books you'll ever need for free with bittorrent. Its like Frank Zappa once said, "If you want to get laid, go to college. If you want an education, go to the library."
The "separation" between your business logic and your view logic is really better thought of as a decoupling.

Let's say for example that your application is a game of solitaire. Rendering the cards is a view concern. Interpreting UI events as game actions is a view concern. Accepting or rejecting those game actions is business concern. Animating that acceptance or rejection is a view concern. Persisting or restoring your moves or game state to an API is a business concern with some networking glued to the side of it.

That's sort of a trivial example, but the event catalog for your application might look like this:

name: GAME_STATE, payload: A JSON representation of the card stacks

name: PLEASE_MOVE, payload: A representation of an attempted move

name: MOVE_REJECTED, payload: The card that tried to make an illegal move

A move event would result in a new state event or a rejection event. Your rendering components don't need to know how that happens or who controls the state. Your core components don't need to know if this game is being played on a server or a browser. Your move events might come from a swarm of multiple players. An analytics component can listen to the bus and fire off things that it's looking for.
I think another big reason is that, compared to desktop and web based software, embedded applications are almost always completely custom. There are common hardware specs on every PC, and three big operating systems. So you end up having huge developer communities that build all kinds of utilities, tools, and other building blocks that you can easily reuse. Usually embedded systems have a fairly simple operating system, and custom hardware, which means there isn't much reusable code, and it's up to the developer to provide a much larger portion of the functionality.
> Physicians groups, insurance companies and biomedical ethics groups aren't really hip to this idea because patient self-testing bloodwork may open pandoras box to a lot of unnecessary expenses, especially if the patient is trying to bill this through their insurance.

Yes, and this concern is justified. If I have to pay for your lab tests, I'm not going to let you just decide to run whatever tests you want. That would be foolish.

The solution to this is to allow people to order their own tests if they pay for them themselves. A company like Theranos could then profit by making tests cheap enough for ordinary people to afford them, which would bring much-needed competition to the health care testing industry. But first they need to be able to show everyone, by ironclad evidence, that their tests are reliable.
Damn - whenever I read the React documentation I have to filter out all the irrelevant code that is not ES2015. Why is all that non-ES2015 code there still?

Because browsers don't fully support ES2015 yet? not everyone wants to use/learn new buggy transpilers, new build tools, add more boilerplate, etc..
Sorry. It was working when I posted it, but it doesn't seem to be working anymore.

Try : http://octopuslabs.io/legend/blog/sample-page.html
I'm sorry you feel that way.

I know a huge amount about software development and work with a wide range of technologies.

Learning some completely new field like browser based development is best done by just jumping in and trying to make stuff work. You learn along the way and much of it will be unfamiliar. Over time things will become more and more familiar until you start to develop expertise across the entire field.

If you are suggesting that instead I should learn by sitting down for six months in an ivory tower and learn all the theory and function of every part of the software ecosystem that I plan to work with so that I can then take every step of my journey as an expert, then you are misguided.

All software developers live in a fog of ignorance which they work to push back. No one knows everything. The best way to push back the fog of igorance is to start working with the technology to get real stuff done. To do so, it is necessary to make pragmatic decisions such as "well it looks like everyone in this field is using technology X - so that's what I'll use until I know enough to decide otherwise".

Are you someone with a deep knowledge of JS and react development? If yes, did you step in to it as an expert in all things? Did you use things without knowing why? Of course you did. Everyone has to.