Attummm
There had been a trend where each new model released from OpenAI, Anthropic, etc. felt like a letdown or worse a downgrade.
But the release of 4.5 break that trend, And is a pleasant surprise on day one.
Well done! :)
The article states the opposite.
> Writing fast algorithmic trading system code is hard. Measuring it properly is even harder.
While I agree with your technical points, the constant criticism seems less about the specifics and more rooted in either a tendency to go after the incredibly successful, or classic tall poppy syndrome [0].
While we can't control how others react, reframing these kinds of posts as an indirect acknowledgment of your work's significance might be a healthier approach.
P.S. Appreciate the LinkedIn connection.
> Built for performance we're currently 1000x faster than Neo4j, 100x faster than TigerGraph
Python is really great for quickly developing applications.
However, maintaining them is a real pain point—especially when it comes to packages and their dependencies.
Furthermore, because there isn’t a compile-time checker, function or method signatures can change unnoticed. Compilers are great for catching such issues at compile time rather than at runtime. Python does have mypy, which can play that role, but the package must support it. Currently, you are dependent on the package maintainer regarding their adherence to semver.
Maybe this project will be able to fill that hole.
I found that boilerplate code needed for handling defaults, environment variables, and CLI variables could become unreasonably large and error prone. I just wanted to have a struct hold the settings needed for the project, with sane defaults, helpful messages, and handling of environment and CLI variables at the same time.
So I created Settingo.
Settingo is a unified solution to handle defaults, environment variables, and CLI arguments. Settings are a boring aspect of a project, and Settingo will allow a dev to focus on the project. https://github.com/Attumm/settingo
Seems to answer before fully understanding the requests, and it often gets stuck into loops.
And this update removed the june model which was great, very sad day indeed. I still don't understand why they have to remove a model that is do well received...
Maybe its time to switch again, gemini is making great strides.
Would it be possible to bring back sonnet 2024 June?
That model was the most attentive.
Because we lost that model this release a value loss for me personally.
With that said, would your perception of the interview remain positive if the outcome had been negative?
A common challenge across all interviews is a mismatch in personal dynamics, which can significantly impact the experience for both participants.
Consider a scenario where a senior developer, who prefers simplicity, is paired with a mid-level developer who is still captivated by complexity.
Redis remains my favorite database. I've had the opportunity to work extensively with it, not only professionally but also through open-source projects like redis-dict[0], a Python dictionary with Redis as the backend.
How can we follow your progress on the vector set feature?
The food industry, like any other industry, focuses on numbers. Consumer spending favors new varieties of fruit with sweeter taste (e.g., increased glucose/fructose content). This process has led to our current comical situation where fruit, which is perceived as natural, has become unfit for consumption by animals.
>Fruits have gotten too sweet for some animals and zookeepers have had to find alternative foods.
https://weather.com/news/news/2018-10-03-fruit-so-sweet-zoo-...
Although it's not well known benchmarks for programming languages would show even faster results for Go with GOMAXPROCS set to 1.
This lets single-threaded benchmarks run with less overhead.
A real missed opportunity in communication. Because this isn't the first time we see articles like these pop up.
Which in turn would create the filename redis_py.py
Which would immediately raise the question why not a dot.
redis.py
> There are only two hard things in computer science: cache invalidation and naming things.
The goal of many software engineers is to build software / systems they can be proud of. They love software and the machines it runs on.
Many people here have Arduino projects, 3D printers, home servers, and similar hobbies.
A few weeks ago, I was looking for compression algorithms for a particular use case and came across Brotli[0]. I was surprised to learn it was developed by Google. That realization hit me hard. Google used to be a hub for this kind of innovation. Projects like Brotli aren't built to maximize personal profit; they're driven by passion and a genuine love for software engineering.
It's clear that the industry is shifting from being geeky and nerdy to being more business and management focused.
But since your example made a choice, we are now one level deeper and more concrete than before. The what/goal has in this level become to run a 5K, and the how/method is how you will train to achieve that goal.
"How" and "what" can be very conceptual, especially at a high level, and just like the 5 Whys technique, it could take a few levels to become concrete. Top-down programming is often taught by separating the "how" and the "what." For example:
customer = get_customer(id=id)
The "what" is getting the customer.
The "how" is not revealed, yet its intent is clear. Within the function get_customer we could have another 'what' for example run_query Top-down programming will often first skip the "how" and focus only on the "what" by writing the functions, methods, and classes later on.
https://en.m.wikipedia.org/wiki/Bottom%E2%80%93up_and_top%E2...
Force pushes occur for various reasons. Sensitive data includes customer and employee personal info.
Other cases involve logs, DB backups, cache, PDFs, configs, and binary files.
Maintenance and performance needs form another category.
Team dynamics and varying git expertise can lead to accidental or uninformed force pushes, especially challenging in a monorepo with 50+ contributors.
In summary, reasons range from personal data (GDPR compliance), security requirements for logs/configs, to resolving merge conflicts and performance issues.
Your question regarding the need to communicate between 50 or more devs, there was no need but monorepo idea forces unnecessary communication and team effort when none was needed if there would be more repositories.
You’re correct about keys/certs once uploaded, they should be treated as compromised, especially when the repository isn’t self-hosted. However, replacing API keys and certificates can take time, and within a large corporation, it could take months.
Now, though, it seems the pendulum has swung in the opposite direction, from “everything in its own repo” to “everything in one repo.” This, too, will create its own set of problems, which also can be comedic, but frustrating to experience. For instance, what happens when someone accidentally pushes a certificate or API key and you need to force an update upstream? Coordinating that with 50 developers spread across 8 projects, all in a single repo.
Instead we could also face the problems we currently face and start out wirn a balanced approach. Start with one repository, or split frontend and backend if needed. For data pipelines that share models with the API, keep them in the same repository, creating a single source of truth for the data model. This method has often led to other developers telling me about the supposed benefits of “everything in its own repo.” Just as I pushed back then, I feel the need to push back now against the monorepo trend.
The same can be said for monoliths and microservices, where the middle ground is often overlooked in discussions about best practices.
They all reminded me of the concept of “no silver bullet”[0]. Any decision will face its own unique challenges. But silver bullet solution can create artificial challenges that are wasteful, painful, and most of all unnecessary.
This means that all features are available as they build on top of each other. RedisDict has namespacing by default, allowing users to avoid unintentional collisions in production, which are really difficult to debug. Learned that lesson the hard way.
RedisDict also has more support for different types, relying not just on json encoding/decoding but passing those to json so even nested types such as list, dictionaries there type support.
Let's say you would like to build a cache to store webpages for 60 minutes.
```
cache = RedisDict(expire=timedelta(minutes=60))
cache['gone'] = 'in an hour'
```
And RedisDict only makes use of a single dependency, redis.py.