skysight-inc/HackerNews huggingface dataset:
1. Decide on a non-trivial project. It doesn't matter what, but it should interest you at least a bit. It shouldn't be enormous ideally, but ultimately too big is better than too small.

2. Decide on the tech stack. It doesn't matter if your decision is not the best. There are no bad decisions. Stick to that stack for that project, no matter what.

3. Start breaking down the project to small steps, and start reading your stack's documentation like crazy, and googling your current step "how to display cats with SQL" or whatever. Implement that step.

4. Keep repeating step 3 until your project is done. This is the most important: don't stop until you finish.

5. Once you finish, you have learned a lot. It is time to reflect why SQL wasn't the most ideal choice to build a music player's frontend. (Also, it is time to reflect on how many other people could do the same).

Don't learn blindly from random youtube videos. Learn by doing.
Show HN: Ant Design X – Craft AI-driven interfaces effortlessly
Yes, I still have to update the transformation matrix for every children on every movement of any of their ancestors. But it doesn't cause a significant performance drop so far. Currently it is only computing it just in case, but it is actually not affecting the SVG elements at all so they do not have to be updated. The only reason for re-computing this transformation matrix is if I would have to know the local-to-world coordinates of a particular object, when readjusting the attached connector or doing some other logic based on their positioning
I don't waste time doing that. Sounds like a skill issue :)

React is on like version 18, you guys can keep getting paid to upgrade frontend libraries every year, I'll watch.
Google performed one of the biggest web scrapping experiences in the history of the internet! And there's something completely new with AI summaries.

Google went beyond crawling and indexing. Google decided to generate content, based on what was crawled/indexed. Instead of listing traditional search results that lead to websites, Google now steals content and engagement.

The only way to get out of AI summaries? Blocking Googlebot. Which means disappearing from Google Search. Google leaves you no choice.
Discussions

2023 (414 points, 35 comments) https://news.ycombinator.com/item?id=36180316

2022 (2900 points, 285 comments) https://news.ycombinator.com/item?id=29981188
You need some kind of structured way to describe the action to take, what the result is or what the error is. so the client and server can actually parse the data. that's the protocol, whether its something formal like rpc libraries, or "REST"-ish or w/e

json-rpc is probably what your describing over http, maybe if you squint enough graphql too
I also liked TFOG. I wish PLATO were more widely available (especially with all of the software for education, science, communication, and [importantly!] games) for examination, emulation, experimentation, and general use.
You are thinking like a developer, but there is a world of networking as well. Between your client and server will be various bits of hardware that cannot speak the language you invent. 200, 401, 500 — these are not for the use of the application developer — but rather the infrastructure engineer.
I was thinking of that scene in Lars and the Real Girl as I was reading the first part of your comment. Such a phenomenal movie.
This doesn't look like a valid Show HN (given it's a link to a github issue)

But hey, it was popular 5 months ago (60 points, 65 comments) https://news.ycombinator.com/item?id=40856616

And in 2016 (507 points, 105 comments) https://news.ycombinator.com/item?id=13053137
That's what I get for reading literally. sigh.
Yep, Prosody was one of my failed attempts :P I am running everything on a kubernetes cluster, so a maintained helm chart is the first thing I check when running something. I didn't have much luck with XMPP servers with this.

That IMAP auth trick is really awesome thinking BTW, kudos!
You lose some benefits of features already implemented by existing HTTP clients (caching, redirection, authorization and authentication, cross-origin protections, understanding the nature of the error to know that this request has failed and you need to try another one...).

It's is certainly not comprehensive, but it's right there and it works.

Moving to your own solution means that you have to reimplement all of this in every client.
What's wild is that he could take his billions and retire to a private island for the rest of his life, but he seems to spend a great deal of time working on large difficult projects which further humanity's place as a species. I.e. shifting humanity to renewable power, engineering the first reusable rockets, worldwide internet and cellular phone communication, colonizing other bodies in the solar system as backup civilizations, and you've got to wonder why with the way he's vilified. Paints an interesting picture as to why other billionaires aren't interested in grand projects.

Edit: downvoting this comment just reinforces my impression.
I actually forgot about the 7th option - desktop app built with Electron. Unfortunately it's been broken for a while and the electron build fails with some weird error message. I just didn't have enough time to look into it since I am currently a single developer working on it.
I don't disagree with you there. The only thing CL really misses out on is that its type system isn't specced out enough to be as powerful as it could be. Since they're just macros you can write all kinds of crazy types, but non-terminating ones just might not work if your implementation doesn't handle them a certain way. This was actually a disputed issue: https://www.lispworks.com/documentation/HyperSpec/Issues/iss....

Someone had proposed reifying types to be first-class objects, which might be a good thing. I haven't thought about it enough to decide.
https://gist.github.com/Bike/e405cc49a64fed0752b524c292bd715...
I imagine if I was from Taiwan; Kumamoto would be much more attractive based on climate alone.

Sapporo gets cold.
Wild animals have also independently deeply specialized in minimizing energy. Many reptiles and insects eat once every few days or weeks or longer. Some hibernate. All exotherms minimize bodily activity at least some parts of the day.

That said, this argument when applied to humans is nonsense. We are highly energetic endotherms. Our bodies require exercise for a huge list of well supported reasons
I thought so too, after years with Scala and Rust. Now I think (X, error) is fine, indeed I think it is great for it's simplicity. I might want to have a safe assignment

// x() (X,error)
x != x()
// x is X
// return on error

But the urge is not very high.
Too much writing and lack of diagramming is a sign of digging through the rabitt hole.
The Fifth Generation https://en.wikipedia.org/wiki/Fifth_Generation_Computer_Syst... was another notable failure. OTOH MITI did also organise the Japanese VLSI project https://www.asianometry.com/p/the-rise-and-peak-of-japanese-... https://dspace.mit.edu/bitstream/handle/1721.1/47985/fromimi... , which was apparently a smashing success. (I am not an expert on anything.) On the third hand, according to Johnstone https://www.hachette.co.uk/titles/bob-johnstone/we-were-burn... the success of Japanese consumer electronics had very little to do with MITI and government industrial policy, as MITI despised the consumer-electronics firms and doted on the "real" computer companies.

Right at the moment I assume that the Japanese government is probably still kicking itself for not spending whatever it took to keep Nikon's EUV-machine development going: apparently Nikon wasn't that far behind ASML. https://www.youtube.com/watch?v=8_OOta7Y6Ik Likely it's determined not to make that mistake again; and it's not as if the US is in any position to complain about Japan having an activist industrial policy in semiconductors at the moment.
Good on you for open sourcing the code. Its destiny may yet be as a hidden gem that makes some peoples' lives better. In which case, not what I'd call a failure.
The underlying issue is how BGP and peering works behind the scenes.

BGP relies heavily on mutual trust that nobody claims an ASN they are not supposed to have and that have no overlaps. But, if you analyze the registry datasets, there will be always two culprits that claim ownership of networks for surveillance reasons :)

Then there is the fact that cloudflare is hosting sooo many malicious actors in the field that their own business model shifted into hosting crime as a service, while also offering "protection" against their own customers. There was this one guy that ran a custom DNS resolver to expose this, you can search the web archive for the "crimeflare" website where he hosted it (and got DDoSed by cloudflare, too, btw).

And then there is the problem with peering. As you said, peering providers could have just checked whether or not the source comes from within one of their networks, but they don't do that. Most amplification attacks cross those peering lines/ASNs, yet we see cloudflare's DNS being the single most DDoSing server on the internet, while simultaneously providing said protection from exactly that attack type.

[1] http://web.archive.org/web/20240000000000*/http://crimeflare...

[2] http://web.archive.org/web/20190620030133/http://www.crimefl...
Asking questions and thinking critically about the answers is how I learn. The information is better structured with LLMs.

Everyone isn't "generating and moving on". There's still a review and iteration part of the process. That's where the learning happens.
You dont.
The same things could be said when everyone could print their own newspapers or books. How would people distinguish between fake and real news?

I think we will need the same healthy media diet.
Agree. "200 - successfully failed to do the thing" is valid and useful.

500 is "failed to do anything at all"
There are a lot of useful network monitoring tools that can analyze HTTP response codes out of the box. They can't do this for your custom application error format. You don't have to go crazy with it, but supporting at least 200/400/500 makes it so much easier to monitor the health of your services.
I imagine it might take a bit to get used to the different shapes but I quite like the idea of having different elevation for the ranks. I think that would help learners develop a more intuitive understanding of their importance. Something I'm only acquiring now as I'm teaching my children.
> "intentionally misleading or vague problem descriptions to add to the challenge" better?

No, it's not better. The creator puts a lot of effort and user testing into making the problems as clear and specific as possible, and has given talks on that exact subject. There's absolutely nothing "intentional" about any difficulties you have understanding the problem text. Unfortunately there's only so much that can be done for people who simply can't read.

> Or are [you(?)] still offended by my opinion?

I never said that I was offended, I said that the creator would take offense to your accusation. I'm noticing a pattern here.
It was based on outbound connections per local IP address, but I don't remember exactly how I achieved it. It might have been port 22 SYN, or it might have been using the conntrack module. IIRC it used the rate limiting module to set the rate, and then just the log module to log a message which the monitoring system would pick up.

My routers were Linux boxes running in an HA configuration (heartbeat), with quagga for BGP to the upstreams. I had more cores than interfaces so the system would never livelock due to interrupt storm if a burst of packets came through (interrupt mitigation wouldn't happen if all cores are saturated handling interrupts). Firewalling was kept pretty simple, to reduce load and end boxes all had their normal firewalls, but I did block users sending IP source addresses that they weren't assigned. I also had a custom kernel module that would account traffic on the transit interfaces, so customers were only charged for traffic outside our network, anything internal (backups, apt/yum updates to our local mirror, etc) were all free.

I loved having a router that had more than enough memory to hold full BGP tables no problem (while others were worried about the growth of the tables blowing out their RAM), and I liked that my slow path and fast path were the same speed. :-)
Do you have integration for ML orchestration to reuse bruin inside our existing pipeline?
Ah, a God error package that has all seeing knowledge of the domain around it. What a monstrosity.
That ingestr CLI you also developed and just casually reference seems very, very cool!
Go ahead try to implement something like cross-origin requests or multipart encoded form uploads just using the body semantics you described. I’ll wait.

Also that is not a controversial take. It is at best a naive or inexperienced take.
Fedora Asahi Remix 41 is now available
Bro got dragged so hard in the comments he took his site down. Oof.
Love the idea!

I still need to look at the implementation later but just wondering if there is any overlap / possibility for leveraging atproto from Bluesky? Probably different use cases but it just made me think of PDSs.
I tried out building a MCP server so you don't have to
I doubt that is where the most advertising value on AI platforms will be created. Text as a medium has never been less relevant in a multi media digital world.

I can think of something like people generating a short video and some of the frames innocently containing brand placements. If people can share AI generations and these creations receive some semblance of popularity, that's where you will find advertisers. Most of the digital ad dollar value is created around social platforms. This recipe for success is already proven.
I just used your getting started guide and it's freaking amazing
The error to code in the http handler is the true path. It’s the only place where the context and knowledge is about semantics. In one endpoint if something is not found it can be a proper 404, if its existence is truly optional. In another endpoint the absence might very well qualify as a 500.
Qualcomm vs. Arm trial, Day 1 – Opening Statements
I think they use too many sentinel errors [0] I have been doing Java for two decades, and I thought you need to handle individual errors by type. Using Go, I've learned from the code I write, 90%+ of errors I don't need to handle individually, or I can't do anything except bubble an error up. There is the rare case (10%) when a file does not exist, and I try to read an alternative one and I don't bubble up an error.

For customer support I also found it much easier, instead of an error number, print a UUID that customers can give to support, and that UUID (Request ID) then can be found in the logs to find out what happened by developers.

[0]:https://dave.cheney.net/2016/04/27/dont-just-check-errors-ha...
The Chinese providers will soon offer real competition over Africa and South America at least.
I started with Mike Dane (Giraffe Academy) on YouTube. Watched his programming videos beginning with Python. I hadn't yet decided what area of programming I wanted.

Then I found Bucky Roberts (The New Boston) next, and watched videos on areas I was interested in.

Then I started looking for frontend projects to code along to and I stumbled on Brad Traversy (Traversy Media).

So, personally, I'd recommend either of these guys I just mentioned. After getting the basics down, just start building stuff. That's the only way to TRULY learn.
Show HN: I built a simple profile picture generator
I built this tool in a few hours because I needed a quick way to create profile pictures and email signature images. With Propic, you can upload a photo, remove the background, and replace it with a colorful round pill of your choice.

The background removal happens entirely client-side, so your photo never leaves your device. It’s fast, private, and easy to use.

You can find a link to the GitHub repo on the webpage.

Would love to hear your thoughts or suggestions for improvements!
Why? If we define zero as 0xFFFF it will saturate by rolling over the first bit, which increment will not change?
"Qualcomm vs. Arm trial, Day 2 – Is processor design derivative of Instructing set architecture (ISA)?", https://www.tantraanalyst.com/ta/qualcomm-vs-arm-trial-day-2...
Right, but unlike a passkey, my password doesn't discriminate based on the device I use.

If my phone explodes like a Samsung surprise, and my laptop turns into a spicy pillow;

I can in the worst case scenario, still log in via the local library PC.

I could borrow a device from a friend, or buy a second hand Thinkpad and use that.

That is to my knowledge, not possible with a passkey device.
Great project, is there any plans to add linux support?
Then maybe not in the windshields but in glasses and contact lenses.
I was very careful in my wording: someone who is required to register by law may choose to not do so.
For us the killer feature is being able to build the UI once with design tokens and then transform it radically into different themes. In our case the themes serve different brands (of the media company I work for) but more commonly this is a great way to build out light and dark modes.

Our tokens are integrated into the designer’s tooling and we have a build pipeline that allows them to update the frontend with minimal developer supervision, which has been a huge time saver and QoL improvement for both developers and designers.
I'm sympathetic, but this can have issues if you want your API to be used by anything other than your own client, including stuff like logging middleware. A lot of tools inherently support/understand HTTP status codes, so building on top of that can make integration a lot easier.

We, very roughly, do it like this:

- 200: all good

- 401: we don't know who you are

- 403: you're not allowed to do that

- 400: something's wrong and you can fix it

- 500: something's wrong and you can't fix it

Each response (other than 401) includes a json blob with details that our UI can do something with, but any other consumer of the API or HTTP traffic still knows roughly what's going on.

I've worked in places where we really sweated on getting the perfect HTTP status codes, and I'm not sure it added much benefit.

On POST - I find myself doing logical GETs with POST a lot, because the endpoint requires more information than can be conveyed in URL params. It makes me feel dirty, and it's obviously not RESTful but you know - sometimes you just have to get things done.
You should listen to his campaign speech in Dearborn, and later he went to a conference and basically said that the palestinians deserve to be exterminated because Arafat left the Camp David talks.

Over the last year many US academics and students have been abused because they openly dissent with or protest against the warlords in charge.
This was exactly my train of thought. I even went looking for Dave's blog post about it before I saw your comment. :D
I arrived to a similar conclusion. I come from Java and in Java you have exceptions with TryCatch clauses and declaring them in function signatures. It works fairly well but very difficult and not idiomatic to Golang.

Therefor, I created a simple rule. If you do not know what this error means to the user yet then let it stay a fmt.errorf("xx:%w",err). If you do, wrap it in your own custom ServerError struct and return that type from now on. Do not change the meaning of ServerError even if you wrap the Error with another ServerError.
Flawed Global Cybercrime Treaty Goes Before UN, States for Adoption
X-Risk potential of research towards chiral-inverse cells
This is encouraging. Hopefully it will be a success.

It's good that the fabs are so far apart. No one disaster or attack is likely to hit both.
Have to think about that now.
Oh boy if you're willing to spend money to look at the night sky - but feel like AR falls short currently - I highly recommend looking into NODs, something like a PVS-14, you might be able to pick one up second hand for the price of a new vision pro. Unfortunately photomultiplier are still quite expensive even if they are only gen2 :( some really cool tech though.
It is telling that you come from Java with this opinion. OP's approach is certainly not idiomatic Go.
I think for most indoor household work they only really need enough to move from station to station. Once they are at the bed to fold clothes or in the kitchen washing dishes, they should be able to plug themselves in.

That’s way too limited for $60k though. I’d pay $20k even if it had to plug itself in for most jobs, assuming it was decent at cable management and could manage its own extension cord in other situations.

I would pay double that if it were capable of household/office/workshop reorganization and managing storage with a live inventory of where it put all the crap it cleans up. It’s not quite at the point where it would be a positive ROI financially (assuming $80k TCO over 5-10 years) but it’d make life a lot more convenient and lower the activation energy for a ton of hobbies.
I had no idea this was available. Seems like it is also capable of running doom so that means it allows 32 bit mode somehow?
"Engage with the full spectrum of CRUD operations to craft and manage multiple calendar datasets."

The readme for this shell script somehow has "starting at $25k per year" vibes.
The "support elements" on the mainframe, which are just a laptop connected to some internal buses and power controls, did run OS/2 for many years. You could IPL the machine right from the Warp desktop. It was neat.

They also continued VM with VM/370, VM/ESA and z/VM operating systems which are equally rock solid systems. Aside from these IBM did actually go big on Intel systems but they got completely blindsided by clone manufacturers and entirely failed to see what cloud infrastructure would do to their impressive mainframe lineups.
Is there any serious document/person on how many jobs were lost to AI? So far the headlines have been from CEOs playing with Other Peoples Money (fellow comment stating 1 of 76 quarters were profitable), giant consulting orgs etc.
AI can't debug yet.
I don't understand what you mean. Decrementing from 0 gives you 0xFFFF, incrementing from 0xFFFF gives you zero. (It doesn't matter whether you use unsigned or signed increment as those are the same operation, at least on a two's-complement processor, where the bit pattern 0xFFFF represents -1.)

You could do this trick on a machine that uses signed-magnitude representation, since a signed increment of 0xFFFF (INT_MIN) would result in 0xFFFE (INT_MIN + 1). But all modern processors use two's complement.
let's hope this replaced slack and all the gimmickware.
Prior to the internet vendor included features were significantly more important than they are now.
California passed the click to cancel law this year. They passed a different law trying to make it easier to cancel subscriptions in 2018. The need for them to revisit it implies that the original one wasn't working.

Corporations act strategically. They typically don't immediately thwart new laws because the coalition that passed them is still intact and would try to do something about it. So they wait a minute, maybe take the time to buy some more legislators, before testing the fences again.

If people have forgotten about them by then you lose, and if people haven't forgotten about them by then, California passes the 2024 law and you lose the other way. Because they pass the new law in addition to rather than instead of the old one, even though the old one has stopped working, so you have a ratchet of ever-increasing compliance costs that also apply to all the companies that were never doing anything wrong to begin with but still have to hire lawyers to evaluate their activities against an entire bookshelf of rules to see if any of them require something they're not doing.
Thanks for the pointer !

We are actually toying with building out a prompt evaluation platform and were considering extending langfuse. Maybe just use this instead.