skysight-inc/HackerNews huggingface dataset:
I've never actually done hardware design. I last looked at it a few years ago and it seemed really confusing.

What I really want is an FPGA on a board like the Raspberry Pi, where I can just plug in USB, network and power, copy-paste some code from a tutorial, have it run, and start learning HDL from that point.

I want to be able to develop an FPGA program that can maybe do a specific bitwise computation faster than a CPU or GPU (like SHA hashes for bitcoin mining, but this is just one example) and send inputs and outputs back and forth with a regular computer. Without also having to design and solder my own circuit board in order to do it.

It seems, though, like as soon as you say the word "FPGA," people automatically assume you have a ton of experience and equipment for building your own circuit boards. Which I really don't. And learning this on the same project learning HDL seems like it would really make things kinda hard. "It doesn't work" could mean anything from a solder blob shorting two wires, to some screw-up earlier in the process having destroyed a component and now it'll never work even if you do the rest of it correctly (and you have to increase your budget to replace the now-fried chip), to a failure to understand something about HDL, to some electromagnetic bug in the design of the circuit (like "you need a capacitor here, you need an inductor there, your resistor is 100x too big or too small")...a bug in the HDL of course...or it could be a bug in the USB interface hardware/software I made on the board...or in the custom USB driver I wrote (I've also never actually written a hardware driver before) running on the general-purpose computer...In short, it seems like, to get started teaching yourself hardware design, you have to have approximately one university degree worth of hardware design knowledge already.

Learning HDL, I want to be able to eliminate all of the above sources of error but "if it doesn't work, it must be a bug in my HDL code."

Bootstrapping software programming through self-learning is easy enough that probably at least tens of thousands of middle and high school kids do it on their own every year (I was one of them). Bootstrapping GPU programming is a little harder but still seems doable (I haven't actually done more than dabbling, though). Bootstrapping FPGA should be just as easy, but it isn't.

I haven't been able to find what hardware I should buy to do this, and I haven't even been able to figure out what search terms I should be using. It's been a few years since I looked, though, so maybe I should look again.
35% off Coupon of Any Magazine Premium Theme
Java was a colossal failure...JavaScript is succeeding because it works
As others have pointed out, the example is a less defensible choice since the type has already been specialized. Polymorphic types (quantified theorems) begin to greatly restrict the number of programs (proofs) down to the point where you sometimes get "free theorems" such as those discovered by Djinn. For instance

foo :: forall a b. a -> b -> a

is inhabited by precisely one program

foo a b = a

Furthermore, you have the opposite effect such as the nonexistence of functions with types like

freeCoerce :: forall a b. a -> b

The best you can do is write

safeCoerce :: forall a b. a -> Maybe b

which sometimes works but is allowed to fail if the coercion isn't possible.

---

Taking this to a logical extreme you can extend a Hindley-Milner type system to include dependent types and then construct meaningful types (theorems) which are only inhabited by correct and obvious programs. For instance, this Agda type

sort : List a -> Sorted a

maps lists not just to other lists but instead the type of sorted lists guaranteeing the meaning of the function 'sort'.

---

Obviously any static typing system inherits a bit of this power. There's no doubt that reading the signature of a C++ function will help you to make educated guesses at what's going on. Furthermore, a malicious Haskell library implementor could use the "unsafe" family of functions to create something like 'coerce' or a function that has impure side-effects but doesn't end up in the IO monad. There is some amount of trust that libraries do not abuse such unsafe commands and the IO monad can be guaranteed to isolate impure effects---but so long as that isn't violated, the types can be incredibly informative.

---

It's also worth noting that Haskell does have "bottom" inhabiting every type, similar to null but denoting infinite loops instead of null values. So you actually can write coerce without using 'unsafe' commands like

coerce :: a -> b
coerce _ = let bot = bot in bot
What other time source would you propose using?
Foundation is based on SASS.
I'm amazed by how many of the comments here are missing the point entirely.

It's not about the money. It's about privacy.

When Google offered a good email service free of charge, I took them up on it. That does not mean that I would be even remotely okay with them re-writing their privacy agreement to they could start selling my personal emails to corporations or people willing to pay. If that day came, I absolutely would want to sue. Since it would be nearly hopeless to take on a company with the resources of Google on my own, a class action lawsuit would be an attractive option.

The fact that a service is provided for free is completely unrelated to obligations regarding privacy. Some here might ask, how does the service make money? Figuring that out is the responsibility of the owners, not the customers.
What have you got experience in beforehand? What are your interests? What technologies are you skilled in & which you want to be skilled in? Are you looking to found your own company, or get a job at one?

The answers should guide the company you choose, not emailing the latest hot company on HN.
Couple of points -
Yes, pumps give better control, yes it would be a lot better if it were a closed loop system between a continous monitor and a pump with a human confirmation point with suggested actions. We are a little way off that being supported by insurance/healthcare systems as cost effective, so really I am talking about the table as it is set up right now.

There are a number of biological factors that can make a difference, but for type 1 diabetics, the point should be that you know the ratio of carbohydrates eaten to insulin to take. This can vary, but good data helps you get the ratio right. It can also identify if you have high glucose points that match your circadian rhythm, or if you're becoming hypoglycaemic at a certain point regularly and just haven't mentally joined the dots.

Now, yes, you could do all of this through a log book on paper. I could sit down for a half hour each month and look for trends. But, I take readings on a device with digitised output between 4 and 8 times per day. I don't want to have to go analogue with that, I essentially want the blood glucose equivalent of google analytics. I can account for unusual variations (cycled for 10 miles/got blind drunk/etc.) much better if I have a dataset that demonstrates what the benchmark should be.
>I find quite the opposite: The more things I do, and the more productive I am, the more rapidly things get added to my todo list. It's when I'm less productive that my todo lists stay short.

this is also what I find.

Another interesting bit is that I seem to actually finish between 10% and 33% of the tasks I plan to have finished by a certain date. This percentage completed doesn't seem to vary much between the times when I get a whole lot done, and the times when I get very little done.

I mean, I think my 'level of irrational optimism' remains fairly constant. I believe myself to be between 3x and 10x better than I actually am, and while within that range my error band is pretty random, it rarely steps outside of that range, even though I have weeks where I easily accomplish 100x what I would accomplish in my worst working week.

(I'm only counting time when I'm actually attempting to be productive. It's not fair to compare my "productivity" while working to "productivity" during vacation unless you want to introduce some very difficult to quantify variables.)
This is a fantastic idea. It's interesting that they are starting by making it available to people going into primary care, though, for which the final two years will be most useful.

My specialist physician friends say that they basically restarted their training in residency. In particular, I have pathologist friends who say they almost never use knowledge from their clinical rotations in medical school, and might as well just not have done them.
cp /usr/bin/grep ack

Find the needles

./ack needle haystack

Find the silver needles

./ack silver.*needle

Find all needles except lead ones

./ack '[^^][^e.][^a.][^d.] needle' haystack

That last one could be tricky if there's other types of needles with names like "ead needle" or "mead needle". But using the haystack he gives us BRE can do the job, easily.

Perl regex may be easy to use but they are inferior from a performance perspective. As someone else said, they're slower than BRE or ERE. Moreover, even if speed is not an issue, you pay a price in the amount of memory you will need compared with line-based utilities like, e.g., sed and awk.

Find the needles

sed '/needle/!d;/needle/q' haystack

Find the silver needles

sed '/silver needle/!d;/silver needle/q' haystack

Find all needles except lead ones

sed '/lead needle/d;/needle/!d/needle/q' haystack

My preference is to use (f)lex if I want a fast "parser" (scanner). Its regex is more than adequate.
Pledge £350 or more Text link on the VLC for Windows 8 website for 1 month and your (company's) name in the list of Silver sponsors within the application.

Are these going to be no-follows? Otherwise, isn't that to some extent selling a link back?
Your claim that it is over-engineered is unsubstantiated, and from a Haskell user's point of view, plainly false.

The claim that the notation is unreadable is similar.

Haskell's notation is certainly unfamiliar, and that can be frustrating (as all unfamiliar notations are), but it is one of the best designed ones out there.

As for the question: Why learn the type system? Because it helps you encode your program's invariants as types -- allowing them to be verified cheaply and repeatedly by an automated prover (the type checker), rather than being documented and checked by expensive tests.

They are also documentation you can rely on, as it is guaranteed to stay in sync with the program. It means you can get up to speed with other's code much quicker.

They also restrict code in useful ways, encouraging code that is more concurrency-friendly, simpler, and generally better.
I'm guessing you didn't drive on dirt roads or carry all of the fuel for the trip with you in jugs, all while hoping you had enough bribe money for anyone who might turn up with a rusty AK-47 and a barricade to keep them from taking said computer from you along the way.
Wikipedia hasn't adapted as well to being "done" as you might think. For instance, there's apparently at least one editor who just goes around Wikipedia deleting random sections from articles that appear to be uncited. He never adds anything, any contributions come from actual subject area experts who have to take time away from editing other articles to deal with the mess he leaves behind. The Wikipedia bureaucracy seems to think he's doing a great job though! And this is just something I stumbled across a couple of days ago by accident without following Wikipedia behind-the-scenes stuff; from what I've heard they have problems with favouring policy wonks over content contributers everywhere.
Indeed, extending your repertoire is definitely a good thing.
Lesson here is that the best practice for a backup system is to make it so that two (or more) different entities need to screw it up at the same time for you to lose data. Because entities do screw it up.

Note, the hardest part, here? is that you are one of the entities. It's very hard to design a system where a hostile entity compromising owner credentials can't lead to data loss.

Best I could think of would be a service that keeps your data available in read only mode for a certain period of time (for which you pre-pay) - but I don't know of anyone offering such a service.

I suppose a stack of blue-rays in a safety deposit box would come dang close; I mean, sure if /all/ of your credentials were compromised you are still screwed, but if they can impersonate you in person at the bank... well, that's a worse compromise than most people plan for.
I get that. I really do, just wanted to vent!
My clinic showed me the iPhone one the other day, and honestly, I would add using the 30 pin connector in with the other proprietary cables thing. Which is a shame as it is /almost/ there.
Just presumably if your iPhone dies, then you can't test which is a potential problem.
China considering law to require real-name registration for Internet
This is too old to be very useful. Here is another old link about their infrastructure:

http://archive.org/web/hardware.php

Since then they've gone through several iterations of improvements on their infrastructure, drives have gotten much larger and the object they're trying to archive has grown enormously as well.

Funding drive thread from a short while ago:

http://news.ycombinator.com/item?id=4901148

An update on their current infrastructure might get a lot of eyeballs in time for their 31st of Dec. deadline with respect to the 3:1 matching.
İngiltere Dil Okulları
Incremental Regular Expressions
Of course, a more subtle aspect of state machine design is that Xilinx's tools can actually change the encoding your state machine uses behind the scenes. I actually traced a fun and very intermittent stability issue in one design to this. (Bitcoin mining stuff which used a state machine for clock domain crossing; the Xilinx tools replaced a safe state machine that could handle getting into an invalid state with one that couldn't.)
SpaceX Grasshopper 12-Story Test Flight 12/17/12 (Single Camera)
Как самостоятельно отрегулировать пластиковые окна - DVDRip
If I were to buy into everything for which I see no practical benefit, 99% of what I buy into would be crap. By definition I can't tell the difference between snake oil and "stuff that is awesome, but I can't tell it's awesome." Therefore I reject everything for which I cannot see a practical benefit.
If you have a single-page JavaScript application, I would use CasperJS. The JavaScript engines are functionally almost equal if you use frameworks. The usual "clickAndWait" Selenium verb doesn't work with single-page apps since it expects the page to reload. See http://stackoverflow.com/questions/3703458/click-clickandwai... Obviously, this is not a problem with CasperJS and PhantomJS, they are much more tightly integrated with the browser, and you can click elements by ID without needing the ugly "waitForElementPresent" hack. The only issue I've had with CasperJS/PhantomJS is that you can't reliably test Emscriptened apps since the QtWebkit version is old and doesn't have Float64Array support.

If you want to test for layout issues, or if you need something more stable, use Selenium. PhantomJS 1.8 has WebDriver support: http://phantomjs.org/release-1.8.html If you want headless Selenium.
I've seen them created a few times. I'm pretty sure there are at least a few implementations in Hackage of such divided IO monads. More generally, the haute method for solving this would be to use Operational or Free monads to create your restricted monad type and then interpret it into IO.

http://www.haskellforall.com/2012/07/purify-code-using-free-...

http://www.haskellforall.com/2012/06/you-could-have-invented...
That's 62k resident, not 62m, and the screenshot is of awesome, not evilwm.
Odd. Medical School was one area where four years actually seemed appropriate to consume the amt of knowledge necessary. As opposed to 4 years of college.

To be honest, it's really residency training programs that have become too long. You pretty much know what you need to know to become a PCP after two years of residency training in primary care. And I'm not sure if you really need 6 years of post medical school training to become a cardiologist or gastroenterologist. Seems like 4 would be enough. But the people who make these decisions, like the American Board of Medical Specialties, won't hear of this. In an era of rising tuition rates and declining reimbursements, they need to reconsider what not only makes for a reliable practitioner, but also one that isn't drowning in debt for years. Otherwise many of our best and brightest will mostly pursue other professions.
He has issues because you don't get his sense of humor? You're out of order with that one.
Well CasperJS is primarily a testing framework. But PJScrape and CasperJS are both tiny in comparison to PhantomJS. It doesn't matter much which one you choose. I'd go with CasperJS since it's more popular.
For about 2 years I had to keep an old XP box in the corner just to boot it up every 90 days get the data off my wife's MiniMed meter and pump. They didn't support anything newer than XP until 2011, let alone any hope of not needing Windows.

Great article.
In the case of a true monopoly it pretty much is.
Playing a video game using bananas
It's a pretty cool release though. I'm liking whichairline.com quite a lot these days because of it's visualisations. I also use kayak and hipmunk. Pretty excited about what Google can do in this space.
Yeah, I love how in the US (in the Midwest) you can get a hermetically sealed McMansion on a developer's salary. I don't think you can get that anywhere else in the world. There's not enough land, energy costs are too high, and the cost of living in general is too high.
You're so off it's not even funny.

First, it's wholly incorrect to characterize this as a suit over a free service. Instagram is a for profit business and its users traded valuable personal information in return for Instagram's service.

Second, "voting with your feet" is what you do a priori. This suit involves people who already have a relationship with Instagram, have already shared their personal information, and are asserting that Instagram's new policies violate the understanding of the original transaction.

Third, yes lawsuits are a "cost of doing business" in the U.S. but comparing it to Switzerland is comparing apples and oranges. The Swiss have far more regulation and government oversight of companies than in the U.S. European countries in general set detailed standards and guidelines for consumer products and services, while the U.S. prefers to handle such things through litigation.
Proof of concept "sensory smartphone malware" can enable "visual theft"
interesting - i'll take a look into this too.
How was Java a failure? There is only a few sentences where it said how it "failed in consumer electronics." It felt like they were stuck in there to create a sensationalist title, rather than being an important part of the article.
Yeah I really hate Ryanair also. Horrible forced experiences.
Now, if they would come up with an app that would allow my handicapped daughter to watch their current episodes on her Android tablet. Even if I could get them from iTunes, it would be previous season. Yes I could buy cable (just for that) and a DVR (just for that) and then still technically be breaking the law...
Being "in the IO monad" doesn't actually mean "doing IO". It's a bit of a badly punned name. It's more idiomatic to think of it as the RealWorld monad.
Ask HN:Stanford's Introduction to Machine Learning course?
Does anyone know how i can access last year's Machine Learning course?Coursera's class has not started yet.
You're welcome.

Over the years I've had a number of friends from Quebec. Invariably my views on Quebec separatism came as a surprise - they'd never seen it presented from any point of view but their own.
"But the people who make these decisions [...] won't hear of this."

I'd bet lawyers are to blame here. At least partially. Sure you can wax conspiratorial about lawyers in cahoots with doctors or something ... but malpractice. I'm sure there's a case somewhere that a plaintiff's lawyer attempted to go after a doctor's training institution as well as the doctor.
I wonder how long it will take until this gain will be offset by the environmental damage the increased American energy use is causing.
yes, it is a rant. a public rant in a forum where tim holds an account. i like reading his interviews and i have no quarrel with the points he makes, but: i'm saddend and also pissed of by the declining quality of the books with his name on the cover. if there is just a 0.0000001% chance that tim reads my comment and decides to read some of his books over christmas, then it was time well spent.
I'd imagine it's because people who aren't satisfied with Less are using/contributing to Sass instead... and vice versa. ;)

There are also big differences in design philosophy. I love the if/else, while, and for options that Sass provides, but Less has chosen to forgo that for (imo) a clunkier syntax. Things like that are unlikely to change.
JavaScript is succeeding because it's the only choice, IMO. Sure, it's doing well on the server-side too now, but I think a big part of that is just because it's a fresh language there - no baggage with old libraries, etc.
How do you guys compare Hipmunk to Whichairline.com? I actually like the smaller startup's visualisations and results better than Hipmunk.
Yeah, a lot of devs have to do that because they just use the CSS, like from bootstrapcdn [1]. It's nice not to have to, though, especially for those of us who leverage LESS.

[1] http://www.bootstrapcdn.com/
Thanks. You just explained why heat is so annoying!

It is not possible to deal with (humid heat) without modern technology.

The only workable evolutionary way to do it would be to significantly shut down self-heat production, short of a biological heat pump (that does not exist AFAIK)

But of course, in the UK, it's hot for a couple of weeks, as opposed to the US where depending of the region is hot from half-year to almost the whole year.
John - take a second to read the comment. He was providing feedback on a scenario in which a machine which had not been powered up in a long time apparently deleted files because they were not present. The Dropbox model does not allow this - you can only delete files that are already on your hard disk. This, is what he was trying to explain to the parent poster. His tone was entirely appropriate.
The actual function would be written more like

invMap :: forall k v. (Eq v, Eq k) =>
Map k v -> v -> Set k

The parametricity means that while this function may get specialized to have v ~ String and k ~ Int, we can be sure that invMap isn't using that information. Instead, with the typeclass restriction, we know that the only thing the function can be doing internally to the ks and vs is comparing them for equality.

Intuitively, invMap can either be computing the Set of ks which hold a particular v or, maybe, the set of ks which don't hold that value and not much else.
Tell HN: Merry Christmas from the UK
Merry Christmas Y'all from the UK :)

You can share any Christmas stories below