Hacker News new | past | comments | ask | show | jobs | submit | rtpg's comments login

I don't get why so many people go to bat for pyright, my experience with it has been pretty miserable. Open enough instances of it and you're in OOM city. It works, but often gets confused... and of course the absolute audacity of MSFT to say "let's go over to pyright, and by the way we're going to carve up some stuff and put it into pylance instead", meaning that it's totally not within the actual spirit of open source.

I would like to just not use it, but the existence of pyright as a _barely_ functional alternative really sucks the air out of other attempts' continued existence. Real "extend/extinguish" behavior from MSFT.


I tried all the type checkers available as of ~1 year ago, and Pyright worked the best for me. It's not perfect, but it's better than any of the pure Python checkers. Memory is cheap (unless you're buying it from Apple I guess...). Would I take a faster type checker with better memory footprint? Heck yes, assuming equal or superior functionality.

Memory ain’t that cheap on laptops in general! The bigger issue is less “pyright” and more “every tool out there being as heavy as pyright” + docker etc… but things are getting better IMO

If you haven’t checked it out already, basedpyright is pyright with all the arbitrarily carved out functionality put back in – plus some extra features that you may or may not find useful depending on how strict you like your typing.

Can’t recommend it enough


To be honest I can't respect a project that names itself like that. I am a working professional.

I mean in bigger cities lots of people don't have cars, they might also be in the middle of something and so having someone else get the food makes sense. And a lot of people have "too much money", leading to them being like "yeah I'll pay like 40 bucks for somebody to bring these burgers to me so I can just keep on playing something with a friend".

And you know... if food is cold, you probably have a microwave?

Whether this is a good use of money is debatable but I think it's pretty easy to imagine scenarios in which this would be used.


>if food is cold, you probably have a microwave?

Order $40 of mediocre food and pop it in the microwave when it gets to you, cold. No surprise this is the community that brought us Soylent.

Do these people even like food? Fine if not, but in that case stock up on broccoli, rice and chicken and eat it every day; you'll save money and be healthier.


> Do these people even like food?

They don't.

Basically they _consume_ food like they _consume_ shows on Netflix.

They want tons of choice, they want something constantly new, but they never actually enjoy what they consume. Ask them what they ate last week and they can't tell you. Ask them what they thought about what they just ate, same result.

It would be fine if it wasn't for the tons of trash that creates and the cooks/delivery people that are exploited by this system.


I'm not sure the comparison with Netflix is fair as the latter does have some good shows. But, in the case of food delivery, yes, some subset of people are neither choosy nor especially price-sensitive and they're an ideal target audience.

OTOH when you are in a big city you usually have food available virtually at your doorstep. That is my experience at least.

The best faith thing I can think of here is that these rules are requiring that live events do much more than "just" display the full price. For example in ads they _must_ show the all inclusive price.

An example of a thing that movie theaters can do that live event shows can no longer do is say "a ticket costs $14", while in reality there's a booking fee to cover card payments if you pay online, but you can walk into a movie theater and pay just $14.

I think the FTC is saying that while there might be good faith reasons to have booking fees, the industry clearly is using this stuff in bad faith so the industry no longer has this sort of good faith "out" to simplify messaging on pricing.


Regarding the slowness, I think it's super important when working with slow stuff like Django to have good SLOs in your head.

"Home page should load under 2 seconds at P95", "reports should load under 10 seconds at P99", "this background task should take under 30 seconds at P99".

Having these targets (and, frankly, remembering in the B2B space is that the status quo is _so slow_) can let you set performance objectives without chasing milliseconds that you don't need to.

Django has a lot of intrinsic slowness to it, "easy" DB access patterns often lead to heavy messes, but if at the end of the day most customers are getting served under some benchmark you can reap the advantages of the tooling without sweating perf too much.

And when you set these SLOs, you can then push for even tighter ones as you figure out your problem space!

In the B2B space companies get away with _so much_ sluggish behavior, if you're better than the median that's already improving things.


My previous company had a sizeable Django monolith and did e-commerce stuff which is fairly latency sensitive. Used well, Django was perfectly capable of hitting 150ms per page which was fine for us. Some optimised pages were under 100ms.

Things we did: careful about N+1 queries, caching where obvious, API calls/emails/etc running in background queues.

Things we didn’t do: use a fast templating language (we used Django’s built in one and it was often our bottleneck), removing all database queries (we just had Postgres <2ms latency away), renormalising data (we were highly relational for most things).

Django is perfectly performant enough for almost all use cases, and insanely fast to develop with.


Yeah you can make Django go really fast, especially when you have pages that well scope what data they are pulling from (though you seem to know it better than me).

I think B2B SaaS, for "normal" teams (read: people not that adept at building scalable systems), when not careful, tend to make omnipages where about 20 different things are happening. Even just navigating to a page ends up triggering random side effects (driven by various needs).

There you can easily find yourself in a performance pit that you have to dig yourself out of (often redesigning features in the process to remove some stuff).

I just find that setting fairly easy performance goals can help to make perf seem more tractable.


I mean it feels pretty obvious to me that cell execution order is a pretty real issue for a runbook with a bunch of steps if you're not careful.

I do think that given the fragile nature of shell scripts people tend to write their operation workflows in a pretty idempotent way, though...


agreed - we actually have a dependency system in the works too!

you can define + declare ordering with dependency specification on the edges of the graph (ie A must run before B, but B can run as often as you'd like within 10 mins of A)


There of course should be a way to override the dependency, by explicitly pressing a big scary "[I know what I'm doing]" button.

Another thing is that you'll need branches. As in:

  - Run `foo bar baz`
  - If it succeeds, run `foo quux`,
    Else run `rm -rf ./foo/bar` and rerun the previous command with `--force` option.
  - `ls ./foo/bar/buur` and make certain it exists.
Different branches can be separated visually; one can be collapsed if another is taken.

Writing robust runbooks is not that easy. But I love the idea of mixing the explanatory text and various types of commands together.


I mean, is it worse than having it:

- in excel

- in a confluence document

- in a text file on your desktop

The use case this addresses is 'adhoc activites must be performed without being totally chaotic'.

Obviously a nice one-click/trigger based CI/CD deployment pipeline is lovely, but uh, this is the real world. There are plenty of cases where that's simply either not possible, or not worth the effort to setup.

I think this is great; if I have one suggestion it would just be integrated logging so there's an immutable shared record of what was actually done as well. I would love to be able to see that Bob started the 'recover user profile because db sync error' runbook but didn't finish running it, and exactly when that happened.

If you think it's a terrible idea, then uh, what's your suggestion?

I'm pretty tired of copy-pasting commands from confluence. I think that's, I dunno, unambiguously terrible, and depressingly common.

One time scripts that are executed in a privileged remote container also works, but at the end of that day, those script tend to be specific and have to be invoked with custom arguments, which, guess what, usually turn up as a sequence of operations in a runbook; query db for user id (copy-paste SQL) -> run script with id (copy paste to terminal) -> query db to check it worked (copy paste SQL) -> trigger notification workflow with user id if it did (login to X and click on button Y), etc.


I'm not against this notebook style, I have runbooks in Jupyter notebooks.

I just think it's pretty easy to do things like start a flow back up halfway through the book and not fix some underlying ordering issues.

With scripts that you tend to have to run top to bottom you end up having to be more diligent with making sure the initial steps are still OK because on every test you tend to run everything. Notebook style environments favor running things piecemeal. Also very helpful! It introduces a much smaller problem in the process of solving the larger issue of making it easier to do this kind of work in the first place.


At least on iOS an update requires an explicit unlock, is this not the case on Android?

There could be secret pathways but I don’t know them.


I was going to write something glib about getting things fixed but that thread looks gnarly!

To be honest I know so many people who use Pydantic and so many people who seem to get stuck because of Pydantic 2. I’m glad I have minimal exposure to that lib, personally.

I suppose the biggest issue really is type annotation usage by libs being intractable


I have to imagine at that size they have an ops team already for all the other services so those are pretty amortized.


> I'm very sorry, but such timelines are extremely disheartening and sound like a joke. The problem is, factually, other countries can build out HSRs within 5-10 year horizons, from planning to finishing a route. If it takes 2+ generations to even get a single line... I'm not sure what I can say.

While there are places where the build out itself looks fast, in reality I think most any train line ever build spends decades in "would be a good idea" phase of planning. The Hokkaido Shinkansen idea was on the books since the 70s, and we're still just up to Hakodate!

The Utusnomiya rail line (a local tram line) was in the proposal phase since 2001, and launched in 2023. It's been super successful (profitable!), but was still 20+ years for a single line.

Having said all of that, plenty of ideas gestate for a while, so hooking into an existing idea and getting that actually happening feels like a very good use of energy compared to trying to come up with your own special new idea.


Aliexpress my impression is you can get "useful" stuff that are odd but usable. But I've had the impression that temu and shein was all "direct to garbage" devices, was this not the case?


They sell the same stuff in my experience. I would describe Temu as selling the top 10% of AliExpress that's the most popular, with faster and more reliable shipping since they use huge centralized fulfillment warehouses, similar to Amazon warehouses.


Aliexpress also changed a lot there. I'm not sure if it goes for all vendors, but my last purchases have been very fast. Some even shipped from Europe, but even if from China the wait time of several weeks did not happen anymore.

I assume they made a similar change.


I've only used Temu a few times, but in my limited experience it is just Aliexpress but with a slick gamified interface on top. Alibaba sellers supplies the same stuff to Aliexpress, Temu, a ton of the Instagram ads and even a lot of the cheap Amazon stuff.


They are all different frontends for the same backend - amazon is also a frontend to the same thing but with prices 2-3x'd.


You can't lump shein and temu in the same bucket. My wife is an avid shein user and from what I can tell the quality so far is really good for what you pay.

Shein is in reality just an aliexpress/baba wrapper, but they put huge amounts of effort into accurate sizing charts for their clothing, and their customer reviews system actively incentivises buyers to upload pictures of themselves wearing the purchased clothing. So as a potential buyer you can actually see the piece of clothing being worn by someone with a similar body shape than your own.

My impression of temu is they are trying to be as misleading as possible with their listings, and the value for money is absolutely terrible because of that: you think you are getting a 6' xmas tree for $20, but when it arrives it's 6".


Shein biggest thing is actually AI/ML. As far I remember, what they really invested is on the service per see. Shein gather data from consumers on internet, on what's the latest trends/art, and just create clothes. And they do this like, always.

There's no "Summer" or "Winter" season clothes. They just update them continually.


> Shein biggest thing is actually AI/ML. As far I remember, what they really invested is on the service per see. Shein gather data from consumers on internet, on what's the latest trends/art, and just create clothes.

Few years ago there was a trend in online ads showing t-shirts and hoodies with "realistic" print ons of animals, optical illusions, mazes, etc. Realistic only on photos or rather renderings. Felt like some form of brainrot. It was all Chinese clone shops or outright scams. Luckily the trend is dead now.


So, the same as Temu.


Temu "produces" their own clothes, etc? I was under the impression that it was just a marketplace.


They all are. That doesn't mean they don't tell their vendors what to produce at what price. That's the business model of Chinese fast fashion after all.


Consider applying for YC's Summer 2025 batch! Applications are open till May 13

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: