skysight-inc/HackerNews huggingface dataset:
Vistaprint tries to sell all sorts of addons after you've chosen what you want to buy. Got your business cards? Great—here's a mug, t-shirt, balloon, and hat that all say the same thing. Just finished your purchase? Here's an offer to get 50% more for a "discounted" price (which may actually be higher per-unit than what you just paid, if you used a coupon code).

For me, Vistaprint has actually been a good vendor with competitive prices (using coupon codes). Yes, you have to go through the gauntlet of addons every time you check out—but they don't opt you in for stuff so it's not as tricky as some other websites.

I have purchased my business cards from them for years (tried Moo and went back), and their prices on holiday cards can't be beat (glossy photos on front and back, matte photo inside for 60¢ each, shipped).
Here is a link to the drought map for the West Coast.

Comparing December 27, 2016 to December 29, 2015.

Drought is significantly improved over that time period, but still quite severe in Southern California.

http://droughtmonitor.unl.edu/MapsAndData/WeeklyComparison.a...
if you do 68000 ASM INT/TRAP handling, it is better to let the interrupt/signal do the cleaning restoring.

But I won't restart a war that has ended the day x86 architecture won over 68K.
Some fun with Lamba calculus using JavaScript
Eating a low carb diet is just a statement of fact (if one does eat few carbs).

But THE low-carb dies tons of people follow (from specific books, websites, etc.) are just fad diets based on kooky theories that selectively pick partial scientific results, add some cargo cult and personal opinion (e.g. from the late Atkins) as opposed to peer reviewed and agreed upon medical consensus, and promote it as the ultimate solution to weight loss.

Many promoters of dietary schemes would have us believe that a special substance or combination of foods will automatically result in weight reduction. That's simply not true. To lose weight, you must eat less, or exercise more, or do both.

http://www.quackwatch.com/06ResearchProjects/lcd.html

(I follow a low carb diet myself, in the sense of avoiding sugar and white flour etc, but not with the proper scientific adjustments and balances -- e.g. fruit are fine--, not because some late 70s doctor said so, or because some health guru promotes a specific version of it).
Wouldn't it be great if Apple, with their knack for style, took Google's Aria phone project idea and applied it to notebooks?

Seems like a more valuable application of the idea.
That's a fair point. I think for me it's more a matter of principle. I believe everyone should have the opportunity (within reason, I don't expect bands/companies to take losses) to see live performances, so the argument of "well someone else is willing to pay more so tough luck" doesn't really hold weight to me. I think that a truly "good" ticketing company wouldn't put maximum profits above the artists/fans. I also don't believe that ticketing companies should be taking 40% (or more) of the ticket price.

Here's an interesting article:
https://medium.com/@jackconte/pomplamoose-2014-tour-profits-...

It describes a band going on a 28 day tour in which they played 24 shows and ended up losing $11,819 overall, despite good ticket sales. Just out of curiosity I ran some basic numbers. They note in the article that they made just under $100k from tickets. They also mentioned that they sold 1129 tickets for just one show. Since that show was noteworthy, I'm going to assume that it was the biggest show of the tour, so for the purpose of calculations, I'll be conservative and estimate that they sold 750 tickets per show on average. Again, conservatively estimating, I'll assume their tickets were sold for $20 total, including fees. With those numbers, the total amount of revenue from ticket sales would be:

750 tickets x 24 shows x $20 = $360,000

So if they took away $100k from that, they're getting ~28% and in the end they operated at a loss. This is also a band that doesn't have a label, which is not true for many, which reduces that even further. Even if you drop the 750 estimate to 500, they're still taking away less than 50% when the whole tour is about them in the first place.

Obviously this is all speculation and assumptions but as someone who goes to a lot of concerts and has spoken with a lot of people involved in the industry, unless you're some super huge pop sensation (which is a whole different can of worms since many of those "artists" are not even involved in the creation of their own "art") this seems to be pretty indicative of the state of the industry.

I'm a firm believer in the importance of creative arts outside the realm of traditional capitalism, so I'll continue to have beef with Ticketmaster and any other company that preys on artists and fans for the sole purpose of maximum profits, but I can understand where you are coming from if you don't share the same ideals as I do.
In safe rust it is definitely not trivial to overflow a buffer in a way that violates memory safety.
> because the index checks are intrinsic to the Rust compiler

This is false. The index checks are written in Rust code as an impl of the Index trait on [T].

The checks being removed have nothing to do with this -- LLVM can prove that certain checks are unnecessary. C does the same, if you used a library that provided checked indexing.

What's different is that in Rust indexing is overall used much less often, because iterators are the dominant pattern, which completely sidesteps this pattern.
Category Theory is to mathematics approximately what Urbit is to computing.
I was under impression that signals are delivered to a process only when process is executing a syscall.
Given the fact that memset or memmove are note executing any syscalls they will not be interrupted
by a signal handler.
Am i wrong?
SEEKING WORK - Remote, US-based

Remote: Yes

Willing to relocate: No

I've been doing full-stack work for the past 6 years, with Python and Django on the back-end and HTML, CSS, JavaScript, and jQuery on the front-end. I've also worked with the Django REST Framework and React.js. I'm intimately familiar with schema and data migrations, including migrations between Django projects. I've worked extensively with startups and with distributed teams and am open to occasional travel.

Résumé: https://drive.google.com/file/d/0B8b4x4qzEFAOS0FFb1NhcDBOVkE...

Email: dustan.bower at gmail
If you want to do VR dev on linux I think Web VR is probably your best bet right now.
You might like to look at Lazarus, the gui builder that comes with FreePascal. Everything is done in Pascal - no XML etc. It is good-looking and my own experiments with it shows that it is very productive.
what's wrong with OpenNTPD exactly?
And Michael's Crafts.
Panics do not violate memory safety. In C that code would be undefined behavior.
What if they don't need control of the entire machine? Such a backdoor could be much more conspicuous. What if the NSL they were handed only called for intercepting TLS traffic as a means of surveillance?
You never know who the unicorn employees are until it's too late - they're working for someone else and either don't want to leave or know what their market value is so they are no longer a "deal" to hire.

If you want to find talent, you must find a way to develop it in-house.
I don't think you should be able to plugin a thumb drive to critical infrastructure. I don't disagree that this happened, but modern well designed systems shouldn't allow it.
I'm generally speaking about concerts more than sporting events, and as someone who frequently goes to concerts, I wouldn't consider live music to be anywhere near the same thing as listening to recordings
Let me clarify: in Rust it is trivial to use memory unsafely. It is not, so far as I have found, trivial to hide that fact because it is required to use "unsafe" syntax decoration" to do so.
Let me guess. Preparation for Zuckerberg2020.com ?
> JavaScript engines, to use but one example, are consistently getting faster.

When was the last time you where really impressed with https://arewefastyet.com/ ? Recent improvements are looking more like stragglers catching up with the state of the art than like the state of the art improving much. This is a very good thing, but it is not consistently getting faster. More like "getting more consistently fast". Good, but not the same. Actually it seems to be the exact same pattern of approaching a wall as we see (and lament) with desktop CPUs.
Pardon my moralizing, but I strain to find a situation where someone's life is improved by easier access to slot machines or blackjack games, even provably fair ones.
Wow. Very smart reasoning. Thank you! I never thought of it this way. You are right about Uber vs Ticketmaster.
Agreed. Smooch is a great service.
He is still selling direct to fans on his site and from the looks of this he has taken this a step further by actively invalidating resold tickets;

https://louisck.net/tour-dates
If you want to find talent, you must find a way to develop it in-house.

This is a great sentiment, but doesn't scale at hypergrowth. P&G and McKinsey can do this, because they're growing slowly. If you're growing at 100+% a year (or even 50+%) you just don't have time to grow all your own talent.

It's a very challenging problem. Great leaders rely on bringing people in that they've worked with before, but there's limits to how much this can scale.

Overall the OP is spot on for what he says.
> But how you balance the two is a matter of opinion.

I guess. But i do wonder if there isn't some framework for thinking about the tradeoff in a quasi-objective way. Is it possible to make any kind of general statements about the marginal utility of improvements in weight/thickness and battery life?

One hour of battery life lets me take my laptop to a meeting, or sit on the sofa for a while. Two hours lets me watch a movie on the battery. Eight hours lets me work away from a power socket all day. Twelve hours lets me do that and read HN in the evening. Twenty-four hours is longer than i'm ever away from a power socket. It feels like there's steadily increasing utility up to that "as long as i want to be sat in front of a screen in one day" point.

A 15 inch, 2.41 cm thick, 2.54 kg laptop rests comfortably on my thighs, goes in a padded envelope, and fits in my satchel without taking up much space. A 15 inch, 2.79 cm thick, 2.5 kg laptop somehow did seem a lot more ungainly. A 15 inch, 1.55 cm thick, 1.83 kg laptop fits in a bag just as easily, and is comfortable to hold in one hand. Given that i don't often hold a laptop in one hand, that seems like a small increase in utility.

Are there other reasons why that 0.86 cm of thickness and 0.71 kg of weight are a real improvement? What does it let me do that i couldn't before?
what's the minimum bet? 25% of 0.01p isn't bad
Common Lisp.
Hence why it is about time to change the status quo.
Did you read the article? It's about employees of "Unicorn" companies, not "Unicorn" employees.
There is zero growth in GPU performance from the 520 to the 620.
Dolphin is a very nice Smalltalk. For business, local clients all use Windows and do not trust web apps for core applications. So Dolphin + ODBC is my latest go to for business apps.
Show HN: Snap a photo of your homework and get help
Looking at golly-2.8-src. At the first sight, it does not use SIMD. Only uses 32-bit registers in 32-bit builds, 64-bit registers in 64-bit builds.

All x86 CPUs manufactured after 2003 have at least 16 128-bit SIMD registers. Using them for calculations is the only way to get anywhere near advertised CPU performance.

For languages other than C and C++, like JavaScript, where there’s no SIMD instructions, calculations are generally slower, but the hash tables are provided by the platform and hence implemented in highly-optimized C code, HashLife should be perfectly fine.
> if you provide your own thin abstractions

Without generics these abstractions are hard to work with and hard to make work across libraries. I am reminded of https://thefeedbackloop.xyz/i-bet-that-almost-works/

> Take the rust compiler itself: AFAIK it's now implemented in C++

The compiler is written in Rust. It uses LLVM, which is in C++, for codegen, but in the future we might be able to turn that off too (https://internals.rust-lang.org/t/possible-alternative-compi...)

Besides, the implementation language of a compiler does not make the compiler an "abstraction" over the language. Sort of, but not really.
Buy one cheap and rent it. That's my plan anyway. Already have one. Our current one will be our second. And I've already begun eyeing the third. But do your homework and never pay more than it's worth. So yes. Buy one but only as an investment because it's a huge money pit regardless but at least when renting it you can write off a lot of it on your taxes and others are building the equity in the home for you.
Processors are inherently extremely stateful; this is an argument against having unix-style signals.
Thanks. The workflow creator GUI is the big seller for Alfred, it saves a lot of time in testing and tweaking workflows and from having to write a bunch of boilerplate.
Location: Virginia

Remote: Yes

Willing to relocate: No

I've been doing full-stack work for the past 6 years, with Python and Django on the back-end and HTML, CSS, JavaScript, and jQuery on the front-end. I've also worked with the Django REST Framework and React.js. I'm intimately familiar with schema and data migrations, including migrations between Django projects. I've worked extensively with startups and with distributed teams and am open to occasional travel.

Résumé: https://drive.google.com/file/d/0B8b4x4qzEFAOS0FFb1NhcDBOVkE...

Technologies: JavaScript, React, Python, Django, Django REST Framework, migrations

Email: dustan.bower at gmail
This is what the series of articles will say. The second article (apparently in Norwegian only, I plowed through the Google-translate version) just talks about the reactions of people to the new police-sketch of her face.
Sorry, yeah - this thread came up before we had the position descriptions ready. Hopefully we'll post them today, still wordsmithing.

Support role is engineering support, third line. Currently handled by engineering staff on a roster, but it gives some inconsistency in response and it slows down whoever is on duty (currently me) in their other tasks!
Ironically, the backdoor that provided access to the whole machine would be far less conspicuous than this one. That's the thing about the human cognitive bias towards narratives: RCE vulnerabilities in AV are found routinely, and don't land on the top of HN. This bug did because it was so cosmically stupid, it's surprising nobody noticed it before --- something Ormandy repeatedly states in his writeup.

Which is all the more reason not to believe that it's enemy action.
I've got an Anker battery pack that charges a MacBook happily over USB-C
It does. In a way you face a parsing problem similar to Asian languages that don't use spaces to separate words.
A battery case seems more practical than a brick you dongle off the phone, especially if the phone is designed to compactly accommodate one.
Ask HN: What's the Smartest and Quickest Way to Learn a New (Spoken) Language?
I've decided I'm going to learn a brand new language as my "Personal Challenge" for 2017.

Candidates are German, Spanish, and last preference Gujarati (my Dad's native language).

How do I go about this as an Adult? I want to learn fast, and efficiently. Are there any proven "Language learning Hacks"? I saw Ankhi or Ankha cards mentioned on some forums. Not sure that will work for me.

Please, give me some hacks or tricks you've used personally to successfully learn -- to read and speak -- a new foreign (to you) language. Also timelines - i.e. how many hours or days or months of time investment to see noticeable results, which would be that I understand someone speaking in that language, and also am able to respond / speak back my response in the same language.
I suspect that passage is more about wealth inequality.
Should be an interesting research tool to see how often we use shitty commit messages when trying to get something fixed...

https://github.com/search?utf8=%E2%9C%93&q=fix&type=Commits&...
The compiler is fine with using GOTO, it's people that are not.
I'd love to see information on the latter.
Hopefully because you feel it's worthy, not because I pestered you!
Visual Basic 6
Tons of legacy integration.
If you're relying on any random third-party Rust crates you haven't audited yourself, don't you lose the safety guarantee? A given crate might turn out to have implemented operations on some data-structure using unsafe blocks, and then to have failed to mark its own API functions as unsafe in turn (like the Rust stdlib does, but without the "extensive manual auditing" that the stdlib gets).

AFAIK, cargo doesn't have any feature to point out when a crate contains unsafe code—so you pretty much need to grep the source of every crate you consume for "unsafe".
This comment suggests that #DF is rarely used anyway https://lkml.org/lkml/2008/3/6/50

> The conclusion is that DF=1 in x86_64 64-bit code is extremely rare
> Can anybody make a strong case to me as to why are buffer overflows considered an issue in C when it takes like 10 minutes to write and test an array implementation that prevents that from ever happening?

The CVE database. Just because you 'can' write such an array implementation doesn't mean you will, doesn't mean your third party libs will, doesn't mean any of your legacy code uses it, and certainly doesn't mean you will properly test said array implementation correctly.

The number of mitigations added to C compilers and OSes dealing mostly with C and C++ code. ASLR, W^X, /GS, -fstack-protector-all, AddressSanitizer, ... - note the lack of similar tools, or demand for them, for, say, JavaScript - despite it enjoying a similar ubiquity.

I ask this in bad faith: I encourage you to share a single nontrivial codebase which actually creates the abstraction you've described and religiously adheres to using it throughout. As to why this is in bad faith: I'm definining "nontrivial" here to mean using 3rd party APIs - which will operate on C style arrays, not your project specific safe wrappers - and thus by definition won't be "religiously" sticking to said abstractions when using said APIs. By these definitions, the codebase I'm asking for doesn't exist - by definition. Even relaxing the "third party" rule, I haven't actually worked on a nontrivial C or C++ codebase without buffer overflow problems.

Now, e.g. Rust will have the same problems when interacting with C APIs - and nontrivial programs will end up doing so eventually. However, by virtue of the language itself embracing safe-by-default, you're less likely to run into the same problems when consuming Rust APIs.

You can also use third party static analysis tools to ensure you're using a "safe C subset" (such as MIRSA C), but "nobody" does that.
If you include interfaces you've essentially split inheritance into separate parts. Which isn't necessarily a bad idea.
Async signal safety refers to the functions being called in the handler, not the interrupted code. Also signals can interrupt the code just as normal thread preemption would, not only while the thread is inside a system call.
You have to cap either battery life or weight/size. They capped battery life at ~10 hours and decrease size every year. Maybe one day laptops get light and thin enough and that changes.

The 2016 13" macbook pro with 70 hours of battery life would weigh ~3kg [0]. Have you ever used a light laptop (new macbook, macbook airs or ms surface to some extent)? The (lack of) weight feels really nice. The macbook would imo be the best laptop if it weren't for the keyboard. In fairness I've never owned a laptop with day long battery life so can't compare. Actually if I could buy a 100gram laptop with 1hour battery life I'd do that, the battery is less than 20% of the weight of a laptop though.

Portable 700gram 100Wh (the 13" pros are 55Wh and 50Wh) battery packs are less than $100 on amazon.

Ultimately, if you _really_ believe in battery life, line the back of your laptop with 18650's (one cell is 10Wh for less than $10), all you need is like 2 circuit boards, some solder and a bunch of electric tape. You can theoretically fit 47 on the bottom of a 13" macbook pro (you need ~35 cells for 72 hours[1]). Or get someone to manufacture a portable laptop battery case, macbook pros vent through the hinge, so heat should be less of a problem.

[0] https://www.apple.com/ca/macbook-pro/specs/ and https://www.ifixit.com/Teardown/MacBook+Pro+13-Inch+Touch+Ba... means 1370grams+235grams\6

[1] http://www.batteryspace.com/ProductImages/li-ion/specLI2400.... and https://www.apple.com/ca/macbook/specs/ (281mm\197mm)/(65mm\*18mm) = 47
The issue here is that that definition of "safe" language basically excludes all practical languages, including languages like Python, because FFI is possible.

In general when talking about safety in a language it's about the level of explicitness required to trigger unsafety.

I like the distinction made in the nomicon (https://doc.rust-lang.org/stable/nomicon/meet-safe-and-unsaf...) -- Rust comprises of two distinct languages. You have everyday Rust, which is completely memory safe, and "unsafe Rust", which looks similar to everyday Rust but is not safe. `unsafe {}` blocks are your FFI between the two. Looking at unsafe blocks as FFI is IMO a very useful mental model especially for understanding the changes to invariants involved.
> So what way you can think of to transport water? Or if that's not the core problem, then what is the right problem to solve?

Water water everywhere, and not enough to drink.

Note that the majority of municipal water systems include purification steps, not just transportation; waiting for nature to purify water for you doesn't suffice. I don't think transportation alone suffices; on average you'd have to go further and spend more to obtain already-pure water. That 71% includes a lot of seawater, river water, lake water, swamp water, and many other sources you wouldn't want to drink directly.

That doesn't mean we have a shortage of water, and transportation infrastructure remains a critical shortfall in many areas, but the problem involves many facets, including transportation, purification, and sanitation.
There actually aren't. Problem is, it only needs one.
I'm a Bay area home owner. We bought 4 years ago. For us it was a great choice. Our our first child was 2 years old and were looking to find a place to settle down and live. We didn't want to worry about rent going up 30% to re-sign a lease. We wanted a place where she could go to school and not have to move around each time a lease is up.

In the end it turned into a great decision for us. The house went up 350k in 4 years and we are looking to cash out and move to a cheaper area where I can take my remote job and pretty much buy a house in all cash and not worry about a mortgage anymore.

So it really depends on your situation.

Are you willing to stay in a house for 5+ years. If you want to sell.. can you ride out a dip in the market?
Ocaml (which will turn 21 this year).

It really hits a sweet spot for me:

- fast executables

- fast compile times

- very expressive

- good standard library in 'Core'

- a REPL so you can easily play around with code you have just written

- a type system that's really useful for catching bugs

- imperative programming is relatively easy

I find myself becoming more and more productive. I will have to see if writing a little server for JSON web API sitting behind nginx is feasible - currently using ruby for that.
I opened the link and was about to get started reading but came up with an idea for what I wanted to say based on how I interpreted the headline and went back and wrote the above.

So you're right, I didn't read it but I will now.