291 karma · joined September 28, 2022
In the U.K. when handwriting I think dd/mm/yyyy is much more common than dd.mm.yyyy
With US sales taxes you accrue tax all the way up the chain.
Most people I know who ended up at RR live in Nottingham or the Peak District and commute in to Derby. Appreciate that’s perhaps not as exciting as London but it’s hardly a shit hole up here.
Agree on pay though. I work for a different engineering conglomerate (foreign owned) and I applied for a HPC role at RR a couple of years ago and the salary was £20k lower. The disparity would be even more now.
https://taxpolicy.org.uk/2024/03/10/infographic_marginal_rat...
I have in the past used Mathematica, which I did think was more powerful for symbolic math to be honest, but it had the downside of not being free...!
https://rpep.dev/posts/improving-python-performance-numerica...
https://rpep.dev/posts/best-practices-django-views/
Have just been starting this really. Any feedback much appreciated.
Now, bonds are guaranteeing a 5%+ return, so a non-profitable business is much less attractive as a proposition.
For e.g. say you have a User model and a corresponding “Profile” model. If you need to create the profile object when the user is created, it doesn’t really feel appropriate to put that in a UserModelManager directly coupled to the User object. This is the example given from the Hacksoft Django style guide to advocate creating a service layer.
In terms of the abstraction, I totally agree and tend to be pretty pragmatic about this sort of thing.
The only thing beyond that that I'd recommend is specifying a get_serializer_class method since it simplifies your boilerplate and plays well with drf-spectacular for generating your API documentation. I generally don't use ModelSerializer unless the logic is very simple, I've been meaning to write a blog post for a long while about avoiding it when your data model is split across two database tables.
I've also found that it's good practice to impose boundaries between apps so that they are not strongly coupled together but communicate through an interface. That way, if you need to split an app out into its own project at some point, the migration is significantly easier from a code perspective, since the implementation of the interface function is all that needs changing on the consumer side.
Having had to work on software that did runtime dispatch for SIMD - there is a small performance cost to this. For most software it’s just not worth it. Compiling multiple versions is preferable but more confusing for users, and more costly for the developer in CI and build time. There are therefore good reasons not to support multiple microarchitectures and picking one released 12 years ago is a good compromise. I wouldn’t at all advocate picking AVX512 but this is not that - almost all consumer and professional grade hardware sold in the last 10 years supports AVX, and it’s unreasonable to expect vendors to continue supporting an ever shrinking niche…
If I ask it detailed questions about the topic I did my PhD on, it can’t answer correctly. I worked on fluid dynamics for a couple of years in my first role, and there is a well known algorithm called SIMPLE for computing time evolution of steady state problems, and it couldn’t generate code for this even with lots of playing with prompts.
I do web stuff more these days and I couldn’t get it to output a fully working React hook in Typescript that POSTs with Axios; there was always some sort of type error.
In terms of column vs row major order - the underlying implementation will have its own default way of doing it (depends on the implementation) but you can if necessary recast matrix operations in such a way as to avoid actually doing transposes in the interface layer with the other language. so there’s not really a performance penalty as no additional work is done. CuBLAS and MKL’s BLAS implementation even let you pass parameters in about your input data’s memory layout.
What sort of architecture and libraries are you making use of where this is the case?