skysight-inc/HackerNews huggingface dataset:
> Monads are not the same thing as effect types

Monads can be used to implement "effect types" and define the semantics of them. I believe this is how Koka works.

> Talking about Haskell monads just does not seem all that relevant in this context.

I respectfully disagree. Async/Await first appeared in F# as a Monad (Computational Workflow). Monads also do not necessarily have to involve closures at runtime, they can be useful just to define semantics and build type-checkers.
Yes you're right, I also would think closures would be impacted by scope.
"Colors For Directors", especially without the grid and turbulence modelling (RANS? DES? LES?) data.
Swift is inherently tied to the Obj-C runtime and messaging system (and GCD), which is OLD (read: Darwin/NextStep). The Windows and Linux ports have large swathes of this low level infrastructure either missing or replaced with platform specific shims. This isn’t even to say anything of GUI toolkits etc.

Apple likely doesn’t use these ports of Swift for anything other than bragging rights to say it open sourced a thing.

GCD has been open sourced for a long time, but I’m not sure these concurrency primitives even work fully or as expected outside of an Apple OS with Swift. Hence Swift is essentially half baked abandonware on said platforms.

I love Swift, but it has no compelling use case out of Cupertino.
Yeah..., or maybe not. In these situations the best thing is to listen to both sides, and in my experience there is shit flying in either direction.
I think having the option to rent or subscribe is fine and it might actually be of benefit to some people. However, there is a problem when the option to own a product disappears because a rental/subscription model is more profitable, which we're seeing more and more. It's a pretty strong example of corporate interests not lining up with human/societal interests.
>If you start over, there's no reason any blocking API should really BLOCK your program. Your functions can look completely synchronous, but yield to the event loop when they invoke a blocking API.

That implies a level of sophistication and abstraction that simply doesn't exist today, and probably won't for a while.

For this to work you either need an ultra-sophisticated compiler what will transparently auto-async your code at compile time (as realistic as a unicorn at this point) or a heavy runtime which will have performance implications.

So in the meanwhile I agree with TFA that coloured functions is probably the pragmatic choice if you want pay-for-what-you-use async right now.

Personally my main issue with async is that it seems to me that a generation of devs who grew up on JavaScript see it as the Alpha and Omega, the one and only way of handling any sort of parallel or event-driven system, not considering other approaches such as threads and/or polling. This sometimes results in spaghetti code that I personally find over-engineered.

To give you an example I hacked on rbw a week ago, a Rust command line client for Bitwarden. It's a good program, but it's completely built with async code and I genuinely don't get it given that it's almost entirely synchronous in practice (you query an entry, you enter your passphrase, you get a result). As a result I found it a lot harder to follow the flow of the program and understand how it all fit together. But hey, I eventually got it and managed to fix the issue I was debugging, so it's not the end of the world.
There's no real difference, if your sole interest is a paycheck, any programming is boring.
What the civil court system desperately needs: more lawsuits from people who got banned from web forums.
> Famous movies were made where a character goes from rags to riches because of Java.

Is this really true? I would love to know more. Could you give any examples?

I'm glad to hear you're enjoying life again.
Into NLP – Text Normalization
Because there is no widespread electronic equivalent to cash for any currency that does not expose the receiver to expensive issues such chargebacks, disputes, and the legal systems in various countries.

Maybe the Fed’s new system will allow for it:

https://www.federalreserve.gov/paymentsystems/fednow_about.h...
> wrote a blog post a few years ago[1]

I thoroughly enjoyed your post at the time!

One thing that I disliked, though, was the inaccurate caricaturing of people on camp 2. For example:

> Low level languages are often better than high level languages because you can be more explicit about what the computer will do when it executes your code. (Thus you have more room to optimize).

My concern is the last parenthesis. I am squarely on camp 2, but I'm almost never concerned for optimization. I want my code to be very explicit because I want to understand clearly what it does (thus I hate C++ and other untoward abstractions). Thus clarity is the main motivation, not efficiency as you put it.
Hand drawn diagrams often have a clarity still elusive in diagramming software.

But we have found that working together in real time -- making a diagram together -- is an incredibly efficient way to strategize about how to solve whatever problem at hand, and then come away with a shared understanding so we can work together on the execution.

We use Plectica[1]. Another popular one is Miro[2].

[1]: https://beta.plectica.com

[2]: https://miro.com
I hate the idea of wrapping all interactions into transactions. It flies in the face of an idea that might I want to give something away for free. I would then presumably need to package this into a transaction for 0 cents. Economy is part of life, but we also interact on biological, spiritual and emotional planes which may be driven by different economies.
11 sigma sounds pretty high to me (non-physicist), is that kind of standard?
Just a note, Java will also avoid function coloring very soon with Project Loom.
I have recently published an ebook about the introduction to the Linux command line, for anyone interested: https://gumroad.com/l/moderncommandline
Drogon (https://github.com/an-tao/drogon), Cutelyst (https://github.com/cutelyst/cutelyst/), Crow (https://github.com/CrowCpp/crow) come to mind
This one is recommended for Firefox: https://addons.mozilla.org/en-US/firefox/addon/videospeed/

I find that most videos are understandable up to 3x. I watch most of them at 2.5-2.8x, down to 2x for people that talk fast or with a hard accent. Same for podcasts.
Yeah though I can see people not wanting to deploy a fat runtime just to run some cli tools.
Yes, this seems to be exactly what they're doing – I posted a link on another thread to a Wired article that sheds some light on why these machines break down, and how McDonalds have waged legal war on a startup trying to bring some transparency to the internal operations of the Taylor machine.

Here it is again, to save searching through the comments: https://www.wired.com/story/they-hacked-mcdonalds-ice-cream-...

[edited to add link]
It is not a standalone program. It's a rendering plugin for maya. So the total cost is > 2000$.
> I think there’s a very strong argument for trying to have only one language at your company, or at least one backend language. Of course you’re still going to have some scripts, and some config-based programming for infrastructure and whatnot, but otherwise you should basically aim for a single (backend) language IMO.

Perhaps the real kernel of the advice in the article is "try to use your primary language as much as you can, even for things it is not traditionally used for".

My team mostly writes Java. We do write Python for a lot of little scripts - collecting and munging data, dashboards, etc. I have come to think that we should just do those in Java as well.
I think the idea is to make the concept more general (it's not about blocking/async, it's about adding an additional concept into the language) but then the article is specifically about sync/async so I agree that it's just confusing.
Yup, we’re dealing with it on CodeShip. I’m pretty sure all CI services are swamped by mining on free accounts or fraudulent paid accounts.
Square Cube Law
I quite like the cell shaded style in the Ni no Kuni games, they are designed in collaboration with studio ghibli
For even faster learning make sure the remote machine is far enough away that network lag is a factor. It’s amazing how fast the student will learn I/O redirection, tailing files, and grepping for needles, and of course automating the entire build / test lifecycle.
How to save a fortune with Azure spot instances
Most of us are familiar with spot instances in the public cloud and how they can substantially reduce your cloud costs. I believe I have come up with a unique approach to solve one of the downsides of spot instances. The stopping of these instances when the resources are required by by the cloud provider.
Linux 5.13 Adding Kcpuid for Helping to Bring-Up New x86 CPUs
This would mean that there's no guarantee about the order in which your code will run, because your scheduler might decide to execute some unrelated code right in between any two lines.

Therefore, you would need to deal with far more race conditions.

Even in single-threaded languages, your entire state may change during a single asynchronous function call. By differentiating between synchronous code (i.e. code that needs to be run in a single slot) and asynchronous functions, you can immediately see where you need to account for unexpected state changes.

(Yes, it's more complicated in multithreaded languages, but the main idea still holds because they usually all sync back to a single thread)
AMD Issues Speculative Spectre Security Status: Predictive Store Forwarding
We were promised Strong AI, but instead we got metadata analysis
That certainly was the case in the past with the whole 'blown diffuser' situation which led to cars' engine maps being specifically created to allow lots of volume of air through the exhausts even when they weren't generating much power to take advantage of this - listen to the exhaust sound in mid corner of this era F1 car and you'll hear what I mean (I think it was around 2011 and Red Bull were the best at it, but I think many did it to a degree).
Homebrew can install them, even Libreoffice, Virtualbox, Slack and other GUI tools you may need. Once a month I run 'brew outdated' and 'brew upgrade'.
The solution for C would be to "stamp out" a specialization of qsort() for a specific data structure either manually or with code generation. The C++ template system really isn't some "magic performance pixie dust", it just saves some typing ;)

...or alternatively, with global optimization (LTO/LTCG) there's actually a good chance that the comparision function calls of a C qsort() implementation can be "dissolved" via aggressive inlining as long as all required parts are visible to the compiler - that requires a lot of trust in the compiler though (on the other hand, C++'s "zero cost abstraction" philosophy requires the same level of trust).
The "user" in this scenario would be the advertiser. While I have little sympathy for ads, and dread the emergent effects of behavioral tracking, a self-deployed ad tracker could at least be trusted by the advertiser who seeks to benefit from it, as opposed to serving the interests of its vendor first and foremost.
Us "Texas Tank Watchers" just refer to Elon Time. A lot of what Elon talks about comes to fruition, but you can might need quadruple the time he predicts.
>In contrast, I consider looping to be a problematic, error-prone construct in general (for reasons outlined at http://lambda-the-ultimate.org/node/4683#comment-74302 ). Recursion is much safer, in languages which eliminate tail-calls.

A "main loop" doesn't necessarily imply an actual loop. A game written in Haskell or Scheme probably has a main loop implemented via recursion, but it's still called a main loop. "Main tail-calling function" sounds somewhat ugly.

>Far better to write functions which perform a 'step' then tail-call the next function.

This sounds like a recipe for spaghetti. The "main loop" approach is much more conducive to the clean approach of "functional core, imperative shell" (https://www.destroyallsoftware.com/screencasts/catalog/funct...), where IO, asynchrony and the like are cleanly separated out from business logic.
I think the disagreement is about the definition of "efficiently".
I see. I found it very convenient to drive in Canada and not worry about having a specific toll system transponder. It seems so archaic. I even got the bill in the mail in the US.
I've never tried Simple Rocket, could you compare it to KSP? At a glance, it seems more serious than KSP while KSP has a "fun" edge, but besides that they seem more similar than not.
> If you start over, there's no reason any blocking API should really BLOCK your program. Your functions can look completely synchronous, but yield to the event loop when they invoke a blocking API.

Like the article points out, then you would need green threads to do asynchronous work simultaneously. And if you are already using threads then there is no need for "async". The point of "async" is to give you the ability to efficiently manage the event loop WITHOUT threads.
Sex for Married Married Couples
I don't see people using the specific colors very often, it's more like "that function is colored differently" or "this language doesn't have colored functions". When used like that, it's a really useful metaphor, it really clarifies what you mean.
Newark is probably the least bad, but you still have to take a slow second train (AirTrain) after getting to Newark Penn. Also, while the NJ Transit trains are better set up for travelers than the LIRR to JFK they aren’t nearly as nice as the dedicated setup they have in London.
Also works on ideapad, in case anyone is wondering
It's back!

"Thank you for reaching out to us. We have found your item to be compliant with all our policies. So, we have approved your latest submission. It will be available in the Chrome Web Store shortly."
Yeah, don't worry about it. People learn new things all the time, I didn't mind writing the comment :)
Arbitrage as a Shortest Path Problem
I don't see why not?

In Java, every access of an object variable can blow up your program even though the type checker is happy. In C, every access of a pointer variable can blow up your program. This seems very similar. Neither language provides type safety.

EDIT: To be clear, Java is definitely safer than C. When Java "blows up" due to a null variable access, it throws an exception in a well-defined way. When C blows up due to a null pointer dereference, anything can happen, and if you're lucky your program terminates unconditionally. It's just that neither error is caught by the type system.
Reminds me of this masterpiece of IoT reset dystopia from a GE smart bulb: https://youtu.be/1BB6wj6RyKo
> I'm not familiar with sports broadcasting but I can bet this is the case.

I wasn't thinking just broadcasting but also venues, jerseys and everything. Look at a typical NASCAR or football game, ads are everywhere at the event.

I think you're right though. There has to be competition or regulation, otherwise they can get away with it and as you both say they will.
...but it's coloured both red and blue! :)
That's insanely accurate. For comparison most discoveries are usually only considered proven when it's 5 sigma.

For example they waited years to announce the Higgs bosson because they wanted to reach 5 sigma.
Simple Diagrams is great for this. Can vouche for it.

===

https://www.simplediagrams.com/
How do you feel about the example in the article? Is it unnecessary performance optimization to parallelize multiple adjacent asynchronous functions or should we just hope that the runtime/compiler gets smart enough to know what is safe to parallelize?
>[0] - As you say, Uber and Lyft, and their predecessors and successors, are just that - a different flavor of taxi services. Slightly leaner, at the cost of worse guarantees for certain service types where old-school taxis were bound by regulations, but otherwise pretty much the same thing.

And yet, prior to Uber and Lyft, I would hesitate to call a taxi for my worst enemy due to all of them smelling like smoke, being old dumpy cars, and having questionable drivers. After Uber/Lyft, I can remotely order a car for my grandparents who don’t speak English and they can get to me in a nice clean car with no issues.

Taxis outside of urban cores in a few US cities were a terrible experience prior to Uber/Lyft, they clearly brought something to the table.
Indeed, if that's an example of a production Flutter web app, Flutter Web has a long way to go. Accessibility seems to be non-existent (tab doesn't change focus), startup time is atrocious (five seconds for me, mostly spending time in "scripting" when profiling) and for some reason, it doesn't let me copy any of the text on the page (wanted to copy-paste a error message I got while trying it), most likely because the full app seems to be just one full canvas (?!)
But it's also a dick move to ignore their consent just because it's hard to enforce.

Say "for Signal" or "supports Signal" like the other person said, don't pretend to be part of the Signal org.
> apologize for any harm

They didn't state they caused harm, they stated they apologize for "any" harm.

> it was hurtful to the community

Basically state "sorry to hurt your feelings", which I clearly pointed out in my comment. It's definitely not a "we are wrong" apology.

This has a vibe of "we couldn't have done it any other way, and we still feel it was better. Sorry that you don't agree"

Their letter of "apology" was already torn apart in the other thread at https://news.ycombinator.com/item?id=26930056
At least IKEA Trådfri is just "Power cycle 6 times".
Thanks a lot for your feedback! That's a very good point.
In western history, this was definitely something (re?)introduced by various germanic people after the western roman empire collapse, and already they were encouraging monetary reparations.

In roman times, if someone killed your cousin you could go to court and it would mostly end there. After the collapse, if someone killed your cousin your family had the right to kill someone of "equal value" from the family of the killer. Aside from the brutality and senseless violence (as seen from us today), the biggest problem was that people disagreed on "equal value", resulting in a feud, i.e. an escalation of revenge because each party felt that the other side's killing was way more than warranted to make things even.

So the states (starting from the early barbarian kingdoms) would encourage the family of the killed to accept a monetary payment to avoid the murders to spiral out of control. See https://en.wikipedia.org/wiki/Weregild.
I think the concepts of feud and weregild did not even exist in the roman world.

But you are right that for a long time you still had the right for revenge, until eventually it was fully phased out. A bit like the transition between the gold standard and fiat currency.
Does anyone else remember putting the plastic tab into the tamagotchi and pulling it out repeatedly in the hope of glitching the device into giving you a powerful monster? I definitely succeeded more than once, I would love to know the explanation of why it worked!
Reddit sued for failing to pull child sexual abuse content
Thank you for the clear and concise explanation. That blog post was incredibly annoying to read and imo utterly fails to address an otherwise interesting point.
Multiple Issues in Libre Wireless LS9 Amazon Alexa-Compatible Module
BS3 was hated a lot back in the day. The 4th a bit less, and the 5th release got pretty good marks on reviews.
Welcome to Distributed Systems Engineering at Amazon.com (2008)
I read your comment and in my head I said "This." but I hate when comments start with a solitary "This." so I have managed to avoid that through meta-commentary.

About a week ago my fairly new Clevo OEM/ODM (the actual badge on it doesn't really matter) laptop wouldn't come back to life from sleep – screen was black. The AC cable/power light and the battery light, both those lights were on meaning the machine wasn't dead dead. After waggling the mouse a bit, running my finger over the trackpad, pressing the power button a bunch of times, and striking random keys on the keyboard … I still had a dead laptop. So I did what any one of us would normally do in this situation. I held down the power button for a good ten seconds expecting the machine to power off, and from there I expected to boot the machine back up and have it complain to me that it had been unsummarily shut-off and could I please not do that.

No dice.

Tried this reliable technique a few times and still no dice. I could not believe that my newish laptop (about three months old) was dead as a door-nail. So unresponsive that not even holding down the power button until it switched itself off would work. Absolutely black-pilled and pretty determined to ask the manufacturer for a refund I rang up tech support fully expecting to be on hold for about half-an-hour but thankfully got through fairly quickly. I explained the situation to the techie and was surprised when they said, “Disconnect power, take out the battery, hold the power button for 30 seconds.” I've been around computers a long time and I'd never hear this one. Extremely dubious I did what I was told and, as you say, “Voila. Fixed.” Machine sprung back to life. (After reinserting battery, reconnecting power, pressing power button – obviously.)

What. Sorcery. Is. This?
Looks like they also offer the book for $3 “la la carte” (without a subscription) which sounds reasonable.
Rust pretty much had to add function coloring, because of its low-level nature.
Other languages can get away with it due to having a runtime, notably Go, and with the coming Project Loom, Java. For higher level languages, I do believe that coloring is not a useful concept, similarly to how you use a GC, instead of manual memory management. The runtime can “hijack” calls to IO or other blocking functions and can park a virtual thread, and resume execution afterwards automatically. There is no useful information in coloring in this case.
Sure, except their stock prices reflect the brand itself. Drive in front of a 5 year old and they know "mommy thats the car that can drive itself!" What car brand has ever has that type of reach? If you have a sportcar, you get a generic ooo look a ferrari/lamborgini. Something most will never reach. But a tesla will be their next car.

The only other brand that has this reach would be Apple. Every single communications player have been gunning for them since iPhone 1. No one has even come close.
This is why I'm a strong advocate of hiring former game developers - they know what matters when it matters, not before, and not after. how? Pain and tears of being there, trying in the obvious wrong way first, and then fixing it during production while kiddies shout at you. Former game devs are the Marines of software.
That depends on how pedant you want to be about things being political. Movies like The Thing, Terminator, Alien, Aliens, etc. Don't really have a political message other than some vague politics as window dressing.

Also since you said culture, and not FILMS.

Give me the politics of Tetris, Pong, Super Mario, Donkey Kong.
Yes. You can enable "showdead" in your profile to see [dead] comments hidden by default. Comments end up [dead] when they have been [flagged] by enough other users, when the user has been explicitly [banned] by the mods or if the user tripped an automated system (bot detection, sockpuppet of a banned account, lots of [flagged] comments...)

If you think a [dead] comment would contribute positively to the conversation, you can vouch for it, in which case it will become visible to everyone once enough people have vouched for it.
macOS Nix Setup (an alternative to Homebrew) (2020)
I get your point, but as someone doing data science and having no idea about JavaScript, this is actually precisely what I need.

Like, all the stuff "for my data science", such as making a visualization website etc.