skysight-inc/HackerNews huggingface dataset:
The idea of Algol was like that: a standard language to describe algorithms. Mostly for publishing, where it served in this role (for ACM) for about 30 years.

I myself like the idea, but looking at how things develop in general I have doubts. Such a language must be austere, but who wants austere?
There is stance to take you just disagree with the choice. I think at this point you understand the initial aims and reasons of why Zig chose the syntax it did so here's a question about your stance both line endings should be supported by the compiler: why is it more important than the reasons Zig gave? Sure everything can be made to support variations in line endings but why? It's not that a formatter is hard to come by, it ships with the build tools. It's not that it's hard to initialize, it ships with the build tools. It's not that editors don't support the line ending, even Notepad does. It's not that existing tools that look for multiple types of line endings don't work, they still see the \n as is. Is it literally just because if you go to write your first hello world on some machines you get a syntax error telling you what needs to be changed for it to be a valid Zig source file or are there other reasons?

It's not like there is an enormously "wow this would change everything about using the language" _either way_ (which is part of why it's so confusing it's the hill you're willing to die on about using Zig) it's literally "there was an option for simplifying syntax and parsing at the cost of making \r\n a syntax error". You may not agree with it but there were reasons and a path was taken. It's not the Twilight Zone, ridiculous, nonsense, user hostile, or to screw with Windows users it's a minor choice you don't agree with in a project with millions of choices to make.
Ah this line I think summarises everything perfectly:

>As the saying goes, there is much here that is new and true, but what is true is not new, and what is new is not true; and some of it is even old and false, or at least utterly unsupported.
The cynical thought would be drive usage of Github specific features/integrations to increase lock-in
Based on my examination of my own attitudes about China, I'd say unease/fear about the future actions of the Chinese government may fuel some of my desire to criticize it for issues I may otherwise be indifferent to. While this fear is not based on some underlying dread of the Han people, it is, perhaps, motivated by nationalist instincts that many might disparage.
For those wondering "what makes it worth paying now?", GitHub briefly addresses that:

Teams who need advanced features (like code owners), enterprise features (like SAML), or personalized support can upgrade to one of our paid plans.
Well, this is amazing! I never would have thought the Microsoft acquisition would have these kinds of results! Congrats to Nat and the GitHub team (and by extension Microsoft) for making this possible!

I wonder whether this is a result of market conditions, or whether GitHub sees this is a first-to-market play of some sort, or whether it's something else. I hate to be a cynic given how much good Microsoft + GitHub have been doing lately, but what prevents this change from being rolled back?

Congrats again! I love using GitHub and look forward to many happy years shipping code on the platform.
Error 1020 Ray ID: 583eb7e1fa8bda42 • 2020-04-14 16:14:10 UTC
Access denied
What happened?
This website is using a security service to protect itself from online attacks.
If publishers didn’t have special protections under the law for the false and defamatory things that they say, they wouldn’t have a special responsibility to only print the truth.
Well I just bought an ad. I don't know what the hell I'm thinking doing this. But I love the idea of the 3D city.
Geopolitical Futures https://geopoliticalfutures.com/
Microsoft could run all of Github free and still make money by integrating with Github and Azure so tightly that it is so easy to run code in Azure if you use Github

But it’s probably just completion in the space
Probably to lure in early startups away from GitLab, which has this pricing model (free private repos, pay for required reviews and SSO) for a while now.
Personally, I have been favoring Gitlab over Github because Gitlab allows private repos on the free tier.
Meta-Learning in Neural Networks: A Survey
Yep, GitLab has had this for ages, and GitHub has gone from no private repos on free plans to private repos with only a few collaborators to this.
It’s all still a little abstract to me but it looks promising.
Ask HN: Feeling grossly incompetent working in opensource. What do I do?
While in college I worked three times as hard as any other student and I felt more prepared than any other student in the school. I built toy languages, and compilers while others were working on understanding basic data types. Now I am here working on an OpenSource project and I have come to realize that the multiple layers of abstraction that exists has made it impossible to change even one line of code without it effecting the entire codebase. I have spent the last three weeks attempting to understand all the moving parts, and feel just as lost as when I was brought into the project. No matter how much documentation and how much code I read I come no closer to making any changes in the codebase whatsoever. I still have two more years of college left, and I am starting to wonder if I have what it takes to become a programmer. Any suggestions would be helpful. thanks.
The connection does drop though. Range requests just allow you to resume it.
I'd love it if we could do away with all the headers.

Just #include <stdc.h> and be done with it. No need to remember stdio, stdint, stdbool, limits, assert, signal.h, etc, etc.

This new header comes with a guarantee that use of identifiers in the standard-reserved namespace will break your code. Perhaps compilers could even enforce this preemptively.
The pricing change appears to fall right in line with Gitlab's pricing (Free, $4/user/month, ~$20/user/month, and super expensive). I haven't managed to compare their feature matrices to see if the tiers are closely aligned, but from a glance they look similar.
Why Does Time Slow Down During a Pandemic?
llelele
However, sometimes you're in a layer when ASCII was fine and you should just be explicit about that.

Server Name Indication (in RFC 3546) is flawed in several ways, it's a classic unused extension point for example because it has an entire field for what type of server name you mean, with only a single value for that field ever defined. But one that stands out is it uses UTF-8 encoding rather than insisting on ASCII for the server name.

You can see the reasoning - international domain names are a big deal, we should embrace Unicode. But IDNA already needed to handle all this work, the DNS A-labels are already ASCII even for IDNs.

Essentially choosing UTF-8 here only made things needlessly more complicated in a critical security component. Users, the people who IDNs were for, don't know what SNI is, and don't care how it's encoded.
> whether GitHub sees this is a first-to-market play of some sort

Could be a response to GitLab, which had a similar offering for years, including unlimited free private repos.
Very few companies can make me feel like part of their journey like Github (Cloudflare also)

They understand their target audience more than most of the companies out there. When they are making moves such as this, they explain what was behind it. I find it authentic.
(1) and (3) also apply to Egyptian hieroglyphics... They're pretty generic design decisions for languages with composing characters. And (2) is just a syllabary, which is certainly not unique. Any composed syllabary that is meant to read left-to-right, top-to-bottom will likely meet (1) and (2).
I frequently rely on reading and writing uninitialized struct padding in code that compare and swaps the underlying struct representation with some (up to 128bit) integer.

I could use a union type, but that adds extra memory operations, and is finicky.

Is there a better way?
Both question would get better answers if they were asked to a panel of experts on POSIX (which could including members of the POSIX standardization committee).

For the first one, I can attempt a guess: maybe it was feared that making the result of localtime thread-locale would break some programs? You could build such a program on purpose, although I am not clear how frequently one would write one by accident.

Anyway, localtime_r is the function that one should use if one is concerned by thread-safety. A more likely answer is that no Unix implementation bothered to fix localtime because the proper fix was for programs to call localtime_r.
Show HN: TerminusDB – An open source in-memory graph database
I just got official reply from google:

I received an update from our specialist. To set your expectation, we understand that you want to keep the old pricing for your membership. However, as per our specialist they no longer have a link that you can regain the promotion pricing. To compensate this, we'll grant you a 3 months free time for your membership.

WTF Google??!?!?!

I of course rejected their "offer" and asked to reinstate things as they were before their mistake, I'm now waiting for their response.

As someone wrote, this might be dark pattern of 'how-to-get-rid-of-lifetimes'. I'm really disgusted by Google.

Anyone can help on this?
Good points. Thanks for the reminder of Zeon's Pradoxes. https://en.wikipedia.org/wiki/Zeno%27s_paradoxes +1
I suspect Microsoft wants to capture as much developer mindshare as possible and then cross-sell Azure. Reducing/eliminating entry costs for commercial grade features helps to do that.
GitHub has significant vendor lock-in, so it makes sense to make it free to capture the market before a competitor gets traction.

[Speculation:]

Perhaps they've run the numbers and can figure out that they make enough money from enterprise clients and will make enough more money from the 'marketplace' being a channel for selling github integrations and addons to cover this cost of not trying to monetize through supporting teams.

It also moves a large base from 'customer' with needed support to free users which don't need the same level of support.
Back in 2007 I listen to Econlib podcast quite a lot. The host had some really great guests on and did a very nice job in digging into the issues.

https://www.econlib.org/

Yes, the host is a libertarian, but I don’t think he forces it on his listeners. He’ll often have people on who aren’t anything close to libertarian. He’s also quite upfront about his own biases.

I learned a ton from that podcast.
Manufacturers could have bought a lot of extra machinery knowing it's hardly ever needed, but they didn't. Why? During a crisis it's illegal to raise prices enough to fully pay off all that machinery.
Show HN: Tom Nook's Laptop
Thanks for the clarification. Tried signing up, looks like you have an issue with CORS:

> Access to XMLHttpRequest at 'https://api.sg-form.com/signup' from origin 'https://cdn.forms-content.sg-form.com' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
> - Some kind of module system, that allows code to be imported with the possibility of name collisions.

That doesn't particularly need modules -- just some form of

namespace foo {
}
One thing to note is I had 3 members, it did not automatically downgrade my seats from 5. So in order to get it down to $12 a month I had to go downgrade my seats from 5 to 3.
After a dozen runs, I have to conclude the game is broken or you're not meant to win.

The game adds negativity much faster than you can add positivity, so it's a foregone conclusion. The actual content of the messages doesn't seem to matter.
Along with the expected limit bumps on Action execution time and package storage.
Have any of you looked at the CHERI hardware architecture and fat capability pointers, broadly?
The Berkshire Hathaway sure can look like that precisely because it’s the website of Berkshire Hathaway, an established and trusted holding company - pretty much the hallmark of blue chip investment.

Furthermore, Berkshire does not try to entice visitors or market any services through its website. Its only purpose is shareholder communication, and for that, this website is one step removed from sending those by fax.
> I guarantee you that this operation will never overflow, if it does it's my fault.

This is exactly what every C programmer does, all the time.
Reminds me of this old Mac and iPad app: https://acrylicapps.com/pulp/
You can't import your posts, but they will still exist at your old account: if I move from foo@social.example to bar@social.example, then all the posts I made as @foo are still visible on @foo's timeline, rather than getting moved to @bar. (You would have two copies of all your posts otherwise, since people can still fav/boost/interact with the post made when you were still @foo.) Moving accounts will redirect your followers to the new account, and you can import all your old follows/likes/&c to the new account.
For one they have a good budget from Microsoft, secondly GitLab is good competition and thirdly I would assume they see their revenues in project.amangment and CI/CD features (tie in build workers with Azure etc.) and there is more money to make than restricting users (which can be bypassed realticely easily, while more contributors means more build hosts, means larger azure bills)
How to become a compiler engineer if you don't have a degree in CS?
One use case that TF really frustrates me with is anything conditional: if I want to do blue/green the best I can do is duplicate the entire infrastructure and wrap my terraform invocations with some brittle script that repeatedly runs TF with various targets. The script only allows me to define the target state, but it is quite common that I care how that final state is reached.

Create-if-not-exists is also really poor in TF (probably by design), if you want to reuse your TF configs for different environments in the same account, you either have to ensure everything won't collide name-wise, or split your TF into immutable infrastructure and really-immutable infrastructure.
I have been favoring Gitlab over Github because their CI is the best CI I've ever used. It just works, whereas every other CI found a way to make things hard for me.

You can even spin up postgres and redis instances for tests by just specifying that you want them. It's amazing.
This is awesome, can't wait to try it out. We built a bunch of scripts on the AWS SDK to effectively do this - create new resources while querying for and editing existing ones. It would be nice to see more detailed docs for APIGWv2 and if there is a way to automate setup/management of both HTTP and WS instances of API Gateway - this is the closest we get to configuration nightmare.
Back to Normal? Data and Technology in Times of Crises
As of early last year Github has offered this as well:

https://github.blog/2019-01-07-new-year-new-github/
About four or more weeks. The problem is that my space is relatively cramped, so hard to isolate. But even if this was a larger space, I've realized I miss my colleagues and just the ability to query them face-to-face.
For myself the word that summarizes the best advice here so far is "introspection." A lot of people have mentioned burnout, work/play balance, languages, complexity of modern frameworks, and more. I think it's all constructive, but needs to be interpreted in a personal context.

When I was a kid programming promised to allow me to make incredible things. It was harder than it looked. I mostly abandoned it as a teenager, and then took it up again in college for the same reason. I've been doing it professionally ever since, for over 15 years.

Personally, the joy of any given task is mostly commensurate with how much effort and frustration is directed at the goal, rather than the technology that is supposed to help me get there. This is a big problem with software, because the medium is so complex, but it applies more generally. If I'm making something in the wood shop, it's one thing to be frustrated because I split the end of a board. It's much more deflating to find out that the power saw is broken.

It's partly practical: if I'm in a wood shop, I have the means to deal with a split board. I often do not have the means or the knowledge to fix the power saw. But just as importantly, it's about my own attitude. What would my 12 year old self do? My only choice was to grab the rusty hand saw, make a wobbly cut, and get on with it. Now that I'm older (I can drive and I have money) I'm more at risk of stopping everything to fix the power tools in the name of quality.

I'm currently working on contract and it has felt like an uphill battle. On reflection, I see that only a small fraction of my time is spent making the software that I was hired to build. The rest goes into fighting with the stack and the business side of the job.

The hobby project that I have on the back burner is a single page of javascript (which I am learning) with a horrendous 500 line function that draws stuff. It pays no regard to web development best practices. These are intentional constraints that limit what the output can be for the sake of my enjoyment. It's a ragged, broken mess, but it holds my interest. If I can just get it working, my friends will appreciate it! That for me is the childlike spirit.
This is a good example. Let me flesh it out a bit more to illustrate a specific instance of this problem:

int a[2][2];
int f (int i, int j)
{
int t = a[1][j];
a[0][i] = 0; // cannot change a[1]
return a[1][j] - t; // can be folded to zero
}

The language says that elements of the matrix a must only be accessed by indices that are valid for each bound, so compilers can and some do optimize code based on that requirement (see https://godbolt.org/z/spSF8e).

But when a program breaks that requirement (say, by calling f(2, 0)) the function will likely return an unexpected value.
That's interesting. You could imagine these kind of brands can make a name for themselves by not participating in the vulgar ad rat race, and that would appeal to the sophisticated target group.

Then again, when I google tom's of maine advertising, I get many hits saying the opposite, like

https://www.youtube.com/channel/UCcfhusG_iJcQyFSBEOyeucA

I didn't check the other brands
That's similar to how project zero (by google) works. Exploits get released in 90 days unless the developers can provide a plausible justification why that deadline can't be reached.
There are rules and requirements documented in the spec, and there are de-facto rules and requirements that programs expect. Not only that, but when they do exploit these rules, often the code generated is obviously incorrect, and could have been flagged at compile time.

Right now, it seems like compiler vendors are playing a game of chicken with their users.
And, unfortunately, 'required reviews' (which IMO are a critical feature).
Github has had free private repos for years now
This is great news! I've always had my repositories spread across GitHub, gitlab, and bitbucket depending on what size group or features I needed but this helps centralize everything to GitHub. That is probably their goal!
Ken Thompson, Rob Pike, Brian Kernighan, Russ Cox, Robert Griesemer are guys who created Unix, B, C, Go, Utf-8, etc. Maybe it will be useful to invite these guys(one of them) in the C Standards Committee for help to improve and design new language features?
Good to know; thank you. :-) I suppose the advantages (mine) may include keyword exclusions (I'm not sure if that functionality is available in the API), and local hosted (hence, more "private" -- whatever that means these days ;-) code.
Have they fixed all the bugs with that pseudocodepage?
I would guess that's for economic reasons rather than technical ones. I think that lispm were considered a great technical success by many people. The problem was that they were a lot more expensive, and much more limited in what you could do with them (not quite "You can program in any language as long as it's lisp, but you get the idea). That constrained them to a relatively tiny market, which in turn limited the amount of money that could go into R&D on the technology. So it was doomed to fall behind.

Java processors, I'm still not sure what the target market there was. It's easy to imagine at least an academic market for lisp machines, particularly during the 1980s and perhaps the early 1990s. But, particularly in a post-1995 software environment, it's hard to imagine a large-scale (as in, not embedded) computing project that can reasonably commit itself to Java, and it's also hard for me to imagine an embedded application where Java would be preferable to a low-level language. Which is also more of an economic problem - they might have worked really well from a technical perspective, but that doesn't mean they weren't a solution in search of a problem.
Hi HN, I'm the CEO of GitHub. Everyone at GitHub is really excited about this announcement, and I'm happy to answer any questions.

We've wanted to make this change for the last 18 months, but needed our Enterprise business to be big enough to enable the free use of GitHub by the rest of the world. I'm happy to say that it's grown dramatically in the last year, and so we're able to make GitHub free for teams that don't need Enterprise features.

We also retained our Team pricing plan for people who need email support (and a couple of other features like code owners).

In general we think that every developer on earth should be able to use GitHub for their work, and so it is great to remove price as a barrier.
Me too! Microsoft has done a really great job of managing the acquisition without ruining GitHub. GitHub already had a great understanding of their audience and a pulse on the community prior to being bought, so I'm really glad that they haven't lost that now that they're a Microsoft subsidiary.
Why not keep C a simple little language with fast compile times and delegate all "enhancements" (such as 'cleanup') to C++?
Cars are designed to reasonably safely handle head on collisions with a brick walls at 55 MPH. I doubt a lightweight shell is going to provide anywhere near that level of protection.
> On first impression, Option B looks straight out of the 80s. The text is off, the font is off, the URLs look outdated

What web browser was this guy using in the 80s?
Funny enough, they do find space for a Geico ad on the page.
Google Project Zero is doing exactly that -- disclosing them in 90 days no matter if they're fixed or not.

This kind of pressure is helpful, because otherwise stories of OP will be dominant and security problems will stay unpatched.
So in a nutshell, could we summarise the issue here as "Valve didn't use TLS and thus Valve's users are vulnerable to the exceptionally well-known consequences of not using TLS?"

If so, then... okay, but I don't know what the blog author was expecting when he reported this. Pointing out that HTTP has MiTM possibilities is kind of up there with pointing out that the sky is blue. If, in 2020, a site has made the choice not to upgrade to TLS then it's more likely a conscious decision than an oversight.
Does “for teams” also apply to paid personal accounts?
meanwhile, in the 24th century... https://abstrusegoose.com/323

(gonna keep posting this on all the COBOL threads haha)
Also worth noting that a language extension may not be sufficient for all cases. E.g. the OS stores register state on a context switch; do you also need a flag for the system to zero any memory used for this purpose following the state restore, or is it OK to trust that it won’t leak through some mechanism? For some applications, there may be contractual or regulatory requirements to have an erasing mechanism for copies like this as well.
Why would a vendor be unhappy about that? They have a large library using this deprecated syntax? Or many customers? It seems like a relatively easy fix to existing code.