> I feel a lot of anxiety when I'm forced to touch fragile bits written in Ruby, Python, and JS.
I resonate with you even with TypeScript, since it's just annotating types but not the true value under the variable. You would have to go to a greater extent to make sure that everything from outside (library code, parsing HTTP responses, database queries, etc.) conforms to your annotated types. Even in the same project code created by other people, I often doubt the validity of the types, asking myself questions like: Should I validate this? What if this has already been validated, thus making mine a performance waste? Does this object contain extra sensitive information that could be leaked when used in a logger?
After having experience with Rust, working with TS feels like navigating a minefield where every refactor could detonate hidden bugs or behavior collectively accumulated by all the historic code and dependencies, small or large.
I haven't had this experience with TypeScript. In the projects I've worked with, we turn on strict mode and heavily discourage using `any`. I generally feel pretty confident that the type annotations match the runtime values.
Exactly. If your project already uses npm and Node, why not just use npm scripts for trivial tasks like this? Adding an extra dependency (Make) to build a project doesn't make sense.
Even if your project needs a more sophisticated build system that requires caching builds and managing conditional dependencies, turborepo and the like offer even better support for javascript codebases out of the box. Turborepo can be a workspace dependency so technically you don't even have to manually and separately install a build system to build your project.
> Postgres isn't hard to use, but it requires maintenance. You need more scripts, more tooling, more knowledge of DBA, and that may not be necessary.
I don't think Postgres needs to be maintained at all for small databases, which is usually the use case for SQLite. Their default configurations would take care of most things for trivial applications.
> Starting an application with a temporary in-memory database is a lot faster than starting a full container.
Starting a container might be way slower than SQLite, but I would still consider it fast for most, if not all use cases.
> hooking up a Postgres account
You can configure Postgres to start up in trust mode, which doesn't require a password for any user. This is basically the same as the unencrypted SQLite database file but with a fixed connection string: `postgresql://postgres@localhost`
Because they would then have to camera track the whole clip to place the bins, and also make sure the bins stay in the correct positions when they reappear and disappear out of frame. In contrast, they only need to camera track the few frames when he does the kick. The quick movement of the ball also makes it harder to spot CGI errors IMO. Whereas if you have to fake the bins, you also have to deal with camera zoom, exposure changes, etc. that happen throughout the clip.
> The quick movement of the ball also makes it harder to spot CGI errors IMO. Whereas if you have to fake the bins, you also have to deal with camera zoom, exposure changes, etc. that happen throughout the clip.
Way back in the day, Michael Crichton's Rising Sun, it talks about primitive video editing (when some people are editing the video scene of a crime). Looking at security camera footage over a period of time is monotonous, but harder too is also editing the audio. You could stare at the screen and still easily overlook a glitch, but a hard cut/slice in the audio will catch your notice even when only minimal attention is being paid.
Can someone specialized in applied machine learning explain how this is useful? In my opinion, general-purpose models are only useful if they're large, as they are more capable and produce more accurate outputs for certain tasks. For on-device models, fine-tuned ones for specific tasks have greater precision with the same size.
I think you may be extrapolating a ChatGPT-esque UX for what these on-device models will be used for. Think more along the lines of fuzzy regex, advanced autocomplete, generative UI, etc. Unlikely anybody will be having a long-form conversation with Gemini Nano.
This is the exact same problem I encountered back when I was taking the Parallel Computing course, except I was an absolute novice and had no idea about debugging or profiling. I remember it took me several days speculating and searching for an answer to this issue on Google, and I finally found an explanation on Stack Overflow, which also suggested using rand_r. It was one of the first instances where I was introduced to solving and debugging a difficult computer programming problem, and it still sticks with me to this day.
I'm not very experienced, but by skimming the headings I can see that it covers almost all of Rust's core features. I'd say you're between a beginner and an intermediate Rust user if you complete the exercises and can be comfortable dealing with lifetimes.