skysight-inc/HackerNews huggingface dataset:
A lot of undefined behaviour on this list is quite specific to the C programming language, so it would be like comparing apples to oranges.
Though, one major impression I think you will get after going through this list is that there is no good reason for making those things an undefined behaviour in the first place.
For example, "The result of the preprocessing operator ## is not a valid preprocessing token", really?

Regarding those things that actually matter for programmer, following would be well-behaved in Rust (including unsafe blocks): conversion between types, integer arithmetic, pointer arithmetic (there are generally two variants of operations, one that essentially treats pointers as unsigned integers, and another one that behaves like in C with more opportunities for optimization).
On the other side of the coin, in Rust mutable references cannot be aliased.
Is it? Is there any evidence that it's converting the signals to symbols and performing arithemtic on the symbols? Or is the signal processing being performed "directly", through the essentially analogue operation of the neurons?

Otherwise you're asserting "doing arithmetic" as a property of any analogue system, and would say that a falling ball needs to understand calculus in order to make an arc.
Not if the language standard doesn't allow for UB to begin with, then there isn't any halting problem to worry about.

This is what the alternatives in the memory safe systems programming language since Algol days do.

Surely they still allow for developers to disable some of those checks explicitly, but then it is the programmers fault to choose "performance trumps correctness" instead of "correctness trumps performance".
Can't really complain at an ISP who requires (but doesn't technically enforce) their customers to meet the local law...
So you can not access any site that uses TLS?
I'm not sure how realities of production get beaten by "ideas". Yes, Tesla has excellent design and approach. That won't help them magically build in volume. Or quality - even very expensive Model S cars aren't really a paragon of build quality in their class.

Steve Jobs didn't promise production of 300mil iPhones in a year when they announced it.
Maybe a lot of people wanted to own a Tesla so badly that they were willing to stretch their finances to get it. Tesla has had a lot of hype, it can have that effect on people. In some European countries, there are Taxi drivers who drive Teslas (often for economical reasons).

Now these people can own a Tesla without hurting their bank account. I think that there is a reason why car brands are either luxury or mass market but not both.
Not that it means much, but I saw a semi trailer full of new Model 3 on I-80 heading east near Des Moines Iowa today. All of them were black and still had factory wrap on the panels.
That's a problem I always have with these kinds of things - when someone says "Place your test files next to the implementation" I always find myself thinking what the reasoning is behind the rule.

For that particular recommendation I can see arguments both ways - mind you I keep tests separate myself but I'd be interested in reasons for keeping them together.
Where should I purchase my wholesale clothing items from?
"physically it's very simple to quit addictive drugs"

Quitting some drugs cold turkey can be dangerous, so "simple" isn't quite correct.
> live fast and leave a devourable corpse

Ah, you know my family motto!
I disagree, I think Python is an excellent first language. While there are many oddities, I think Python lets you ignore them, or defer them to later in the learning process. Python can be pretty much as simple as you need it to be, and I think that's important for teaching programming.

I would not expect to get to objects _properly_ (maybe things like list()) in an introduction to programming course, I think you can get very far with just functions and simple data types.

Then, once you do want to introduce objects, I think Python's class system can be kept simple enough to begin with, and the parts that are inherently tricky (like self) have equivalently tricky parts in most other languages anyway.

I think a course teaching programming that goes into async IO, needs to discuss 'global' (something I've still used only twice in 5 years of Python), talks about decorators, etc, is doing something seriously wrong.

I don't know a lot about Smalltalk, but Scheme is an interesting idea for a first language. I think it could be a good first language, but I would be concerned about what the next step is. Having learnt Python, there are lots of next steps because it has a large and active ecosystem with plenty of opportunities, I'm not sure Scheme has the same, and I feel learning a second language, while Scheme might be good preparation, is not going to be straightforward for someone who has only just learnt to code.
I think Powershell is pretty much conceptually brilliant, but the syntax and choice of names for various common cmdlets are... umm... not.
There is almost certainly more UV in the original sunlight than there is coming out of their solar powered UV light...
Is it? Is there any evidence that it's converting the signals to symbols and performing arithemtic on the symbols? Or is the signal processing being performed "directly", through the essentially analogue operation of the neurons?

Otherwise you're asserting "doing arithmetic" as a property of any analogue system, and would say that a falling ball needs to understand calculus in order to make an arc. Downthread someone is saying that crystal formation is "doing arithmetic". While there may be a philosophical sense in saying that all actions of the universe are in some sense arithmetical as they obey physical laws, this is not a useful way to talk.

(Repost of my comment above)
100M pounds Rutherford Fund to attract best researchers to the UK
May I ask for your country name?
Those two views are equivalent - humans don't forget technology; what was once invented can be reinvented (the more of the old invention remains, the cheaper it is to reinvent it). So it's always about incentives. But GP (and Elon) has a point here.

Infrastructure projects are important and what enables society to grow. Moon landings were plain awesome and had important effects on both the zeitgeist and growth of technology. That we're not incentivized to grow, or even maintain them, says a lot about us, and not much of it good.

And I do think GP is right when they say: "instead of trying to improve people's lives, we're just making things needlessly complex, buggy, and bloaty." Any actual improvement to people's lives that falls off this process on the web is incidental. The conclusions you say we've reached, like "RAM is cheaper than developers, a slower platform with a bigger audience is worth dealing with over multiple native platforms" are not conclusions. They're excuses. Excused for doing shitty engineering in order to get to the market first. And anyone trying to do the things the right way moves too slow to keep up with the hype train.

Ultimately, the complaints about the way technology develops today stem from this: some people see the suboptimal solutions created by our incentive structures, and also notice there are much better solutions available only a small step from the path we're on - solutions we could reach if only we could relax the market pressures a little bit. This is true as much for the web (e.g. for interoperability issues and bloat issues) as it is for transportation (where electric cars finally got viable after one player basically started to shove a product into peoples' throats until the market forces gave up and accepted it).
Most probably the github repo will be suspended, even though it's self hosted, I think. And you still need to account for upstream changes.
Can we please standardize charging stations to not require a person to manually establish a connection? It seems that it would pose such an awkward and unnecessary hurdle. Especially in the coming age of self driving cars.

Every time you arrive or leave you have to remember to (dis-)connect the charger. Why not just have some kind of inductive energy transfer or I dunno... something.

Edit1: Heh, this could work I guess: https://www.youtube.com/watch?v=uMM0lRfX6YI - seems it could be too expensive for mass-usage though.

Edit2: This is more what I had in mind: https://www.pluglesspower.com/
being Italian I never assume that cars WON'T cross my way
>Ugly syntax, cryptic error messages and random idiosyncrasies

Yeah, nothing like the elegance, straightforward messages, and "no surprises" of POSIX shells...
Of course one can complain. The way I read the article, they've used them as an example because of their size, and to make it concrete. Putting pressure on ISPs gives ISPs a reason to put pressure on government.
String theory prediction with gravitational waves?
No they can "get away with it" due to:

- Having a regular and well tested release model.

- Having a clear policy of supporting only the current and previous release.

- Being a BSD style OS where the kernel, libc, and base programs are developed and released as a whole.

- Not making promises about binary compatibility across releases.
> Can someone please explain to me the rational for shoving
> your tests in the same place as your code?

Basically, (1) you are quickly able to see whether a test exists for each file without needing to explore a different directory structure (and therefore it's easy to open the tests for a file), (2) the require/import paths are not like '../../../../../' (which is awkward to reason about) or requiring alias resolver configurations (which are environment-specific and fragile), and (3) you are not maintaining an extra directory structure which could diverge by accident.

> Often times you have numerous test specific helper
> functions, and tons of other test oriented cruft,
> where do all these things go?
> The root of the project? Also where do tests
> that encapsulate logic between multiple components
> go?

Modularise and publish any test helpers which are actually general so they can be imported where they are needed. And if they are too specific for this to make sense, why are they being shared?

Tests which encapsulate logic between multiple components should be next to the file in which you implemented this logic.

If you're still unsure on how this is possible, investigate a large modern JavaScript project [0]. Many of these are successfully implemented in exactly this way. There are always edge-cases that go against what I've said, but in a big enough project you will also be able to see this.

[0] https://github.com/facebook/react/blob/master/src/renderers/...
I'd much rather see an end to "non compete" agreements. I should have a right to get another job, and my previous employer should have no more rights extended over me after our employment agreement is finished.
If something is unfairly downvoted, wait a while and someone else will usually upvote it again.

But it's also worth remembering they're just internet points, there's no real value. Keep contributing good stuff & you'll eventually get past the 500 karma mark. After that it's just a vanity number.
Running your own domain and email server also adds new attack vectors for somebody wishing to gain access to your email. In addition to the obvious security issues related to running your own server the attacker may also use social engineering for the registrar, hosting provider provider or DNS provider support people.

If more people would realize the importance of email address as the key to their online identity, this might open up a business opportunity for banks. My bank knows me, they have the proper ways for offline identification (if I loose my online access and I have quite good confidence on them. I would not expect the bank to run full email service for me, but they could provide forwarding service. Should I run to trouble with the actual mail provider, let's say Google blocking my account, I could just work with the bank to setup forwarding to other location.
I think this kind of structure is really useful for frameworks based on components (like React), you can just copy/paste the content of these folders in other projects and it will work.
"Transport" is most of oil use. Admittedly that includes trucks, ships and planes.

http://www.globalpetrolprices.com/articles/39/
I see a "get it now" button on my Mac. The same button says on my android phone: "Plattform not supported". Maybe your plattform isn't supported either?
Cashplus has a nice mobile app.
California and federal laws say that you do, and that they don't.
Starting a Blog
I think Kotlin would be a much better language to learn programming. Kotlin avoids much of the noise and is very readable.

The hello world example is symptomatic:

public class Example {
public static void main(String ...args) {
System.out.println("Hell, World!");
}
}

vs

fun main(args: Array<String>) {
println("Hello, World!")
}

Some more examples:

// java
for (Element element : collection)

// kotlin
for (element in collection)

// java
(OtherType) somehting;

// kotlin
somehting as OtherType

// java
a.equals(b);

// kotlin
a == b

// java
Color color = x < 5 ? Color.RED : Color.GREEN;

// kotlin
val color = if (x < 5) Color.RED else Color.GREEN

And some more like constructors just named "constructor", init blocks are name "init", varargs are prefixed with "vararg", type checks with "is", ranges with 1..9, strings wicht embedded variables ...
I have yet to read about CLP, I'm eager now.
lua is no way a "low level" language
That is part of the Pascal culture, we were already making use of such pragmas during the MS-DOS / VAX / Compaq / Apple days.
Because compiler don't generally look for UB then gleefully cackle as they fuck up your code.

Rather they are written under the assumption that there are no UB in the program, and the chips fall where they may as these assumptions are used and propagated.
Password Strength Indicators Help People Make Ill-Informed Choices
Apparently you don't know what you're talking about, and just want to whine and complain. Too bad.
Thanks for reporting, something very strange is happening here. I assume you can see other pages on http://www.gbif.org? I see successful downloads of the PDF in the Varnish logs, and it is served from the same place as other static assets.

Anyway, here's a copy: https://gbif.box.com/s/mi5h83nio5lnw2dfjzimar3u7dhp5loz

Or maybe it would work from our test site: http://www.gbif-uat.org/sites/default/files/documents/Advert...
Animated Page Transitions with React Router 4, ReactTransitionGroup and Animated
3 years ago was also before the diesel gate.

Here in Europe, we moved from Diesel is king to the specialist press running article on why you can still consider buying a Diesel car in 2017 in some condition. That triggered countries like Germany to announce plan to ban gas car sales in a decade.

Regardless what Volvo CEO thought 3 years ago, the market has shifted in a clear direction and it is his job to adapt.

In a similar fashion Porsche CEO said he did not believe in automated car. You don't buy a 150K Porsche sport car to let it drive itself. That's probably true, but I expect him to change his mind less than a second after it is clear that some countries will forbid non-automated car to access some public road in the near future.
AFAIR from the last presentation on the K framework I attended (a year ago), the publicly available version of their C interpreter is incomplete: It only runs programs that don't need the standard library. That's pretty great for many things! But it's not a turnkey solution for analyzing real applications. For that they had a proprietary commercial version. (Again, this is from memory, and it may have changed.)

Another reason to mention TIS-interpreter specially is that Pascal Cuoq (the co-author of this blog post) is one of its developers, and his livelihood depends on it being used.
The body on an electric car is basically no different to an ICE car. The floor is flatter and thicker to accommodate the battery pack and no need for a tunnel to accommodate the drive train, but other than that they're about the same.

Tesla will almost certainly be using a combination of materials on the model 3; mild steels (cheap and cheerful, easy to press), aluminium (lightweight) and boron steels (strong). To join these materials you need a variety of techniques including resistance spot welding, aluminium RSW (altogether more difficult than steel because of the low melting point and high conductivity, and the fact that weld spatter sticks to the tip of the gun), riveting (for steel-Al joints), structural adhesives, flow drill screws, laser welds etc. All of these processes take serious time to calibrate and get right, and some are not all that robust (by high volume standards).

There are many quality loops with a vehicle launch. The tooling needs to be proven out. Tools get shimmed relentlessly to make up for panel variations - panel quality can vary from batch to batch within a press run. This is especially true for mixed material cars.

Believe me, these are not easy problems to solve and nothing I've seen and heard out of Tesla makes me think they've addressed any of these issues.
Its not that it will impact the Clojure or the Clojure REPL, but rather that it will affect the utility functions that we wrote to inspect our running system.

For example, we have a function 'inspect' that takes an object and series of Clojure keywords - it converts the object into a clojure map where the keys are keywordized member variable names and the values are its value. It then acts recursively consuming the series of keywords to look of the fields. This makes it trivial to look into deeply nested object graphs. (It also does some other things like pretty printing the results, accessing containers by index etc)

BUT this is only useful because 'inspect' sees all fields: public and private. It does this by using the reflection API to access private fields.

(inspect rootobject :someField 0 :privateField :foo)

would be the same as the following java (were java to ignore visibility modifiers):

rootobject.someField[0].privateField.foo
or (depending on the type of someField):
rootobject.someField.get(0).privateField.foo
or if, for example, privateField is a map:
rootobject.someField.get(0).privateField.get("foo")
...etc

We don't want to have to make things public that shouldn't be semantically public and we similarly don't want to provide accessors when they are not required, just for the sake of being able to poke at them with our debugging/monitoring tools.
Driving the Beat Road
When office politics become more important then the product and the customer.

If somebody comes in, lifts his leg to mark territory, you know the territory has just become worthless and its time to move on.
> There are ways to avoid such oversight. Consider, for example, Sci-Hub or TPB or third-generation dark markets. What's hard is doing that at scale. And that, I believe, is a huge niche that's aching to be filled.

TPB and BitTorrent helps move files. Sci-Hub helps move a particular type of files (scientific papers). So maybe we need a TPB/BitTorrent for data streams? Some way of moving around generalized access to and results from APIs of server platforms?
Does anyone know of of a calling site or calling software that works with mac 10.6.8? Even all the conference calling sites have abandoned support. I agree with the comment that backwards compatibility was and should be part of whatever utopian dream this internet world used to/could be.
You have listed the most common reasons in your question (pay hike being the number one reason why people switch jobs and it's a correct reason).

I would add another possible reason. If you get an option to go work to a different country and the company will take care of your visa and offer you attractive relocation package. I think it can often be worth it to gain some international experience. You can always come back in few years.
It's when I feel like I'm standing still. If I don't see how I can progress or improve myself then I have nothing left to gain there.
Probably cheaper to just put the fuel rods on the rocket with the reactor for the foreseeable future...
That's some undergraduate logic and it was my first weeks in college so yes i'm concern of what people get from expensive computer science degree.
So rcp et al are used on some HPC systems but not for performance. I've seen it used for private management networks that talk to micro-controllers. Even in that instance it's an ugliness that needs to die.
Property Partner Review
Used You Broadband a few years ago. Awesome service. Had no problems whatsoever with the level of encryption of anything. This is most probably an outdated law requiring them to have this clause. I am pretty sure banking rules and regulations require a much stronger encryption. So the law is at odds with itself :/
That's exactly how we do it in Italy, if you're smart enough you can cross at any time, in any direction.

Unfortunately in northern Italy they seem to be a bit more subject the dictatorship of rigid rules, drivers tend to honk at you if you cross at the red light, even if you're a walking on a zebra crossing, and everything moves slower and angrier

Being the cities when it rains the most this is particularly annoying
Of significant note is the naked mole rat (a 30g 8cm rodent so about the size and weight of the average house mouse) which for a long time was though immune to cancer (they're not, but they are ridiculously resistant to it).
If electric cars are so simple, why is the Tesla Model S so unreliable?

https://www.truedelta.com/Tesla-Model-S/reliability-1095

Conversely, the Toyota Prius is one of the most reliable cars. Yet it is mechanically complex with both an internal combustion engine and an electric motor, plus a CVT. So clearly engineering skill and manufacturing quality are bigger factors than the drive train.
It would appear that appearing to be indecent is bad for business. One way to appear to be decent is to actually be decent. As always, it's about the bottom line.
Quick note here: an Android app would go a long way to encouraging takeup in the HN crowd, I suspect.

I'm already a big fan of mobilisation exercises, so my thought process went "sounds great - where do I download?"..."iPhone only. Meh. Oh well."

I know you're working on it, just wanted to give you some feedback to help prioritise.
> Note that all of these are inside of unsafe blocks. Besides unsafe blocks, Rust has no undefined behavior, and the compiler will prevent you from doing any of these things.

It's true that unsafe is needed to get these problems, but they can also occur outside of unsafe blocks. See an example here: https://gankro.github.io/blah/only-in-rust/#unbound-lifetime...

Your own code need not use "unsafe" at all, but the program may still crash in your code if you called some function that internally does unsafe things to mess up your memory.

EDIT: I should say that the linked code does not crash, it only reads uninitialized memory. It seems to me like the same hole could be used to make things crash, but I don't have a ready-made example.
Depending on the country - requirement for driver to have a commercial driving license, first aid training and more detailed car safety checks required for taxi services.
Other people have addressed the question about epochs, but I'd also note that we do work to mitigate the code bloat issues of multiple versions of libraries. cargo is designed to unify all dependencies on a library within each major version to a single instance (that is, you'll never build serde-1.0.0 and serde-1.1.0 together, but you may build serde-1.0.0 and serde-2.0.0).
The vast majority of which is trucks, ships and planes.
I think we deserve a compiler warning whenever a source line of code (not a line generated by the preprocessor) gets removed due to UB exploitation. All such cases are worth the programmer's attention, because they are either useless lines or bugs.