skysight-inc/HackerNews huggingface dataset:
What’s unergonomic or unidiomatic about TS?

As far as I understand it TS is supposed to follow as closely to JS as possible. I always saw it as “let’s add types to JS” rather than a separate language. I’m not sure I’ve seen a “this is how you write TS vs JS” formal declaration from the TS team. Am I missing something?
Because its network bandwidth, and network units are in bits for historical reasons. I actually griped about this in my talk .. it makes it a pain to talk about memory bw vs network bw without mental gymnastics to move around that factor of 8
How much high fructose corn syrup do they consume?
Suing Google for a billion dollars makes people irrationally nervous.

Just sign the license and agree to all the terms and conditions. Nothing will go wrong.
Youcanhack.com can hack yourex-wifeFacebook,hack your girlfriend WhatsAppforfree
Not a scala programmer, but I searched for "scala cheatsheet" and got the answer:

https://docs.scala-lang.org/cheatsheets/

Double arrow seems to have multiple uses - for anonymous functions (like in js) and for pass-by-reference arguments (I guess scala is pass-by-value by default).

(Surprised at how Erlang-y it feels, especially WRT pattern matching)
It took me a very long time to learn not to compulsively hit ctrl-s while using Google docs
I think you mean https://news.ycombinator.com/item?id=28574624
The script kiddies have come to Gemini
Memory Managers: The primary memory manager
>Recording and interpreting speech would require a lot of CPU (if done on device)

Does this include the newer Apple Axx series units with increasing number of ML cores? Siri is supposed to run locally on device. Hardware is moving explicitly in this direction. If this is done locally, no actual voice data would need to be sent down the wire. Insstead, a small compressed bit of text on keywords could be sent whether that's immediately or saved up until user foregrounds the app. No tinfoil hat needed to see how your premise is pretty weak.
It's 100% overkill, haha! I was just asking because streaming architecture really interests me. I have two nodes (one is TrueNAS with ~50tb of storage), and the other is a compute machine (all SSDs) which consumes the files on the NAS and delivers the content. My biggest bottleneck right now is that my internal network isn't 10Gpbs, so I have to throttle some services so that users don't experience any buffering issues.

Truenas also introduced me to ZFS and I have been amazed by it so far! I haven't dug to deep into FreeBSD yet, but that's next on my list.
Create ad-hoc ClojureScript scripts on Node.js with nbb
Nbb is a scripting environment that aims to make it easier to create ad-hoc scripts on Node.js using ClojureScript. It does not need a JVM for compilation: just use npm and you're good to go. Code is interpreted instead of compiled, which for scripting is usually ok. If your project outgrows the scripting phase, you can migrate to a proper ClojureScript compiler setup. Give it a try if you're curious about ClojureScript.

https://github.com/borkdude/nbb
> Apart from charging for membership, these sites also abuse lax privacy laws and sell the individual profiles to data brokers and marketing divisions of various industries.

Am curious - do you think the Match group is any different? Their market cap suggests that they also do the same...
And this setup is also encouraged by HashiCorp (at least I saw a talk by them).
Use ansible for your “smart” sequential executions and Terraform as a sane wrapper for state.
Any recommendations for best practices in "modern C++"? I have to resurrect an old codebase and would like to refactor it using more modern idioms, but its been a loooong time since I wrote any decent c++.
> Nothing goes back to the cloud

What is your source on this? Every recognizable song is surely not stored on-device so something must be uploaded.
Fourth paragraph of the article explains it:

> This functionality is not happening surreptitiously, as the app requests access to the microphone and geolocation service—it does not rely on a vulnerability to access these components without explicit permission

Users had to have the app open and grant the permission. They weren’t recording secretly in the background.
Oh wow, ok, for curiosity, when I have a Shell Gas Gift Card, or balance in Starbucks app, or walmart or dominos gift card, somehow that money is being held in a real bank? Just asking.
Google perverted Java. That's what Oracle sued Google for. And that's what Sun sued Microsoft for decades ago. Red Hat is not trying to turn Java into something different, it just builds and supports existing OpenJDK codebase. It's absolutely different thing.
In Standard ML and Haskell, all functions are curried by default -- they take a single argument, and the syntax for defining multiple-argument functions is just sugar for defining single-argument functions that return single-argument functions. That's reflected in this Haskell type signature for a function adding two integers:

add :: Int -> Int -> Int

This is a function that takes one integer and returns a function which itself takes another integer and then finally returns an integer. Syntax sugar allows you to define it and call it like a single function.

An uncurried function in these languages is a function that takes multiple arguments as a tuple.

add :: (Int, Int) -> Int

You don't see a lot of functions defined this way in Haskell because there isn't really any advantage to doing so in a lazy, pure language. It's more common in Standard ML from what I've seen, because SML is strict and impure.
As you say, it was a scandal and we did not accept it.
Bugs bunny is why. Seriously. Most popular cartoon of its time, every kid of the era (40s to 70s) watched it...
> Is the former not just sugar for the latter?

Theoretically they're equivalent, but practically not really especially when you introduce more complicated "imperative" features e.g. default parameters or overloading.

They also have API impacts e.g. because Haskell is curried, its HoFs are generally of the form `fn param`, that way you can trivially partially apply the callback and use the same partially applied function to different parameters.

In method-based languages, there is no way to partially apply the callback, and in uncurried languages in general since partial application is a secondary concern you'll often see the callback last regardless so the non-callback parameters don't "get lost" at the tail end of a long callback.
I see, I had these two concepts conflated. I guess the difference is currying returns a function and partial application invokes the function.

In that case I don't know any indispensible situations for currying.
I always assumed a great deal of these VPN services basically hand delivered people of interest to various governments.
Trite? Tripe is something else.
Do you provide a RSS feed for this?
Average person speaks 16k words per day. Android considers app background traffic excessive at 50MB / hour, which is 1GB / day. 10% of that rate to steer clear of raising red flags is 100MB / day, about 10kB for each word you speak. Rather trivial to steganograph a word in 10kB of background traffic.

https://www.scientificamerican.com/article/women-talk-more-t...

https://developer.android.com/topic/performance/vitals/bg-ne...
I had Pfizer for first dose and Moderna for second (Canada did a lot of vaccine mixing). Hard to isolate variables but I was almost totally fine after first dose but completely demolished with side effects of second dose for 36 hrs.
For general purpose, MS Office or LibreOffice? I tried GDocs once, I found some features missing like I couldn't do something (I'm forgotting what it was. It was some months ago and I never used GDocs again and totally turned my back to it).
And they prompted people to opt-in (with somewhat leading language) into this system to search for unauthorized playback. So there was no need to "discover" that the app did that, because the app literally said it had a system to do so. There is a range between "secretly" (= would need research attention to discover it happens) and "done correctly legally".
I suppose we should be a bit careful about limits like that when an experiment is run continuously, but 6 sigma is a pretty high bar to clear.
https://modoboa.readthedocs.io/en/latest/installation.html
Can all apps access information on the wifi hotspot that a user is connnected to?
Seems like an information leak that should be closed by Apple/Google.
Technically, it's not a violation. They're releasing code; just not the code. So long as they (offer to, and then actually) provide the source code on request, licensed under GPLv2, they're allowed to do that.

Though it probably is a violation, because they probably don't do that.
German election: 85,000 adults with disabilities can vote for the first time
Depends on what level do you trust. For me, I'd generally trust OS indicators. So, if iOS doesn't show me a mic on indicator when Facebook is not open I'll consider thar verification.

A potentially better option would be if some independent non profit security firm audited major apps every once in a while, monitoring network traffic and such.
I'd be surprised if you found any dramas with the language.

What will keep you in the office to all hours is the ecosystem. Now the ecosystem is probably best in class so don't mistake this as a slight, but it's huge and complex.

Learning Gradle (or Maven), understanding how to make building java apps fast (because the default is slow package assembly times), learning some of the large frameworks (if you go down that route) can keep you occupied for years.

If you're fresh to java, i'd probably encourage you to try avoiding the incumbents like Spring and see how you go? Without Spring, Java is actually pretty efficient. A hello-world rest service with spring results in around 6,000 classes being loaded.

That said - spring, used idiomatically, is a productivity boosting powerhouse.
edit: ah yes, I was wrong here, they were disclosing

Here's a better article on this: https://www.techrepublic.com/article/how-one-spanish-soccer-...
When the Suspect Is a Victim
Bypassing censorship costs money they may not have as much as they used to
Changing companies led me from C# to Java. I feel so much less productive in Java, so much extra boilerplate everywhere. C# is just as mainstream as Java, so learning curves and nicheness arguments don't apply, it's just better.

I wonder if MSFT will ever make C# run on JVM.
These are all nice and warm anecdotes, but the thrust of the article is how the vast majority of the US market shoes rely on external sources.

Sure there are still people finding and loving US made shoes, there’s 1% of them according to the article, which in absolute number is a pretty big number of people (around 3 million people ?)

All these 3 million people coming out of the woodwork to tell their stories feel a bit like explaining how much their town has a nice neighborhood when commenting on nationwide mass incarceration. Sure, good for them, but I’m not sure what we should take away from that.
"If there was an API for uploading your secret conversations, it would be the holy grail discovery for a security researcher. Someone would have found it."
It means having a service that you can contact with questions about the platform. For example, if you're having a weird GC problem you can pay Red Hat $300/hr to have a presumed expert (ideally a committer to OpenJDK) look at it with you and help you solve it. There may also be variants of this where you "subscribe" and get a certain number of support hours.
This is what I had, and my one frustration is having such little data to suggest how this regime (mixing mRNA vaccines and long interval between doses) will or won’t perform over time.
And it should be algorithmically driven with all sorts of fun edge cases and poor maintenance.

Edit: oh, and obviously closed source, and have it's entire db leak about once a year due to excellent security.
Actually it was quite different - Australians wanted their own specifications, built on their own soil, where no local industry nor experience was present, and with US weapon system. The last point meant for that a full redesign was necessary, almost from scratch, and that they had to collaborate with a competitor who was given much more leeway for delays and great incentives to make the french contract go sour.

This is what happened finally, the french have lost their contract, the US will now build those subs and the Australian taxpayers will have to foot the bill.
Long ago I received my undergraduate degree from the University of Florida (UF). I remember when I started college, UF provided us a document that was entitled the IP passport, looked like a passport, and had all the IP related details you ever wanted to read about (which wasn't much for an 18 year old kid). But it was all there in plain language.

UF had (has?) 3 major IP breadwinners, Gatorade, Sentricon termite bait, and a glaucoma drug. Likely as a result, they had a sophisticated IP licensing and commercialization operation. Later, when I went to Georgia Tech, I discovered their technology licensing services were rather amateur in comparison.

There was a time when University of Florida and Florida State University, both state schools, were top 10 ranked for revenue from technology licensure. A professor at Florida State first developed the synthetic chemistry for the drug Taxol.
For anyone interested, here is benchs from late 2018, comparing Fedora and FreeBSD performance: https://matteocroce.medium.com/linux-and-freebsd-networking-...
You're not making any sense to me. Neither currying nor partial application delay running of the function once all parameters have been passed. There is no eager execution happening in the implementation I provided. I believe you misunderstand when the original function is supposed to be executed.

sum = curry((a,b,c) => a+b+c)

sum(1)(2)(3) equals 6 under currying.

sum(1,2)(3) equals 6 under partial application.

Perhaps you are thinking of calling the function with no arguments as a signal to execute the final calculation. That is NOT how currying normally works.

I believe you think currying works like this:

sum(1)(2)(3)() = 6

This is NOT standard currying. There is never a need to give an empty call to signal execution in standard currying as CS and Mathematics define it.

The implementation I provided is defacto currying by the book. Perhaps you can provide an example if we are misunderstanding eachother.
If I type in rm -rf / and pause for a moment trying to remember if I’m trying to delete /var/log/apache2/ or /usr/local/var/log/apache2/ in a dev environment that auto-executes code when I save it I would strongly prefer that it wait until I manually save.
SpaceX Returns Private Astronauts to Earth After Three Days in Orbit
I've been a Scala and FP developer since 2009ish and it suffered initially from over-enthusiasm to make it seem 'futuristic' as a rejection of the overly verbose reality of enterprise java codebases.

There's been a lot of sensible work in the core codebase since then to move towards more coherent idioms, unfortunately the 'we can make Scala into Haskell' crowd have since taken up the mantle and everyone has become obsessed with the idea that no boilerplate starter project is complete without cats or similar which perpetuates barely-legible and unnecessary confusion in situations that should be simple.
This Atlas Obscura website seems interesting. As a long time volunteer for Wikipedia, I try to avoid it as much as possible. A hundred people editing one article, with zero editorial oversight, leads to dogshit articles that are not enjoyable to read.
I remember that. I believe it was pushback that the state government was cutting funds and UF wanted to make a media splash to bring light to the situation. UF has a CS department as seen here:

https://catalog.ufl.edu/UGRD/colleges-schools/UGENG/CPS_BSCS...
It is actually stored in the device. A new database is downloaded from time to time
When I was a student at University of Florida, they didn't have - grades (i.e. A-, B-, etc). I heard it was due to a faculty protest against grade inflation, which in the end benefited me since a 90.0% was a full A on the 4.0 scale!

It looks like they have minus grades again, but I can't find any sources online - this was in the 2000's.

Also, it looks like the "New Engineering Building" is now just "Engineering Building". Maybe naming rights are still available if someone wants to donate a few million?
Octobers Very Own
> I am somewhat surprised that I am having to explain why keeping perspective is important on HN. Sign of the times, I guess.

Even on HN, people have an allergic reaction to even a suggestion that a report arguing for the conclusion they already believe in could be based on flawed data or flawed methodology.

(A sure-fire way to have this conversation on an arbitrary topic is to point out base rate fallacy - so many reports and arguments omit the base rate, either accidentally or on purpose, which often leads to making a sensation out of a non-story.)

Still, bad reasoning has to be pointed out, or else we fall into darkness. The big problems ahead of us are of the kind where intuition alone won't help us. We've had thousands of years honing our intuitions and refining them into saws, cultural norms, religious beliefs, etc. The problems we find hard today are precisely the ones where you need rational, correct reasoning.
Now I'm very thankful Apple never got that kind of adoption in Europe.
I just checked out their Discord, they're panicking because the last published build is super old and looks bad. Probably best to wait a bit before trying it out.
Countries failed on promise to cut greenhouse emissions
Yep. I'm reminded of the advice "Favor Composition over Inheritence", which begs the question "When can we not use Composition and need to fall back down to Inheritence?" and it turns out the answer is that you can always use composition with the exception if you are relying on someone else's library that does it wrong and you can't change it.

Dependency injection and currying both do the same thing, and they are both useless most of the time just like Inheritence. You want to avoid nesting as much as possible. We should be rejecting dependencies. We should be returning values and passing them through functional pipelines.
Wow you have much to learn buddy.
Yes that's true. But by accepting an unusual patch you could also risk having a feature that doesn't fit in well with the rest of the project, breaks something unexpected in another area of the project, takes up a lot of maintainer time that could be spent on other things, could break further in the future and need to be removed, which would further upset the users... So it's a trade-off that every project must decide to make in their own way. AFAIK it's not possible for a project to bend to every potential contributor's will, else the project drifts into the old unmaintainable big ball of mud.

If you knew a way to develop software like that where everyone could get their way all the time, please let me know, we could turn that into a product and get really rich selling it to every software company.
>That’s why you can’t change the keyword to whatever you want.

Which I feel is a huge security oversight. You should be able to choose from a list of activation keywords at least. I love being on video/voice chats with people that I know have a device and randomly say "Alexa, play Dancing Queen" or something equally obnoxious like "Alexa, turn off lights".
When you train your phone to understand "Hey Siri" it requires an internet connection for the training so that it can verify that you are actually saying, "Hey Siri" and not "Yo, phone spirit". After the initial training, it no longer requires (or uses) the internet to detect the keyphrase.

You are asked to do a few iterations of training so that the phone has a model on your voiceprint for "Hey Siri". Which is why, when someone who does not have a similar voice to you says "Hey Siri" it does not trigger. But someone who does have a similar voice to you can sometimes trigger it. The model is super basic.

The microphone is always passively passing input data to the "Hey Siri" detector (and a buffer), which acts as a sort of internal switch. If it detects the trigger phrase, it then sends the audio data to the cloud to be transcribed, and acted upon accordingly.

It is not always sending voice data to the cloud. If it were, your battery life would be noticeably impacted - worse than being on a phone call.
It could still allow for a few independent-ish senators via single mandate district system. If it is allowed to run fairly at least in some locales.

Source: observing one.
I'm well aware of the constraints of open source development and project management, having been involved in it for nearly 25 years at this point. In the case of this project, I was involved with it for several years as a maintainer of the Print plugin, if you care to read some of my other posts about the history.

You're wrong about the GIMP developers wanting a program that is "really good at everything". If that was the case, then they wouldn't have deliberately rejected so many proposals for improving workflows and adding features over the years. Film-GIMP is the most high-profile example, but there are dozens more. This is nothing to do with not having enough time. It's a deliberate design choice, which is theirs to make. They chose not to foster a community of contributors around the project. And they chose not to implement many of the most basic features their user base asked for. Again, their choice.

As for "talking to them and working something out", that hasn't happened in the entire history of the project. What is missing here isn't a lack of time or a lack of technical skill. It's a lack of effective project management, a lack of direction, and an inability to delegate.
If you can't use an IDE to jump to the definition (or list all possible definitions) of a function, then aren't you missing one of the main benefits of a statically-typed language? If you can't use the static types for static analysis, what's the point?
I live in a neighbourhood with a 92% vaccination rate according to my municipal government, and yet vaccinated people are still acting like it's the plague here.

It may well be a side effect, or perhaps the cause, of how well we handled it here. (About 2.5% of people in Ontario, Canada had antibodies from exposure as of a blood sample survey in early 2021, a number which probably isn't much higher now.) With most still having not been exposed or knowing someone immediately close to them who has caught it, then the notion of contracting is of course, more than a little unsettling, even if you know it'll probably be harmless since you are vaccinated. Creates a sort of indefinite duration emergency though, since vaccines seem to be insufficient to fully suppress it even with a really high vaccination rate.
> Insstead, a small compressed bit of text on keywords could be sent whether that's immediately or saved up until user foregrounds the app.

Which would then appear in the packet captures that can be performed on the traffic (after circumventing certificate pinning).

My premise wasn’t that each step was impossible. It was that many steps would have to take place without being detected anywhere along the chain.