skysight-inc/HackerNews huggingface dataset:
I would say pretty low wkhtmltopdf like PhantomJS uses Webkit to layout HTML then converts that layout to PDF, HTML layout including CSS and javascript execution is a heavy lift, this library only scratches the surface of what would be needed to cover wkhtmltopdf.

First you would need a pure js web browser, the closest thing currently being zombie I think. If you didn't care about running on the server then you could take advantage of the browser the lib is running in to get the current computed layout from the active dom and transform into the PDF layout, still a big job but the heavy lift is done by the browser. Telerik does this in their Kendo lib, where they render a active dom element to thier abstracted vector graphics model, then have PDF, SVG and Canvas renders for that: http://docs.telerik.com/kendo-ui/framework/drawing/drawing-d...
>I doubt that. Loops are way more intuitive than recursion.

Linked individual is my coauthor. She finds recursion far more intuitive than loops and mutation, so - don't doubt.

It's also easier to write recursion out on paper in a way that is faithful to the program semantics. Loops require tracking state off to the side.

Debating this point is useless. Operating a crane is not more natural than picking a pile of dirt up in your hands and carrying it. It's more efficient anyway.
Spidermonkey uses generational gc with some kind of compacting these days. Why do you think that's legacy? What models are strictly better than that?
> it starts to indiscriminately upload all of your photos

It only uploads your photos if you check the "Back up & sync" checkbox when you first start the app. If you uncheck that box, it won't upload anything. Don't spread FUD.
You can delete multiple photos simultaneously if you go to the main photo grid and make a selection (long press, then either drag or tap) and click the trash icon at the top.
And now you have really lost the machine.
Those fees, by comparison to home purchases, are very minimal. The doc fees to buy a house in the US alone runs well over $1300, that doesn't even include paying for points or inspections. You have the same type of fees to rent in the US as well, credit checks, deposits, pet fees, and move in fees for certain buildings depending upon access and parking.
Because rewriting Spidermonkey is both tedious and doesn't benefit from Rust safety guarantees.
Google's old desktop app "Picasa" is still my go-to for organizing photos. I make a file system folder for each "album". Everything stays local on the fs and there is no doubt about where the originals are (compared to iPhoto/Photos.app, etc etc). OSX' built-in Time Machine to an USB drive + rsync to a NAS takes care of multiple backups. I can easily drag&drop files into apps and upload forms with no doubt that I'm working on the best possible copy (original).

Too bad the app appears to have been going unmaintained for some time now. It doesn't even support retina displays on OSX (in a photo app!)
Most systems are actually a mix of statically linked and dynamically linked executables.

For example, the systems I compile can all boot and function without the need for a dynamic linker. These static binaries are on a root filesystem that is in memory, not disk. Hence I can boot from removable media and then remove the media so the slot is open.

If I need larger, complex, dynamically linked programs I mount a filesystem that has them along with the dynamic linker and then chroot. I build these filesystems separately, usually storing them on removable media.
No I believe both use QTWebkit directly.
Very nice write up. As a Go programmer, Rust is really interesting. Can't wait until you can build web APIs with it.
If you own a condo or co-op and the building starts to degrade, the owners will vote (via an elected board) whether to make repairs to the building. If they vote to do that, in addition to the apartment, you own your unit's share of the repair bill, which gets passed to you as an assessment. So when you buy the apartment you're buying an obligation to pay for the building's repairs (assuming a majority of the other owners want to keep the building standing as well). If you disagree with everyone else and don't pay the assessment, the other owners (again via the condo board) can put a lien on your property and sell it to cover the amount you owe.

If it got really really bad there's probably a situation in which the owners of the building could vote to have it demolished and rebuilt.

The take away is that in addition to the apartment itself, you're actually buying shares in a legal entity and get certain rights and obligations as a result of that. It's that entity that owns the building and the land underneath. How exactly the entity is structured depends on whether it's setup as a condominium or cooperative.
You're right about professionals and suckers. A successful (i.e. he's done it for many decades) real estate investor I know says that he makes all his profit on the day he buys. In other words, a professional will only buy a property for much less than the normally-quoted "price".
FWIW I agree with you despite the downvotes you are receiving. So don't feel alone just because your comment sits at minus whatever.

I think the hangup people have is the mistaken idea that analyzing morality devalues it. But that's not the case. It does allow us to identify and discard obsolete morals (witness the sweeping acceptance of gay marriage), but those that survive are stronger for it.
I do expect them to understand that, when they are arguing against it. :)
This piece of trivia was funny to me:

> Most shocking discovery: The variation in the prices of Dunkin Donuts in different neighborhoods. I always order an extra large Vanilla coffee, and the price within Manhattan ranges from as low as $1.64 to as high as $2.57. In one neighborhood, I even saw two Dunkin Donuts within 0.25 mile of one another, both in a similarly depressed neighborhood, at which the price differed by 58 cents! Also shocking is how some of them add tax on top of the menu price while others do not. Amazing... I suggest the Dunkin Donuts index might be slightly more sensitive in general than the McDonald's Big Mac index so often used to compare cost of living to salary in different places!!!

Here's a map of Starbucks, McD's, and Dunkin Donuts in New York, based off of the city's health inspection records:

http://www.smalldatajournalism.com/projects/one-offs/fusion-...

Dunkin Donuts are so uniformly spread out (Starbucks is heavily clustered in lower Manhattan) I've always thought it'd be interesting to use them as some kind of marker of comparison...either between neighborhoods or between cities. I never thought the different franchises would have wildly varying prices.
Cudos! PDF has a god-awful spec., with which I am intimate. I am impressed with what you have been able to do. I don't think most people realize that the spec. for PDF is over 1,000 pages is and was written by bipolar sadists.
"Calderon learned to code at an intense boot camp for Latinos. She says the men in her class have had an easier time getting jobs than the women, even though they learned the same skills."

Honestly, after reading this, it really makes me wonder about why she wasn't getting hired. A bootcamp in coding isn't going to really give you enough skills to do the job.

Superficially, you might be able to get a few things to work and mash together some frameworks, but to truly understand, it takes many more years of learning and discipline.

I wouldn't hire someone that only went through a bootcamp for a developer position.
I did research in this area with the amazing Jeff Huang [1].

(Here's the findings: https://medium.com/@karan/how-do-spammers-harvest-your-e-mai...)

Answer to your question: https://d262ilb51hltx0.cloudfront.net/max/2000/0*q9f3570SPFf...

> Notably, spammy mailing lists send the most spam. These mailing lists include sites that promise you free credit scores, or insurance quotes, or free ipads etc. These sites stink of spam, but people still continue to give them their email addresses.

[1] http://jeffhuang.com/
Isn't the statement "girls are not as smart as boys on average" precisely the type of speech we want professors to have the freedom to say. Unless you want to close of an entire line of inquiry to investigation and scrutiny.
Comparing health care in the US (per capita gdp: $53k or so) to Poland (per capita gdp: $13k maybe?) is a dumb exercise. Healthcare in west europe is excellent -- often much better than the united states measured on outcomes. It is notably much cheaper too.

See a million links on the internet, or start here:

https://www.iom.edu/~/media/Files/Report%20Files/2013/US-Hea...
It is only because the difference between the
rate of change in a static universe and the
rate of change in an evolutionary one is that
between zero and very nearly zero that the
creationists can continue propagating their
folly.

Well, there's still another part sneaking past the fact that biological differentiation occurs at geological time scales: We haven't been around long enough to witness and record an actual "smoking gun" event, that clearly demonstrates the emergence of a completely new plant or animal.

We're aware of things like the three-toed horse, and we know they used to exist. But that's just a small difference on an animal that still exists, and other than that whole thing with the toes, it's still pretty much the same thing. We've seen lots of animals disappear, but nothing replacing them.

Maybe insects are a ripe branch of animals that will bear some fruit, since their life cycles are so short, but otherwise, for the most part, modern theory points out that not only will none of us see a new, radically different class of creatures emerge within our own lifetimes, but not even within the projected limits of our modern civilizations and their effective capacity to record history will we be likely to observe such an event.

So, neither since the start of our recorded history, nor until after the history we do manage to record starts to disappear beyond the possibility of rediscoverable recognition by the next order of civilization which may arrise, shall a truly different creature spring forth from the free-for-all of biological propagation.

In other words, we've never actually experienced a period where a certain life form did not exist and then emerged from some other thing, and we'll probably never get a chance to see such a thing happen, not in 5 million years, and even if we do spot a new previously undiscovered animal, and it turns out to be an example of the emergence of a new and distinctly different animal, even if it makes it into the history books, and the animal is hardy enough to persist in nature, our history books won't last forever, and after we're gone, the next civilized culture (human or oherwise) might not find them, and learn to read them before they disintegrate into unrecognizable ash and dust. But we know it's there. We're sure evolution isn't just a theory.

And so too, are we faced with a scenario, whereby even if hypothetical civilized lizard people of the dinosaur era had been there to witness a new class of rodents spring forth, the records of their culture that we do find might not include that one passage. And so too, with civilized trilobite scholars, if they were there to see the original sharks and amphibians emerge, and wrote it down, we'd probably never find that chapter in the trilobite bible where they realized what they had just seen.

That's a tough idea to pitch to people, and in casual conversations at dinner parties, it's devestatingly easy to stymie people who try to explain it.
pdfmake is based on my PDFKit project http://github.com/devongovett/pdfkit, which does the actual PDF generation under the hood. pdfmake is a layout engine on top of PDFKit supporting a nice declarative json document description format.
Really? Are those paid yearly or only when signing a new lease?
It's hard not to get 8:1 compression when we're starting from a RAW file
Author here: Note that I did select Original and it still seemed to compress the RAW file in Google Drive view. Single downloads do yield the original.
Nah. Your average consumer wants backup to 'just work' without having to think about it. Having autobackup everything be the default option makes sense. Power users can always uncheck the backup option that is shown when you first start the app.
ha! the first paragraph in this article (letter to Isaac Asimov: http://chem.tufts.edu/answersinscience/relativityofwrong.htm) touches on the key issue:

> In the first sentence, the writer told me he was majoring in English literature, but felt he needed to teach me science. (I sighed a bit, for I knew very few English Lit majors who are equipped to teach me science, but I am very aware of the vast state of my ignorance and I am prepared to learn as much as I can from anyone, so I read on.)
Let’s stop trying to visualize cloud computing as physical hardware
I've never done this and If you have never done it either maybe subcontracting for a larger consultancy firm might be a good place to start. Will get you in the right neighbourhood so to speak and get you talking to the right people and should be significantly easier providing you're good at what you do.
I've uploaded that RAW file with the "Original" (paid) setting. It's ok when downloading in the web app, it seems to be compressed in the Google Drive view.
Crates.io is built this way: Rust serving JSON on the back end, Ember consuming it on the front end.
Aren't there some web sites/services/communities where you can speak with like-minded people? I think I remember that I've visited about half a dozen of these things over the past year.

And feel free to drop me a mail and have a call if you want. :)
Well not joining Schengen is stupid, and easily fixed.
I contend that the brackets always make the code more readable, without exception. It's the normal case. All other variations make you think "something special is happening here, I'm going to have to parse this carefully". The for with a semicolon at the end is easy to overlook. The return in the middle of a function in the middle of a line is easy to overlook.

Spacing code out makes it more readable and maintainable, not less. It brings consistency, and it is more prepared for the inevitable change. I think maintenance is the driver of all code style. When you make tight one liners or forgo braces, or use the ? And : operators instead of if and else, you're not really saving time, you are deferring work, in a lot of cases to another programmer.
The Basic Affordability of Basic Income
It's kind of weird, because people I know would have opinions about KDE vs Gnome and they didn't say anything exactly wrong, but I've never heard anyone ever talk about it like that.
We've been focused more on language semantics than the Benchmarks Game for a while now. A few months ago, iirc, we were faster than C on some of them.
Back up. Currently we pay people to produce nothing. There exist things with positive value. So why not just have the people producing nothing produce those things instead? We can just make it a condition of receiving pay.

It's basically a free lunch.
I see where you're coming from, but I'd be concerned if one of the labs has a broken process somewhere (or contaminates the sample) that it would produce a false negative and a possible match would not be found -- thereby leaving a bad person out in the wild.
webdev != devops
I am not aware of such a rule in any country's copyright law. If you don't own the rights, you may not make copies. Whether it's sold locally or not – unfortunately – doesn't factor into it.
(However, in some countries purely downloading may generally be legal, but that rules out torrents.)
I'm not a lawyer either, but I'm pretty sure that copyright laws don't lose their effect just because something hasn't been released (yet) in your country.

If that were the case, then all pre-release bootleg copies would be legal.
> What I really (really) hate is that they've moved the delete button. It's no longer a button on the toolbar at the bottom (on the Android app), it's in the menu and labelled "Delete local copy".

Once you select one or more images, the delete button shows up in the toolbar. Just one tap. http://i.imgur.com/EH2M5iM.jpg
Yes, I'm Fredrik, one of the founders.
rape

Ummm, maybe I've seen different feedlot videos than you have?
Piacasa is the best, both native and the online version. I still use it but its a bit confusing now that it some how has the Google plusiness added to it online
It's like a cockroach--you never see just one cockroach, if you do, there's a lot more you're not seeing.

This is a great example of the kind of reasoning I was talking about. Because of your political beliefs you have determined that no reasonable person thinks "girls are not as smart as boys". From this you conclude that the only reason a person would conclude this, is because of some deeper bias against women. Therefore you conclude that such a person is very likely to treat women unfairly in the classroom.

Your political beliefs have become law, because the law interprets discrimination in a way that is informed by your beliefs.

EDIT: After more research, the government's advice is that title IX never applies to protected speech alone [0]. So saying "girls are less intelligent than boys" in fact could never, in itself, violate title IX. However, the definition of harassment is so vague that it's understandable that universities can't figure out how to reconcile the first amendment with title IX.

[0] http://www2.ed.gov/about/offices/list/ocr/firstamend.html
Harassment, however, to be prohibited by the statutes within OCR's jurisdiction, must include something beyond the mere expression of views, words, symbols or thoughts that some person finds offensive. Under OCR's standard, the conduct must also be considered sufficiently serious to deny or limit a student's ability to participate in or benefit from the educational program. Thus, OCR's standards require that the conduct be evaluated from the perspective of a reasonable person in the alleged victim’s position, considering all the circumstances, including the alleged victim’s age.
The FDA shouldn't tell people in general...

Sounds like a good argument for personalized medicine, either in the form of a device as you suggest, or better processes used by physicians, or both.
>Haskell discourages this practice and encourages you to refactor the pure parts of your program from the effectful parts.

No more than imperative languages do. Speaking from experience, if you wanna slap IO on the arse of all your types, no one can stop you. Our friggin' project/dependency management tool is written like this. Yes, Haskellers usually prefer something nicer but nobody's going to steal your compiler if you don't.

We should avoid mistaking our discomfort with a language or idiom with what it does or does not encourage, can or cannot do. Chopin's nocturne op 48 1 is not difficult because pianos discourage it, it's difficult because it's difficult. In fact, it would be extremely hard to translate to a less expressive instrument. Similarly, writing programs in a well-factored design that separate actions from the computations that decide what happens from the datatypes that model them takes effort and practice, whether you use Haskell or not. I would submit that using a less expressive language will not make the task itself easier any more than trying to capture all the notes of Chopin's 48/1 on something less expressive than a piano would be easier.

My coauthor has her 10 year old learning Haskell from our book. This stuff does not have to be hard.

I can do whatever I want in Haskell.

Prelude> map (+1) [1..5]
[2,3,4,5,6]

Prelude> mapM_ (print . (+1)) [1..5]
2
3
4
5
6

I've got more news for you, since we have composition for things with more structure, it's still composable. (>=>) is like function composition, but for when we have monadic structure flying around.

Prelude> let x num = print num >> return (num + 1)
Prelude> :t x
x :: (Show b, Num b) => b -> IO b
Prelude> mapM (x >=> x >=> x) [1..5]
1
2
3
2
3
4
3
4
5
4
5
6
5
6
7
[4,5,6,7,8]

You can write all the loopy-woopy side-effecty whatevers you want. Haskell's just better at it and offers alternatives. The actual recursive loops are less spooky than the name "mapM_", but I didn't want to make it verbose.

One of the nice things about Haskell is you can always replace a function with its contents, or factor something out into a function and call that function by name and the result never changes.

-- You could inline the definition of foldr
-- and make mapM_ loopy-woopy, but why would
-- you want to repeat yourself?
mapM_ = foldr ((>>) . f) (return ())
Have you tried Google Takeout [1]? I understand that will let you download all your data.

[1] - https://www.google.com/settings/takeout
An Incontrovertible Bubble: Dumb “Smart” Gadgets
Maybe the parent was referring to artificial insemination...?
I would if they were aligned with the company mission. I'd hire basically any ex professional video editor / producer with boot camp coding experience. I want engineers who empathize first. I don't need the 10x engineer who doesn't care. That probably will change as our company grows, but the first maybe 10 engineering hires should probably empathize with the problem for which you're solving, vs be a top flight cs major.
If someone were to integrate this into a smartphone/smartwatch as an input device and customize the software, it would be a killer project.
If you buy into the prose/code relationship, this is silly. It is like complaining about an author using prepositions.
This isn't my repo, only posted it, but I agree with your observations. The subtleties really make this great.
It's an interesting question, why aren't they in a position to do anything about it? An important part of the answer seems to be that they are incapable of working together, maybe because their internal decision-making is dominated by domestic political issues, which prevents strategic long-term planning.

The other countries which have a reasonable claim within the area claimed by China have a total population of over 600 million, so collectively, they are not small fry (Vietnam, Indonesia, Philippines, Taiwan, Malaysia, Brunei, Singapore). But there's little sign of concerted action from them.

If we also consider the countries which have an interest in safe and unrestricted passage through those waters, such as Japan, then the total population concerned would easily surpass 1 billion.
Nim's garbage collector is better than Spidermonkey's.
Outside of userland tasks like file manipulation, it is impractical to use the popular web application languages like Java or scripting languages such as Javascript or PHP or Python for systems programming without employing interfaces or hooks to libraries or programs written in languages that are compiled to machine code, simply because programs in those languages are commonly deployed using virtual machines or interpreters that have only userland privileges. So good luck writing a driver. And I don't know ... if your vm has heap allocated to it, are you able to address system memory out side of that to address hardware? Also, the language runtimes usually add a lot of overhead as well and employ automatic garbage collection, which is generally something you don't want in performance-critical systems.
As a fellow Italian, I agree wholeheartedly (even though a Great Wine is probably more toward 40-50€ imho).

But Italy is a privileged place to buy wine.

Living in London, I noticed that cheap wines (5-10£) are truly awful and it's almost impossible to find good cheap wines.
Also, European wines tend to be worse than African and South American ones (no idea why: maybe Italians keep the good stuff only for them?).
Regarding compile time, you can track the passes with `-Z time-passes` and wait for borrowck/lints to get over (or just typeck if you're only worried about types).

There also was [this plugin](http://www.reddit.com/r/rust/comments/2krdbu/rest_easy_a_lin...), but it's outdated at the moment (I can upgrade it later).

Regarding imports, `use foo::bar::*` works.