skysight-inc/HackerNews huggingface dataset:
Build a network. LinkedIn may be cringey at times, but it's vital to build a network. If you do things right, at some point, you will be hounded by recruiters. And on that note...

Connect with recruiters, lots of them. They can mean the difference between never hearing back after a cold application, and getting your resume in front of the hiring manager.
Shut up, again.
1. It doesn't contextualize that $2 is a good wage for Kenya.

2. It says OpenAI "used" workers which has a negative connotation.

3. It is factually incorrect: OpenAI paid a vendor $12.50 per hour. It's unclear if they knew how much the actual workers were paid.

4. It used a negative framing implying ChatGPT is toxic.

So something like

"OpenAI vendor paid Kenyan workers above median wage to make ChatGPT more safe"
I quit by SWE job last year to take care of my kids and I'm happier as a result.

If I were to return to the work force, I would prioritize enjoying the job: friendly teammates, no/short commute, interesting problems to solve, no ethical dilemmas about how my work would be used.

Life is short and I doubt in my deathbed I will be thinking about all the money I didn't make.
I'd prefer a match approach
The US should respond in kind. Not that they will, or want to, but they need to.

While yes, the Saudis have leverage being that they are the epicenter of oil production and also home to the mecca (pun not intended) for the 2nd most followed religion on the planet , the US has some serious leverage too, such as being the provider of the Saudi's military tech, helping the Saudis wage geopolitical proxy wars against Iran, making sure that Saudi oil shipments around the world happen unmolested, making sure that the Saudi royals who fiscally backed the 9/11 perpetrators were able to return to Saudi Arabia on 9/12 unmolested, etc...

The Saudis are playing a dangerous game here, and really don't understand the shit that will go down if they destroy the Petrodollar.
Some other folks apparently of the same age have already replied, but as another person who got a CS degree and graduated into the post-dotcom meltdown, I'll add my 2 cents.

Yeah, it'll be tough. Your first "real" job will likely be the most difficult job search of your life.

Feel free to try your luck at the same company multiple times. Now, don't be annoying - don't spam them with your resume every day. But the first job I ended up getting was with a company I contacted again a few months after hearing they didn't have anything for me.

I think the issue of take any job vs keep looking for the right job depends on your circumstances. After college I moved back home with my parents, took the summer off and slowly job searched, rent-free, while also enjoying my last summer of freedom. Some folks won't have that luxury.

I'd also recommend considering being flexible with your location. Sure, maybe you want to live in City A, and maybe you can one day, but if there are more jobs in City B (or remote work that will pay the bills in some places, but not City A), it won't kill you to live somewhere else for a couple of years and then try to make the move to where you really want to be.
Awful journalism
Not sure why this isn't the top comment.

Sama could have provided the mental health support that employees may have needed with the 10$/hr per employee profit they were making. Sama didn't and decided that instead of losing profit by providing their employees with mental healthcare they canceled the contract.

Smells fishy.
> Both my parents are explicitly set to be Mom and Dad in my contacts

Maybe it would work if you set one to Mom and the other to Dad. I understand the intent of being inclusive, but sometimes one must pragmatically bend like a reed to avoid exhaustion.
It's amazing how prevalent this type of attitude is and not only in tech but in like menial jobs I've had when I was young as well. People actually think they are Atlas, supporting the entire operation and without them it would collapse. It's just not true, ever. It doesn't mean people aren't valued and that the organization is better off with them, but just because an individual can't see an organization working without them doesn't mean they can't.

We don't say it out loud because it's not polite but everyone is replaceable. In fact, there's many things we don't say because we are polite but I sort of feel like people tend to mistake politeness for support. But that's another thing all together and I digress.
I'd say, having experiences at bad workplaces can still be valuable. This isn't to say one should seek out toxic colleagues and horrible working conditions, but knowing what you do not want is valuable too. And having bad workplaces early on is cheaper than having bad workplaces later in life. All in all, I'm trying to emphasize that a job in the field you want will almost always be beneficial when you're starting out.
My Sony Bravia TV auto-detects ARC and will pass it to my Sonos. I didn’t have to change my Apple TV settings.
I feel this way about TypeScript.

That said, I see its value. We use it at my company.

TypeScript is open-source but created and (I think) pseudo-owned by Microsoft, which has had terrible ethics over the years, including the 3 E's [1]

[1]

""Embrace, extend, and extinguish" (EEE),[1] also known as "embrace, extend, and exterminate",[2] is a phrase that the U.S. Department of Justice found[3] that was used internally by Microsoft[4] to describe its strategy for entering product categories involving widely used standards, extending those standards with proprietary capabilities, and then using those differences in order to strongly disadvantage its competitors."

https://en.wikipedia.org/wiki/Embrace,_extend,_and_extinguis...
Today, MagicForm introduces itself to the world! The Form That Answers Questions. Takes less than 3 minutes to train one on your company data and goes on your website with one line of code. Check out our launch here and let me know what you think!
How is it questionable?
Webauthn L4 standardises on JSON serialisation luckily.

Yes the spec is horribly complex unfortunately.

In my own project I send the assertion and attestation as multipart/form-data. Which means I can just directly send the ArrayBuffers over the wire.

PublicKeyCredential.prototype.toFormData = function (this: PublicKeyCredential) {
const formData = new FormData()
formData.append('type', this.type)
formData.append('id', this.id)
formData.append('rawId', new Blob([this.rawId]))
switch (this.type) {
case 'webauthn.get':
if (!(this.response instanceof AuthenticatorAssertionResponse)) {
throw new Error('Unknown type')
}
formData.append('response.authenticatorData', new Blob([this.response.authenticatorData]))
formData.append('response.signature', new Blob([this.response.signature]))
formData.append('response.clientDataJSON', new Blob([this.response.clientDataJSON]))
if (this.response.userHandle) {
formData.append('response.userHandle', new Blob([this.response.userHandle]))
}

case 'webauthn.create':
if (!(this.response instanceof AuthenticatorAttestationResponse)) {
throw new Error('Unknown type')
}
formData.append('response.attestationObject', new Blob([this.response.attestationObject]))
formData.append('response.clientDataJSON', new Blob([this.response.clientDataJSON]))
break
default:
throw new Error('Unknown type')
}
return formData
}

async solveChallenge(challenge: Challenge, credential: PublicKeyCredential) {
const formData = credential.toFormData()
await fetch(challenge.location, { method: 'POST', headers: {'content-type':'multipart/form-data'}, body: formData })
}
Not a distortion, just a change in perspective. Microsoft, in comparison, just cut 5% of employees.
I mean ... they literally talk about the potential ability to force the aging process backward or forward in the abstract, so... haha.
Sounds similar to what most UK councils provide as a service; they collect your food waste as part of the rubbish collection and send it off for anaerobic digestion to produce power/fertiliser[0]. The difference being this Mill service produces chicken feed, and costs $33/month.

[0] https://www.biffa.co.uk/about-us/waste-journeys/food-recycli...
I have seen this perspective a lot in government and adjacent entities. For them, commercial software and corporate open source has a clear financial motive. If they can't identify why a project exists and continues to receive support, they see a security risk, either via direct compromise or project abandonment and the associated supply chain rot.
That was my first thought - Java has been corporate controlled since at least 1999 when I started using it and... so far none of the Bad Things that were predicted have happened to it.
Break down a complicated SQL query
Not sure, but I remember the comparison with a light bulb. A bit artificial but it puts unintuitive units in perspective
The complete function definition is provided in the documentation there, and it isn't defined in terms of Drop. It's just a single line function with an empty body.

In fact, mem::drop will accept any value, whether it implements Drop or not.

The author of the article is definitely quite confused about Drop vs mem::drop. mem::drop is not an implementation of Drop.
One runtime to rule them all.
“Original Gangsta,” i.e., original.
Not quite, it doesn’t tell the compiler much about how Foo relates to its bar field unless you also constrain the public API for creating a Foo. If Foo is constructed out of a ‘new’ method with this signature:

impl<'a, T> Foo<'a, T> {
pub fn new(bar: &'a T) -> Self {
Self { bar, _marker: PhantomData }
}
}

… AND the bar field is private, then you are ensuring the Foo container doesn’t outlive the original bar pointer. If you don’t constrain creation and access to the bar field then people can just write foo.bar = &new_shorter_borrow as *const T; and then the lifetimes are absolutely unrelated, foo.bar will become invalid soon. A classic example of doing this correctly is core::slice::IterMut, and the slice.iter_mut() method.

A short illustration (note how only one of the Foos creates a compile time error): https://play.rust-lang.org/?version=stable&mode=debug&editio...

A short explanation of what you’re telling the compiler with PhantomData (without accounting for the new method/ constraints on creation) is that Foo appears to have a &'a T field, for the purposes of the outside world doing type and borrow checking on Foo structs and their type parameters. That does two things:

(1) Due to implied lifetime bounds, Foo’s generics also automatically become struct Foo<'a, T: 'a>, so this ensures T outlives 'a. That will prevent you accidentally making Foo<'static, &'b str>.

(2) You don’t have an unused lifetime, which is an error. We always wanted Foo to have a lifetime. So this enables you to do that at all.

Edit: and (3) it can change the variance of the lifetimes and type parameters. That doesn’t happen here.
How do you know something is sub-par if it is not tested? You can only make a statement about the former if the latter is true. But nice try.
Once you know what map does with an option I'd say it is mostly pretty readable. Basically map (when run against an Option value) is a way to say "if the value passed in has a value run this function on it otherwise return None.
Passkeys are stored on your platform keychain. In time, Bitwarden will offer this interface up, so you can sync them through your Bitwarden vault.

Currently, if you use an iPhone, you will have the passkey stored in iCloud keychain. Your "account" is a private key held within iCloud keychain, along with some metadata mapping that private key to the site you visited.
I feel like they don’t have enough work to do if they’re worried about fonts.

Maybe time to trim some fat?
Cinavia does this for audio.
The compiler was rewritten and now Chez Scheme is used as part of the pipeline from Racket to assembler. With respect to improving the startup time, the low hanging fruit has already been picked.

If I understand correctly part of the problem is the number of modules that needs to be loaded from disk at startup. On my computer the first run is slower than subsequent runs due to caching. Maybe an "compile several modules into a single file" approach might improve things - but it's not trivial project.
After reading more, "an updated Gopher" sounds like a good summary. I am too young to have interacted with Gopher in its heyday, but I've always thought the idea was neat, and I love the idea of a closer-to-text-mode interface to this stuff. Thanks for the comment!
Theres 300k corporate employees. These layoffs dont include the warehouse workers
Message Authentication Codes
Yep. I'm a fucking miser. My entry into the work world was 10+% unemployment and brutal cut throat for minimum wage. The idea I'll be cut at any moment and be jobless for years is burned into my mind so money is guarded preciously.

Also I'll never forget just how rude and pretentious recruiters were during that time with their new found power. You see the true colors in such times.
Unity lays off nearly 300
Symfony is more explicit, configurable and has way less magic.
> perf has an option to use DWARF data for stacks, but IMHO it simply does not work.

Could DWARF data be fixed/improved so that this works reliably?

If so, we could have our cake and eat it too (in the future, not right now, of course).
> Sure, and the solution isn’t “wow google is so biased the solution is to show no results for anyone in the name of fairness.”

I'm not saying it is; indeed, I recognize that fairness is often about equity and not equality.

However, it's naive to assume that certain things don't exist because their authors simply didn't have the time or resources necessary. In many cases what's available is a direct result of their biases.

To further my previous example, I have met people who are vehemently against resources for men's around mental health or domestic violence because they believe that men are inherently privileged and thus undeserving. As another commenter mentioned somewhere in this thread, what gets added or removed is a direct reflection of the author's biases and endorsement of a specific worldview.
KeepassXC has served me well for many years, synced via my Nextcloud but could just as easily use dropbox or icloud, or even syncthing.
I prefer oxygen candles, personally.
On an encouraging note though: Google did end up releasing a tool to turn the controllers into regular ol' Bluetooth controllers so that they don't turn into piles of e-waste.

https://stadia.google.com/controller/
To add onto this, if you care about supply chain attacks, bitwarden mobile supports Fdroid builds (albeit not part of the main repo because they rely on xamarin) so you can host your own fdroid repo and run your own builds if so desired.
To be fair, I find the censorship makes it more toxic.
First one isn't idiomatic anyway with return. You can just do Some(x? + y?) though.
Typo of "guaranteed" - fixed it, thanks.
I use cloud storage to store the kdbx file and sync it across a PC and my phone. It’s pretty awesome 99% of the time and just works. Once in a while you get a merge conflict and it’s not so good.
What's the connection to https://www.superlinked.com/?
Both are rather ugly. This is much more idiomatic:

match (x, y) {
(Some(x), Some(y)) => Some(x + y),
_ => None,
}
Ahh. I’ve been pondering creating an enclosed bed [1] - which I believe was common in medieval times.

[1] AKA: https://www.thevintagenews.com/2019/02/25/box-bed/
Nope. In the "good old days" corpos got thay a move like this would kill morale. Nowadays in the "you should be grateful you have a job" days corpos no longer care. It's great because they can squeeze more work from the people left behind and they also have flexibility when it comes to opportunistically shedding workers around key date (ie earnings)
What a god-awful choice for a replacement.
The pay is not even close to the most outrageous way to headline this article: it uses "toxic" as a euphemism for, e.g., not generating CSAM, rape, and other sexual violence.
So whatever harm the Kenyans have saved us from, doesn’t that cancel out by exposing them to it?
Agreed, and that was my entire point. I think the tradeoffs for candles are worth it, I don't think the tradeoffs for gas stoves are worth it, and they probably aren't for quite a few people.
My attempt a couple of years ago and never completed (Rust):
https://github.com/DMSrs/dmsrs
As a war veteran I can confidently say most veterans would probably not be traumatized by work like this. We've all seen much worse and the things that became problematic memories for me had little to do with reading/hearing/seeing the worst humanity has to offer in terms of violence and fucked up shit people do to each other. The stuff that really sticks and eats at you is usually stuff that happened to or close the individual or something that happened as the result of actions taken by the individual or their immediate group.

Probably the most important measure a company could take to prevent lasting harm with this kind of work would be to spread it around a whole lot more than just 36 people. The real risk of long term impact here would probably be with persistent exposure to it all day long. Most people can handle reading or seeing some graphic stuff with proper mental preparation for it but to see nothing but that day and day out would quickly wear you down.

>Is it ever appropriate or ethical to ask humans to voluntarily subject themselves to traumatic experiences in exchange for compensation?

Probably not. Yet people still voluntarily sign up for military service around the world by the millions, and they do so for a bunch of personal, family, idealistic, cultural, and societal reasons that are hard to reduce to a few easy to argue points like a lot of people online try to do with stuff like this.

Personally, I think it's admirable to hold the ideal that we should like to never offer jobs like this, we should also like to never offer jobs that involve going to war, cleaning up hazardous materials, dealing with explosives, working around heavy fast-moving machines, cleaning sewers, or a myriad of other terrible experiences either; but we're probably not in a position to make those better choices just yet. Until then, people are willing to do these things for a dozen different reasons per person, only two of which are the pay and support they get from the employer.
Now I want to make a custom Times New Roman font with unpredictable ligatures and 0-width vector data so poorly monitored systems create false data when printed in hardcopy.
Using `zip` feels excessively clever to me. I'd probably prefer something in between, like `and_then` followed by `map`, or just matches.
What a shame, as someone who hasn't gamed since I switched to a mac laptop 15 years ago for dev reasons, it worked very well.

I beat Cyberpunk 2077, BL3, AC:Origins all on Stadia. I never once had to wait for a system or game update when I started a gaming session. I'm on google fiber and only very rarely experienced latency issues, the platform also had an "attack the spire" clone that I often played on my phone when I was away from the console. A couple of times I brought the controller and chromecast with me and gamed at other places, the whole setup was extremely portable.

They've refunded me what I spent, I wish I still had the platform though. It was definitely nice to be able to game again during the pandemic.
And perhaps, implicit in the above reply, write about what you have learned!
I don't understand how the dates work on that. On the search you linked, the first result is an HN post with a date listed as "2000-09-18", but if you click the link, the post was from 3 months ago.
Hocuspocus – Y.js WebSocket back end
That’s a very narrow minded view of economics though. Minimizing costs and wages is not the only optimization that matters.
Curious on others perspective here.

Agreed AI will be the “hot” area going forward, but how are labor dynamics? e.g. supply of talent vs number of openings
At least Kenyan workers get $2 an hour ... I haven't seen a single penny for the hours of my life spent on recaptchas.
You are quite right, it's something I've been considering for a long time as well. The cold start problem however is so large, that it has to be an open protocol supported by many of the biggest companies for it to have even a slim chance of succeeding. I admire your attempt, though I'd imagine it to be a very steep and long climb.
From the README: <quote>We're going to declaratively define a parser for the tar format, and once we're done, our code will not only extract .tar files, but create them as well.</quote>

I recall reading about this somewhere, but haven't seen such nice real world example before. Well done.
Been watching these videos for several months now, pretty relaxing to watch and fascinating too. I feel like this is the BMW equivalent: https://www.youtube.com/@M539Restorations
It can't be done for C++ unless you massively constrain the problem.

Trivial example: libfftw3 has --enable-threads and --enable-float configure/compile time options. Your project may need/want both, one or neither of these options (it may, in fact, want two different versions of the library).

Rust "proposes" to deal with this by essentially compiling its libraries as a part of building your project (ie. "vendoring" every 3rd party library dependency).

Most C++ developers don't consider vendoring in this way to be particularly sane, even though many of us do it anyway.
What makes you think that it doesn't?
I know that there are loads of people giving advice here that haven't been in a situation where they had almost no options when it came to getting a job when they graduated. I have been in a similar situation to you, and here are some of the things that I'd advise you to do.

1. Minimise your costs. If you can live with your relatives, do so.

2. If you cannot find a job, work on an open source project that is close to a field that you are interested in. Make sure that you do not have gaps in your resume that you cannot explain. This also allows you to keep your skills fresh and purpose to your day.

3. Invest in finishing the blind 75. These are set of interview questions that if you can understand, and master, you will be able to ace pretty much any technical interview.

4. Make sure you also are prepared for system design questions. There are many books on the matter. Although SDIs can be quite subjective, it is good to have an understanding of what you can do.

5. Do not limit yourself to your town/city/area. Apply for any and all remote jobs that apply to you.
Yeah, it is non-trivial to implement, but not impossible. Some folks go that route.

There are SaaS solutions that implement it for you and make it easy to include in your app.
Advent of Computing Podcast- The Berkeley Software Distribution
Method Combinations in Common Lisp
I would expect Wyoming residents to have problems with electric cars anyway, due to a lack of charging stations (and I wouldn't be surprised to see vandalism). I don't live in Wyoming, but I used to live in Idaho, and the mentality is similar.
Yea the latter code is unreadable to me and feels obfuscated, like the author is trying to force functional programming where it doesn't belong.
The demo on the homepage is available only on chrome. I tried both safari and firefox on macos and I can't see the " Experience Passwordless.dev in action" link there.
> Well, for starters, liberals and conservatives concentrate themselves into geographical areas

Not as much as popular media pretends, the illusion of this is true is mostly an artifact of the electoral system.

> and beyond that there are regions that attract a given kind of politics (landlocked vs coastal regions).

Again, not really, though there is a bit of a second order effect; the divide is more urban/rural, and, again, is exaggerated in popular perception largely because of FPTP voting and other political structutres which artificially magnify even slight local dominance (e.g., local governments with vote N of M with N winners super-FPTP bodies, which give local aligned bare pluralities 100% control of a multiseat body, aren’t unheard of.)