skysight-inc/HackerNews huggingface dataset:
What a line:

> And quite frankly, I don't care. I don't think kernel development should be "easy". I do not condone single-stepping through code to find the bug.

Reminds me of this quote from the introduction to Log4j docs [0]:

> As Brian W. Kernighan and Rob Pike put it in their truly excellent book "The Practice of Programming":

>> As personal choice, we tend not to use debuggers beyond getting a stack trace or the value of a variable or two. One reason is that it is easy to get lost in details of complicated data structures and control flow; we find stepping through a program less productive than thinking harder and adding output statements and self-checking code at critical places. Clicking over statements takes longer than scanning the output of judiciously-placed displays. It takes less time to decide where to put print statements than to single-step to the critical section of code, even assuming we know where that is. More important, debugging statements stay with the program; debugging sessions are transient.

The above quote made me reconsider my intense debugger usage that I had fallen into at the time. On one hand you can't take all your cues from authority, but on the other hand, what K&P said sounded like it might make sense. So I tried using the debugger less and logging more, and over time I think it's made me a better programmer. I think the key statement is:

> we find stepping through a program less productive than thinking harder and adding output statements and self-checking code at critical places.

which Linus also echoes:

> I happen to believe that not having a kernel debugger forces people to think about their problem on a different level than with a debugger. I think that without a debugger, you don't get into that mindset where you know how it behaves, and then you fix it from there. Without a debugger, you tend to think about problems another way. You want to understand things on a different _level_.

[0]: https://logging.apache.org/log4j/2.x/manual/index.html
It’s not “approach to service delivery” it’s lawyers and medical ethics, neither of which can be blamed on the profession itself.
OOP and FP are not orthogonal per se.
I find the idea that private firms over-save and the way fix that is to print money to be disagreeable, and not an application of scientific or economical mindset, but the mere psychology of wanting to get results today at the cost of results tomorrow.
Yep. I agree reading other peoples Haskell can be a challenge. There is a real culture of making your code as terse as possible, which I think makes it easier to read once you know what you are doing, but makes it harder for beginners.

Luckily Haskells type system means that you can understand a lot about what is going on just by looking at the type definitions. Most code includes these. Although rather frustratingly, however, a lot of documentation doesn't include the type definitions. It is good to see languages such as Idris make it mandatory to include type definitions for all functions.
OpenAI's GPT-2-Based Reddit Bot Is Live
Researchers create new way to power electric cars
This is the “first” event in their efforts to regulate less.
Python for Reverse Engineering 1: ELF Binaries
They should really try to separate JavaScript into client side js and backend node.js.

I’m curious to see just how much of it is due to client side, as it probably skewed the ranking due to the fact all websites use JavaScript.

I want to just see how node competes with other backend languages like php ruby and python
By American standards the process is working correctly. The free market has responded by avoiding Boeing or carriers that fly the 737. Only slight loss of life required.
Perhaps this could be thoroughly tested by performing high-pressure hydraulic fracking in very close proximity to gas pipelines.
Solution: ‘How to Find Simple Treasures in Complex Numbers’
On-chip, electronically tunable frequency comb
> 1. You should attempt to re-express your target’s position so clearly, vividly, and fairly that your target says, “Thanks, I wish I’d thought of putting it that way.”

I like this and I'd even extend this to having an opinion on something. It really helps your opinions!

>> “I never allow myself to have an opinion on anything that
I don’t know the other side’s argument better than they do.”
— Charlie Munger
> So, civilians owning tanks? Predator drones? Attack helicopters? Cruise missiles? Fighter jets? Biological or chemical weapons?

We don't need any of that stuff to keep the balance. Iraq, Afganistan, and Vietnam are proof of this. Insurgencies are extremely effective against our military. The only real requirement for them to exist is a sufficient quantity of small arms, and maybe some improvised explosives. The argument is still very much relevant. What's happening in Venezuela right now would not be possible without having first disarmed the populace.
In theory, 10 magnitude 5.4 quakes will cause a lot less damage than a single 6.4 magnitude quake. But of course if that energy were to be dissipated in micro-quakes instead the 5.4 quake is much worse.
Thanks for the feedback!! We are planning on adding these! Our first version though includes 6 big providers which have worldwide reach.
We did some test and vs some official sites we are cheaper (e.g. Empire State) however on some we are a bit more expensive (e.g. Vatican Museum). But as said we are planning to add all of them.
Hmm didn't think this was real when I saw (but seems to be very real after checking):

> And quite frankly, I don't care. I don't think kernel development should be "easy".

Previous discussion on HN from 2015:

https://news.ycombinator.com/item?id=10814514
> No mmap

mmap could be emulated very easily via create_area(), and I think most people did this indeed.

> and no BSD sockets

BONE (an official R5 patch) had BSD sockets. There were also libraries for this also.

> it was absolutely nothing like /dev on any Unix system

What does this mean? Devices were in "/dev" could be opened, stat'ed, "dd"'ed to, etc. It had a different naming convention, but so does macOS and the like.

> No permissions; it's a single-user system. It stores file owners and modes, yes, but they don't actually mean anything; you don't need the +x bit to execute a file, you don't need the +x bit to list a directory, everything is owned by "baron", etc.

"baron" was just UID 0. I haven't looked in a while, but I'm pretty sure you needed +x to actually execute files? At least we mandate this on Haiku and it hasn't broken BeOS compatibility at all, as far as I'm aware of.

> It supported fork but it's incompatible with threads, and everything on BeOS is threaded

What does this mean? Its fork behaved the same way fork does on any other UNIX-like OS, i.e. only one thread carries over. The same is true in Linux...

> Some signals are implemented, but the C API is home grown instead of the standard POSIX calls.

Again, I don't know what you mean here. "glibc" was there, and so of course was malloc(), string.h, etc. etc.

Further, "UNIXy" does not mean "POSIX compatible." IMO the fork-based process model and "/dev" are the large hallmarks of the "UNIX philosophy". POSIX was a larger set of API calls that plenty of 90s-era UNIXy OSes did not ever implement.
The disaster that is Baltimore is largely caused by federal drug policy. Federal drug policy is also largely responsible for a number of other dark patterns that we see in the US: Militarized and corrupt police, ghettos, and a massive prison population.

EDIT: To clarify, "The Color of Law" and "The New Jim Crow" cover the ways that we have made sure that POC are primary police targets in the US. I further submit that we intentionally create lawless zones for POC to live in so that they can be harassed by police, and that the war on drugs was the perfect cover to do so. There is enough evidence of this that I don't think I need to go nuts explaining it.

Cities with similar demographics will have similar problems, because it has been designed to work that way.
Are Diamonds the Next Silicon?
> Ha, yeah, all of the awful shit is better this way as well.

Honestly, that just sounds like the peace of mind of a psychopath.
6 months coding php. Never again.
I know for myself a huge amount are gained, or saved. Being able to check email, keep in touch on Teams and SMS, track my meetings, etc save me a handful of hours every week. They're some of the most valuable hours too.
My first thought too!

It seems like the speedup they gained was probably as much from the architecture change as it was rust. (That often seems to be the case when people say they saw a significant speedup due to switching to rust, go, or similar.)
Show HN: Demo-CLI – create web-based canned demos of CLI tools
> which has at the very least a GPS module

The accelerometer data is what they claim to be the most after. They're looking at intensity of acceleration/deceleration to determine if you're a defensive driver.
I have used PayPal for a few years, mainly because paying with it was more convenient than using directly my credit card, even if the PayPal exchange rates were disadvantageous.

For a few years, PayPal worked fine and I was a satisfied customer. Than it had some kind of breach of security. The credit card known to PayPal was charged with a large number of small fraudulent transactions.

I did not loose any money, because within hours my bank alerted me about unusual activity and I blocked the card and refused the transactions.

Then I got a new credit card. Soon after making another payment through PayPal, similar fraudulent charges appeared again.

After obtaining and then cancelling 3 or 4 new credit cards, the causal relationship between making a payment through PayPal and a third party receiving my credit card details became obvious.

I have stopped making payments through PayPal and I have never had any credit card fraud problems again.

I have no idea about how my PayPal account was accessed by whoever was behind this. The only thing that I am certain about, is that it was not possible to guess my PayPal password, which was a long string of random characters and which had never been used for anything else except for logging into that PayPal account. Therefore I believe that it was some sort of inside job within PayPal.

Because I have never used again PayPal during the last 3 years, I do not know if there was any improvement in their security procedures.
"I will only take it seriously when it officially gets adopted by the Android team. "

I can understand this POV. Has there been any rumors that the Android team might adopted flutter ?
To facebook's credit: I created a brand new email address and unique password to be used exclusively for my Facebook account, and 6 years later (with no password changes), I have received no spam and had no discernable security issues.

Maybe I was just fortunate, but everyone should use a burner email if they choose to use Facebook.
PacManhattan (2004)
To be fair, adderrall (And other Amphetamine based drugs) are illegal in a lot of countries that are not the US. The stimulants Ritalin and Modafinil are available here, and Vyvanse (lisdexamfetamine) is in clinical trials
you bastard!!!
Show HN: I made a live Loadshedding status page in React
I really want the opposite, I want Google Cloud to stop billing me for Chinese users I don't have. Apparently the technology to bill me extra for Chinese bandwidth is not available for making firewall rules.
Hard cases make bad law.

Focusing on what (to you, as an outsider) seems to be outlandish is honoring the breach rather than the observance.

And unlike, say, the United States--there's only been one of him. This country has folks trying for high scores on a very regular basis. (Remember Las Vegas? That was 18 months ago. 59 deaths.)

Perhaps it is worth looking at trends and impacts rather than media splashes.
Increase spending by printing, and then increase spending by taxes, sounds like a big-gov wet-dream.
Here's an idea: Stop passing stupid laws and making criminals out of normal behavior.
Sure, so to go back to my original point, functional programming is about building a single expression to perform your computation. Obviously this would be unweildly if you had to write your expression on a single line, so we build abstractions out of functions (hence the name FP). To combine these functions in arbitrary ways and stick with the single expression model, we need some way to create a pipeline of functions. So we have the function composition operator .

program = (phase 3 . (phase 2 . phase 1))

The input of program is fed to the first phase, then the second phase, then the third phase which will produce the output of the program. Each phase can be replaced or the pipeline extended as long as the inputs and outputs match. This is an infinite composable and is the basis of how FPers architect applications, by splitting each phase in their own pipelines, smaller and smaller until you get to very basic functions. We like it compared to OO because it's straightforward to understand the flow of data. There is no need for a complicated object graph and any piece can be replaced if the types are correct.

As in OO with inheritance (maybe not the best comparison), you also need a way to specialize functions in order to get their signature to match the input and output requirements of a pipeline. For that, we can partially apply a function.

For example, if I need to connect the function:

Int String -> Int (That is a function with two parameters, an int and a string that produces an int) to the output of the function * -> String (a function that takes some arbitrary value and produces a string), I need to be able to partially apply the Int, and get a function that is just String -> Int. In Haskell, all functions are single input, single output. Multiple inputs is just a shorthand for a pipeline of functions. The function

Int String -> Int is really just the pipeline Int -> String -> Int. (You can see how this all starts to fit together).

The function application operator is the most basic, it's just a way of forcing the order of evaluation. When you're building pipelines, you want to be able to construct a pipeline before you apply an input to the pipeline. To get the correct order of precedence between . and application, you use the explicit $ operator.

What I'm trying to convey here is that these operators are akin to inheritance, composition, overloading, etc. in OO. They are ways of working with the basic building blocks of the paradigm to make larger and larger programs. As you can also see, being able to create pipelines is the basic piece of the puzzle, and building pipelines requires automatic currying to facilitate making the pieces fit, while the application operator allows us to control the order of evaluation.
The implication is reduction of bad intent due to in-group/out-group discrimination (i.e. racism, classism, other -isms)
It gets more cost-effective if combined with [semi-]automated tooling for verification, testing, and refactoring. Functional style makes these things easier. That's the draw in for me. So, I collect info on FP and verification followed by code generators and equivalence provers/testing for imperative and low-level forms of it. Examples include seL4 using Haskell->C, Lammich's functional->imperative converter for data structures, or maybe even compilers like CakeML.
Clojure play-cljc: A library for making games that run in both OpenGL and WebGL
Google has purchased and killed off numerous profitable companies. They've killed off Hangouts, Allo, Gchat, and I'm sure I'm forgetting a few wildly popular chat services only to replace them with inferior products. They've killed off Google Reader which someone built a clone of and appears to be making a profit. They killed off Google Fiber, Nexus, and Glass all solid hardware that many people are/were still using. The point is you can't trust Google to not just drop something at a moment's notice, even if it's older or profitable, try getting help from them as well good luck finding want kind of support unless you happen to know someone inside the company personally. As a business they are hard to work with and notoriously flaky, I'd always choose to go elsewhere now after years of being a Google advocate. They're even looking to replace Android so what can you trust from them?
You can have convoluted or simple FP programs as you can have the same for OOP. Nonetheless, is paradigm better at yielding more robust software you can reason about well more of the time? I would say yes, and FP does this.
Anyone know if the first con listed has improved with the introduction of non-lexical lifetimes?
I'm not sure this correctly characterizes Linus' opinion. It seems more that he's saying debuggers cause a kind of myopia by putting a specific failure under a microscope, and that he wants developers who are willing to undertake the harder task of understanding the failure at a system level. Not that he wants to impose complexity for its own sake to cull out weaker developers.
> compares only third party website... the official website (was cheaper)

Not surprisingly all the links are affiliate tagged "&partner_id=2FA2B&partner_visitor_id=9lvgkk3kpaa8&psrc=partner_api" so yeah, they only want to show you things that will give them a kick-back.

So not really helpful as a one-stop-shop.
> Cybersecurity consultants gone rogue, hiding out in Russia.

What's up with Snowden? I find it very hard to believe that Russia doesn't know where he is.

One leading theory was he was being saved as a bargaining chip. But don't you think he would have been traded for sanctions relief early on? Presumably his value to the US diminishes over time.
Much of the system (including punishing probation) is designed to give racists a lot of discretion to oppress ethnic groups they dislike. Intention of rank-and-file may be to rehabilitate, but that doesn't matter if the intention of the lawmakers and higher-ups is to keep certain ethnic groups in jail (while maintaining a pretense of impartiality.)
Maybe because it's close relation to weed. A lot of people (in the US) associate cbd with being the same thing as weed just as an oil. Given the topic of weed acceptance there I think that's what makes it surprising. People there are able to make the clear distinction.
Would I be mistaken is saying that NASA was going to use a similar technique to prevent the Super Volcano in Yellowstone from going off?

http://www.bbc.com/future/story/20170817-nasas-ambitious-pla...
As someone passionate about hl1, I dont like Black mesa. Yes it looks nice, but gameplay wise it seems lacking to me. It feels very slow to move, bhopping has been nerfed to death.

It feels more like a reboot than a remaster
This is a strange reply. What makes you think that that is what the poster to whom you reply is concerned about?

People don't commit violent crimes for weed. The crime is having weed. And things that are not weed are not being legalized state-by-state.
I've never really used debuggers routinely. They are a last resort for me. I use print statements and logs for the most part.
This happens all the time when a website serves malware through ads. The site will claim it isn't their fault, they aren't the ones serving the ads. And then they have the audacity to try and shame people for using adblockers.
If a court ordered that a convicted criminal get money for not committing crimes, the OP suggests that this would work better and cheaper than prison. The incentive problem is that people would commit crimes in order to get this deal.
"OK, that's basically a static method in C#. Is that wrong?"

A static method can have side effects and/or return different results even when given the same arguments. e.g. returning DateTime.Now would never yield the same results.

"So functional programming should never handle state?"

Any useful application will have state and side effects, the idea is to push as much of it as possible to the outer edges of your application and keep the core as pure as possible/practical. You can do that with any language, but a functional languages will be designed to make that easy and idiomatic.
Hi HN.
I live in South Africa and we unfortunately have this thing called Loadshedding that causes the power to go off every couple of hours a few times a day.

I made a little web app to that shows the current status of the power grid, pretty much to get the hang of React JS.

Cheers!
I do understand why people would feel insecure about baldness. Is it changing for the better though? Loads of "cool" bald people, think Vin Diesel etc. I still have a head full of hair and just turned 30. Not sure how I'd feel as I've had long hair all my life. I do feel that the volume isn't as high as it was in my early 20s..

I hope we make some progress in a cure either way.
> I do not condone single-stepping through code to find the bug.

Hard to take this post seriously because he offers no clue as to how he actually finds the bug (being "careful" is ludicrously vague). That would be an interesting read.
I think it's kind of interesting that, thirty years later, the CEOs of SpaceX and Blue Origin are bald men.
Happy Anniversary from the Lottie Team
Sounds like something out of a conspiracy theory.
I set up a private Mastodon server for my family several weeks ago and we're loving it. It's a mighty impressive Rails/React app, very well designed and implemented. I have a few minor UI quibbles based on experience with twitter, but the design is really good, responsive, and snappy.

The kids run Fedilab on hand-me-down, wifi-only Android phones and just go to town with emojis, gifs, and photos. The parents share more of their days with the kids rather than only texting each other.

The setup guide is great--I followed it on a 1GB Vultr VPS and was up and running easily, except for one maddening hurdle, which is that on 1GB server you do need a swap file to successfully precompile JS assets. See [1] for the workaround. I guess this is just normal in 2019. Otherwise all the services run fine with 1GB once compiled.

I wish it supported locking down public posts at the admin level, but that's just my use case. The login system blocks most access, and public posts can be blocked with nginx authentication and tweaking the list of streams flagged public in the streaming service.

[1] https://github.com/tootsuite/mastodon/issues/5836#issuecomme...
Earth has always been round, so why have the flat-out wrong become so lively?
Only in as far as elegance and predictability can be considered ethereal values in programming.

> I find that FP forces too many contortions

In light of their underlying computational models, functional programming really isn't the paradigm that is rife with contortion here.
The re-offend part might matter. You're on probation, and as long as you're only on probation, you get dividends from the government.
Probably worth noting that WP is planning on requiring PHP 7 by the end of 2019 https://make.wordpress.org/core/2018/12/08/updating-the-mini...
>regardless of what the result of the first throw is, the chance that it is fair is necessarily lowered after the first throw.

This isn't true. You probably have a higher prior for it being unfair towards 6 or 1 (and how much depends on the scenario).

However, if for example, you have priors for it being potentially unfair towards every number equally, 1 throw only changes the posterior probability of whether it is biased towards that number but not whether it is unfair. In case of unequal priors for which numbers it might be biased (e.g. 0.01 chance of it being biased towards 6/1 and 0.001 for 2, 3, 4, 5 and 0.976 for unbiased) getting a number changes all those probabilities yes but for example if you get a 3 the chance of bias there gets higher but mostly at the expense of the probabilities for bias for the other numbers - which get lower (I am too lazy to calculate the posteriors).

All in all, you should know beforehand what your posteriors are going to be for any case based on any outcome and if you know that any one probability (like that of it being fair) is definitely going to lower no matter the outcome then that should be your current prior for that case.