French first, English below 👇
🇪🇺 Staan, la première API de recherche européenne est désormais disponible en libre-service 🇪🇺
Staan est l'API de recherche 100% européenne co-construite avec @ecosia à travers la joint-venture européenne European Search Perspective. Staan connecte les applications d'IA au web en les alimentant avec des millions de documents et de contenus web dans un cadre juridique respectueux des données et des utilisateurs.
À partir d'aujourd'hui, Staan permet à n'importe quel développeur d'obtenir sa clé API et de commencer à alimenter ses assistants, copilotes et agents IA en quelques minutes.
Pendant que les solutions américaines restreignent leurs API de recherche et leurs modèles de LLM, une seconde voie européenne et souveraine s'organise. ✊
Switch to Europe. Now.
⸻
🇪🇺 Staan, the first European search API, is now available as a self-service 🇪🇺
Staan is the 100% European search API co-built with Ecosia through the European joint venture European Search Perspective. Staan connects AI applications to the web by feeding them with millions of web documents and content within a legal framework that respects data and users.
Starting today, Staan allows any developer to get their API key and start powering their assistants, copilots and AI agents in minutes.
While American solutions are restricting their search APIs and LLM models, a second European and sovereign path is taking shape. ✊
Switch to Europe. Now.
oh my god its happening
@MistralAI has officially confirmed the upcoming release of Le Chaton Fat
- 30T MoE with 256 experts
- 1M context window
- multimodal and multilingual
- outperforms Fable 5 on every benchmark
The first example of pagination developers see is usually OFFSET because it is simple to understand and implement. But OFFSET is a trap. OFFSET gets slower the deeper you paginate. Rarely do end users paginate all the way through 100 pages, but every bot hitting your page will follow all the pagination links. A poor query pattern served to bots ... wasted time and money.
Use a keyset cursor pagination instead. Keyset cursor pagination is similar effort for implementation in the database, but takes more time to get correct with the front end, and prevents jumping to pages without knowing the prior value. The good news is that it is much faster and more efficient for the database.
The URL for offset pagination will look like this: `/events?page=10001`
The URL for keyset cursor pagination will look like this: `/events?cursor=1781195018.9577&cursor_id=12345`
A keyset cursor is a WHERE clause that tells the database where to start. It is a pointer to a specific row in the index. The query starts at that position and returns the next N rows. The cursor is just the value of the last row from the previous page, and the cursor_id is the id value of the last row from the previous page. The where clause is something like `WHERE published_at < :cursor AND id < :cursor_id` (for descending order) or `WHERE published_at > :cursor AND id > :cursor_id` (for ascending order). You'll need a composite index on `(published_at, id)` to get benefit of this pattern.
Below are two queries that return the same 10 rows from a 1,000,000-row events table. The OFFSET query walks through 100,000 rows to find the starting position, while the keyset cursor query jumps directly to the starting position and returns 10 rows. The keyset cursor is 1,800x faster for page 10,001.
OFFSET
```sql
SELECT id, event_type, published_at
FROM events
ORDER BY published_at DESC
LIMIT 10 OFFSET 100000;
```
Execution Time: 31.187 ms. If you look at the explain in the posted image, you'll see the index walked 100,000 entries to discard them, then returned 10.
Keyset cursor
```sql
-- :cursor = published_at of the last row returned on the previous page
SELECT id, event_type, published_at
FROM events
WHERE published_at < to_timestamp(:cursor)
AND id < :cursor_id
ORDER BY published_at DESC
LIMIT 10;
```
Execution Time: 0.017 ms. The index started at the cursor position and stopped after 10 rows.
```
Limit (cost=0.42..1.08 rows=10 width=23) (actual time=0.006..0.009 rows=10 loops=1)
Buffers: shared hit=13
-> Index Scan using events_published_at_id_idx on events (cost=0.42..58985.95 rows=899062 width=23) (actual time=0.006..0.008 rows=10 loops=1)
Index Cond: (ROW(published_at, id) < ROW('2026-05-06 06:36:13.859709+00'::timestamp with time zone, 801415))
Buffers: shared hit=13
```
`rows=10`. The index started at the cursor position and stopped after 10 rows.
The Difference
OFFSET has no way to skip, so the index must scan N entries to find the starting position. `WHERE published_at < :cursor AND id < :cursor_id` tells the index exactly where to start. It reads only what it returns.
The cursor is just the `published_at` value of the last row from the previous page. Store it in the response, pass it back on the next request:
OFFSET works when the table is small, but for anything user facing, keyset pagination is the way to go. It is faster, more efficient, and scales to any page depth with logrithmic cost.
May was awesome for the VictoriaMetrics #Observability Stack 🚀
We’ve introduced a range of updates and new features across VictoriaMetrics.
📊 Native #Prometheus histograms support: native histogram ingestion is now supported across vmagent, vmsingle, and cluster.
🛡️ More reliable vmagent shutdown: draining in-memory queues before fallback, reducing alerting gaps.
🔄 Smarter rerouting: improved vminsert handling to avoid rerouting storms and stabilize ingestion.
🔍 Better #VMUI debugging + query visibility: raw query now shows NaN, stale markers, and nulls, with precise graph tooltips and improved Top Queries UX.
🚀 First Operator #LTS release: a long-term support version that provides stability and predictability for production environments.
Learn more in our latest article 👇
https://t.co/OAsRVtcugh
#Monitoring
Many application frameworks hold open conections to your database, even when they're not actively doing work. In these cases pg_bouncer (our recommended connection pooler) can help reduce those idle, but open connections. You can monitor to see how this looks with:
SELECT usename, state, count(1) cnt
FROM pg_stat_activity
WHERE usename is not null
GROUP BY usename, state
ORDER BY usename, state;
If you see a high number of idle connections this is a place where pg_bouncer may be able to help.
A French engineer who lives quietly in Paris has spent 30 years writing software that the entire internet now runs on without knowing his name.
He wrote the code that streams every YouTube video, every Netflix show, every TikTok clip. He wrote the code that runs the virtual servers underneath AWS, Google Cloud, and Microsoft Azure. He calculated more digits of pi than anyone in history. He has no Twitter. He has no marketing. He just keeps shipping.
His name is Fabrice Bellard.
Here is the story, because almost nobody outside the systems programming world knows what one man has built.
Fabrice was born in 1972 in Grenoble, France. He studied at École Polytechnique, the top French engineering school. He never went to Silicon Valley. He never built a startup empire. He just wrote code.
In 2000 he started a project called FFmpeg, an open-source multimedia framework for encoding, decoding, and streaming video. He was 28. The project did one thing nobody else had done well. It handled every video and audio format that existed, in one library, on every operating system. He led it himself for years.
Today FFmpeg is the invisible engine of the internet. YouTube uses it. Netflix uses it. VLC uses it. Chrome and Firefox use parts of it. Every Android phone, every iPhone, every smart TV, every video editing tool you have ever touched runs FFmpeg somewhere underneath. If you have watched a video on a screen in the last 20 years, Fabrice's code processed it.
He was not done.
In 2003 he started QEMU, a machine emulator and virtualizer. He wrote it solo until version 0.7.1 in 2005. QEMU lets you run any operating system on any other operating system. It became the foundation of modern virtualization. KVM, the Linux kernel hypervisor, runs on top of QEMU. Every major cloud provider, AWS, Google Cloud, Microsoft Azure, IBM Cloud, runs virtual machines on infrastructure built around it. The Quick Emulator is the most cited piece of cloud infrastructure code on Earth.
He kept going.
In 2001 he won the International Obfuscated C Code Contest with a small C compiler that grew into TCC, the Tiny C Compiler. TCC can compile and boot a Linux kernel from source in under 15 seconds. In 2004 he calculated the most digits of pi ever computed at the time, using a personal desktop computer and an algorithm he derived himself called Bellard's formula. In 2011 he wrote a complete PC emulator in pure JavaScript that runs Linux in your browser, a project called JSLinux that engineers still cannot believe is real.
In 2019 he released QuickJS, a small but complete JavaScript engine that fits where V8 cannot. In 2021 he released NNCP, a neural network based lossless data compressor that immediately took the lead on the Large Text Compression Benchmark.
Then he turned his attention to large language models. He built TextSynth Server, a web server with a REST API for running LLMs locally. He released ts_zip and ts_sms, compression utilities that use language models to compress text and short messages at ratios traditional algorithms cannot reach. He released TSAC, a very low bitrate audio compression system. In December 2025 he released Micro QuickJS, a new JavaScript engine for microcontrollers, separate from QuickJS, designed for environments with almost no memory.
Fabrice co-founded a telecom company called Amarisoft in 2012, where he serves as CTO. Amarisoft builds 4G and 5G base station software used by carriers and labs around the world. He has been running it for over a decade while continuing to ship personal projects from his own home page at bellard dot org
He has no Twitter. He has no Instagram. He gives almost no interviews. His personal website is a flat list of projects with no styling, no fonts, no marketing copy. Just titles and links.
A quiet French engineer who never moved to Silicon Valley wrote the code that quietly runs the internet.
He is still shipping.
When the President of France visited the United States in April 1960, he asked the FBI to help him find a man.
The man he was looking for was an American citizen. He was sixty-four years old. He had been awarded fifteen French military decorations and — six months earlier, in a ceremony in Paris — had been made a Knight of the Légion d'honneur, the highest civilian honor France can give. The medal had been pinned to his chest by the President himself, who had publicly called him un véritable héros français. A true French hero.
The FBI located the man within a few days.
He was operating an elevator at Rockefeller Center in New York City.
The elevator operator's name was Eugene Bullard. He had been born in Columbus, Georgia, in 1895, the son of a man whose own father had been a slave.
He had run away from Columbus at the age of eleven, after watching a white mob nearly lynch his father.
He spent the next several years drifting through the American South. At sixteen, he stowed away on a German freighter at Norfolk, Virginia. He landed in Aberdeen, Scotland. From there he made his way to London, where he learned to box. By 1913, at eighteen, he was prizefighting in Paris.
When Germany invaded France in August 1914, Bullard was nineteen years old. He had no legal obligation to fight. He had no French citizenship.
He went to the recruiting office on October 19, 1914, and signed up for the French Foreign Legion.
He spent the next eighteen months as an infantryman in some of the worst fighting of the war — at the Somme, at Champagne, at Verdun. He was wounded three times. The third wound, on March 5, 1916, tore open his thigh and left him with permanent damage to his leg.
He was twenty years old. The doctors told him he would not return to the infantry.
He decided he wanted to fly.
In a Paris café in the spring of 1916, while he was recovering, Bullard mentioned to three white American friends that he was thinking of joining the French air service. A Mississippian named Jeff Dickson laughed.
Gene, Dickson said, you know damn well there aren't any Negroes in aviation.
Bullard answered: Sure do. That's why I want to get into it. There has to be a first to everything, and I'm going to be the first.
Dickson bet him two thousand dollars he would not make it.
Bullard took the bet. He earned his pilot's license on May 5, 1917. He won the bet.
He reported to the front in August 1917 and flew approximately twenty combat missions over the next three months in a SPAD VII. The fuselage was painted with a bleeding heart pierced by a knife and the French phrase Tout le Sang qui Coule est Rouge — All Blood that Flows is Red.
He carried, on every combat flight, a small capuchin monkey named Jimmy in the front of his flight jacket.
The French press began calling him L'Hirondelle Noire — the Black Swallow.
When the United States entered the war in 1917, Bullard immediately applied to transfer to the U.S. Army Air Service.
His application was rejected.
The U.S. Army Air Service had a policy, in 1917, of not accepting Black pilots. The other American pilots flying for France in his unit, all of them white, were transferred to the U.S. Air Service.
He was the only one who was not.
For the next twenty years, he was one of the most familiar faces in the Montmartre nightlife of Paris between the wars. He owned a nightclub called L'Escadrille. He spoke fluent French, English, and German. Hemingway drank there. Fitzgerald drank there. Langston Hughes drank there. Josephine Baker performed there. Louis Armstrong was a personal friend.
When Germany invaded Poland in 1939, Bullard was forty-four. His fluent German and his ownership of a nightclub frequented by German officers made him useful to the French Resistance. He became an intelligence agent — eavesdropping in his own bar on conversations between German officers who did not know he understood every word.
When France fell in June 1940, friends in the Resistance smuggled him across the Spanish border before the Gestapo could arrest him.
He came back to the United States for the first time in twenty-eight years.
He arrived in New York with thirty dollars in his pocket and a permanent limp.
He did not return to a hero's welcome. He returned to a country that had no idea who he was.
He worked at a perfume counter. He worked as a security guard. He worked at the Staten Island shipyards. By the late 1940s, he had taken the job that he would hold for most of the rest of his life.
He operated the elevator at Rockefeller Center.
He was wearing the elevator uniform on the day a producer from NBC came down from the studios upstairs to ask if he was the man Charles de Gaulle had been looking for.
A few weeks later, NBC sent a film crew to interview him in the lobby. The studios where NBC produced The Today Show were on the floors above. He had operated the elevator that took the network executives up to those studios every morning for nearly ten years. He had not been recognized as he did it.
He went back to operating the elevator the following Monday.
He died of stomach cancer on October 12, 1961, three days after his sixty-sixth birthday.
He was buried in the French War Veterans' section of Flushing Cemetery, in Queens, in the uniform of the French Foreign Legion. The casket was draped with the French flag.
In 1994 — thirty-three years after his death — the United States Air Force formally commissioned Eugene Jacques Bullard as a Second Lieutenant, posthumously.
It was the first commission the U.S. military had ever offered him.
He had been the first Black combat pilot in American history.
The French had been calling him a hero since 1917.
The Americans got around to it in 1994.
If you know #Cypher, you already know most of GQL. What #GQL adds is standardization, portability, and thoughtful enhancements that make complex queries easier to write and maintain.🚀
🔗 Learn more: https://t.co/K28E6rrb5n
#GraphDatabase#NebulaGraph#QueryLanguages#AI
Victoire ! Merci @cnll_fr de ce combat.
Il fera jurisprudence et va dans le bon sens.
Technologiquement l'écosystème du libre francais et/ou européen est mâture et peut remplacer O365 sans souci. https://t.co/8ZZIXuml7j
@javarevisited To keep this JSON as one block, in memory (and CPU caches), and on disk (TOAST splits to chunks on write and joins them on read). To index fields under arrays with regular multi-key indexes (GIN is only for containment equality predicates).
The US Justice Department is seeking the names, addresses, and banking information of Reddit and X users, ratcheting up efforts to identify social media critics of government deportation efforts. https://t.co/7juwC4RkJo
Des centaines de livres interdits et retirés des bibliothèques et des librairies. Parmi eux Platon, Boccace, Virginia Woolf, Dostoïevski, Stephen King, Murakami ou Proust.
Elena Balzamo dresse un tableau de cette nouvelle censure russe.
https://t.co/Sx6ozwTQcI
@J_ & Pierre Lacave of @datadoghq on how they rely on and contribute to key projects in the data ecosystem:
Arrow for data interchange
Substrait for plans
Calcite as an optimizer
DataFusion as an execution core
Parquet for columnar storage