skysight-inc/HackerNews huggingface dataset:
> How does async translate calls to other async functions?

There's nothing special going on. Remember, async on a function is something like

async fn function(argument: &str) -> usize {

to

fn function(argument: &str) -> impl Future<Item=usize> {

so, when you call an async function, you get a Future back. That's true even if it's inside of another async function.

> If not, how does it deal with (possibly indirect) recursive function calls?

Recursive calls to async functions will fail to compile: https://github.com/rust-lang/rust/issues/53690

That said, see that discussion; the trait object form will probably eventually work.

Heavy recursion isn't generally Rust's style, since we don't have guaranteed TCO, so you threaten to overflow the stack and panic.

> Is refactoring into smaller async functions less efficient?

That's a complicated question. It really depends. I don't think it should be, thanks to inlining, but am not 100% sure.

> And what is the purpose of the pingpong between executor->Waker->push onto executor?

Right now, the best resource is https://boats.gitlab.io/blog/post/wakers-i/ and https://boats.gitlab.io/blog/post/wakers-ii/

> I am also still unsure what the approach to multithreading might be.

You have options! Tokio now does multiple executors with work-stealing by default, in my understanding.
> The second one makes it clear that this function changes the state of something by writing to certain memory locations

Seriously? So all state changes need to be made in 'main'?

Pretend there was no explicit state change in there, does that change your mind?

What if doHighlevelThing3 is actually called "changeTheThing", and the actual write to the memory location is simply the low-level implementation of that?

That's a really weird objection (to me, I acknowledge this is all style and I am opinionated).
There's literally a command-line example (although it doesn't print Hello world, but the factorial of 42) on their front page.

That said, Smalltalk isn't something you use from the commandline typically, or only during deployment or for applying external automation. The GUI environment is fairly key.
> If there is less work to be done in the world, everyone will work less on average.

Another solution would be that we end up with fewer people, through any of several rather nasty mechanisms.

I'm not as optimistic as you that society values animals which don't provide anything -- horses haven't gone extinct, but they're certainly not doing well either.

In the age of thinking machines, monkeys are the new horses.
Having separate commands for outputting the content of a single file and several files would, however, be an orthogonality violation. YMMV whether having a more descriptive name for the most common use of cat would be worth the drawback.
> Only noobs avoid copy&paste at all costs.

If only that were true. I've seen plenty of people with 10-20 years of experience do this too. You know those coding standards that absolutely forbid functions longer than X lines? They weren't written by noobs. They were written by old-timers who assume authority based on mere longevity.

The fact is that there are tradeoffs. The "giant function" approach does create risk that code will be copied and tweaked incorrectly, or violate the assumptions under which the original was correct. This risk can be ameliorated with asserts and/or good tests, but it never goes away entirely. OTOH, the "splatter" approach can be disastrous for subsequent navigation and reading of the code, and the kicker is that it doesn't eliminate the copy-pasta problem at all. I've had to fix many bugs caused by copying between many small functions, followed by either not updating them consistently or someone calling the wrong one. Generally I don't like it, but that's also a bit language-specific. In languages that have explicit guard/context constructs or objects with RAII there's little excuse. In Plain Old C function nesting is a valid way to deal with the cascading-error-cleanup problem. It's still not the approach I prefer, but I'm not enough of a jerk to deride others as noobs for using it.
GMO crops for example are usually quite small changes, frequently genetically less drastic and more controlled than selective crossing of plants to achieve a similar outcome. Sort of like the difference in risk of switching from a bread knife to a scalpel. Its sharper sure so you need to be careful but its fundamentally a more accurate equivalent of what you were already doing before and understandable. What's being discussed here is more like moving to training crocodiles to only bite down on the line you want to cut, and trust them to not eat the patient. The fundamental question anyone working in that gig would ask: "can you actually train crocodiles? will they turn on you?"
Voronoi Tessellations and Scutoids Are Everywhere
actually curious: in a codebase worked on by multiple devs, how do you acquire the hint that those few lines you are about to write have been made in a reusable function by someone? Is there some naming convention, a fuzzy search, or some other technical thing? Or is it a email/standup "look at my functions" social thing? And what about functions that 95% but not exactly satisfy your requirements? What is a practical way to sync up multiple devs on small helper functions?
30% waste on cheap side ingredients (lettuce) will kill your margins.

30% waste on meat will kill your business.
> you could start out as a file clerk with a high school degree and work your way up into middle or even upper management (at least if you were white and male).

That upwards mobility depends on one thing: that old people drop out of the workforce either by death or by pension, so that young people can rise up the ranks.

Now, given that people in their 80s need to work (!) to survive, this "generational contract" is broken. People are stuck with shit jobs until well in their 30s, so how are they supposed to procreate or save for their own retirement?
You make cities affordable by unrestricting building height way beyond the "projected" demand for residential construction in the core. Then as dense, cheap residential fills up you will see the natural build out of more of it. Keeping space to grow / build public transit and infrastructure is also critical. That doesn't mean overbuild now, it means don't try to stop it when the time comes.
The small size of methods is a feature, not a bug :-).

And this partly explains why the lack of [your favourite editor] bindings isn't so important. You don't typically spend as much time as you're used to typing in code - and make progress faster as a result - counter-intuitive as that may sound. The integration and the debugger are most of the reason why.
> I disagree about steam being slow and clunky.

It can seem to be - on my Windows 10 box, a Steam update can take half an hour or more (on the Mac, it'll never be more than a couple of minutes.)

Often it'll get stuck downloading updates to games which means you can't play them until it unsticks.

I appreciate that these are almost certainly Windows 10 issues (since a lot of other stuff is similarly afflicted) but most people will blame Steam.
I don’t buy this. Are saying if you get college a degree in Chemical Engineering you wouldn’t be far more productive as a Chemical Engineer than if you only went to high school? Or in say, physics or chemistry or botany?
UMAP[1] and t-SNE[2] are two very similar and popular ways to map a set of points in a high dimensional space to a low-dimensional (usually 2D or 3D) space by assuming all the points are close to some smooth curved surface (a manifold[3]). These are unsupervised non-linear dimensional reduction techniques; if you're familar with linear dimensional reduction techniques like PCA[4] you can think of UMAP and t-SNE as curved generalizations of that. t-SNE is widely known to be hard to interpret and unstable with respect to arbitrary hyper-parameters[5] and I would assume UMAP suffers similar problems. It's also extremely difficult to define "similarity" between documents and authors. Techniques like LSA[6] and word embeddings[7] exist but are still an open area of research. Based on similar concerns as yours, I doubt any of these issues were seriously addressed when this visualization was developed.

[1]: https://arxiv.org/abs/1802.03426

[2]: https://en.wikipedia.org/wiki/T-distributed_stochastic_neigh...

[3]: https://en.wikipedia.org/wiki/Manifold

[4]: https://en.wikipedia.org/wiki/Principal_component_analysis

[5]: https://stats.stackexchange.com/questions/263539/clustering-...

[6]: https://en.wikipedia.org/wiki/Latent_semantic_analysis

[7]: https://en.wikipedia.org/wiki/Word_embedding
The outsourcing boom did this, not automation.

Dogsbody type work is routinely offshored rather than being given to local juniors.

Every company I've worked at in the last 3 years bar one has had a component of their workforce doing this kind of work - in the philippines or india.
If you turn all those code blocks into functions, it’s no longer easy to visually inspect the code to see all the places where variable X is modified. It might not be a net win for readibility.

This goes back to not modifying global (or class global) variables and using a functional style. If you need to pass four or five variables put them in your languages equivalent of a pass by value struct.

In the case of my favorite IDE, Extract Method and creating a struct/class from a parameter list is an automated, guaranteed safe refactor.
I see an issue with that - but it's possible I'm too paranoid when it comes to many third parties being able to issue certificates for my domain on names I wasn't expecting.. Each to their own!

Either way - assuming restricting issuance to exactly 1 name is a solved problem.. This:

What? No.
The mirrors would just need to install a letsencrypt-compatible client and setup SSL via that.

is still a far cry from reality thanks to all the other issues.

If anything, it's: What? No. Certs are just the tip of the iceberg, even if LetsEncrypt solved that problem neatly (and they don't), you have ignored the massive complexity of the issue, both the technical and organisational issues.
Isn't a more compact/walkable town/city more affordable from a construction/materials standpoint? I think these walkable places are not affordable because there are so few of them, so are in high demand.
Wow they are really aggressively comparing to Trello which isn't really the same product niche.

Compare your product to Airtable please. Why would someone use this product instead of Airtable?
Get your dream tech job in 2019
Iceland Man Receives Prison Sentence for Stealing Mining Equipment
I'm not sure about deployment but the 'hello world' is essentially part of the environment:

https://i.imgur.com/JwgJ66z.png

You create a new image and then start piecing things together from there. GNU Smalltalk is probably what you want if you want to stick to the CLI. That said, it's not exactly a representative example when you want the same program that prints to stdout or something.

I'm curious to know about this aspect of it because my first step after the hello world is usually to figure out how to host the thing.

Edit: this would be more useful: https://stackoverflow.com/a/17259369
An additional question would be all the ancillary tools needed to build a startup:

Mail + Payments + Payroll + Insurance + Marketing +++ etc..
I think you discount the value of the other 99%. Those scientists were able to commute to work because some guys with shovels made a usable roadway, some other girls worked an oil rig to extract what would become fuel, yet another group of people made the street signals, and some teenage kid with very little skill at all made them a burrito for lunch so they could get back to sciencing.

Not everyone is a brilliant scientist, but every brilliant scientist relies on the rest of the collected mass of humanity to make it through their day.
Shepherd is quite scary outside of GUIX.
It basically runs package-supplied code in PID 1, with no protection. A badly written init script will halt startup completely and render system unbootable.

GUIX (I believe) has this "choose previous version from GRUB" dialog, so you can recover from bad init script by rolling back the whole thing. Any other OS will require manual fixes, and this is going to be quite a pain.
Design flaw behind MacBook Pro’s “stage light” effect
Isn't that a little like saying that the government expects to see a "ROI" from educating children?

The positive effects of open sourcing science could be seen down the road and not in a direct way, but in more indirect ways.
> I'd love to peek at the alternate universe wherein Apple doesn't migrate to the FreeBSD-based OSX.
(…)
> I feel like that was the moment that the Mac pulled in a lot of very technical and very influential people, with good reason

You can look right now at what's happening to these very technical people. The ones I know are giving up on Apple and moving to Microsoft instead: because the WSL subsystem works, and the keyboard has most of the keys they want.

We are living in interesting times!
How do I get a cutting of this plant?
Granted, I know little to nothing about the IT industry, but is a "managing director" someone who has a high school diploma plus some technical skills?
If the headline asks a question, try answering 'no'. Is This the True Face of Britain's Young? (Sensible reader: No.) Have We Found the Cure for AIDS? (No; or you wouldn't have put the question mark in.) Does This Map Provide the Key for Peace? (Probably not.) A headline with a question mark at the end means, in the vast majority of cases, that the story is tendentious or over-sold. It is often a scare story, or an attempt to elevate some run-of-the-mill piece of reporting into a national controversy and, preferably, a national panic. To a busy journalist hunting for real information a question mark means 'don't bother reading this bit'.

-- Andrew Marr
111: K8sSec, Earn More in DevOps, Jim Whitehurst, Where to Work, and More
which are for the most part driven by the increase of wealth concentration. I think there are many symptoms but the main issue is not enough money left for those not in the 1%.
Smalltalk system consists of a VirtualMachine and an image. An image is just some Smalltalk code compiled into a form suitable for VM to read it into memory. The initial image contains all the standard classes of Smalltalk plus the GUI and various tools. When you add a method to some class inside the GUI, it gets compiled and added to the image held by the VM in memory. Later, you can dump the modified image to disk, producing a new initial image you can later use.

This is indeed similar to Common Lisp and Emacs.

Back to the original question: the VM runs on Windows/Mac/Linux and on some IoT devices. The code is compiled to bytecode which can then be JIT compiled further on some architectures/OSes. The compiler and the whole infrastructure is exposed and available on runtime.

Pharo has classes for easy FFI to C and for bundling native libraries. I don't know if it's possible to call back from C to Pharo, but I assume yes (many libraries require this). There is no FFI or other integration with any other language (at least as a built-in, there are RPC interfaces for some langs as add-on packages).

As for "standalone binaries" - almost, as you need to bundle the VM with the image; there are some helper scripts for bundling and then launching images.

The most obvious use case is GUI programming, there's also old-school Web programming with Seaside, data crunching and visualization with Roassal. Other than these killer-apps, Pharo is just as capable as any other high-level language, although with a much smaller selection of libraries available.
The more interesting question is ”Why does Neptune have interesting visible-light features even though it’s even farther from the sun than Uranus?”
Great article, great storytelling.
It'd be hard to justify the costs - both actual college costs and opportunity costs if it was purely for intellectual curiosity.
Sounds like a classic "not right for us" == "not right for anyone" muddling. Most people I see using Trello use it for creative commissions which generally don't need complicated tracking.
Linearity: if a system is linear you can draw a nice straight line on an X-Y plot of input vs output. Nonlinearity is a measure of how much it deviates from that line.

Drift: component values are not fixed! Most vary slightly with temperature, and capacitors change value over time too. Can be seen in any kind of old equipment which needs to "warm up".
I havea suggestion, but because I am building one (although have yet to buy the equipment:

Ubiquity wifi + LTE + Wifi Cam in the vehicle - with cloud based view - Basically with this setup, you can make your car cam a part of your home security setup.

https://unifi-video.ui.com/g3-flex
The Pharo website has zero mention of its relation to Smalltalk, although the Wiki article calls it a dialect.

So how close are the two in reality? Is the syntax from your standard Smalltalk-80 textbook largely portable/compatible to Pharo, or is Pharo merely "inspired" by Smalltalk?
There was plenty of forecasted doom and gloom in 2005-2006. It was still an extreme minority, as it is now, and when the next recession comes it will blindside most people all the same. Remember how many more don't have any savings and are living paycheck to paycheck today than before 08.
What we do and don't know about gut health
Betteridge's law of headlines!
Philosophers tend to be interested in the "foundational" questions about math and other sciences. In the case of math, in practice this means that good philosophy departments will often teach courses on first order logic and set theory, and philosophers such as Frege and Russell made major contributions in these areas. But they may also get more interested than mathematicians would in the questions about about the nature of logic - the nature of truth, propositions, the viability of alternative or non-classical logics, and so on. And then for example various modal logics can be helpful for thinking about possibility, epistemology, ethics, and so on.

Historically there is also a lot of overlap as well. Formal logic was invented by Aristotle. Leibniz and Descartes are equally large figures in mathematics and in philosophy.
"Why is ..." "no"?
I think type safety is Swift’s killer app. Other than that I don’t know what other major improvements over Objective-C other than the general conveniences of pithy modern languages.
It's a small amount of money so that you can dedicate more time to your children (instead of picking up another part-time job), more time to your education (instead of picking up employment during your highschool years), more time to your training (so the poor can actually educate themselves with certs instead of working 3 jobs to afford insulin or some other healthcare), more time to volunteer organizations, more time for political engagement, so on and so forth. It's not to do nothing. It's to enable people to do what they want when time is money and both are scarce.
But there's a lot of evidence that computer power follows Moore's law. All that matters is that the growth is exponential.

Evolution took a billion years to evolve multi-cellular life, but the jump from apes to humans took far less than a million years.
That site is not a news site... That's just paid advertising?
Thanks for your response.

I'm interested particularly in preemptible pods - I see here https://cloud.google.com/tpu/docs/pricing pricing for preemptible single units, but there is no indication that preemptible pods are available.
They can't. They have a native local competitor that stocks everything they do and is located within a few blocks ( or a few exits on a road ). The competitor is called "a grocery store". There's typically more than one of them in the area.

The total possible market that meal kit companies can extract value from is very small - it is not only people who have more money than they have time and people who do not know how to leverage money to get others to do the entire process for them.
One of the key words in that statement was "actively developed". Cincom, Instantiations, and GemTalk have some great people working on them, but Pharo7 had 75 different people contributing - including probably almost as many full-time people as the commercial developers (maybe more).
Fact.MR: Minimalist pack trend influences specialty papers demand
At some point in the 2000s, it may have been an OSCON, I observed the incredibly high proportion of MacBooks being used by attendees. It was effectively a *nix laptop that worked.

It’s at least plausible to think that absent OS X, a lot of developers would have made do with then still very rough around the edges (desktop) Linux and, given that level of interest, it would have improved at a greater rate.
Cloudping for top cloud providers
CSS file icons
Anything to get clicks right?

Uranus IS interesting as it’s the only planet which is turned on its side relative to the spin and orbits of its sibling planets.

Just because it doesn’t have swirling clouds due to the extreme cold doesn’t mean it’s not interesting.
I used this recently, it needs better documentation.
Still, cool project.
But that's the development environemnt/compiler and tooling. It still could generate binaries for microcontrolers for example.
The huge mass of voters who can't get jobs?
A couple generations ago US had a military draft and wars to send low-skill working class men to. That significant changes the meaning of "start out as a file clerk with a high school degree and work your way up into middle or even upper management".
How to Identify Good Metrics
Try interviewing for 2 years. 50 plus major San francisco companies most go to onsite within a month of interview stages. None hire you because of bad references / political correctness justifying hatred and total dsicrimination. This is why I choose to become a suicide terrorist. It's time to make the worthless cancer scum pay. https://www.youtube.com/watch?v=7XrEkBT4nGc
My 9th grade science teacher, Mr. Chew, told me that I would outgrow my juvenile sense of humor. I turn 40 in April. Mr. Chew, you were incorrect!
Which country visits India the most?
> Thank you to the apt maintainers for patching this vulnerability quickly, and to the Debian security team for coordinating the disclosure. This bug has been assigned CVE-2019-3462.

From the article. Good stuff
See limitations in the docs.
So when you implement a buffer overflow in your C program, you can be assured it will overflow in the manner specified.
Image Categorization Using Deep Learning
How We Destroy Lives Today
The more I learn about Texas, the more it seems like they're doing everything right.
> Jobs have become less specialized not more.

https://www.forbes.com/sites/joshbersin/2012/01/31/the-end-o...
https://hbr.org/2011/07/the-big-idea-the-age-of-hyperspecial...
http://theconversation.com/want-a-job-its-still-about-educat...

The general consensus I can see is that that is not the case - employers want specialties.

And absolutely communication is a skill we require, but for some reason it's not valued.
I was in a satellite office of my company in Poland a couple of months ago, and scattered around the place were these meter high plastic egg pod things that looked like robots from a Portal game. Took me a while to realize they were garbage cans. For god's sake, people, can't we even let a trash can be itself?
The section on find after pipes has also not aged well. I can see why GNU and later GNU/Linux replaced most of the old Unices (I mean imagine having a find that doesn't follow symlinks!). If I may, a bit of code golf on the problem of "print all .el files without a matching .elc"

find . -name '*.el' | while read el; do [ -f "${el}c" ] || echo $el; done

Of course this uses the dreaded pipes and doesn't support the extremely common filenames with a newline in them, so let's do it without them

find . -name '*.el' -exec bash -c 'el=$0; elc="${el}c"; [ -f "$elc" ] || echo "$el"' '{}' ';'