Why I don't use Scrum to manage my Remote Teams?
TL;DR: It adds 8 hours of meetings per Sprint. That's 2 full days of lost productivity, per team member, per month!
This is what I do instead:
🚨 BREAKING: GPT-4 image recognition already has a new competitor.
Open-sourced and completely free to use.
Introducing LLaVA: Large Language and Vision Assistant.
I compared the viral parking space photo on GPT-4 Vision to LLaVa, and it worked flawlessly (see video).
The Outbox pattern is a game changer. 📦
Here's everything you need to know.
The Outbox pattern is a technique for reliable messaging in a microservices system.
Here's the gist of the Outbox pattern:
- You don't publish events to a queue
- Instead, you store them in the database
- A worker service polls the database for new messages
- The worker service publishes each message asynchronously
Why would you want to do this?
One thing is for sure with microservices - things will break.
A downstream service could be down.
The network isn't available.
If your operations are coupled at runtime, then the whole operation fails.
This also means your operation isn't atomic (transactional).
The Outbox pattern helps you decouple your operation from its side effects.
You know your transaction is atomic if you work with an SQL database.
You can persist the messages to the Outbox table in a single transaction.
And then, a background worker will process the messages later.
Unfortunately, this comes at the cost of eventual consistency.
Processing a message can fail, so you will need to retry it.
On the consumer end, you still need to handle duplicates in case of retries.
This messaging semantic is called "at-least-once" delivery.
A few more benefits are improved reliability and performance.
P.S. If you liked this, consider joining The .NET Weekly - my newsletter with 28,000+ engineers that teaches you how to improve at .NET and software architecture.
Subscribe here → https://t.co/dCEi48iXpl
Did you use the Outbox pattern before?
This is a very interesting approach to improve the robustness of retrieval augmented generation on PDFs.
Representing structured documents such as PDFs in plain text for doing RAG is not optimal. This messes up the information present in document structure such as tables, page info, etc. and results in poor answers for which knowledge about doc structure is required.
PDFTriage uses OpenAI function calling over input query to extract required meta-data information to answer the query and trigger action based on extracted entities.
It achieves this in 3 step method:
1️⃣ Generate doc metadata
2️⃣ LLM-based triage
3️⃣ Answer using the retrieved document
https://t.co/hJNb4HNnBx
⚡️Run LLMs locally with CTranslate2
We've added support for running local models with the blazingly fast CTranslate2.
Thanks to GH eryk-dsai from @deepsense_ai for the feature and @HamelHusain for the great post that introduced us to the library!
Docs: https://t.co/VzgJDgtRaQ
Prediction: more and more high-priced SaaS will be replaced by open-source alts, and their complexity will increase
Already:
◆ Calendly → Cal․com
◆ Doppler → Infisical
◆ Docusign → Documenso
◆ DocSend → Papermark
With each repo, the community learns faster than FAANGs
Improve your VS Code Explorer file tree structure.
Add these settings in your configuration file for better visibility:
```
"workbench.tree.indent": 15,
"workbench.tree.renderIndentGuides": "always",
"workbench.colorCustomizations": {
"tree.indentGuidesStroke": "#05ef3c"
}
```
The proposal to add observables to the platform is progressing.
Next week I'm traveling to Spain (on my own dime) to support this effort and answer questions at W3C TPAC.
Getting this fundamental building block into the platform will be a big deal. If you read the explainer (linked in the linked issue), you'll see that a large number of very popular libraries and frameworks have organically hand-rolled their own observables.
Shipping an observable with a basic set of methods to the browser will be good for people that love RxJS. But it will also be good for people that *hate* RxJS. Why? Because a minimal set of methods mean fewer people will reach for esoteric RxJS operators when they don't need them.
IMO, in an ideal world, the observables built into the platform will replace the need for RxJS in 90% of cases where it's used. It'll also mean that libraries and frameworks don't have to roll their own, and instead use an observable that ships with the platform.
https://t.co/w98MnXRikv
FWIW: EventTarget (which is on the browser and node) does NOT suffer from this issue.
You can't try/catch the `dispatch`, and all handlers are still executed, with the error being thrown in its own call stack.
You can handle it with `process.on('error')` or `window.onerror` if you'd like to do something with it. But realistically, you should be handling such errors in the handler itself.
Gateway API represents the future of load balancing, routing, and service mesh APIs in Kubernetes,
Kuma 2.3+, Linkerd 2.14+, and Istio 1.16+ are all fully-conformant implementations of Gateway API
Gateway API v0.8.0: ServiceMesh support
More details: https://t.co/aS5dd24RME
This is shocking.
Falcon 180B has been released. Trained on 4x the compute of LLaMA 2 70B.
It sits between GPT-3.5 and GPT-4 in terms of capabilities.
We're now less than two months away from GPT-4-level open-source models.
https://t.co/GJmH2fprny
Ever wondered how LLMs generate text❓🤔
Let's take the magic out of it and break things down to first principles!
Today, I will explain the concept of conditional probability and its connection to LLMs.
Let's go! 🚀