skysight-inc/HackerNews huggingface dataset:
> So how much was Vice paid for this article?

For journalists, something like that is quite an accusation, and it really doesn’t help anyone to thoughtlessly make it.

Maybe they are stupid, or just have different ideas of what’s newsworthy, or it was a slow news day…whatever. But all of those come down to a difference of opinion, not a statement of fact made without evidence.

“Assume good faith” is in the guidelines here. And while it isn’t explicitly extended to the articles themselves, the reason for including it do extend to other interactions. Mindless cynicism leads to the sort of corrosive distrust that’s eating away at civil societies everywhere.
It was even more challenging than that as many other mammals contracted covid-19 as well. So even if you immunized 100% of all humans on Earth, there would still be variants emerging periodically.
Yeah PaaS like Vercel and Heroku have an inherent limitation - at some point you need to move off them because the industry has moved on and you can only do so much without things like infra-as-code and kubernetes that became industry standard.

At the same time, simplicity is needed more then ever - k8s is cool but now people are spending crazy amounts of time and money to set up the devops goodness to run simple apps

So we thought, why not have both simplicity and power? We're just making the deeper layers of configuration optional, but still accessible.
> If applications leveraged files instead of anonymous memory to implement their caches, then the system’s file buffer cache would do the right thing

I've always thought this should be the standard way of doing caching. It's also explained at length in this article by the author of Varnish: https://varnish-cache.org/docs/trunk/phk/notes.html. Contrary to what TFA is saying, performance under "normal" use would be the same: the data is in RAM. It doesn't change that it is backed by a file or not.
I don’t think think this is particularly useful and it looks like a Nomad List copy.

There are plenty of more comprehensive options for visas (I think VisaHQ is one). The website doesn’t even mention that some countries don’t require a visa at all to enter.

I’ve been using Wikipedia’s great “Visa requirements for COUNTRY citizens” which will give you a list of countries you can enter and for how long. For the rest of the information displayed here one can open Wikipedia’s page for the country too.

If the intent is to list countries with nomad visas, then list them. As it’s setup currently you’re just asking me to pick a country I already know.
> In Chapter 3 of Principles of Program Design[1] Jackson presents two versions of a program, one designed using JSP, the other using the traditional single-loop structure.

I think I've come back around to seeing some merit in the "traditional" version. All the state is declared before the main loop. You could stop the program after any iteration of the single loop, save the explicitly declared state, and restart where you left off. The logic inside the loop can be applied to any record and state.

In the double-loop version, your place in the control flow is part of the state. If you stopped, you wouldn't know where to start up again. There's also a state variable (firstLineOfGroup) declared inside the loop.

I know why I prefer the "traditional" version: it can easily be refactored to be functional, and making the state explicit means it doesn't have to be refactored if I want to store the state externally or switch from a batch architecture to a streaming architecture. The JSP version is inherently imperative and needs to be refactored before it can be used in a different architecture. Funny how ideas like that alter your taste.
> Looks like a lot of trouble just to use software you payed for, the way you prefer.

I use a lot of proprietary software too, but I don't see any point or reason to demand that I should be able to use the proprietary software the way that I want.

If you want freedom to use software the way you prefer, use open source software. I write open source software because I think open source is both important, and because it is beneficial both to myself and others.

I run proprietary and open source software side by side. And software that lives forever is the exception not the rule in either case.

Whether you pay with your money or your time, almost all software has an end of life at some point. For any number of reasons. Sometimes it's an open source developer that stops maintaining the software and noone has the time nor capacity to pick up the work. Sometimes it's the company behind a proprietary piece of software that goes bankrupt, or the company is acquired and the developers put to work on something else. Or... any number of reasons.

About the only thing that you can really do in the end, if you want ultimate control, is to develop the software yourself. But that has a huge cost too, which is the amount of your time that you put into it. Or, we can use the software that others make and admit to ourselves that we are not in control of the future of that software nor how we will be able to use it. And in the end we all have to do so with a lot of software that we use, because no one single person is able to maintain all of the software that they rely on, from the OS to the apps and across devices – it's just way too much code and way too much of everything.

And this brings me to the point which is to say, factor this into the consideration when making decisions. Buy a piece of software because it provides value given the current state of things. And be wary of to what extend you allow yourself to be locked into any one app or platform. Don't keep your data on their platform only. Export data to a neutral format and neutral storage medium regularly, so that you have access to it in the future. And if the software makes this impractical, decide which is worth more, the immediate benefit, or the future. Sometimes the answer is immediate benefit, but I think we are susceptible to appreciate immediate benefit even in cases where we should be considering the future more.

I use a MacBook Pro M1 and an iPhone because they provide value to me. They provide a platform that is comfortable to use and which suits me. But my files and my life is not tied too strongly to Apple, and my desktop computer runs Linux and my servers run FreeBSD. And if a piece of software does not fulfill what I need it to, I find an alternative piece of software or I find a different way of doing things.
NLP data and analysis and code: 2178 annual reports, 212 companies, 11 years
more readable, but not easier to understand. a = a + b still carries the same information as add_and_copy(a, b), but one is misleading and the other isnt.
> so the end result looks like something their engineers put together in a last minute crunch (which is probably what happened)

They actually say that’s what happened in the video on it.
It's public, but I doubt it still compiles against recent LLVM versions! I started it 8 years ago to get a better understanding how features like classes & operator overload would work in a JS-like language. It was really fun!

https://github.com/castel/libcastel/blob/master/runtime/sour...

https://github.com/castel/libcastel/blob/master/runtime/sour...

I remember that at the time there were very few resources on personality functions, even in the LLVM doc - I had to make a lot of research before finding your articles, which were extremely helpful!

I got reminded of them yesterday after someone pinged me on a Stack Overflow answer I made at the time, asking for an updated link; after I found your long-form article I figured it would be a good topic for HN as well :)

https://stackoverflow.com/questions/16597350/what-is-an-exce...
> a + is way more readable.

I believe it works much like a self-fulfilling prophecy. Language designers think that it is more readable, so they do it. Language users use it and became habituated to it. So it becomes more readable because some people believe that it is more readable.

What is unreadable with:

a.extend(b)
c = a.clone().extend(b);

Programmer have all the control of memory management, and at the same time she is free to do any operations on lists, to chain operations, to do everything. And all her intent is here, it is written, it is obvious. While a += b... It leads to a need to write articles describing the difference between + and += and how could I possibly know did programmer who wrote the code read all such articles? Did he wrote he intended to, or what is nicey looking, but not great semantically? Did I read all these articles or I missed something?

Even if it is more readable, does it justify all the obscurity?
Hydrogen energy storage capacity underground: $1/kWh

Li-ion energy storage capacity: somewhere around $200/kWh?

So, no, hydrogen is not "hard to store". It's vastly cheaper to store it at scale than it is to use shorter-term storage technologies. The disadvantage is low round trip storage efficiency (maybe 40% if used with a combined cycle power plant) but THAT'S OK for long term storage, which will have many fewer such iterations than diurnal storage.

If you want to level grid energy use and demand over a year, batteries would be insane. Hydrogen, however, could be quite practical.
Curious, in these three hours did you teach your student about git log, checkout $HASH, bisect, revert or any of the other ways that git is actually useful beyond being a glorified FTP ?

Git is a wonderfull tool for exploring a development process unlike anything that’s existed in other domains, but in my experience it is mostly used as a write only tool to deploy code.
Yeah agreed. There was the adafruit one too.

Though I'd love to see a PA-RISC emulator for the old HP-UX with VUE. But that's not around unfortunately.
No, because this is a biased sample set. It is comparing vaccinated people and unvaccinated people who have been admitted to the hospital.

The vast majority of vaccinated people who get sick, do not get sick enough to go to the hospital.
Ho yes my bad! Yes I think so
Maybe we should build canals instead. It would solve several problems at once: 1) We could lay fiber in them 2) We could direct much needed tourism to neglected areas 3) It would give us an alternate transport option in case a bridge or two declines to cooperate with our no maintenance stance 4) I could have a Widebeam boat and go boating. That last one is the most important one, of course.

Most people prefer boating to trains. Using Airboats in shallow canals could probably really hit some wild speeds. Uber Airboats, anyone???
> Can you share any details about that?

Well, I heard story first hand. It's not a secret to anybody in the Industry too.

Apple been quietly trying to invite its part makers to setup factories in Vietnam, sometimes quite coercively.
> hydrogen requires cryogenic storage

Not for grid-scale stationary storage, it doesn't. You store it underground as compressed gas, just as many millions of tonnes of natural gas are stored today.
I’m trying to see if this could be done without writing your own macro in C (put it inside «src/macros/», list it in «src/macros.h»), but I first need to understand it correctly.

Since «ANSELBbits.ANSB3 = 0» sets the write to digital, would it not belong in «digitalWrite()» instead?

Would it work if the generated code was like this?

TRISBbits.TRISB3 = 0; // RB3 is output (pinMode)
ANSELBbits.ANSB3 = 0; // RB3 is digital (digitalWrite)
LATBbits.LATB3 = 1; // RB3 is set to high (digitalWrite)

EDIT: Assuming I got the meaning right, you can get quite close with standard C macros, but since I’m here demoing Cedro we could as well use it:

#pragma Cedro 1.0

enum { OUTPUT = 0, INPUT = 1 };

#define { pinMode(REGISTER, DIRECTION)
TRISBbits.TRIS##REGISTER = DIRECTION
#define }

enum { LOW = 0, HIGH = 1, DIGITAL = 0, ANALOG = 1 };

#define { digitalWrite(REGISTER, LEVEL)
ANSELBbits.ANS##REGISTER = DIGITAL;
LATBbits.LAT##REGISTER = LEVEL
#define }

#define { analogWrite(REGISTER, LEVEL)
ANSELBbits.ANS##REGISTER = ANALOG;
LATBbits.LAT##REGISTER = LEVEL;
#define }

int main(void)
{
TRISBbits.TRISB3 = 0; // RB3 is output (pinMode)
ANSELBbits.ANSB3 = 0; // RB3 is digital (digitalWrite)
LATBbits.LATB3 = 1; // RB3 is set to high (digitalWrite)

pinMode(B3, OUTPUT);
digitalWrite(B3, HIGH);
}

If you put that in a file («regtest.c») and run it through Cedro and the standard pre-processor, you get this:

$ ../bin/cedrocc -E regtest.c
# 1 "<stdin>"
# 1 "<built-in>"
# 1 "<command-line>"
# 31 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 32 "<command-line>" 2
# 1 "<stdin>"
# 3 "regtest.c"
enum { OUTPUT = 0, INPUT = 0 };
# 9 "regtest.c"
enum { LOW = 0, HIGH = 1, DIGITAL = 0, ANALOG = 0 };
# 16 "regtest.c"
# 21 "regtest.c"
int main(void)
{
TRISBbits.TRISB3 = 0;
ANSELBbits.ANSB3 = 0;
LATBbits.LATB3 = 1;

TRISBbits.TRISB3 = OUTPUT;
ANSELBbits.ANSB3 = DIGITAL; LATBbits.LATB3 = HIGH;
}

The only part that uses Cedro is the block #defines for «pinMode()» and «digitalWrite()».

EDIT2: I suspect that what you really need is a «macro» that checks that the register has been last set to the correct direction (INPUT/OUTPUT) and mode (DIGITAL/ANALOG) before calling the «…Write()»/«…Read()» functions. For instance, if B3 was last set to ANALOG and you call «digitalWrite(B3, …)», it would insert «ANSELBbits.ANSB3 = DIGITAL», but not if it was last set to DIGITAL, and so on for all function variants: «digitalWrite()», «digitalRead()», «analogWrite()», «analogRead()».

You could write such a function in «src/macros/pic32.c», list it in «src/macros.h», and Cedro would run it.
Does anyone has a standardized IQ test for children 3 (or 5) months old ? Does the child must stand up when he takes the test. /s
Rust's std::ops says:

"Implementations of operator traits should be unsurprising in their respective contexts, keeping in mind their usual meanings"

Which seems like reasonable advice.
Not necessarily. The scanning implementation can be similar to what they plan on doing on your device. I don't want them to do the scanning on my phone. If shit hits the fan and I become a dissident, I would prefer to have the option to stop using iCloud, Dropbox or any other service that might enable my government or the secret police to suppress me.
That wasn’t the claim though, the claim was that if I text someone a photo via WhatsApp it will do all of this automatically without them choosing to save it.

If WhatsApp does this by default then, ho boy is that a terrible implementation.
That’s because nobody knows anything about how our bodies burn energy, just like the article says, and the use of the term metabolism is complete pseudoscience to convey a misunderstood abstract concept.
Nice modest improvements. I could see using this in my previous life as a C programmer of a large project. I am a bit surprised that the defer features uses the 'auto' keyword rather than introducing a new 'defer' keyword. Seems like 'defer' would be clearer.

But as I type this comment I realize that other syntax parsing tools like IDEs would be happier if the unprocessed code is still valid C.
von Neumann was probably the most intelligent person ever documented.

He was probably frustrated that people couldn't see the machine code fully formed in their mind's eye :)
This is the same debate as whenever some abstraction layer hides details - high-level vs low-level code, automatic vs manual in a car, coffee pods vs brewing machines, hand-tools vs power-tools, ready-made sauces vs make-from-scratch.

As a novice, you don't understand the benefit provided by the tools, so you don't bother learning them. As an expert, you've forgotten the shape and impact of the massive learning curve faced by the novice so you don't understand why they don't bother overcoming it.

I suspect the 80/20 rule applies here - a GUI provides 80% of the value of a source control system, 80% of the time. If occasionally you do have to delete everything and start again, that may actually be a more effective technique than spending a lot of time learning Git beforehand, despite how crazy it looks from the perspective of an expert.
Lupi eunt domus!
I feel like Deepfakes really count as CGI human though. At least not in the sense being thrown around by Nvidia here
On the other hand, the only real reason you’d want to run AIX is because you had to, because you had the hardware and there was no other option.
buying something usually makes you the owner of that thing. And as such to use it the way you want, even if that means breaking it ( you may just loose the waranty, which is perfectly acceptable).
If you buy a mac and an iOS app, i don't see any reason why you couldn't try to have the two work together if that's technically possible.
Apple may add additional code to prevent that, and then you should be allowed to remove it.

It's the regular way things work with ownership.
In the automotive industry when all your devices fail the test, the test is wrong.
And, even beyond the improved quality, they'll cost a lot more than a "smart" TV, because the "smart" TV is (likely?) subsidized by whomever gains access to your media stream.
Tor usage hasn't had any major uptick as it seems people have resorted to using (scammy) VPNs to bypass these restrictions instead. For people I communicate with in Zambia over Matrix, it has suddenly become their primary messaging system.
Blue light blocker glasses to wear at nigth.

Changed my life in so many ways. I thought I slept well before, but boy I was so wrong!
Yes, grid is a big use case. Hydrogen can be stored in salt domes for maybe $1/kWh (energy capacity cost). This is two orders of magnitude cheaper than batteries, and could be used for seasonal load leveling.
I haven't heard of this before, could you link some examples?
Yet you kept this deal secret for those creditors, until the point where they had no option but to accept it. The reality of it is that you just colluded with Fortress to cheat the creditors out of millions.
I dont think it was Doom. The IBM and clones ran Lotus 1-2-3 and Wordperfect. Wordperfect replaced a lot of expensive word processing systems. Lotus had no real competitors on mini or mainframe computers. Lotus was a true killer app that upended office work completely.

Once you had those and a serial terminal program for your legacy system there was no way the 8 bit inspired computers like amiga would ever compete again. Macs were a distant but respectable competitor but only in niche markets. Then networking shut the door completely. If you system couldn't do ethernet you were boned.

The workstation vendors had a brief period where they had a shot but the PC market caught up too fast.

Doom was fun but by 1993 when it was released the PC had already dominated the market for over a decade.
My understanding of python is that all operators are shorthands for calling methods on the objects.

E.g.

1 + 2

translates to

1.__add__(2)

and

a += b

translates to

a.__iadd__(b)

So the difference between `+` and `+=` are dependent on the object in question.

Then in practise, there are a lot of optimizations and implementation details.
Doubly so for building compilers, or compiler-like programs (a long chain of intermediate representations, with lots of little transformations from one to the next).

Adding a new type of node, in a language with ADTs, leads to compile-time breakage I can fix.

In a language where exhaustiveness errors are caught at runtime, it's like building on quicksand.
Apple very recently promised that “what happens on iPhone stays on iPhone”. At literally the same time, they were building a system that was designed to break that promise. Why should we believe their new promises when their last promise was disingenuous?

https://9to5mac.com/2019/01/05/apple-privacy-billboard-vegas...
It has been admitted. (again)

So the mainstream media was found to be spreading fake news all this time and the spooky 'conspiracy theorists' and scientists that were banned about showing evidence about its origins were right again on this one?

Given that Facebook flagged the official CDC.gov guidelines sources as 'false information' perhaps Facebook and the Big Tech police are the actual misinformation merchants pushing an alternative agenda and using that as cover to ban those for wrong think.

So what else has the so-called TNI [0] been lying to us about such that they need to ban / censor anything that is against their narrative?

[0] https://www.bbc.com/mediacentre/2020/trusted-news-initiative...
Do you know how does in app purchase work in that configuration ?
I get your point, but "I can't think of a time when I've been fooled by CGI" is a tautology: you remember = you weren't fooled. If you had been fooled, chances are you wouldn't remember.

There are videos from CGI artists, e.g. Corridor Crew, that break down really good CGI, which is almost entirely invisible to the non-expert eye. That is in fact the best kind of CGI: the one that enhances reality so seamlessly that it's almost impossible to pick apart. Quite entertaining and informative videos.
> Why on earth is Apple, a good tech company, with a culture of secrecy, using slack? Can it not build its own secure version of slack?

What else are they going to do with all that cash they're sitting on?

Also in this way they are being patriotic and supporting 'American innovation'; i.e. the American Intellectual Property regime [1].

[1] https://tribunemag.co.uk/2019/01/abolish-silicon-valley
Not every device must have an IDE plugged into it.

In any case, there are coding environments available for not-serious development on the go, and then there are laptops.
Understood. I apologise though the aggrecious level was off the scale.

I thought it was quite a poetic and appropriate response at the time rather than flamewar'ish, but you're right.
Oh boy, the IJF is going to have an epic hissy fit
Thats good, that has nothing to do with privacy.

The VPN concept can provide no assurance on privacy and any supposed assurance can change at any moment’s notice, whether they VPN provider is aware or not, coerced or not.

Who you want privacy from is important, but the people VPNs provide privacy against results in no differentiation between VPN providers.
It’s not n^2, it only iterates over the list or lists sequentially. You would have to visit items more than once to get n^2. I’m not denying that it’s worse and it’s a excellent point, just that it’s only unfortunate not exponentially unfortunate.

(Edit) leaving the comment for integrity of the thread but I failed to notice that you absolutely revisit the first elements of the first array every time through the loop (which is growing in size), which absolutely makes it n^2 whereas the better version just tacks it on without reconstruction.
> who pays…

The state of Wisconsin, for one: https://p.widencdn.net/7o52me/WolfDamagePayments

From https://dnr.wisconsin.gov/topic/WildlifeHabitat/wolf/maps.ht...

I also know the state of MN pays for wolf depredation as well, I’m sure you’re capable of researching this further if you want to know which other states pay out.