skysight-inc/HackerNews huggingface dataset:
Ask HN: How to properly unit-test for embedded system application?
I worked in a startup that builds embedded system, but they didn't have proper way of doing unit testing in my opinion. What we did was writing some testing code, and check the output on a USB serial terminal. We didn't have any automated test. For sensors, we check if outputs are what we expect. For motors, we do position control, so we plot the trajectories to see if the controller is tracking well. We had FSM in the system, and we manually input to make state transitions. Is this the right approach for doing tests or unit-tests on embedded systems? What are some resources to learn the proper way of doing tests?
Is this something only for people who want to start writing, and need to start building the habit to put in time every day? Or can it also be useful for people who already write?

The main issue that pops out to me is that people who write have projects (sometimes several, sometimes massive ones), and "writing" daily sometimes means much more editing/cutting than writing fresh text (I'm married to a novelist; her first book lost about five hundred pages between the first "completed" draft and the final result). Or -- writing may mean composing new text, but it's placed somewhere in a much larger work.

Last thought! Be very careful about having ability to export from the start, and be very sure you don't run out of time / hosting fees / whatever and let it die with anyone's work trapped in it.
What percentage of the CS research based on any data at all? It is mostly purely theoretical. Still, it would be nice if they published their proofs as a Coq code.
Gets me thinking about how much of past centuries violence is still here but channeled and diffused through dissuasion and heavy armory like these subs.
We're working on this exact problem at Empirical http://empiricalci.com

We're building a way for CS researchers to run, share and compare experiments including their whole research environment.

We just applied to Apply HN and would appreciate your feedback:
https://news.ycombinator.com/item?id=11586948
I agree with your assessment of the Nest. The number of times I've wanted to turn the heat on or off when I'm not at home is exactly zero.

I've got a manually-programmable Honeywell and it's been working fine for over five years. Apart from the very occasional adjustments (daylight saving time, resetting the furnace filter reminder, and replacing batteries) it needs very little care and feeding.
RSU's are sold at vest to cover taxes.
Actually, nowadays even some parts of digital designs are full custom, meaning that they are designed manually at the silicon level. This is usually the case with circuits that require high performance, such as adders, multipliers, etc.

Also, you forgot to mention that memory is simply not synthesizable, so on-chip cache for example needs to have a full layout from scratch.

Keep in mind that this is the case for Intel and not ARM. The latter uses standard cells, which means it's basically all synthesized.

Source: my professor.
I think you're conflating a very narrow slice of CS (theoretical computer science) with the larger field. There's a huge amount of CS research that relies on gathering and analyzing data, building systems, etc. Theoretical computer science is actually a very small slice of the research pie.
> He is asking that researchers produce code that he can put into production.

That's not how I read his comments at all.

What he seems to be asking for is the ability to take the code you used to produce the pretty graphs and tables in your paper and re-run it, maybe tweak it himself and use it on a slightly different dataset. He wants to be able to see that your results extend to more than just the toy synthetic dataset you made up, and also be able to verify that some bug in your verification code didn't make the results seem more successful. Finally, he wants to be able to compare apples-to-apples by knowing all the details of your procedure that you didn't bother putting into the paper.

(Impersonal you, of course)
There's evidence on experiments with mice that they inherit their parent's fears epigenetically.

http://phenomena.nationalgeographic.com/2013/11/15/mice-inhe...
Artyom and Oleg Founders of Serpstat Keyword Research Tool
I don't quite understand how Safari's third-party cookie blocking works :( According to the link I posted it's more relaxed than Chrome/Firefox's third-party cookie blocking, so some cookies are allowed. But how is that decided?

Theoretical possibility then:

You still use that personal email in the same browser? That means you visit Yahoo website, which can set some cookies identifying you, including third-party ones (advertising/tracking), if those are not blocked by Safari. The same tracking cookies can be used by Tradesy, so that site can tie your visit to your Yahoo identity.
Many people are naturally scared of spiders and snakes. Some evolutionary psychologists like Dr. Paul Ekman claim that some fears like these are coded into our genetics because of the many of our ancestors before us who were killed by them.
I'd say the opposite as a member of a group at my university who review
ML papers. First off right now there seems to be a drive to explain many phenomena in ML in particular why neural networks are good at what they do. A large body of them reaches a point of basically "they are good at modeling functions that they are good at modeling". The other type of papers that you see, is researchers drinking the group theory kool-aid and trying to explain everything through that. At one point we got 4 papers from 4 different groups that tried to do exactly that. All of them are flawed, either in their mathematics or assumptions (that will most likely never be true, like assumptions of linearity and your data sey being on a manifold). Actually speaking of math, many papers try to use very high level mathematics (functional analysis with homotopy theory) to essentially hide their errors as nobody bothers to verify it.
Honestly I don’t know why some people look at these pictures, especially when they could be getting better at the game. No wonder 90% of people stay at BRONZE level while the big boys-including me, rank up and get DIAMOND level.

It wasn't hard once I started using this: http://gamesinfun.com/league-of-legends
You disagree in terms of diction. It was an analogy, after all. History doesn't repeat itself. It rhymes.

Do you actually support the practice from an ethical standpoint? Employees are recruited to start-ups with equity. That's a core part of their compensation for their work (for which they likely could have received more salary from Google, Amazon, Facebook, etc). Then after they've already done the work, that compensation can be taken from them if they leave the company.

Do you feel this behavior is ethical?
Pyra Linux Handheld Computer Now Available for Preorder
RE: V2V, I'd like to see that car ahead of mine tell mine "hey, from my pov, there are people approaching, you'll detect them in five seconds --slow down as precaution. Same thing for things like black ice or object in the middle of the freeway.
Not going to college right away after high school.

I wanted to be a trombone player in a major US symphony but realized that while I could be accepted by many good schools, I wasn't good enough to get accepted into the "greats" (e.g. Julliard, Curtis, etc). I decided instead to join the Marines and became a Marine musician (the military is one of the largest employers of musicians in the US). I am very lucky to have made that choice for a number of reasons, but ultimately it made me realize that I didn't love music as much as I thought.

The military isn't for everyone, but I recommend everyone give it some serious consideration. In addition to the altruistic reasons to join there many great benefits for when you get out. Mine include

1) Learning my original life-plan for after high school wasn't a good fit for me (while getting paid to make that realization).

2) Getting college paid for (with some scholarships I was able to stretch the GI bill into nearly 5 years and got a Math/CS double major.

3) This is the big one: I live in San Diego (a "military friendly town") and having military experience won't guarantee you a job, but many employers here will at least talk to you and give you a chance to make an impression beyond your resume.

A big negative (besides the possibility of risk to life/limb/mental health) is that you give up the "traditional" college experience. It may take some extra time to find where you fit in when/if you do decide to go back to school. However, that's probably true for anybody who delays college for more than a year or two.
I don't know if anyone can see this (even with showdead) but i just want to say that I didn't so this to promote the applyhn or anything (there was no link or even a passing reference). The original piece is 3,500 words and takes 20 minutes to read. I just thought a TLDR would help a lot of people. I have mailed dang to clear that.
Do you need that level of complexity if you simply slow down because the vehicle in front of you that detected pedestrians slows down?
It'd be nice but they probably won't for the same reasons they don't provide feedback to real YCF or YC applications.
There are other issues right now, like impartiality and bought research, like Microsoft at Cambridge University.

I recall the professors at our uni treating the undergrads with contempt as wasting their precious lucrative research time.
Ted Cruz for Human President
The lack of interlocks really surprised me, although the name said so. The CDC 6600 had them two decades earlier. We always carefully scheduled our instructions flows, but it was nice to know that the hardware would catch our goofs.
Junior Front end Development weekly link sharing #10
The VC4 GPU is a lot worse than microcode! It's running the complete (proprietary) ThreadX operating system, regardless of what you choose to run on the ARM core.
I assume you have read http://okmij.org/ftp/continuations/against-callcc.html
I wish people would just spell out month names and use 4 digit years. Then you can use any order and it stays unambiguous.
Yup, this is precisely how the HASP emulators work. You plug them in and they install a filter driver that sits between the app and the driver and listens to all the challenge/response pairs. Once you're done, the filter driver can just playback the responses and you can remove the dongle. This technique works because the dongle basically works like this [0] :

dongle(challenge:UInt8[4]) -> Response:UInt8[4] {
return do_some_sekret_bit_shifts(challenge)
}

When you implement the protection scheme, you are advised by the manual to use a small number of hard coded challenges for which you know the response ahead of time, which is what most people did. No API was provided to compute challenge responses without sending them to the dongle (that would reveal the sekret sauce[1]). There is of course no reason that you couldn't just pull the 4 LSBs off the clock every now and then and submit them to the dongle and store the result to be used later which defeats this type of emulation as the C/R pairs vary across sessions. For some reason most implementations didn't. I guess programmers don't like dongles much more than users.

There are some families of dongles (and some implementation patterns) that are way more complicated than this, but essentially the threat model they are designed for is 'people who don't have a dongle'

[0] I might be misremembering the size, but this was definitely a common pattern for several families of dongle.

[1] IIRC there were a few models of some lines for which the implementation of 'do_some_sekret_bit_shifts' was known or discovered enabling full emulation, but I can't recall which ones off the top of my head.
Right, I am interested in whether they would do this during the lockup period. It would seem that if employees were contractually obligated to hold their positions, selling to cover taxes wouldn't be allowed.
We are indeed hitting the end of Moore's law.

The companies that provide IP are watching the market splitting into two: the companies that want the latest process node to show off technology (for example, Apple, Samsung, Huawei, etc) and the companies that want older but stable process nodes (IoT companies and the automotive industry).

When most of the articles speak of the newest process nodes (for example, the 5nm process node) they only touch the economics part of it: "it's expensive, it's costly". But they don't mention the many problems that come with it: it's unstable, there is much more current leakage which increases power consumption unexpectedly, it is not suitable for long longevity and the architecture of your analog blocks have to take into account all these problems which don't exist in the older process nodes.

It is possible to produce solutions in 5 nm, but the question is no longer about if we can do it or not. The downsides os these nodes go beyond the engineering resources and the economic resources that are needed to achieve them.

That is why the automotive industry is not interesting in these kind of nodes. They want the stable and cheap nodes like 28nm and 40nm, they know that these nodes are well tested and have long longevity.

We are also reaching a point in which we already have enough advanced technology for our needs, we need to start to get rid of the need of reaching the next process node in order to have better hardware.
There's no single answer here. First, Moore's law is about the density of the least cost process doubling every N months (N changed over time ;). So cost is a key part of Moore's law.

When you talk about cost, there are fixed NRE paid once per chip design, and then marginal cost per transistor (just including production). To get the full view, it's logical to consider a "fully loaded" cost per transistor, where you also amortize the fixed NRE expense taking into account the expected number of produces chips for a given design.

And that's where the increasing NREs bite and make a difference. Even when the marginal production cost per transistor decreases, to benefit from that cost decrease one must have sufficient chip production volume to amortize the NRE and still benefit from a cost decrease. With exploding NREs on more advanced nodes, this requires ever higher volume production to benefit from lower costs on more advanced nodes.

At this stage, if you're a medium chip vendor Moore's law is already over --- because with small volume the NRE leads to an increase in total cost per transistor for newer processes. Vendors like Broadcom and NVidia complained publicly about the end of Moore's law, so we're not talking small volume either.

For very large volumes, it may still be going on. But that's hard to tell. At some point, the cost may go up even for the biggest (Apple, Intel, Qualcomm) but they may still push forward a bit for improved performance --- meaning higher power efficiency --- as long as there are enough people willing to pay for it. It's no longer Moore's law (where you get more for less money), but it's still moving onto more advanced processes. Still, even assuming enough people are willing to pay more for improved performance (a big assumption IMHO) there are quite formidable challenges ahead.
I think this area is controlled by a 2-3 big companies so it depends how they enable and accept startups. Building all the tools is very challenging - very large investments, maybe in the billions.
It is not. Your comment confuses the median with the mean latency. The comment you replied to did not mention using averages - it mentioned only using the median. You introduced scathing critique of using averages when those are only used for means and therefore totally irrelevant here (even if I totally agree that people that use them should be educated. But that wasn't the case here).
Completely agree on the early/late Plato stuff. I took a Nietzsche class during my degree. Although he has a reputation as a cliche/hipster philosopher it's really interesting to read his early, middle, and late works just to see the evolution of his thinking. Personally I am more a fan of his earlier stuff, particularly Birth of Tragedy.
This article is an elaborate dance around a very simple and obvious point: for any given discovery, only one person can ever get the credit for discovering it for the first time, which means there's a huge first-mover advantage at the frontiers of knowledge. It's not at all surprising, therefore, that most of the "great philosophers" are dead. (We're actually living at a rare moment in history where many of the people at the forefront of a major technological revolution are still alive.)
I am surprised and relieved at the abundance of other 35-give-or-take folks reacting positively to this article. It was a tough read but somehow funny and true at the same time. As I rapidly approach 40, I find myself going through a similar series of midlife, nihilistic trends of thinking.

Though I bet the author would disagree (as this piece seems a lot like an attempt at Explaining Everything -- therefore, how can you refute it?), I think this kind of thinking is largely driven by unprecedented inequality and the apparent reality that we are on the brink of destroying the planet.
The middle out Compression company
This is why I believe NixOS is so important. It allows one to completely freeze the entire development environment on one hand, but also does so in a declarative, well abstracted manner (vs VM image let's say) so tweaking/porting is actually feasible.

Until well get to a point where building/installing/administrating is not hours of bullshit, research (and free software) will suffer.
I'm not a Trump supporter (I feel like it's odd that I need to label myself as such thou) but this article is clearly biased against conservatives (and Trump in particular). As mentioned by another poster, unless there is indiscriminate selection of statements being fact-checked, than the data is little more than infotainment or worse, intellectually dishonest reporting trying to masquerade as some form of scientific reporting.

I'd also point out that while a misinformed public is bad, the main-stream-media becoming more and more overt with their biases to justify skewed reporting is fanning the flames of mistrust in the media and large institutions in general. The boy who cried wolf here is a very fitting analogy, when the media wants to report something important, and then proceed to report it straight, there is a large amount of the public which will assume there is a hidden agenda, regardless of the supporting facts. I personally believe this was one of the reasons it took so long for the country's opinion on climate change to beign shifting.
SSH for Fun and Profit
But what company would actually answer "no" to that on a job posting? The companies with long hours would just omit their answer. Or they might lie, rationalizing to themselves "well, we don't always have long hours". So asking in the instructions that companies answer won't do candidates any good.
Appreciate it was written as tongue in cheek, but I am glad that today a developer can start with Go, test, write code, build, deploy all with Go, whereas nearly every other ecosystem requires additional tools, often external competing tools. Then life becomes about having to learn whole new toolbekt before even coding.

Go still keeps it lean, and is great.

The fact it does not have hipster dev approved status is also an added bonus. The minute we see a bloated testing suite with yet another DSL, for Go, we are in trouble.
Yes, of course that the Place&Route part requires some work at the layout level, but it's not like you are going to place your transistors by hand after the synthesis tool produces a netlist.
I actually don't, and you're reacting to the use of "averaging" as a verb. That's why I encouraged you to reread. When you're discarding 50% of the samples in a 50th percentile median, I think "averaging" is an acceptable verb to proxy the situation in English since "medianing" isn't a word. I could have said "computing the median," but that's just tedious.

Notice later in the comment I say average/median, implying that they are separate but related concepts. I think it's safe to assume that someone who can conversationally use the word "quantile" is not confusing median with mean. You're assuming that my (intentional) selection of a lower-fidelity term to describe a concept, which I carefully illustrated with ancillary points to give specificity to said concept, demonstrates a misunderstanding of the very field I'm explaining. That is pretty obviously wrong and a bit condescending.

We agree, which is what's frustrating. You're just latching on to a pedantic correction of my point, and rather than belabor that correction I encouraged you to reread to see that we do actually agree. Now, I do see average latency far more often than I'd care to admit, which is why I got lazy and just said "average" at the end there once I started referring to generality instead of specificity, but I think it's pretty clear that I understand the distinction regardless.
> reproduce the code -- ideally, from scratch, so that his results are (hopefully) unaffected by authors' bugs

This rests on a common false assumption that programmers make: they think it's easier to write bug-free code when starting from scratch. The reality is that it's almost always easier to start with something that's nearly working and find and fix the bugs.

What really happens when you do a clean room reproduction is that you end up with two buggy programs that have non-overlapping sets of bugs, and you spend most of the effort trying to figure out why they don't match up. It's a dumb way to write software when it can be otherwise avoided.
I think he meant this:

https://lkml.org/lkml/2015/9/3/428

(It's Torvalds on a bug made harder to spot by using array arguments in C, which you shouldn't do.)
love it, thx!
4. Assemble

5. Load into assembly debugger

6. Learn

There is "C", the language, which can be relatively simple. Or hopelessly opaque depending on the author.

I think of C the language as just a shorthand for assembly. Only because that's how I use it.

http://www.lysator.liu.se/c/bwk-tutor.html

But then there is "C" in practice: the specifications, the "standard" libraries, preprocessors, Makefiles, autoconf, etc.
I would extrapolate that to all of academia. If you want to work on something that's useful, insightful and will make the world a better place, the ivory tower of academia is great if you want to live in denial in an echo chamber.
The other answers provided plenty of info on Go, so if you're looking for a new language and framework for web dev I suggest checking out elixir and Phoenix. They're inspired by ruby/rails (without some of the problems) and have many of the benefits of erlang.
The UK government is one of the most pro-TTIP in the EU, unfortunately.
Yes, many do release code, and it is a great thing! But not everyone's research is represented by code (even within CS). Sometimes research also depends on data that cannot be shared publicly, obscure user interfaces, commercial libraries, includes yet to be published work, etc. In those cases, pushing out without the dependecies may also give the impression of poor research, because it appears to be broken.
Interesting. Could you please give more accurate examples, and maybe a rough breakdown between masks/tools/front-end/back-end ?
A game is something one plays to entertain themselves. It typically involves goals and a framework for understanding progress.

'Tricking' people into playing games could provide structure to their lives, and/or orient their potential towards something constructive for society.
The Flaw in All Things