skysight-inc/HackerNews huggingface dataset:
I guess not. There is a ticket for backporting this project to Java 7 or RxJava (https://github.com/atomashpolskiy/bt/issues/7), but I personally think it's not worth it.
[How it works] Banking Trojan hidden behind every app on 3rd party Android store
After hours of bug hunting I can spend a few minutes to share my solution on SO. Documentation writing is so much different task. Additionality for many people English is a foreign language.
If you accept that what really means the sentence "the good of the country" is "the good of all the people of the country" , something that, by the way, it seems we have forgotten lately, then education by itself is a desired outcome.

Education, good health and, in general, a happy life for all should be the goal, not the means.

Also, in this age, the most important asset is knowledge, because almost anything else can be compensated for with knowledge.
It really has to do with expectations. The expectations of a company that has raised a "Seed" are X, the expectations of a company that's raised an A are 3X, a series B are 15x etc. By positioning yourself as having only raised a seed it makes it easier to raise later rounds. It's a very real anchoring effect.
I'll be Librebooting my X200 shortly, the webcam and mic are coming out too.
TomTom.com; C++ Software Engineers
| Berlin, Germany | Junior/Medior/Senior/Expert level | ONSITE | VISA + Relo

We like to think big at TomTom. We are looking for bright, curious minds in software development to join one of the six scrum teams developing TomTom’s navigation engine, NavKit, written in C++ with highly optimised algorithms to compute the quickest route to any destination, on any device.

We are partnering with the likes of Apple, Uber, and Mozilla to bring our maps and online navigation information to more smartphones and driver applications. As we are ushering into the (highly) automated driving, the TomTom NavKit is not only improving human-machine interaction, but will also guide the autonomous cars of the future.

Interested? We want to meet you! To get the full story about this vacancy or the application procedure, please contact Jacco Valkenburg on +31 6 28257098 or Jacco.Valkenburg@TomTom.com
$5 is impressive - my current leather wallet cost more than that and it doesn't have any of your fancy pants air-gaps or blueteeth
But that's a different issue, I replied to a comment about compensating performance.

There are already metrics for teacher performance (at its crudest: What's the average grade going in and out of the teacher's class?) which could be used to determine salary. (And maybe it is in some places.)
It's actually even worse than that: In more than one aviation accident multiple alarms and alerts actually served to confuse the pilots as to what's going on, causing them to not perform the action that would have saved the flight.

Information overload in the cockpit is a very real thing, particularly in an already task-saturated time like the landing approach. It's entirely unclear that adding yet another alert chime requiring the pilot's attention would help anything.
Continuous Delivery and Integration: Rapid Updates by Automating QA
Yet he approved every Google hire until 2011: https://www.quora.com/What-does-it-mean-when-Larry-Page-sign...

It seems far more likely that Page is being evasive and doesn't want to give evidence supporting a narrative that Lewandowski was a superstar, Google was desperate to keep him, failed, and this lawsuit is just a malicious and anti-competitive. (Which I don't believe, but I'm guessing that's the narrative Uber would want to create)
Yes! Now try telling this to some more mathematically oriented people. The opposition is so violent that I stopped trying long ago :(
You've commented this on like 4 other replies. I'm largely uninvolved in cryptocurrency-politics, but do you have an agenda? It seems absurd that you want your voice to be heard so much that you would literally copy paste your reply into a myriad of comment trees...
An obvious response to that is "we also gave him lots of autonomy, because not having to deal with bureaucracy is a perk".
The point GGP is making is that the difference does exist, but wouldn't if the same job was being done; therefore it is not.
I believe this[1] is the patch that fixes this bug. I tried to reproduce the behavior but couldn't succeed. Maybe I was doing something wrong. Would really appreciate it if someone here could show a test case where this matters.

[1] https://github.com/LoupVaillant/Monocypher/commit/347189c50c...
If you know enough cryptography and are a good programmer, then you can do it; otherwise better not.

The advice to not roll your own crypto used to mean that you shouldn't invent your own cryptographic algorithm. That's true, unless you're an experienced cryptanalist you're likely going to come up with something bad. (Or slow, as e.g. a moderately secure Feistel cipher is easy to invent if you don't care about speed.)

As for your own implementation of standard algorithms, there are some things that can go wrong, mostly with key derivation padding and chaining modes, but it's not a secret art that only few chosen cryptographers could master. You have test vectors for the algorithms itself, and have to be extra careful about the rest. You have to get someone to audit the code. That's about it.

The fact that people no longer roll their own crypto has two major disadvantages. First, modern ciphers like AES have been designed for ridiculously low security margins. You could claim that security was subordinated to speed in NIST competitions. You can see that in the decision to choose Rijndael over Serpent and Twofish. AES ahs the lowest security margins. Second, it presumably makes life much easier for intelligence agencies all over the world. Instead of having to reverse engineer and analyze thousands of different implementations, they can focus on attacking a dozen popular crypto libraries. This saves them a lot of time and money and also makes it much easier to attack individual developers or binary distribution. (Most attacks nowadays are probably side-channel attacks anyway, but who knows...)
Thanks! God bless IoC, it saves my ass each time I make some silly design choice
Given the current state of the borrow checker and how lifetimes are handled inside closures, essential for callbacks, I think in its current state anything close to Cocoa or Cocoa Touch would be quite hard to implement and use in Rust, unless it is full of Rc and RefCell everywhere.
Not something I'd ever thought of (I tend to tune out the words / mostly treat them as another instrument; unless listening to something especially witty).

Great suggestion / I guess this leads to the idea of needing a meta recommendation engine; i.e. some way to decide what recommendation engine best works for you; selecting from one that follows lyrical themes, another that discovers "out there" content, one for similar content, etc.
Some screenshots maybe? Because the only noticeable difference I see is the info bar on the right in the English version.
People should understand that undefined behavior allows you to squeeze the last bit of performance, so it can actually be very useful (if you know what you're doing).

Here's a cute example: suppose you want to index in an array of things, each having a size which is not a power of two. In this case, to find the address the compiler has to generate code to divide by this size and, since the division is not by a power of two, it can be quite costly, depending on your CPU. So instead, since we can assume that the division can be done exactly, the compiler can generate code to multiply by the modular inverse of the size (which is generically some huge number) and since the multiplication is in general much faster than division, this can be a huge performance gain. This optimization is enabled by undefined behavior.

What is damaging is not the notion of undefined behavior, but the fact that the compilers are not so good at telling us when they take advantage of it. Hopefully this will improve with time.
If you say "foo + 3", and foo is a uint8_t, then 3 is technically an int, so the addition will do an integer promotion.

If you say "foo + bar" and both are uint8_t, then both will be promoted to integer. That's how C works. Assigning the result to another uint8_t will truncate it.

Please do not write your own crypto library until you really understand how C works, especially including this kind of detail.
You don't need a C compiler to run an already compiled program. You may need libraries, just like almost every language, but only the developer needs to download the compiler and not every single user.

It gives options to the developer to target multiple platforms without extra effort from the users of those platforms.
You have a point but in general you wouldn't write "generic" C code on these exotic (by modern standards) architectures. So I guess if you wanted to port Rust to these systems you could introduce an i9 and an i36 and use that instead. I doubt you could get firefox and its dependencies to work on a CHAR_BIT == 9 system without some heavy modifications. I could be wrong though, it's not like I tried.

In my experience most modern codebases tend to target POSIX systems (explicitly or implicitly). That gives you a subset of C to work with and makes your life easier. The exceptions are things like DSPs which can have rather non-standard layouts but you generally write very specific and unportable code for these anyway.

Of course if you want to be completely portable you can't assume that CHAR_BIT == 8 or that you can convert back and forth between function and data pointers but in practice a lot of software relies on this.

Even before stdint became part of the standard it was very common for programs and libraries to typedef their own "sized" integer types. It's the only reasonable way to deal with ints in C IMO, otherwise you can't assume that your ints are greater than 16bits (which is probably too tiny for many uses) so you're tempted to put "longs" everywhere. But then longs will be 64bits on modern architectures which could be overkill and reduce performance.

So in theory those variable-size integer types are interesting but in practice they're basically useless because you end up making assumptions, one way or an other. I think it was a good idea for Rust to get rid of them.
The problem happens if you do uint64_t = uint8_t << 24, for example. The shift will promote the uint8_t to int (not unsigned int), and then the conversion to uint64_t will sign extend, so

uint8_t u8 = 255;
uint64_t u64 = u8 << 24;
printf("%016llx\n", (long long) u64);

prints "ffffffffff000000". If you instead do

uint64_t u64 = (uint64_t) u8 << 24;

or

uint64_t u64 = (uint32_t) u8 << 24;

It prints "00000000ff000000" as most people expect. (I think the second example with (uint32_t) will only work if "int" is at most 32 bits, but I might be wrong).
- Terms & conditions of use

- Chocolate soufflé

- Distributed lock manager

- Autonomous war robot

- init(1) replacement

I am personally guilty of attempting four of these things without adequate preparation or expertise.
Even just using crypto primitives is dangerous unless you've got experience. There's an old post from matasano about it https://www.nccgroup.trust/us/about-us/newsroom-and-events/b...
Yes, but these changes take time and they only started working on them when users started leaving for Chrome.

Like many others, I used Firefox for a long time despite it being technically inferior to Chrome, but at some point you say 'fuck it' and make the change.

Mozilla, given their market share, should have been first to offer 64-bit support, separate processes for tabs, sand-boxing and a lot of other stuff, but they've been asleep, because for a long time there was no strong competitor.
Location: Warsaw, Poland

Remote: YES

Willing to relocate: NO

Technologies: Very versatile, but Clojure/ClojureScript preferred

Résumé/CV: http://danieljanus.pl/cv.pdf

Email: dj+hn@danieljanus.pl
Don't worry, the people selling you the products killing the bees will soon sell you a solution to pollinate your crop without bees.
"These immigrants come and use the facilities we deserve to use".

Common is sense is not common.

Edit: Just to be clear, my first comment was really a compliment. No sarcasm intended.
Ask HN: My co-founder and I want to split, what to do?
My co-founder and I (based in California) have been building a startup for the past year, which has been getting some healthy attention from investors. Since we do not get along, my co-founder wants to split the company and its assets between the both of us so that each person will continue building the concept as competitors. Since we each have 50 percent of the company, we are currently locked as I cannot see how this solution works. I've been told this would basically kill both of our startups and that only one person should continue.
What do you think the consequences of such a split will be?
We are both keen on continuing the venture - although I am starting to believe I might be better off doing something else. I've suggested to give him equity but he refused.
Right now there are a few options - simply leave with nothing / split the company as suggested / ask for equity myself.
Of course - investors will prefer seeing the first option, but im not sure I feel comfortable with that after a full year's work.
What do you think?
It's possible to do too. Like w3cschools (kerrspit) managed to get to the top with some terrible bootstrap documentation.
Investing in Women and Youth Is Smart Business
I find it strange how countries with working social policies are real socialism and countries that collapse are not real socialism, despite how socialist or capitalist those working countries are. It makes no sense at all that Venezuela or the USSR is not real socialism but Scandinavian countries with private ownership of the means of production but a big enough tax budget to implement stable welfare are real socialism.
As someone else said: search results.

But also I never saw a link ON Stack Overflow point to said documentation. I wasn't even consciously aware of it, even though I must have seen the announce when it launched.

Really, I don't know why they needed so much firepower on that anyway. Just a glorified wiki + maybe paying some good known documenters to kickstart the site with a few very high quality guides would have been enough to get the ball rolling (given internal promotion).
I got to reading some of the articles about a year ago. At first I had the same reaction. But I noticed that many people seem to think a kernel and OS are the same thing. I can't really blame the author for attracting more readers.

They are great articles in the end, very nice reads. Some of them going a long way into the details. Recommended to anyone interested in kernels (or to learn how a kernel is not an OS :))
Capitalism is theft. It's mathematically impossible for the holder of capital to generate profit if he pays workers wages equal to the value their labor produces. Somebody has to be shortchanged somewhere along the line. The rich in Venezuela should be thankful they only have to deal with mild social democratic wealth redistribution policies.
300M Freely Downloadable Pwned Passwords
Something that's been on my mind recently, given the increasing amounts of inequality, is "why aren't the lower and middle classes more effective at taking rich people's money?".

In other words, rather that thinking about protectionist measures or redistribution (not that I'm particularly opposed to such things), why aren't rich people spending more cash on things and thereby allowing the money to flow down?

One possibility is that we really are topping out our hierarchy of needs. Billionaires are driving round in Priuses and wearing $80 jeans. Capitalism relies on demand being practically infinite. Could this growing inequality be a sign that this assumption is faulty?

Or do we just need to invent more drone mounted, blockchain integrated juicers to sell to them?
Not sure why this question is always asked on threads like this. Bees and wasps look very different, you can usually tell them apart at a distance of 5 meters, maybe more if you have time to watch it for it's behaviour while flying.
If you check HN regularly there is a general consensus that React will become the most used framework, if its not the case already.
Personally I will stay on Angular because like many I'm coming from java. Also generally making "CRUD" type application.
I really liked that read, good writing style and the author was coming from the same place that I'm usually coming from (can we redo this ourselves and shave off some bloat in the process).

However, as it stands now, it looks more like a cautionary tale on why he should have listened when people told him not to do it :-)

I suspect a worthier goal would have been to look for ways to improve the linking footprint of libsodium instead of rolling your own library. Maybe turn the "I want the smaller version without the huge lookup table please" in a compile time option or so. That way more people could have used it without having to commit to "I'll use this little known experimental library instead of libsodium". Commit in the sense of "people will ask why and I will have to defend my decision", not in the sense of "oh no we are locked in!!"
seeing through his posting history, you may be right in banning him.
I got the impression that he was aware of it, but had no reason to remember the specifics of it. He knew it sounded about right, which is what I'd expect from a CEO months (or years) after the fact.
Hi! I am Will, co-author of the blog post and tool(s).

A long time ago, we asked our intern to develop a time tracker as a CLI, given that we spend most of our time in the terminal and also to give him something fun to do. He designed a great time tracker that we now use daily: Watson (https://github.com/TailorDev/Watson).

Our business involves billing clients per days (7h a day). Watson was our source of truth but sometimes we needed to aggregate reports of different developers. Crick (https://github.com/TailorDev/crick) to the rescue!

These open source tools were part of a much bigger project that never took off. Watson was open source per se but we thought we could maybe create Crick as a paying-product. We conducted interviews and decided not to do that: nobody really needed such a tool. Well. We needed it so we developed it and decided to open source it.
Well, when using clojure and needed to deal with lot of math I usually used some sort of infix macro, i.e. [1].

Otherwise, I wasn't really bothered by the brackets. And most of the time I would be using some sort of threading macro anyway [2], such as -> mthomas suggested in one of the responses.

[1] https://github.com/rm-hull/infix
[2] https://clojure.org/guides/threading_macros
Ask HN: Time to start rejecting SPF soft fails?
With the rise of phishing and forgeries, is it safe to continue accepting emails which soft fail the sender's SPF policy?

Is it time to start rejecting soft fails with a clear bounce message, rather then silently sending soft fails to the spam folder?

Two thirds of our soft fails are obvious forgeries and phishing attacks and spam, but one thirds are legitimate senders with poor sending infrastructure who would be impacted.

Should we continue to tolerate misconfigured SPF policies, and let the clients of misconfigured sending ISPs believe everything is well, or should we start to make a change towards a safer email environment?
"Legitimate" is whatever the west wants?
Why would Oracle have to add Btrfs support back into the RHCK? It's exactly the point of this kernel to be 100% identical to upstream RHEL. If an Oracle Linux user needs Btrfs support, it will still be included in the "Unbreakable Enterprise Kernel" (UEK), which Oracle provides as an alternative.
Ask HN: What to spend on to maximize developer utility?
What products or services did you spend money on that improved your life as a developer with the best cost/benefit ratio? It can be anything, but I'm looking for unexpected purchases with large gains. RAM used to be the best way to save time. Then SSDs. Now, perhaps it's an extra monitor, software, standing desk, or dishwasher. Anything that offers a disproportionate improvement.
This is not evangelism. Would you say that about a kernel in OCaml or Haskell?

Experimenting with safer language choices and see how that might help writing a kernel is a fun exercise. I am glad that Phil shared these articles, I learned a bunch from it.
6.5.7 Bitwise shift operators

> Each of the operands shall have integer type.

> The integer promotions are performed on each of the operands. The type of the result is that of the promoted left operand.

6.3.1.1 § 2

> If an int can represent all values of the original type (as restricted by the width, for a bit-field), the value is converted to an int; otherwise, it is converted to an unsigned int. These are called the integer promotions.

So if you shift a uint8_t, it is first converted to a (machine-dependent) signed int, then shifted, then converted to whatever the expression type ends up being.
Most public education is run by cities in the US, and controlled locally. If the "Republicans" are the problem, shouldn't we see better education results in Democrat controlled areas, of which there are clearly many in the US? Seeing as there is no such difference to my knowledge, I would suggest that your assertion is unsupported by the facts.
I actually used them quite often when i.e. dealing with math.

I just realized I don't use math that ofthen when programming :)
Barcelona Bans Cars and Boosts Tech
Not interested in the wallet, but that's a nice website.
If what you mean by IQ is "opportunity to access quality education before immigration", then you may be right. But in that case IQ becomes a function of wealth which is not that common among refugees. Inequality is not genetically but sociologically inherited.
Large objects tend not to be stiff against collision. It would look like a high speed road crash - remember that the landing plane is travelling at over 150km/h.
nothing, everything that costs something today, with be free tomorrow if it has any long term value
Indian Kids Raised Without Personal Space as Adults Don't Care About Privacy
so i think the decision to give rep for documentation posts contributed substantially to its failure. Two reasons why i say this:

(i) (as you mentioned) it encouraged early rep mining by novice devs and in at least some case, created a top-level structure that i found suboptimal (to say the least); and

(ii) i think giving rep also provoked the high-rep SO users enough so that they never went near documentation, and so if docs were going to work, it was going to be without the same folks who helped build the Q&A. The OP mentions "New users weren't coming to Documentation" (as consumers) but at least in part that was because not enough quality content....
Scope? ES6+? It's pretty obvious both languages originated from Mozilla.
Since all transactions are public, he can easily follow the tracks to your new public key.
Tests show dangerous pollutants in military’s open burns greater than estimated
Why the Lack of Indian and African Faces in Dunkirk Matters – The Guardian
I am terrified that I do not consider myself competent enough to write a crypto library, and yet there isn't a single mention - in this article, nor at the time of writing the comments here on Hacker News - of many of the pitfalls I know to avoid when undertaking such an endeavour. There is even a list of "you have to do A, B, C, and that's about it" that is missing some major - well known, even! - items.

I know "don't roll your own crypto" comes across as dismissive or patronising. I'm not a huge fan of the phrasing. But as a first-order approximation, it is correct. If you want to roll your own crypto, that needs to be your _thing_. It's very unlikely you're going to be a fantastic full-stack web developer _and_ be able to do that. If it's really what you want to do then awesome! Go study it, learn it, practice it. But if you're doing it as a side-hobby, never put it into production.