skysight-inc/HackerNews huggingface dataset:
So which degrees are those that don't prepare you for a job Engineering? Medical? Law? Education? Journalism?

And what are they suppose to do after they graduate with a degree that won't get them a job?

Don't want to be pigeonholed into doing the latest-greatest variation of Visual FoxPro for the rest of your life? Get a CS degree.

A CS graduate that learned Java, .Net, Javascript, and/or C++ -- all popular languages a decade ago -- would still find themselves highly employable using those same languages today.

Yes they have to keep learning, but at least they wouldn't be in their parents basement not being able to find a job competing with a bunch of boot camp grads and outsourced cheaper developers.
@elia's last commit to Opal was about two weeks ago, and that issue dates from 2015. That doesn't seem to add up to what you seem to argue that it does.
I think yes, it’s a political choice - but one has to take into account the age of that country and therefor it’s institutions.

Europe with its revolutions, world and cold wars had a lot of „chances“ to wipe the slate clean. Including its welfare systems.
One major problem is also that many times engineers themselves are not concerned at all about compensation.

For example, at my current startup I work with a couple 10X engineers (seriously, they are brilliant and able to solve problems in an incredibly elegant way) who are paid 30% less of what I make in cash, and about 25X less equity, despite having joined just a few months after me in a similar role and with more years of experience than me (I know because as part of my due diligence I took a peek at the cap table). The difference is that I negotiated heavily before joining, and every ~12 months I express my discontent to my boss about my current compensation, and he tries to bring it up with new equity grant and/or salary raises and/or performance bonuses. In exchange for that, I try to do my very best on the job.

To those people, the pay simply doesn't matter, it’s the specific opportunity given by the startup what they are after (domain/tooling/authorship/etc.). They will never complain about the compensation, or even ask to get more equity, since, as software engineers, the "base" pay allows them to have a reasonable quality of life. If the company sells for $10B and they make $0, they'll be just as happy, they got to work on a for-profit project that became super successful! yay!

Empirically, I've seen way more people like them in the software engineering field than in other highly-skilled fields (e.g. law, medicine, accounting), and I'm sure those fields are just as rewarding as software engineering, for the person passionate about those aspects of human knowledge and creativity.

I've never raised these observations in a live setting, I am too scared I'd be taken for a cynic who doesn't love his craft and it's only after money, while in reality it couldn't be farther from the truth, I very much enjoy software engineering and spend a considerable portion of my free time reading up and improving my skills. It's just that for me both the compensation and the opportunity need to be good, I won't be happy with just one of the two (so I wouldn't take a very high paying job for a long period of time, if such job would mean stagnating my technical growth as an engineer).

Why do you think that is?
Sync and log in are two unrelated settings. They were never related

I know what I saw. I was logged in, then I wasn't after I turned off Sync. They may not be related technically, but in the UI they are part and parcel.
We detached this subthread from https://news.ycombinator.com/item?id=18059984.
The pop-up permission boxes don’t make a great first impression since I saw at least 5 of them within 2 minutes and they tended to have really obscure descriptions like access to “System Events”.

While probably technically much more difficult, maybe they could have the first Mojave launch of every app occur in a separate and invisible “everything allowed” area, where the system just pretends to allow things and tracks everything that the app did on launch that would require permission. And then, it can display one box with a summary of features that seem to be required for that app, relaunching the app in the real system sandbox if approved.
Looks like haxm has the best performance, however you might want to use hyper-v if you're running other hyper-v containers since it clashes... https://stackoverflow.com/questions/32226559/making-hyper-v-...
Does this qualify as "news" for HN? That's just a wikipedia article.
> Yeah but when you and your kin are the self appointed constables of inflicting said consequences,

This argument is symmetrical. I get pushback for not being cis straight every day. For not shutting up and pretending. Every day. And your "non-conformist" views are in alignment with that pushback, no matter what methodology you want. Every moment you believe you have the right to dictate to someone how to live, who to love, or what to do with those feelings you give cover to the violence perpetrated in the name of those ideals.

Being a minority component of society is no fun, huh? Believe me, I know.

> I don't kick anti-vaxxers off my projects even though they openly spread misinformation.

I actually did that once. Even faster than I kicked off the person who had some racist views. At least most racists come by their views honestly in a society that has taught it to them at a fundamental level. Anti-vaxxers have far less excuse.

> code is king and as long as everyone is treating each other with respect, that's all that matters.

I don't think I've ever met a developer so valuable that I can ignore the externalities surrounding them. I accept one might exist, but if they don't convince me of this fact they've failed the test by definition. I can write the code, or get someone else to write it. There's no shortage of such opportunity in 2018.

> I expect the same courtesy from other project maintainers if people disagree with (off-project) opinions.

So do I. Neither of us gets what we want, now do we?

But keep in mind, the top post here is about a group of conservatives adopting the very strategy you're decrying here because a project is changing its code of conduct specifically for in-band communication. So forgive me if I don't take you very seriously.
Doesn't seem to be true, for my domain registered at Google:

Registrar: Google Inc.

Registrar IANA ID: 895

Registrar Abuse Contact Email: registrar-abuse@google.com

Registrar Abuse Contact Phone: +1.8772376466

Verify yourself at: https://www.iana.org/assignments/registrar-ids/registrar-ids...

Zoho is Zoho Corporation Private Limited IANA ID: 3803
Perhaps I can clarify why this was a terrible decision.

As written this feature enables special privileges unavailable to other website developers via a direct integration with the browser. Imagine if some other company automatically added a feature directly to your browser without your consent. You would be rightfully angry if there was a yahoo/facebook/microsoft widget that you didn't approve being added to your toolbar. What's stopping the chrome team from adding more features to blur the line between the browser and google services?

There are boundaries between websites, browsers, and users that should not be violated. This is nothing more than google putting their thumb on the scale to unfairly influence user behavior in their interest.
It’s very stable, if that’s what you’re asking.
Yes, that is good advice. We are reviewing all our processes about domain registries right now. Major lesson learned, and I would encourage other companies to think this through and learn from our experience today.
I love this article. It's exactly what I've been trying to communicate, but have been unable to nail down so precisely.
I think the difference is that IE stopped innovating once they had the market cornered. Chrome is continously on the cutting edge of features and specs, even after it became the #1 browser.
Maybe domains registered more recently work differently, but my Google domains use a random user account generated by Google for eNom (the provider they were contracting with at the time). That makes each domain it's own virtual customer (I couldn't just login to eNom or Google see a list of all my domains). I need to log into Google Domains as a separate account for each domain, and then that takes me to GSuite which links to eNom.

Also, last I checked, unlocking a domain for transfer to another registrar required emailing Google/eNom. There's no interface for it. For a while the entire UI to choose to cancel a domain just disappeared as well.

I would not recommend Google Domains.
While I think this touches on a big part of it, I think the bigger thing is the need for identifying stations for accountability. If there was a protocol that emitted an encrypted blob followed by cleartext/phone callsign, it would probably be more acceptable.
Improve or Die
Microsoft Neural TTS Makes Machines Speak Like Humans
Show HN: Parst – A cross-language common regex interface
https://github.com/bussierem/parst

I made this as a little project for myself - I've been a fan of regexes, and found that I'm often the only person around me who has taken the time to learn them, so I find myself writing regexes for other people. I wanted to make this as a way for anyone to harness the power of regex for a lot of common operations, without needed to understand regex, blindly copy-paste regexes from the internet, or implement far less efficient string parsing methods to do what a quick regex could.

The idea is for the entire thing to be language agnostic, and to have an ever-growing list of supported regexes AND supported regexes, expandable by the community, and deployed to any package manager people are willing to support.

Tell me what you think!

Side note: This is my first really "open source" project, so if you see any faux pas for allowing contributions, or license, etc, please please let me know so I can learn and update things.
> don't want everything to be an app, and the uninstall procedure on the Mac has always felt weird

Drag the app to the trash?
> The challenge with this formulation of "ever-changing" is that it assumes that things like Agile methods are somehow creating the capacity to iterate toward something of value

If you're doing it reasonably well, they produce small chunks of something valuable every iteration.

> Creating a bunch of brittle technology and technical debt

Who's creating brittle software or technical debt? Things can be well designed and well written, well structured and well tested without going as far as formal proof, which in most commercial situations is going to be masses of overhead and quickly not applicable to the ever-shifting problem domain.

> It's a really weird thing to me that as an entire ecosystem and community we've decided that the most valuable way to approach software is to declare that it's impossible to ever "finish" it.

You seriously need to get out into the commercial world more. Or perhaps into the smaller, faster moving commercial world (I'm not sure where you are now).

> If I have a series of high-assurance layers to build upon that I know I can trust,

Then the underlying assumptions are likely to change, rendering your layers an expensive boondoggle.

> I've been in situations where Product Managers and Engineers spent months off and on arguing over some proposed solution

Then you have bigger problems than formal proof.

I'm generally looking at things which are designed and delivered within a number of months - anything that takes months to argue over has entirely missed the boat as far as I'm concerned.
Hopefully soon we'll have the privilege of walking on the surface of planets ( other than earth of course ), comets and asteroids.
Nitpick: aidos is right. The cube is always 20 moves away from a solution (but that solution typically isn’t the fastest possible (the 20 is in face turns, not quarter turns, so you can always add extra turns to the optimal solution to make the solution take 20 turns))
Direct source: http://www.hayabusa2.jaxa.jp/en/topics/20180922e/

More detail:

http://global.jaxa.jp/projects/sat/hayabusa2/

http://www.hayabusa2.jaxa.jp/en/

http://www.hayabusa2.jaxa.jp/en/galleries/

http://global.jaxa.jp/projects/sat/hayabusa2/pdf/20180905_ha...
I was also going to recommend the WP article. It covers the results fairly well.
> Since when is it a requirement that a programming language be efficient?

It is (generally) a requirement that if you're writing a linear time algorithm, then the compiled/interpreted language will be executed in linear time. This is not the case for TLA+. You can describe linear time algorithms in a way that can only be compiled into, say, an exponential-time program, and possibly even not at all (i.e., extracting an implementation is undecidable).

I wrote about this at some length here: https://pron.github.io/posts/tlaplus_part3

> My larger point is that he seems to be using "programming language" as a shorthand for an imperative, typed programming language

He means a language with the property I mentioned above. It is somewhat true that Prolog has a tiny portion of the expressive power that comes from a truly nondeterministic language such as TLA+, but it still falls under "programming language." If you want to get technical, a language such as Prolog can let you program with some limited use of quantifiers. In TLA+, you can specify using unlimited use of quantifiers ranging over infinite and even uncountable domains.

In TLA+ you can describe the property "decides halting in linear time," and then show that a specific implementation can do so in some special cases for example. No programming language can do that (i.e. describe non-computable "algorithms") but it is essential for specification languages.
It was an experiment to get used with mRuby. I didn't build anything serious with serverless technologies because my customers are not on them. Some other experiments with Nodejs on Lambda, that's all. However my feeling is that the extra steps from source to binary obe had to take with mRuby are not worth the effort. If one stays within the 100 ms billing unit of Lambda (is it still like that?) it's much easier to deploy interpreted code than compiled one.
Medieval Wellness Tips
OK, we've marked the other as a duplicate.
The iPhone XS and XS Max might have a problem with poor cell reception
If strings are immutable in L0x then this string representation:

struct sObjString {
Obj obj;
int length;
char* chars;
};

needlessly wastes 4 or 8 bytes for the chars pointer (among other heap management overhead related to separate allocations).

Instead, I think, you should have

struct sObjString {
Obj obj;
int length;
char chars[0];
};

and allocate that string object as one chunk with its characters.
While I don't agree about consent (see my other comments), I could see basic income and no minimum wage. If people were taken care of, there would be nothing wrong with people earning extra dollars at whatever their market rate was (although they might be less inclined to bother, if it's low).
(if my understanding is correct)

Consider the case of two users, Alice and Bob. Alice has sync enabled, Bob does not.

Bob wants to check his email on Alice's computer, so he logs Alice off and logs into to his account. This syncs across all website he visits (due to shared auth cookies), but doesn't sync to the browser itself. Chrome is still logged into Alice's account, so Bob's browsing history is synced, but to Alice's history. This can have any number of unwanted consequences, from privacy consequences to Bob depending on whether or not you think Alice or Google are bad/compromised, to weirdnesses for Alice when she tries to check her history again.

Post this change, Bob logging in to Gmail on Alice's computer will log out of Alice on Chrome, and log in to Bob, meaning that Bob's history is no longer synced. So for Bob, this is a privacy increase (since now Google and Alice have less access to his browsing history) in that situation, and a usability improvement for Alice.

You could maybe get a similar effect by having account consistency be a thing that always logs the current user out and only also logs you in if you opt in, but that can also I think lead to weird situations for everyday users.

In other words, the point of signing in is to make sure no one else can accidentally (or intentionally) siphon away your browsing history.
Ironically zoho for some bizarre reason would not let us update our company credit card. Calls and email to tech support were useless. We ended up having to just move to another service since we had no way to pay.

So zoho is quite happy to terminate their users with no recourse.
And what about humans? You are rarely writing code for computers, but for humans. Many companies optimize code for readability. And there is a reason. Usually multiple people are working on the same code at the same time, or over time at least. It is the compiler's job to translate the code to computers language which can be imperative, I would still prefer the human side functional and declarative. Maybe it is just me.

I have struggled with the concepts of Java for a long time, especially with the many keywords that I cannot relate to, private, final, static, void while I understood majority of Clojure at the first glance. I could not write Java without an IDE but more than happy to develop Clojure with VI. It appears to me that we overcomplicate things for no good reason and underestimate the power of simplicity.
> I.e. from my point of view, having a CoC doesn't change the end goal, since the end goal was never, not having a CoC, and the end goal was never a meritocracy, it was create a kernel (nor was it to have a CoC, again it's an implementation detail).

I think this is the root of the issue - the previous state (not having a CoC) allowed contributors to assign their own telos, based on their perception. Creating a CoC creates a framework where none existed, and some people don't agree with that framework.

The CoC - any CoC - requires that all members agree on a telos. That wasn't necessary before.
If I understand correctly, I think you're suggesting they copy the functions they need from the library into their own source tree.

I think that makes sense for something simple like left-pad, but I don't think it's advisable in most cases. For instance, the SHA-256 function is non-trivial[1]. Even thought it's just around 100 lines, it's a fairly intricate function, and I would want to use a library for it. Preferably a heavily-used library like OpenSSL.

Using a library reduces the size of my own code base, and places the responsibility for fixing bugs and optimizing the SHA-256 with the open source community / the maintainers of the library. SHA-256 is particularly interesting, because modern Intel and AMD CPUs have dedicated instructions[2] for performing it. If I copied the source code for SHA, and later the library was updated to use the x86 instruction if available, then I would lose out on this performance gain.

Ultimately, the solution should be in constructing reliable and correct dependency management systems, and using the operating system's dynamic/shared library infrastructure to not bloat code size.

Modern operating systems are incredibly efficient when it comes to DLLs/shared libraries. They load up the DLL only once, and every subsequent program that needs it reads off the same shared memory pages for the DLL. Whenever, some data (in the shared library), it forks that memory page alone for the process. It's incredibly efficient, and except for the first time the library is loaded, it is fast at loading.

I think due to a fear of the so-called "DLL Hell", at some point people decided to statically link everything, and create giant executables. The smart solution would have been to find a solution to the dependency hell problem (where a good start would be simply versioning .so/.dll files).

The limitation to this approach of course is that using (.so/.dll) shared libraries is only possible with native programs. Although, I think with web pages/apps, if you link to the same resource (script/CSS/etc) in multiple pages, the browser should only download/load it once; with a request sent to server to see if the resource has been modified (getting back a "304 Not Modified" response most of the time).

[1] https://www.movable-type.co.uk/scripts/sha256.html

[2] https://en.wikipedia.org/wiki/Intel_SHA_extensions
This doesn't seem to be turning on Chrome Sync, so users aren't being forced into any privacy policy:

https://twitter.com/__apf__/status/1044109898013765632
This is some real Orwellian stuff here.

First off, since it applies to people logged out of Chrome and it forces them to log in it increases, not decreases, the chances of someone accidentally leaving their account available to others on the machine. Since the sync button no longer requires a password this means someone can log in at a library to check their email, walk away, and someone else can step up, hit the sync button, and steal all of their information.

They've just made people less secure, not more.

But lets take your argument and assume it's right. You could apply the same logic to every website on the internet- Amazon, people's bank accounts, phone companies, etc. Google is therefore abusing their status as the browser developer to give themselves special functionality that other websites can't give. This should open them up to a variety of antitrust actions (particularly in the EU).

At the end of the day this could have been done by letting people opt-in to the login. Add a button on the google login sites that say "log into browser as well" and let the people who want it click it.
I think this is really exciting actually. I LOVE SiriusXM because their radio is curated by an actual DJ. You get to hear so many tracks that algorithmic services like Spotify never would surface. I use both Spotify and SiriusXM as for me they fulfill very different use cases. Spotify is for playing what I want to hear and Sirius is for when I want a human with deep expertise in a genre to play things for me.

For me, an algorithmic feed of music just isn’t interesting. Music is art, and art is for humans, not computers.
Do you always assume something is the best there can be until a new better is created? I'm guessing not.

I don't have a solution, I'm simply saying we should expect that things CAN improve instead of waving off all complaints. Sure, many of those complaints we CAN'T fix without an alternative, and we do know that known alternatives are generally worse, but there's a difference between "That is a legitimate problem, but we don't know how to fix it yet" and "stop complaining because there is no hope".

Why does it matter? Because if we aren't looking for change, we're unlikely to find it. For example, here are few things we do know:

* first past the post voting is one of the worst options in a democracy, regardless of your desired outcome. Some systems are better if you want compromise candidates, some systems are better if you want the most supported candidates, some are better if you want to avoid terribly unpopular candidates, but FPTP is subpar across the board.

* an American-style system can invite crisis where two sides (Prez and Congress) are opposed...and both sides are directly (ish) elected by the people, whereas a Parliament system does not.

* a representative democracy does not give decision power to people, but instead defines the boundaries within which the govt operates. Within those boundaries lots of unpopular decisions will be made, but so long as the boundaries are not violated, those decisions will still happen (and largely without consequence, though that's far harder to be decisive about).

We know these things because people have cared to notice, people have bothered to consider "does it have to be this way?" Even if the answer for now is "Unless we want things worse", that should be the answer _for now_, not the final answer.