Granted, maybe there's value in this just being a wrapper, and it's best to just deduplicate the work. However, it just sits a little wrong to me that it's not type checking Python, it's doing a transpilation step of sorts and type checking that.
78 karma · joined August 20, 2023
Professional Email: andenacitelli@gmail.com
Granted, maybe there's value in this just being a wrapper, and it's best to just deduplicate the work. However, it just sits a little wrong to me that it's not type checking Python, it's doing a transpilation step of sorts and type checking that.
One consideration there would probably be how many committal decisions mypy has made. One of the main reasons a new tool might be better than an old one is that it can be built fresh, with all the lessons learned but (essentially) none of the baggage of bad design decisions.
Another thing I've also weighed is that developing any kind of static analysis tool whose source code is not in the language it analyzes (such as Ruff) immediately blocks you off from a large portion of maintainers. Your maintainers cannot be your end users unless they work with both Python and Rust. While Python is definitely one or more magnitudes slower than Rust, I can't imagine that mypy is at the point where the language choice itself is the only bottleneck.
My research agrees with your assessment. While I'm sure it's a lot faster (I think the README implies it's one or two magnitudes faster) it just doesn't sit right to me that it's essentially just transpiles to Erg and delegates the actual hard work to the Erg typechecker. This works, but I feel like it fundamentally limits what Pylyzer is capable of, and how much control it really has over the underlying type checking process, as to it, the Erg type checker is essentially a black box.
It's a wrapper (a non-trivial one, to its credit -- especially considering everything is a wrapper if you look at it the right way -- but still a wrapper) rather than an actual full solution.
There's also really only one maintainer (who seems to do a decent job, but I don't seem to recall much more than just bug fixes). Makes me hesitant to really depend on it sticking around long-term or having features that meaningfully progress in the future.
I haven’t looked at the prompts we run in prod at $DAYJOB for a while but I think we have at least five or ten things that are REALLY weird out of context.
I work in B2B and we frankly put way more effort in than we should have to optimize bundle size before just making the assumption that everyone has a good connection and we didn’t really need to worry about it.
My theory is that because Rust is a low level language you tend to miss out on higher level primitives that promote more code reuse. Another theory is that Rust is mature but not quite as mature as something like Java, so there are fewer mature dependencies for you to delegate your work to.
Thoughts on what’s accurate? For context, I’ve written a bit of Rust myself, but am definitely a beginner.
I lucked into SWE being a hyperfocus of sorts, so luckily work isn’t awful if I’m not on meds, but holy cow is anything else just complete drudgery. Feels like everything is behind a wall of “startup energy” that is so hard to get through, especially without external accountability.
Rejection sensitivity is also part of it for me. I felt like I could never think fast or organized enough in the moment when talking (I would lose my train of thought in the middle of sentences), so I would get anxious coming in and try and plan, but there’s only so much you can plan for, and it just is a bad cycle to get in. Therapy and internalizing things don’t actually have that high stakes is helpful but only mostly a fix.
Most jobs would not afford me this, but I lucked into a great role that plays into it rather than fights it.
We overlap “peak” and “non-peak” schedules. The peak one runs during work hours every minute. The “non-peak” ones run 24/7 (no easy way to exclude the time periods that peak runs, otherwise we’d exclude this) but more infrequently, every five minutes.
We use Datadog, but try and be fairly barebones about it because it’s really expensive at scale and we only rarely actually catch issues with them because our CI process has gotten much better. We also used Checkly in the past and had no real complaints, just switched to Datadog to keep everything in one place.
Most services offer both:
- “API” where they can just send a basic GET request and assert the response is 2xx (we use these for our main api endpoint)
- “Browser” tests, which is more like Playwright in that it’s an actual browser (albeit usually headless) - we run these against our main homepage and assert some important pieces of text are present (in other words, checking we didn’t push a broken bundle or something).
Browser tests usually cost more by about a magnitude because they cost drastically more compute (still not THAT much, but it’s expensive at scale).
The things you can do with dynamic content (database) really make it more than a wiki. People can, and do, plan their whole life in it. Project management, SEO-indexable pages, lots of surprisingly cool stuff. I used to use it quite frequently, though my ADHD causes me gravitate a bit more heavily towards organizational mechanisms like it to cope.
Using it to make impromptu priority lists that will do a lot of the reorganization for me as I slot new content in is really nice. It’s a bit of overhead but it’s often worth it for anything nontrivial. I keep a backlog in it and use it for scratch work and rough design docs (final copy goes in our actual deployed-from-markdown docs).
This would vary by item, but was most commonly some combination of recent minimum buyouts (usually over the last two weeks) historically value (several months), and much more. Common items would usually be mostly recent value driven, whereas lower-supply items might have a larger component of historical weighed in, as there might be quite a bit of fluctuation day to day and you care much more just about the general trend.
All sorts of nuance to it. You can do more complex stuff like only doing your price estimations off items that actually sold, set values based on a percentage of any other value, and much, much more. It gets really complex but is really cool at scale.
I think it’s a somewhat new product so it may not be too widespread yet, but it seems to work pretty well from my admittedly uninformed perspective.