skysight-inc/HackerNews huggingface dataset:
some good usability points on method names, but the bulk is mostly complaints by someone clearly unable to understand webservers or security. complaining that error level hides errors from output is very amateur. also complaining about info missing from the manual in open source is silly. test the two failure cases and send a manual improvement patch, instead of being annoying and wasting more effort on a blog post
>No, it will _never_ be feasible to collect and transport any meaningful amount of carbon out of the atmosphere.

This is obviously utterly false, given how much CO2 has been absorbed each year by current gen CO2 absorption technology.

>But carbon is completely worthless.

Current Gen carbon absorbers turn CO2 into some of the most useful materials on earth, like food, building materials and raw materials for oils and plastics. Much of the current world logistics is already dedicated to transporting their products.
People focus too much on syntax. I have worked with PHP professionally and I have to grant those folks that they got genuinely good libraries and frameworks. But coming from Java, I always found that you are ultimately boxed into a corner.

It surface seems productive and shiny and for 90% of use-cases you get the job done quickly. But for those other 10% you realize that at its center lies a rotten heart, wired together with duct tape. Syntax is not the problem. Horrendous stdlib and IO interop is what keeps it a mess.

Once you try to do anything more sophisticated you realize its many sharp angles which don't make sense. Such as call-by-reference only working 2 recursions deep. Silently failing when opening files which are too large. Arbitrary decisions and namings on stdlib. The hassle of debugging your program.

Or an ongoing struggle in my old company: Wanting to set up old PHP projects and realizing that your package manager doesn't have them anymore.

PHP is a ticking time bomb.
Could you, would you, with a goat?
Then the whole "everything is output unless in the php tag" seems to be never used anymore.
I can't see why anyone would choose to start a new project in it.
I've been programming for about as long but I've yet to see a case where searching on Google (and often opening Stack overflow) wasn't quicker than ChatGPT. More often than not if I'm looking something up I'll get a bunch of answers on SO and quickly skim through them to get what I was looking for. This is way quicker than prompting over and over again hoping to get an answer.

But after programming for so long the types of things I'm searching are basically API references. I know exactly where I'm going I don't need help getting there.
I recommend rsync.net for primary; AWS S3 (Deep Glacier, mainly) and Backblaze (B2) for secondary/tertiary.

I had used SpiderOak for years, but they are now clearly unreliable.
Ha that's why the trades have the motto: we do it nice, we do it twice :)
unfortunately telling a potential employer to fuck off is a privilege not everyone has
> 3. Generating different sizes as you mentioned can be useful.

For years now I use nginx's image filter [1] which handles file resizing quite nicely. Resized images are cached by nginx. For some usecases it works very vell and I no longer need to specify sizes beforehand, you just ask for the size by crafting your url properly.

[1] https://nginx.org/en/docs/http/ngx_http_image_filter_module....
It's true for most countries tbh, mass tourism became the norm but step out of it and you're in for an amazing time, even in your own country
I think you're right about the U.S. not getting involved yet. They suffer a lot from motonormativity and consider cyclists to be the bane of civilisation.
Wow. Literally kowtowing ...
> journalctl... it takes me 18 seconds just to type it.

Sounds like you don't use a keyboard often enough to even remember where the keys are. Not sure I would expect deep (or even shallow) knowledge on UNIX system administration from such a person.
In Elizabeth Barber's Women's Work: the First 20,000 Years (1994) there's a passage where, on the basis of reconstructed PIE roots, she posits what we're fairly sure the proto-indo europeans were getting up to in the evenings around their campfires, and many of the activities are very familiar indeed. (literally so: some of the reconstructed verbs being activities which may lead to family formation)
That we currently know of.
Location: UK
Remote: Yes
Willing to relocate: No
Technologies: Javascript, Typescript, Node, Express.js, PostgreSQL, Python, HTML, CSS
Github: https://github.com/jacobcons
Most recent project: https://github.com/jacobcons/Emote
Email: jacobcons@gmail.com

Hey there,

I'm Jacob. My background is primarily in mathematics but I've been programming overall for 10 years. I'm looking for my first professional role as a backend developer, preferably, working within the Node ecosystem.
Why would the owners of the copyright be restricted from selling their copyrighted works in whatever way they want?
Small projects have a habit of getting bigger and small teams have a habit of growing also - usually to deal with the mess of the small project that is now bigger
I like it. I returned to PHP after nearly a decade and with Laravel I’m able to ship products really quickly.

Laravel’s collections fix my syntactic issues with PHP arrays.

My only complaint is that type checking is performed at runtime, so if you forget to mark a field as optional you get a type error even if you account for the nullref in your code.
mod_php runs in the same process as your http server, with the same rights. It's comically bad, especially in mutualized environments, and the reason why PHP is such a common target for hacks.
When I was applying to internship dev roles a long while ago it was very common to come across “record yourself” interviews and a situational test. Next stage was often some group interview where you had to put a presentation together or create a presentation yourself on why the company is so great. Almost none of it had anything to do with tech or development.
Traffic lights only exist because of cars, though. Pedestrians and cyclists don't need them. So, again, it's all caused by cars.
Loved the first edition, it delved into a lot of interesting topics in an easy to understand way.
Exactly. LinkedIn is such a performative place now.

“I proposed to my fiance, 10 things I learned about sales after closing the biggest deal of my life”

This kind of bs is everywhere.
Skillnet Ireland wins best in world award
Yeah I am waiting when customer satisfaction will become another 'top priority', but not holding my breath
Question - Do I compromise on quality on answers if I use models using WebLLM (like this) compare to using them on system console.
some aspects (not all aspects) of creating (not using) emulators are not illegal by way of copyright laws (but may be illegal by way of other laws such as trademarks, patents, DRM) in the US because of Sony vs Connectix.
We have 700 servers around the world and we run measurements over all of the usable internet space, including assigned IPv6 addresses.

I highly recommend reading some of our blog posts and community posts.

You can also checkout our IP data tags page: https://ipinfo.io/tags
Well said! I once heard C# referred to as a “blue collar language”. Perhaps snarky, but it mirrors my experience.

There’s little in the way of fun in the ecosystem. Not a lot of true open source in the conventional sense, lots of Microsoft MVP consultant types with blogs promoting their services. Those websites look like time capsules from 2011. You won’t find many beautiful, “handcrafted” blogs on .NET topics. A perhaps bizarre metric, but it helped me well in gauging an ecosystem’s vibe (Rust, Go, Python and others pass that vibe check, for example).
This fact was already discussed during the antiquity.

In the Ancient Greece and then in the Roman Republic and Empire, there were 3 combat sports: wrestling, pugilism (i.e. boxing) and pancratium (i.e. MMA).

Punching was allowed in both pugilism and pancratium, but only the pugilists bandaged their hands with leather straps, to protect them from injuries (analogous to the big boxing gloves and the small MMA gloves of today).

Because of their bandaged hands, the pugilists were using hard strikes to the head much more frequently than the pancratium fighters, so finishing a fight with severe injuries was much more common for pugilists.

Some ancient writers have commented about this and they have mentioned that at big competitions like the Olympic Games it has been decided to schedule the pancratium matches before the pugilism matches, because there were some people who desired to compete in both tournaments. Had pugilism been scheduled the first, there would have been a high risk for them to be injured, preventing them to also compete in pancratium, while with pancratium before, they had good chances to be able to compete in both.
Bloomberg NEF actually ran an interesting article a few weeks ago suggesting that we'll have all the batteries we need to electrify all road traffic: https://about.bnef.com/blog/china-already-makes-as-many-batt...

They are tracking all the companies and investments involved with battery production and one of their claims is that new battery production is going to outstrip demand in the next few years. That will likely mean significant price drops for batteries. And it also means that companies outside of China may be struggling to become cost competitive.
Oh! And last time I checked, maybe 2015, a lot of the stdlib of uncompiled Zend PHP is just plain old C code.
I try not to harm bugs these days, even spiders, but when I see mosquitoes I become Doom Guy. They are one of the worst inventions of nature, and their being conscious would not help their argument for existence. Y'all shouldn't have bit me so many times.
I had one recently where the first stage, before you’d even spoken to a single person, was an assessment with an estimated duration of 76 minutes. Camera on was required and they’d be taking periodic snapshots of both my screen and my camera.

Immediately noped out of that and told the hiring team why.
In my line of work (healthcare in the UK), an AI system that would change what a human writes in any way would be considered a medical device, and would require an absolute ton of paperwork to certify. In the case of LLMs, I don't know if certification would even be possible, because you have to show that your system didn't change the intent of the human, which is impossible to do with LLMs.
Good read, thanks. I found myself in this article having started to repair an old bicycle and bringing it back to life. I always thought that manual labor is more satisfactory than mental labor because you can immediately see the outcome and the value produced. Being a computer engineer I feel the need to disconnect myself from what I call "the abstract world" and get in touch with something real. Something I can touch.
Python is the world's most popular programming language and a true general-purpose language usable for any application.
And with that you're completely wrong, since strings in JavaScript are UTF-16.

It just so happens that your example consists of two UTF-16 codepoints.

(Node.js' Buffer uses UTF-8 by default).
I’m not fighting anything. You can’t prove that I need to walk more than two hours a day to stay healthy. You can’t prove that humans haven’t evolved, at all, over that period of 1 million years.

Saying that we need a minimum of two hours walking per day is not based in any kind of fact at all. It is entirely assumption.

Exercise, yes, exercise for two hours or more per day, who knows?
The nice thing about stuff like that is it makes it pretty explicitly clear who you should avoid working with.
Well MS is selling Linux by now so stranger things may happen, but talk is somewhat cheaper than implementing good practices.
I don't exactly understand the exact motivation of this package. Yes, truncating a UTF-8 string to a byte size limit without making it invalid is a valid problem. But if it were the only motivation, the function signature ought to be:

func LimitPrefix(a string, n int) string

...and it should never have an error condition (which does allocate memory). The name and signature should immediately suggest the following requirements:

1. `LimitPrefix(a, n)` should always return some prefix of `a`, namely `a[:m]` where 0 < m <= n.

1a. In particular, `m` can be zero if `n` is small enough.

1b. And `m` is expected to equal to `len(a)` if `len(a) >= n`.

2. `a[:m]` should of course be a valid UTF-8 string if `a` already was.

3. `m` should be maximized under these conditions.

There are some edge cases that we have to fill in as well:

4. The conditions 1 and 1b are a reasonable expectation even for non-UTF-8 inputs. They are also easy to guarantee.

5. The condition 2 can't be efficiently extended for non-UTF-8 inputs and no justifiable use cases exist.

6. However the condition 3 depends on the condition 2 (and 1 of course). Therefore it should be replaced with something concrete, otherwise we risk an unintentional incompatibility.

7. Negative n may arise from a size calculation with a missing bound check, so treating it as zero sounds fair.

The current design, in comparison, just finds the last UTF-8 lead byte within `a[:l]`. It doesn't even help with the truncation: both `Find("thirty", 5)` and `Find("dreißig", 5)` return 4, but `"thirty"[:5]` is valid while `"dreißig"[:5]` is invalid. Also `Find("one", 5)` unexpectedly fails! An arbitrary condition of `l <= 3` is even more confusing.

---

Based on aforementioned conditions, I propose the following instead (warning: never tested):

func LimitPrefix(a string, n int) string {
if len(a) >= n { // Condition 1b
return a
}

n = max(n, 0) // Condition 7
n = min(n, len(a)) // Condition 1

bound := n - 4 // Condition 3: Assume that a[n-4:n] has one or more lead bytes.
bound = max(bound, 0) // Condition 1a

var i int
extent := 4 // Condition 6: Do not truncate if no lead byte is found.
for i = n - 1; i > bound; i-- {
switch a[i] >> 4 {
case 0, 1, 2, 3, 4, 5, 6, 7:
extent = 1
break
case 8, 9, 0xa, 0xb:
// Continuation byte
case 0xc, 0xd:
extent = 2
break
case 0xe:
extent = 3
break
case 0xf:
extent = 4
break
}
}

if i+extent >= n { // Condition 2
return a[:i+extent]
} else {
return a[:i]
}
}
Rockr – A loopstation for the web browser: Devlog episode 4
What therapy prompts have you found useful?
Thanks for sharing your home lab setup—it's just the beginning of a long journey. I can't wait to see what you do next!
Good luck getting that through the court.

I guess they could just send people threatening letters - but even getting the ISPs to play along would be an uphill battle.

Germany is a special case as it's particularly bureaucratic and dominated by establishment interests. And even then it's only commonplace for Bittorrent because GEMA, etc. pushed to make that possible.
How timely: my bicycle's rear tire is a goner. My brother changes it by himself but I only have the skill to take the wheel off and bring it to the shop!

> and the greater the chance they’ll conclude they’re working in a bullshit job.

OK but you guys all know how many software have been involved in the creation and shipping of that bicycle and all its material? It's software all the way. The 3D modelling, the logistics, all the payment processing making buying/shipping the materials, etc.

I won't comment on taxes (on revenues for all the companies involved and on their employees too and on the sale etc.) and all the software that implicates and all the bureaucracy that it allows to thrive because, to me, that is the real bullshit that should be decimated (not reduced to zero but decimated).

But anyway many things we enjoy and take for granted exists thanks to and because of software.

Put it this way: even if they're similar in that they both have two wheels, I'm not trading an early 20th century for my Specialized (californian company btw even though I'm in the EU) full carbon S-Works (S-Works is the top end from Specialized) bicycle.

Thank you very much, software devs, for having made the creation of that wonderful bicycle possible.
Not just with teams, going back to a solo project after some time is so much more of a hassle if you don't have any types to guide you.
In the US. The DMCA is only relevant because GitHub is operated by a US company. Nintendo would have to try to make the same arguments for EU law, e.g., if the software in question would be hosted in the EU. That might be more complicated.
Imagine you come from a small town where there are no parking lines at all, and everyone efficiently parks on unmarked blacktop in a respectful way.

Now imagine you go to a big city where they have a bunch of lines in the parking lot and people only half use them correctly, parking over the lines, diagonal, etc.

The existence of lines doesn't guarantee good behavior. The absence of lines doesn't guarantee bad behavior.

This is the argument I see for javascript-only folks who don't necessary enjoy using "the worlds most bloated javascript linter"

For the record, I am a Typescript enjoyer and I use it in my personal projects as well as professionally, but even I can admit that it's not automatically superior to javascript and it has a number of really frustrating and time-consuming downsides.

It's very easy to type the args and returns of a function and protect callers, but it's much more challenging to work with types between libraries and APIs all together. Lots of `as unknown as Type` or even the dreaded `any` to try and cobble the stack together.
Not so great a leap; every part of your comment implies you think they made a strange decision going the route of using someone's pet project.
Is that a bad thing? If you're building an MVP, do you really worry about how 2k developers are going to work on this 10 years from now?

Requirements change and the code base needs to adjust with those requirements, that's gonna happen no matter what. I've met a lot of people trying to predict future requirements, deciding to overenginer today for a brighter future. I have very rarely seen anyone guess the future requirements accurately.
> You don't see an issue with a barrage of prompts that users have been conditioned to blindly accept?

No, for two reasons:

1. This isn't like "are you sure you wish to run this program that you just downloaded?" where you pretty much have zero reason to ever say no. If a torrent site asks for USB access I'm going to say no. If a firmware update site asks, I'll say yes. It's easily actionable.

2. No sites ask for all of those permissions. At most they ask for one or two.
To replace the gas stoves and oven combos found in most American homes that currently use gas, you're looking at a thousand dollars at the lowest. Most are several thousand dollars. Replacing a gas stove and oven with a low power (single phase 120V in America) induction hotplate would be a substantial downgrade.

You also have to consider that many American kitchens that presently have gas will probably need an electrician to install two-phase power. Admittedly some will already have that, but in the homes built for gas it will be several hundred dollars (at least) just to get the wires put in.
I'm curious on how you did the websocket part?

I thought php has a per request execution model.
Android bug can leak DNS traffic with VPN kill switch enabled
FreeBSD Status Report: First Quarter 2024
I think it’s worth saying, thank you for such a great description of why Shannon’s writing is good, and how approachable his foundational papers are. I could’ve just upboted but it’s nice to know that what you’re doing really resonates with other people and they really appreciate your way of describing it. Thank you. Haha! :)
Isn't that like, the opposite of what living in trailers are supposed to mean?
No, in fact we just laid off half my team and replaced them with South American contractors
We could totally design the world around that. For now, we just lack the will to do it.
The DMCA is crazy though, you can just request a takedown and the onus is on the host. And then if it turns out you didn't actually have the right to do that... well that has to be sorted out later.
What's the catch? Will this mean things like DRM, lock-in, and walled gardens take priority? It's very hard to put security first in an absolute sense- I'm sure some of their products shouldn't even exist if that were the case. It will be very interesting to see what this all means in practice. I like the proposed incentives they've created.
It doesn't have to. Laravel Octane (or Swoole, OpenSwoole, FrankenPHP) support serving multiple request with just one process.
This is usually true, but the CEO is very clear here - when faced with a choice between security and something else, every employee must choose security. And to head off the possibility that some exec chooses differently, a portion of each exec’s compensation is tied to the security initiative.

It’s always difficult to change the direction of a company this size (or even 10 times smaller), but it appears as if Satya has done a reasonable job aligning people’s incentives.

They may still fail, or not make enough progress in a reasonable timeframe, but that’ll happen because the problem is hard to solve and not because people ignored what their CEO and senior leadership told them to do.
I am I the only person who scrolled to the end? I was somewhat intrigued by the subscription model Developer (person) as a service subscription.
Swift's native Clocks are inefficient
Never heard of shadcn or franken-ui, but they look identical, one links to X (Twitter), the other to Mastodon. What's the story there?
Now you're moving goalposts at breathtaking speeds. Previously, you defined surrogate activity as "artificial goal that people set up for themselves merely in order to have some goal", i.e. definitely not producing anything useful. Now suddenly it's supposed to be anything "not directly satisfying your physical needs".
Yep. The last mainstream mecha anime were Darling in the FranXX (2018)[1] and 86 (2021)[2]. Anime like Gundam are much more niche if you compare the amount of MAL users.

[1]https://myanimelist.net/anime/35849/Darling_in_the_FranXX

[2]https://myanimelist.net/anime/41457/86
> given appropriate documentation

Even with documentation you still get garbadge. I've had to decompile a HSM firmware to figure out what the actual input of functions was since the manufacturer kept claiming the documentation was correct. It wasn't even close. Only after I provided the solution to my own support ticket they changed the documentation (why bother paying for full support...).

I've gotten a bit of empathy for the poor front support guy since he'd have to keep complaining to the developers which kept saying "no it's fine as documented".
Delved, you say?
Netflix also was founded in 2007, not 1997.
I just trust my accountant will use excel and what they are doing isn't rocket science.

I have no interest interacting with someone who is going to get into how great the slide ruler is and how kids these days need to learn the slide ruler. When I was younger I thought this type of person was highly admirable but now older and wiser I see how full of shit they are.
I'm not against TypeScript, but I don't really see the massive advantage. I rarely see problems that are due to typing, and the downside is usually limited as I keep my JS on the frontend, not the backend. Regular JS/ES6 just flows better.
(1999)

Not that a mathematically pure idea like this is affected by the date.
Lots of other comments give good suggestions on how to handle uploading and processing, but nothing mentions serving resulting content, so let me chime in:

Do not serve content from S3 directly.

ISPs often deprioritize traffic from S3, so downloading assets can be very slow. I've seen kbytes/s on a connection that Speedtest.net says has a download speed of 850 mbit. Putting Cloudfront in front of S3 solves that.
Ask HN: Does Hacker News have notifications?
Does Hacker News have a native notification system? If not, is there any extension/plugin for it?