skysight-inc/HackerNews huggingface dataset:
Didn't people say that about Uber a decade ago? Somehow it didn't take. We were supposed to see higher vehicle utilisation and less need for car ownership in the sharing economy. Why should I believe it this time?
> In the first quarter of 2023, there were 144 million housing units in the US compared with 1.2 million available short-term rentals like Airbnbs, according to AirDNA analysis of Census data. That means they make up just 0.8 percent of the housing stock, what Jamie Lane, AirDNA’s chief economist and SVP of analytics, calls a “rounding error.”

Assume 1/3rd of residences are in the long term rental market (just a guesstimate for the purpose of illustrating my point) and that of those 3-4% are vacant (a typical vacancy rate). If around 1% of the total number of residences moved from the short term rental market into the long term rental market then the vacancy rate would increase significantly (it could double). To put it another way, the number of short term rentals available could currently be around the same number of long term rental vacancies. Lots of assumptions here, but to call this a 'rounding error' is naive in my opinion.
He has an interest in cool stuff, and that desire sometimes translates to results....assuming he, out of sheer good fortune, hires the right people to actually make the stuff (Gwynne Shotwell/Tom Mueller types, etc)

Humor, well, let's say each to their own tastes...
Frustratingly, wine for windows isn't a thing...
> And we already have runtime validation libraries to cover that validation step. So many of them.

Did you read the article? I think that's the point. The premise is Typescript should be responsible for solution to runtime validation against Typescript not third party hacks.
IMO senior understands that simplicity is possible, but economically not viable for most projects. So complexity is inevitable evil. And true mastery is delivering products, keeping complexity at bay. Not spending time to pursue ideals and at the same time keeping project from felling down to unmaintainable mess.
his "sense of humor" is literally just repeating 420 and 69
Whatever you do, don't visit https://larn.org. You'll never get that time back
> Healthcare: Some people get unlucky with genetic lottery and will require far more cost in care than others. Some type of universal coverage still needs to exist imho.

You can buy healthcare with 20K.

> Social security: Unfortunately, not everyone is good with money.

That's why it's 20K per year. Not a one time $2 million payment for the rest of your life. $20k more than the average social security payout.
> Which has an obnoxious, superficial, bottom of the barrel culture. Cheap, narcissistic, lacking any depth.

Ah yes, very different from the core Twitter userbase. /s
> Wouldn’t this be a perfect use case for a chatbot?

It's a horrible case for a chatbot. Basically, when you have a bunch of hopping mad customers, you don't want to rub salt in their wounds. Refusing to answer the phone in such a situation is horrible customer service.

Basically, if you refuse to answer the phone and stick out a chat bot, it looks like you're just hiding from your customers.

(This should be obvious if you've ever seen post mortems on customer service disasters, like the Intel Pentium bug.)

> Can you elaborate on why you didn’t trust the chat it but would trust a human?

Two reasons:

Basically, I don't know what kinds of integrations, or lack of, are in the system. So, for all I know, they could have something that just says, "don't worry, we're working on it," if it detects that my internet is offline. (IE, I don't know if anyone is actually working on it.)

No context: The system would only respond with a short, canned answer. First it said that everything was going to be fixed at 1:00, then a few hours after it kept saying "fixed soon."

(Again, this should be obvious if you've ever dealt with automations, or ever seen an error message.)
Ah okay, this is admittedly not what I had in mind. When I read replacing a capacitor, I was imagining a soldering job, not a plug and play consumer part. You're right - this seems pretty doable for your average homeowner.
>What careers do the students you know typically aspire to

They usually aren't looking past whether they will be going to bed hungry that night or not. Seriously man, you come off like a scene from arrested development, like you just have never seen a poor kid in your life, or more importantly, haven't even tried to volunteer at an organization that attempts to help these kids.
Maybe you don’t want to be a carpenter after all…
Don't forget people use ambiguity as a tool all the time.

Politicians use words like "justice" or "freedom" to create common ground with little controversy even when they define the term in a way diametrically opposed to their constituents.

I think it can be the same with "tech debt".

I have a friend who figures when he sells his house it will be a tear-down, so he has all kinds of "house tech debt" that he just manages to live with until he literally moves on. it basically means "I don't care about fixing that" or "I'm not going to fix that ever".
Reminds me of this video: https://youtu.be/JXeJANDKwDc
You can do worse than The Frameworks! But it doesn't follow logically that The Frameworks are a good starting place --- they can be (really: are) worse than the outcome from simply ignoring The Frameworks altogether.
Enjoyed the story, thanks for sharing!
Cute exercise in timelining and contact tracing.

Is this just randomized? It makes no logical sense and seems unnecessarily confusing:

> The killer took the murder weapon from one of these rooms:

> The gun from the kitchen

> The knife from the living room

> The poison from the bedroom

> The rope from the bathroom

Poison (of the pharmaceutical type) is usually found in bathrooms. Knives are found in kitchens, never near upholstery. Guns are usually found in bedrooms. Living rooms usually have something ropelike. If this is random, it's a bit fantastical, and all of it is suspicious in itself. Maybe limit randomization to shuffling 2 of the weapons around, because some red herrings are expected.

Poison is kind of a crappy weapon for this game if you don't account for it being able to kill without the suspect and victim in the same place at the same time, only them both being in the same place at some point in time.

Also:

There isn't much reason to use the "?" flag on the chart as it stands. Having a witness give vague, "don't remember exactly" or excessively-timeboxed clues ("I was in the bathroom from 9:00 to 12:00, leaving only to drop off some vinyl covers to the living room so I wouldn't shart on them, but don't remember when that was") would add some challenge. The murder solves itself if you just follow the clues, plot the whereabouts of each suspect and look for overlap.
People seem to forget this is ordinary course of business for big tech.

Internal Tech Emails is a goldmine of letters, threats, and lawsuits back and forth.
That scene that says "Copyright ©Meta" is actually a CC-BY scene from Amazon Lumberyard.[1]

I'm not sure rendering it entitles you to slap your own copyright notice on it while disrespecting the CC-BY. Further, the interface shown is just plain ImGui. That'd be as if I made an image viewer using off-the-shelf parts, displayed some other artist's work in it, then pretended I own the copyright to what my software now displays.

Obviously I don't. The very purpose of this software and image viewers alike is to display other people's work. What Meta owns is software, not the output it may produce.

These corporations are way too eager to slap their copyright notices on everything. It's definitely not a harmless mistake when those same corporations own literal armies of lawyers who protect their employer's "interests" while not necessarily understanding processes happening in other parts of the company.

In general anyhow. In this case it's luckily just Goliath vs. Goliath and not some poor indie developer getting shafted and robbed of credit.

[1] https://developer.nvidia.com/orca/amazon-lumberyard-bistro
Magenta Green Screen: Spectrally Multiplexed Alpha Matting w/ Deep Colorization
This was actually sent by Elon's personal lawyer. Make of that what you will but I get the feeling this letter was composed entirely for Elon's fanboys.

How long before Musk claims that he can't pursue the issue because [insert purported flaw in US legal system here]?
Thanks for putting into words why they just "feel" so wrong.
This didn't stop 70M+ users from downloading the app and using it.

Nobody cares.
What's the limit here?

That code is written like that because it's the only way to write code like that. You have a channel producing items, it will produce items for as long as the channel is open. You have a context to propagate cancellation.

You code gets bigger but it doesn't explode in size as this boilerplate is static in size regardless of what computation you're doing with those items.

You can improve that code by the way by fixing a bug and reducing the lines.

L:
for {
select {
case <-ctx.Done():
break L
case item, ok := <-channel:
if !ok {
break L
}

// code goes here
}
}

If you think there's a way to write that code any more concise than that, then there isn't. I don't see how this is an issue. The fact that there's pretty much one way to write this code makes it so much easier to parse when reading code that uses this pattern. To me, that's great.
Nobody wants to use OpenGL these days, it's a miserable API with 30 years of baggage and complex vendor-specific behavior
Or kbtin.
> I think they made assumptions that engineers cannot be trusted.

I disagree, if you don't think engineers can be trusted, you wouldn't want to trust engineers to remember to close files or connections, you'd have some language feature to do that automatically.

C++ and Rust solved this with RAII and destructors.

In my opinion, this is on the same level as "just remember to check bounds" or "just remember to free memory".
If your loop body is completely CPU-bound, then either adding a select statement, or a separate goroutine that awaits cancellation and closes the channel like collinvandyck76 suggested, will work. But commonly the body will make other IO-bound calls to which the context gets passed, so you can just handle the error.

for item := range channel {
_, err := process(ctx, item)
if err != nil {
return err
}
}
I do to, but now it's in a discord channel dedicated to venting instead of work.
The standard rendering pipeline is still fairly fixed and mandates shaders for vertices and fragments. With software rasterization, there are no more vertex or fragment shader, only compute. And you don't use the hardware rasterization units - you rasterize the triangles yourself and write the results to the framebuffers with atomic-min/max operations. You decide for yourself how and when you compute the shading in your compute shader. This can be multiple times faster for small triangles, and 10-100 times faster for points. And once you do things that way, there isn't much point for graphics APIs anymore - everything is just buffers and functions that process them.
Go doesn’t have immutability or enforced synchronization, and something as simple as a read/write conflict in a map can panic. If your language (like most) has shared mutable state, you must think about ownership, and it’s better for the compiler to check your work reliably.
I find your question hard to interpret. You seem to ask if Threads can succeed, despite your displeasure of Meta being Meta. The business of social networks, search engines and advertisement will always be somewhat disgusting. There will be always suspicious of manipulation & corruption, of abuse.

If you think we'll ever have a social network where this is not the case, I'm afraid you're an idealist who hasn't seen this cycle go through enough times to realize that the business model makes you, you don't make the business model.

From that perspective Meta is the only thing it could've been. Threads is fine, it has a good chance of success, they need to iterate quickly on it, and because they're a small team, with a brand new codebase, and a massive, well-tested scalable architecture behind it manned by thousands of quality engineers, I'd bet on them to be the biggest Twitter clone to take a chunk of the dying bird in the coming months. Probably won't be the only one. Bluesky and Mastodon will play their own role.
Hard agree.

Try to discuss this with people and it’s endless hand waving about resume driven development or not enough time or devs aren’t good enough or nobody really writes good software.

It’s absolutely toxic.
Thanks for bringing this to attention. This book review seems like a good place to start: https://www.theguardian.com/books/2023/feb/19/time-to-think-...
Found this here: Netflix invents new green-screen filming method using magenta light [0].

[0]: https://www.newscientist.com/article/2379971-netflix-invents...
Flask has been around much longer than FastAPI and, as a result, is a much more mature framework. Some examples:

- There's a memory leak with a particular combination of packages FastAPI [0]

- Before Pydantic v2, you would validate your data on input (when it's stored in the db) and then every single time on retrieval. There is no way to skip validation, for example, when you are generating a response on data that was already validated when it was persisted to the db. [1]

- FastAPI has documentation only in the form of tutorials. There is no API documentation and if something is not clear looking through the source code is the only option

- You need ORJSON for maximum serialisation performance (perhaps this has changed with Pydantic v2) [2]

- Using FastAPI with uvicorn doesn't respect log format settings [3]

I don't mean to imply that FastAPI is a bad framework. The Flask ecosystem has had over a decade to mature. FastAPI and the ecosystem will get there but it _needs_ time.

- [0] https://github.com/tiangolo/fastapi/discussions/9082

- [1] https://github.com/pydantic/pydantic/issues/1212

- [2] https://fastapi.tiangolo.com/advanced/custom-response/#use-o...

- [3] https://github.com/encode/uvicorn/issues/527
The inverse idea of Hypothetical Embeddings, HyDE [1]
"HyDE is an embedding technique that takes queries, generates a hypothetical answer, and then embeds that generated document and uses that as the final example."

BriefGPT [2] is implementing this and it uses the following prompt at ingestion-time:

"Given the user's question, please generate a response that mimics the exact format in which the relevant information would appear within a document, even if the information does not exist.
The response should not offer explanations, context, or commentary, but should emulate the precise structure in which the answer would be found in a hypothetical document.
Factuality is not important, the priority is the hypothetical structure of the excerpt. Use made-up facts to emulate the structure.
For example, if the user question is "who are the authors?", the response should be something like
'Authors: John Smith, Jane Doe, and Bob Jones'
The user's question is:"

1 https://python.langchain.com/docs/modules/chains/additional/...

2 https://github.com/e-johnstonn/BriefGPT
Bitcoin ETF: it's like Bitcoin, but we added back the counter party risk.
So then...exactly how it is done today? TypeScript provides an API to get type info at compile time. Libraries write plugins to consume this type info and use it for runtime and custom validation. What changes in this new world?
By fleeing the police who murdered him? I appreciate that you can’t drop the façade for even a moment or the whole house of cards comes tumbling down, but I just want you to know that no one is actually fooled.
As someone else here said, it may not be Kernighan who said that, but Rob Pike.

And he didn't say lowest common denominator developer, he said something like junior Google developer.

And IIRC he said it somewhere in his blog, called command-central.blogspot.com or some such.
At least, not a technical problem, and not even with the zone for their domain, but with the zone of the .in domain.
I was under no impression whatsoever.
I said if you hate google you have alternatives.
Google bashing is lame.
I am sure if you have a 10 dollar phone logged in to your google account at home, offline, you never lose your 2fa codes. But hey, arent they just a long key you can import anywhere via QR-code? If you do not trust or you are one of those mysterious people who lose access to the Google account (illegal activities?) then make a copy.
All I said was it is irritating this google bashing.
Show HN: My platforming game written in C 89
I have been working on this game somewhat sparsely for the past three years or so. However, it is still in a very early stage, and there is a lot of work to do.

One of my friends encouraged me to post about it here, since he felt people might find interesting how I don’t use any libraries for it.

The game can be played on a browser by virtue of WebAssembly. There are native ports using either MiniFB or SDL2, but you have to build those yourself.

I decided to write the game in C because I feel like it is a simple language that a lot of people can understand well enough, and I didn’t think I needed anything more involved or complicated.

Over time, the game’s code became complicated, and I decided to use advanced features such as coroutines and higher order procedures, besides general overly engineered abstractions.

But then, over time I grew to feel like a lot of those abstractions didn’t really add anything to it, and just made it more complicated (and oftentimes more buggy) than it really needed to be, so a few weeks ago, I made a significant refactoring to it to remove all of those abstractions without removing almost any features from the game.

Milestones are released effectively whenever I get the game’s code to a decently presentable state. Sometimes, this means there are a lot of changes and big refactorings, but sometimes it means there are only a few small changes.

The game uses a simple 2D model system to generate images for the character’s animations dynamically during initialisation. (The source code can be browsed using a web browser on its page.)

The character can be controlled using the arrow keys or “WASD” (“A” and “D”) (double-tap a direction to jump).
Why downvotes? Are you not curious how these things work, so that we can as citizens work to stop it?

Security by obscurity?
Are they really gone though? Aren’t IEM still available for every budget?
> once you want to go venture outside the safety of the walled garden you can't. The language is specifically designed to keep you as safe as possible.

> Bad for the motivated engineer.

Sounds to me like it's really just bad for the engineer who wants to show off how smart they are through the overcomplicated custom abstractions they build.

Condescending response to condescending comment aside, I understand that those custom abstractions can occasionally be great and have their place, but in practice their value usually starts reversing (yes, reversing, not diminishing) once you need to onboard many engineers frequently (junior or senior alike), which is the case for a big part of tech projects (think big tech, high growth startups, but also open source projects where you want first-time contributors to be able to dive in and solve their issue quickly).

And I'm saying this as a motivated engineer who loves playing with various languages but uses Go for most serious things.
Except for the fact that usually there is not just one single typescript agent working within itself, for which you don't need validation.
There are many cases in which you need to verify some object, anything that does not come from your code i would argue is untrusted, I come across this almost daily, it would be absolutely fantastic to just have a way to check does this object conform to this type? Instead, i need to use some external dependency, effectively duplicate my type definitions and add yet another place to introduce bugs.
Musk sues law firm Wachtell Lipton over $90M Twitter legal fee
Netflix invents new green-screen filming method using magenta light
http://web.archive.org/web/20230706033920/https://www.lrb.co...

https://archive.ph/F5NI6
exactly. There are ideas in the OP article that can be taken and systematized into the high school system with the operational know-how of the parent commenter. The downstream effects of that would be incredible. We should be aiming for intervention as early as possible in the education system.
Reminds me of this quote from Steve Jobs' famous commencement speech:

Remembering that you are going to die is the best way I know to avoid the trap of thinking you have something to lose. You are already naked. There is no reason not to follow your heart.
The Apollo space program cost $200B (in today's dollars)
The Lowest Score in Tetris's Biggest Tournament [video]
Another case where web annotations would be useful.

Recently: iAnnotate – Whatever happened to the web as an annotation system? (2013)
https://news.ycombinator.com/item?id=36559758
Maybe that's the definition of hubris. But the tone of the above comment was too abrasive.

> genuinely awed by the hubris it requires to just plow ahead

that tone sounded more like hubris plus other expletives.
DCSS is more combat oriented, Nethack/Slashem about thinking out of the box and doing crazy stuff to survive in critical places/situations.
One very similarly finance-oriented comparison that I like to make is that every line code is a liability, in the financial sense of that word[1]: that's what's on the right side of your balance sheet, which enables your assets: that is your product.

Like there are many ways to finance your business, there are many ways to make the same product, from coding it from scratch yourself (which ranges from “from quick and dirty” to “using formal methods”) to customizing a open-source foundation, or even a third party's white-label product. Which one is better completely depends on the situation (like with equity vs debt).

[1]:in finance, “liability” isn't “bad”, debt is a liability, but so is equity, and even profit is a liability!
I'm really curious about why you would want to use FastAPI over Django Rest Framework. Are there signficant advantages to FastAPI?
arXiv: https://arxiv.org/abs/2306.13702
Yeah, it IS useful. You don't want to be too obvious about it, though.

It's like hand gestures when speaking. Yeah, they're important, but you don't want to look like a robot, either.
I'm sure 99% of the population does not use email personally anymore, except for delivery of their Amazon invoices.
Not to be flip, but if it were really all this easy, we would have done it already.

There are dozens of questions you can throw at this code: What if the input's a union? What if it's a nested union -- how do you avoid combinatorial explosion? What if the input is a function -- how do you validate its parameter types using runtime information? What if the input is a conditional type? What if you're inside a generic function? The list is enormous and it quickly gets into "you've dug too deep and unleashed a Balrog" territory once you get beyond the primitives.
Depends on what you’re going for. If I was serious about sales, I’d publish through something like Lulu or Ingramspark. I really wanted a way to publish a few copies of something personal to me, and for that I’d actually recommend Amazon. It was super high quality and super cheap — especially if you wanted to get author copies.

Soooo….your mileage may vary!
I use a lot of Visionect products for quite a few years now. I have deployed easily hundreds to many many office environments as both digital signage and meeting room occupancy displays. They are a fantastic company. They have b2b direct brand called Joan, check out getjoan.com.

I'm curious what URL serves the current front page of a given newspaper though that you can point these at.
vow :)
thumbs up!
Beyond bullshit convenience services (that invariably lead to labor exploitation issues) name one (1) unambiguous win to come out of the SV tech ecosystem in the last 20 years.