Source: the tool I tortured — astral-sh/ruff
3 views
@thsottiaux Yes
ruff#29852
20 likes · 17,440 views
Ruff vs Black: is the Black Python formatter finished?
Is Black, the Python formatter, finished now that Ruff exists?
Ruff's formatter matches Black on over 99.9% of lines in big Black-formatted projects and ships far more often, but Black still releases. Chad and Neil check both repos and Ruff's formatter docs.
Sources:
- GitHub API: astral-sh/ruff and psf/black repositories, releases and commits (queried Oct 19, 2026) — astral-sh/ruff
- Ruff README: README.md (main, Oct 2026) — github.com/astral-sh/ruff/blob/main/README.md
- Black README: README.md (main, Oct 2026) — github.com/psf/black/blob/main/README.md
- Ruff docs: The Ruff Formatter — docs.astral.sh
Chad and Neil are animated characters. Voices are synthetic (text-to-speech).
Neil's voice: generated with Kyutai TTS 1.6B by Kyutai (CC BY 4.0, creativecommons.org), using speaker p345 from the CSTR VCTK Corpus v0.92 by Junichi Yamagishi, Christophe Veaux and Kirsten MacDonald, The Centre for Speech Technology Research, University of Edinburgh (CC BY 4.0, doi.org). The generated audio was edited (levelled, equalised and mixed).
Chad's voice: Kokoro-82M by hexgrad (Apache-2.0).
Sound effects: original.
Music: "Washed Up" by HoliznaCC0 (Free Music Archive), CC0 1.0 (public domain).
#shorts #python #ruff
ep:C04
34 views
DetachHead (maintainer of basedpyright) has criticized the TSP before:
- docs.basedpyright.com
- pylance-release#7180
Ty (the type checker maintained by astral) however will apparently support the TSP: ruff#23432
@charliermarsh Got one! Filing 3 more now.
ruff#29728
2 likes · 238 views
Python 代码格式总不统一?🧹
Ruff 把代码检查和格式化放在一个工具里,还能集成编辑器。
交作业前、提交 PR 前都能跑。🐍
astral-sh/ruff
#Python #浇朋友 #蓝朋友 #互关 #fo
3 likes · 79 views
Release notes oficiales de Ruff 0.17.0 (9 oct 2026):
github.com/astral-sh/ruff/releases/tag/0.17.0
Mi opinión: quitar DTZ del default tiene sentido para scripts, pero en un backend un now() de datetime sin zona horaria es un bug esperando turno. Actívalas a mano y fija target-version.
1 like · 5 views
Why AI Infrastructure Is Moving to Rust ?
GitHub just rewrote its Copilot agent runtime in Rust - and you are probably running Rust inside your Python AI code already. So is Rust replacing Python in AI? No: Python stays the language you drive AI with, while Rust replaces the C and C++ engine underneath and the servers around it.
In this video: why Python only gives the orders, the memory bug C++ lets through and Rust refuses to compile, four reasons Rust fits AI systems (no garbage collector, real parallel threads, memory layout control, PyO3), real Rust projects in the AI stack, the honest downsides, and who should actually learn Rust.
The C++ and Rust snippets are our own examples; the PyO3 snippet is the official example from the PyO3 README (Apache-2.0 / MIT). Copilot performance figures are GitHub's own measurements, excluding model and network time.
Chapters:
0:00 Intro
0:13 GitHub's Rust rewrite
0:48 Rust you already run
1:20 Who really does the math
1:42 Two different jobs
2:00 The problem with C++
2:42 What Rust does instead
3:07 Why Rust fits AI systems
4:13 Rust inside Python
4:35 Rust around AI
4:59 The catch
5:23 Should you learn Rust?
Stock footage: Video by Atakan Ozkan on Pexels; Video by Nothing Ahead on Pexels.
Sources (checked 2026-10-17):
github.blog
huggingface/tokenizers
safetensors/safetensors
openai/tiktoken
github.com/pydantic/pydantic/tree/main/pydantic-c…
pydantic.dev
pola-rs/polars
astral-sh/uv
astral-sh/ruff
qdrant/qdrant
lancedb/lancedb
huggingface/candle
tracel-ai/burn
PyO3/pyo3
PyO3/maturin
chromium.org
microsoft.com
docs.python.org
doc.rust-lang.org
doc.rust-lang.org
docs.pytorch.org
huggingface.co
docs.lancedb.com
docs.python.org
raw.githubusercontent.com
Independent explainers of AI creative tools. Not affiliated with, endorsed by, or sponsored by any company or tool shown. Prices and features change fast - always check the official sites.
Narration uses an AI-generated voice. Script and facts are written and checked by the creator.
#rust #python #ai #AItools #AIart #AIvideo
2 likes · 1 comment · 970 views
OpenJev on text and images: a tie, then a scoring surprise
On 18 public Ruff issues, a small local model and keyword rules each matched 11 saved labels. On two generated product images, changing how the same model's answers were scored changed every image-only decision. The first result raised a question about the reference labels. The second raised a question about how model responses become category choices.
AI assistance: An AI agent used to perform experiments and help to draft article.
What was tested
This used mjdileep/OpenJev, an independent Jev-style project, rather than an official open release of TypeSafe's Jev. OpenJev turns supplied text or images into category choices. It does not create the images.
The model was Qwen3.5-0.8B, in 4-bit form, running locally through MLX on an Apple M3 Pro with 18 GiB memory and Python 3.12.11. The image tests also used MLX-VLM 0.7.8. No model training was performed. Image generation used a separate built-in image-generation service.
Text: a tie against repository labels
The saved data had 24 Ruff reports: six development examples and 18 evaluation examples, with six per category. Reference categories came from bug, documentation and wish, mapping wish to feature. The sample followed GitHub's returned order within each label and included closed reports. It was not a random sample of incoming issues.
The rules searched titles for documentation words first, then feature-request words, otherwise choosing bug. OpenJev received the title and up to 1,600 body characters, without the reference label.
Both methods matched 11/18 labels: six bugs, two documentation reports and three features. Nine reports matched both methods, two matched only the rules, two only the model, and five neither. Repeating the model run preserved all 18 choices. Its median request time in that repeat was 0.513 seconds, excluding loading and warm-up; this was one local timing observation, not a speed benchmark.
The input difference mattered, so a later exploratory run gave both methods the same input:
!Keyword rules match 11 of 18 labels with titles and 8 with title plus body. OpenJev matches 7 with titles and 11 with title plus body.
Measured label matches on the same 18 already-inspected reports. The follow-up reused this sample; it was not a new blind evaluation.
More text helped this model and hurt these rules. A documentation link in a bug report can trigger a rule that gives documentation words priority. That is a property of this rule recipe; it does not show that rules generally fail with longer text.
A question before judging the score
Ruff #21099 says that ruff analyze graph seems to skip notebooks. Is that a bug or a feature request?
My initial reading was feature: notebook support is missing. The saved wish label agrees. But the maintainer discussion found code explicitly skipping notebooks. Removing that filter made notebook files appear, though their imports were still missing. The intended behaviour matters before deciding which category is right.
Ruff #28493 gives another reason to inspect labels. It describes a supposedly safe fix creating a type-checker error. The maintainer explains Ruff's runtime-oriented safety definition and accepts documenting the limitation. A documentation label fits that resolution, while a classifier reading the original report could reasonably choose bug.
These discussions were inspected after evaluation. The original reference answers were not rewritten. The measured quantity remains agreement with repository labels, rather than independently checked accuracy.
Images: make your prediction first
The pictures above show a red mug with no visible damage and a blue bowl with a visible chip and crack. Each image was classified on three attributes: object, colour and condition. The agent visually inspected the generated outputs before inference; these are not independent human labels.
Each scene was tested with image only, a matching description, a conflicting description, and a text-only control. The instruction said to judge the image when supplied. For text-only controls, the expected answer followed the description.
The default image-only calls got 0/6 attributes right. A smaller batch did not change that result. The same model's direct descriptions, using a different prompt through MLX-VLM, correctly described the red mug and chipped blue bowl.
That prompted a scoring check. With the same image-only inputs, questions, weights and batch size of one, switching from score_mode="full" to score_mode="binary" matched 6/6 attributes. These six decisions describe only two images. Object, colour and condition change together, so they are not six independent examples.
!Animated replay of saved image-only decisions: default scoring picks the wrong object, colour and condition for both scenes; yes/no scoring matches all six attributes.
AI-generated scenes with an animated replay of measured outputs. This GIF is not live inference. Six attributes across two pictures do not establish general accuracy. The scoring diagnostic was chosen after the initial failures.
Why did the ranking reverse?
OpenJev asks about each candidate separately. For the colour question, “red” and “blue” each receive their own yes/no evaluation. The default scoring uses the model's support for the “yes” token. Binary scoring uses yes / (yes + no) for that candidate. The decision code then normalises the candidate supports so the offered categories sum to one. Those are two different steps.
{% details Inspect the scores behind the colour reversal %}
For the red-mug colour question, the saved default run produced approximately:
- Red candidate: “yes” 0.005198; “no” 0.00006146.
- Blue candidate: “yes” 0.420787; “no” 0.420787.
Default scoring selects blue because its “yes” value is larger. Comparing only yes and no gives a different ranking:
yes / (yes + no)
red ≈ 0.9883
blue ≈ 0.5000
The red candidate's “yes” is small, but its “no” is smaller still. Among those two response tokens, red has stronger support for yes. The default rule instead rewards blue's much larger absolute yes score.
There is another important distinction: 0.9883 is the red candidate's yes/no support, not its final probability among the colour choices. Normalising the saved supports across red and blue gives:
Default: red / (red + blue)
≈ 0.005198 / (0.005198 + 0.420787)
≈ 0.0122
Binary: red / (red + blue)
≈ 0.9883 / (0.9883 + 0.5000)
≈ 0.6640
These calculations reuse the initial saved call. They are not the scores from a new model run. Recomputing all six image-only choices from those saved yes/no values changes agreement from 0/6 to 6/6, without changing an image, prompt or model output. This separates the arithmetic effect from differences between separate inference calls. The separate batch-size-one checks reported above also matched 6/6 under binary scoring.
The saved values expose a further clue: yes and no together account for about 0.53% of the red candidate's response-token probability, compared with 84.16% for blue. Binary scoring discards that difference in total mass. It can therefore give strong relative support to yes even when both yes and no are unlikely responses. We have not identified which other response tokens receive the remaining mass, or established why the prompts produce such different totals.
Neither the normalised category scores nor the yes/no supports are calibrated chances of being correct. A larger score does not by itself establish a more reliable decision.
{% enddetails %}
The caption tests were also imperfect: default scoring matched 0/6 image attributes with accurate captions and 1/6 with conflicting captions. Text-only controls matched 5/6 description attributes. Captions were not separately rerun under binary scoring, so the image-only result does not establish resistance to misleading text.
My choice for photo/text disagreement was to flag the conflict for review. That remains a desired behaviour: this experiment forces category choices and does not implement or validate a conflict detector. Disagreement alone cannot tell us whether the photo, description or model is wrong.
What these results support
The text comparison gives no reason to replace the simple rules for this small task. The image example shows that candidate scoring can reverse decisions even when the underlying model can describe the scenes. It does not establish a general OpenJev bug or show that binary scoring is always better.
The limits are substantial: one model, one repository, 18 previously inspected issue reports and two designed images. The image attributes change together, the choices have no “unknown” option, and no real-photo or independent human evaluation was performed. Source issues may also have appeared in training data. No larger-model comparison or production reliability claim follows.
The text study shows why agreement depends on what the reference labels describe and which input each method receives. The image study isolates a different issue: the rule that converts response scores into category choices can reverse every decision in a small example. It leaves open whether that behaviour repeats on fresh images.
The follow-up is now live: OpenJev vs OpenAI Decisions: fewer missed defects, more false alarms. It compares 160 public inspection photos, with charts, worked scores and examples of both kinds of error.
7 reactions
N8N: Fair-code workflow automation platform, Neovim, Supabase | GitHub Curated Picks | 2026-10-15
GitHub Curated Picks reviews 11 source-verified repositories selected for developer usefulness, not popularity position. Each pick is checked against its GitHub repository, README, release evidence, and recent commit; pick numbers are editorial order. The compact card keeps rank, signal, why it matters, and next check together while the ledger preserves direct URLs and release evidence. Treat the list as an educational review surface, not software endorsement, and verify license and maintenance before adoption.
Chapters:
00:00 2026-10-15 | GitHub Curated Picks
00:05 Pick #1 N8N
00:33 Pick #2 Neovim
00:48 Pick #3 Supabase
01:03 Pick #4 Ruff
01:13 Pick #5 Nest
01:27 Pick #6 Compose
01:40 Pick #7 Transformers
01:56 Pick #8 Svelte
02:08 Pick #9 Paperless Ngx
02:23 Pick #10 Sqlfluff
02:37 Pick #11 Megatron LM
Source ledger:
github.com/trending
api.github.com
github.com/n8n-io/n8n/blob/master/README.md
github.com/n8n-io/n8n/commit/50c4ced2241430e13fa7…
github.com/n8n-io/n8n/releases/tag/stable
api.github.com
github.com/neovim/neovim/blob/master/README.md
github.com/neovim/neovim/commit/f505b0636e0e0010f…
api.github.com
github.com/supabase/supabase/blob/master/README.md
github.com/supabase/supabase/commit/4215b6ca32a3b…
api.github.com
github.com/astral-sh/ruff/blob/main/README.md
github.com/astral-sh/ruff/commit/83a3afc3156d73ae…
api.github.com
github.com/nestjs/nest/blob/master/Readme.md
github.com/nestjs/nest/commit/b461186f20c245d5238…
api.github.com
github.com/docker/compose/blob/main/README.md
github.com/docker/compose/commit/89e818966a5c2110…
api.github.com
huggingface/transformers
github.com/huggingface/transformers/commit/e24eb5…
api.github.com
github.com/sveltejs/svelte/blob/main/README.md
github.com/sveltejs/svelte/commit/79e7c3bd346bec0…
api.github.com
paperless-ngx/paperless-ngx
github.com/paperless-ngx/paperless-ngx/commit/14a…
api.github.com
sqlfluff/sqlfluff
github.com/sqlfluff/sqlfluff/commit/8b68456e30eec…
api.github.com
NVIDIA/Megatron-LM
github.com/NVIDIA/Megatron-LM/commit/9131593673d0…
n8n-io/n8n
neovim/neovim
supabase/supabase
astral-sh/ruff
nestjs/nest
docker/compose
sveltejs/svelte
Informational and educational purposes only. Not investment advice, product endorsement, or professional guidance.
14 views
Mentions
Source: the tool I tortured — astral-sh/ruff
@thsottiaux Yes ruff#29852
Ruff vs Black: is the Black Python formatter finished? Is Black, the Python formatter, finished now that Ruff exists? Ruff's formatter matches Black on over 99.9% of lines in big Black-formatted projects and ships far more often, but Black still releases. Chad and Neil check both repos and Ruff's formatter docs. Sources: - GitHub API: astral-sh/ruff and psf/black repositories, releases and commits (queried Oct 19, 2026) — astral-sh/ruff - Ruff README: README.md (main, Oct 2026) — github.com/astral-sh/ruff/blob/main/README.md - Black README: README.md (main, Oct 2026) — github.com/psf/black/blob/main/README.md - Ruff docs: The Ruff Formatter — docs.astral.sh Chad and Neil are animated characters. Voices are synthetic (text-to-speech). Neil's voice: generated with Kyutai TTS 1.6B by Kyutai (CC BY 4.0, creativecommons.org), using speaker p345 from the CSTR VCTK Corpus v0.92 by Junichi Yamagishi, Christophe Veaux and Kirsten MacDonald, The Centre for Speech Technology Research, University of Edinburgh (CC BY 4.0, doi.org). The generated audio was edited (levelled, equalised and mixed). Chad's voice: Kokoro-82M by hexgrad (Apache-2.0). Sound effects: original. Music: "Washed Up" by HoliznaCC0 (Free Music Archive), CC0 1.0 (public domain). #shorts #python #ruff ep:C04
DetachHead (maintainer of basedpyright) has criticized the TSP before: - docs.basedpyright.com - pylance-release#7180 Ty (the type checker maintained by astral) however will apparently support the TSP: ruff#23432
@charliermarsh Got one! Filing 3 more now. ruff#29728
Python 代码格式总不统一?🧹 Ruff 把代码检查和格式化放在一个工具里,还能集成编辑器。 交作业前、提交 PR 前都能跑。🐍 astral-sh/ruff #Python #浇朋友 #蓝朋友 #互关 #fo
Release notes oficiales de Ruff 0.17.0 (9 oct 2026): github.com/astral-sh/ruff/releases/tag/0.17.0 Mi opinión: quitar DTZ del default tiene sentido para scripts, pero en un backend un now() de datetime sin zona horaria es un bug esperando turno. Actívalas a mano y fija target-version.
Why AI Infrastructure Is Moving to Rust ? GitHub just rewrote its Copilot agent runtime in Rust - and you are probably running Rust inside your Python AI code already. So is Rust replacing Python in AI? No: Python stays the language you drive AI with, while Rust replaces the C and C++ engine underneath and the servers around it. In this video: why Python only gives the orders, the memory bug C++ lets through and Rust refuses to compile, four reasons Rust fits AI systems (no garbage collector, real parallel threads, memory layout control, PyO3), real Rust projects in the AI stack, the honest downsides, and who should actually learn Rust. The C++ and Rust snippets are our own examples; the PyO3 snippet is the official example from the PyO3 README (Apache-2.0 / MIT). Copilot performance figures are GitHub's own measurements, excluding model and network time. Chapters: 0:00 Intro 0:13 GitHub's Rust rewrite 0:48 Rust you already run 1:20 Who really does the math 1:42 Two different jobs 2:00 The problem with C++ 2:42 What Rust does instead 3:07 Why Rust fits AI systems 4:13 Rust inside Python 4:35 Rust around AI 4:59 The catch 5:23 Should you learn Rust? Stock footage: Video by Atakan Ozkan on Pexels; Video by Nothing Ahead on Pexels. Sources (checked 2026-10-17): github.blog huggingface/tokenizers safetensors/safetensors openai/tiktoken github.com/pydantic/pydantic/tree/main/pydantic-c… pydantic.dev pola-rs/polars astral-sh/uv astral-sh/ruff qdrant/qdrant lancedb/lancedb huggingface/candle tracel-ai/burn PyO3/pyo3 PyO3/maturin chromium.org microsoft.com docs.python.org doc.rust-lang.org doc.rust-lang.org docs.pytorch.org huggingface.co docs.lancedb.com docs.python.org raw.githubusercontent.com Independent explainers of AI creative tools. Not affiliated with, endorsed by, or sponsored by any company or tool shown. Prices and features change fast - always check the official sites. Narration uses an AI-generated voice. Script and facts are written and checked by the creator. #rust #python #ai #AItools #AIart #AIvideo
OpenJev on text and images: a tie, then a scoring surprise On 18 public Ruff issues, a small local model and keyword rules each matched 11 saved labels. On two generated product images, changing how the same model's answers were scored changed every image-only decision. The first result raised a question about the reference labels. The second raised a question about how model responses become category choices. AI assistance: An AI agent used to perform experiments and help to draft article. What was tested This used mjdileep/OpenJev, an independent Jev-style project, rather than an official open release of TypeSafe's Jev. OpenJev turns supplied text or images into category choices. It does not create the images. The model was Qwen3.5-0.8B, in 4-bit form, running locally through MLX on an Apple M3 Pro with 18 GiB memory and Python 3.12.11. The image tests also used MLX-VLM 0.7.8. No model training was performed. Image generation used a separate built-in image-generation service. Text: a tie against repository labels The saved data had 24 Ruff reports: six development examples and 18 evaluation examples, with six per category. Reference categories came from bug, documentation and wish, mapping wish to feature. The sample followed GitHub's returned order within each label and included closed reports. It was not a random sample of incoming issues. The rules searched titles for documentation words first, then feature-request words, otherwise choosing bug. OpenJev received the title and up to 1,600 body characters, without the reference label. Both methods matched 11/18 labels: six bugs, two documentation reports and three features. Nine reports matched both methods, two matched only the rules, two only the model, and five neither. Repeating the model run preserved all 18 choices. Its median request time in that repeat was 0.513 seconds, excluding loading and warm-up; this was one local timing observation, not a speed benchmark. The input difference mattered, so a later exploratory run gave both methods the same input: !Keyword rules match 11 of 18 labels with titles and 8 with title plus body. OpenJev matches 7 with titles and 11 with title plus body. Measured label matches on the same 18 already-inspected reports. The follow-up reused this sample; it was not a new blind evaluation. More text helped this model and hurt these rules. A documentation link in a bug report can trigger a rule that gives documentation words priority. That is a property of this rule recipe; it does not show that rules generally fail with longer text. A question before judging the score Ruff #21099 says that ruff analyze graph seems to skip notebooks. Is that a bug or a feature request? My initial reading was feature: notebook support is missing. The saved wish label agrees. But the maintainer discussion found code explicitly skipping notebooks. Removing that filter made notebook files appear, though their imports were still missing. The intended behaviour matters before deciding which category is right. Ruff #28493 gives another reason to inspect labels. It describes a supposedly safe fix creating a type-checker error. The maintainer explains Ruff's runtime-oriented safety definition and accepts documenting the limitation. A documentation label fits that resolution, while a classifier reading the original report could reasonably choose bug. These discussions were inspected after evaluation. The original reference answers were not rewritten. The measured quantity remains agreement with repository labels, rather than independently checked accuracy. Images: make your prediction first The pictures above show a red mug with no visible damage and a blue bowl with a visible chip and crack. Each image was classified on three attributes: object, colour and condition. The agent visually inspected the generated outputs before inference; these are not independent human labels. Each scene was tested with image only, a matching description, a conflicting description, and a text-only control. The instruction said to judge the image when supplied. For text-only controls, the expected answer followed the description. The default image-only calls got 0/6 attributes right. A smaller batch did not change that result. The same model's direct descriptions, using a different prompt through MLX-VLM, correctly described the red mug and chipped blue bowl. That prompted a scoring check. With the same image-only inputs, questions, weights and batch size of one, switching from score_mode="full" to score_mode="binary" matched 6/6 attributes. These six decisions describe only two images. Object, colour and condition change together, so they are not six independent examples. !Animated replay of saved image-only decisions: default scoring picks the wrong object, colour and condition for both scenes; yes/no scoring matches all six attributes. AI-generated scenes with an animated replay of measured outputs. This GIF is not live inference. Six attributes across two pictures do not establish general accuracy. The scoring diagnostic was chosen after the initial failures. Why did the ranking reverse? OpenJev asks about each candidate separately. For the colour question, “red” and “blue” each receive their own yes/no evaluation. The default scoring uses the model's support for the “yes” token. Binary scoring uses yes / (yes + no) for that candidate. The decision code then normalises the candidate supports so the offered categories sum to one. Those are two different steps. {% details Inspect the scores behind the colour reversal %} For the red-mug colour question, the saved default run produced approximately: - Red candidate: “yes” 0.005198; “no” 0.00006146. - Blue candidate: “yes” 0.420787; “no” 0.420787. Default scoring selects blue because its “yes” value is larger. Comparing only yes and no gives a different ranking: yes / (yes + no) red ≈ 0.9883 blue ≈ 0.5000 The red candidate's “yes” is small, but its “no” is smaller still. Among those two response tokens, red has stronger support for yes. The default rule instead rewards blue's much larger absolute yes score. There is another important distinction: 0.9883 is the red candidate's yes/no support, not its final probability among the colour choices. Normalising the saved supports across red and blue gives: Default: red / (red + blue) ≈ 0.005198 / (0.005198 + 0.420787) ≈ 0.0122 Binary: red / (red + blue) ≈ 0.9883 / (0.9883 + 0.5000) ≈ 0.6640 These calculations reuse the initial saved call. They are not the scores from a new model run. Recomputing all six image-only choices from those saved yes/no values changes agreement from 0/6 to 6/6, without changing an image, prompt or model output. This separates the arithmetic effect from differences between separate inference calls. The separate batch-size-one checks reported above also matched 6/6 under binary scoring. The saved values expose a further clue: yes and no together account for about 0.53% of the red candidate's response-token probability, compared with 84.16% for blue. Binary scoring discards that difference in total mass. It can therefore give strong relative support to yes even when both yes and no are unlikely responses. We have not identified which other response tokens receive the remaining mass, or established why the prompts produce such different totals. Neither the normalised category scores nor the yes/no supports are calibrated chances of being correct. A larger score does not by itself establish a more reliable decision. {% enddetails %} The caption tests were also imperfect: default scoring matched 0/6 image attributes with accurate captions and 1/6 with conflicting captions. Text-only controls matched 5/6 description attributes. Captions were not separately rerun under binary scoring, so the image-only result does not establish resistance to misleading text. My choice for photo/text disagreement was to flag the conflict for review. That remains a desired behaviour: this experiment forces category choices and does not implement or validate a conflict detector. Disagreement alone cannot tell us whether the photo, description or model is wrong. What these results support The text comparison gives no reason to replace the simple rules for this small task. The image example shows that candidate scoring can reverse decisions even when the underlying model can describe the scenes. It does not establish a general OpenJev bug or show that binary scoring is always better. The limits are substantial: one model, one repository, 18 previously inspected issue reports and two designed images. The image attributes change together, the choices have no “unknown” option, and no real-photo or independent human evaluation was performed. Source issues may also have appeared in training data. No larger-model comparison or production reliability claim follows. The text study shows why agreement depends on what the reference labels describe and which input each method receives. The image study isolates a different issue: the rule that converts response scores into category choices can reverse every decision in a small example. It leaves open whether that behaviour repeats on fresh images. The follow-up is now live: OpenJev vs OpenAI Decisions: fewer missed defects, more false alarms. It compares 160 public inspection photos, with charts, worked scores and examples of both kinds of error.
N8N: Fair-code workflow automation platform, Neovim, Supabase | GitHub Curated Picks | 2026-10-15 GitHub Curated Picks reviews 11 source-verified repositories selected for developer usefulness, not popularity position. Each pick is checked against its GitHub repository, README, release evidence, and recent commit; pick numbers are editorial order. The compact card keeps rank, signal, why it matters, and next check together while the ledger preserves direct URLs and release evidence. Treat the list as an educational review surface, not software endorsement, and verify license and maintenance before adoption. Chapters: 00:00 2026-10-15 | GitHub Curated Picks 00:05 Pick #1 N8N 00:33 Pick #2 Neovim 00:48 Pick #3 Supabase 01:03 Pick #4 Ruff 01:13 Pick #5 Nest 01:27 Pick #6 Compose 01:40 Pick #7 Transformers 01:56 Pick #8 Svelte 02:08 Pick #9 Paperless Ngx 02:23 Pick #10 Sqlfluff 02:37 Pick #11 Megatron LM Source ledger: github.com/trending api.github.com github.com/n8n-io/n8n/blob/master/README.md github.com/n8n-io/n8n/commit/50c4ced2241430e13fa7… github.com/n8n-io/n8n/releases/tag/stable api.github.com github.com/neovim/neovim/blob/master/README.md github.com/neovim/neovim/commit/f505b0636e0e0010f… api.github.com github.com/supabase/supabase/blob/master/README.md github.com/supabase/supabase/commit/4215b6ca32a3b… api.github.com github.com/astral-sh/ruff/blob/main/README.md github.com/astral-sh/ruff/commit/83a3afc3156d73ae… api.github.com github.com/nestjs/nest/blob/master/Readme.md github.com/nestjs/nest/commit/b461186f20c245d5238… api.github.com github.com/docker/compose/blob/main/README.md github.com/docker/compose/commit/89e818966a5c2110… api.github.com huggingface/transformers github.com/huggingface/transformers/commit/e24eb5… api.github.com github.com/sveltejs/svelte/blob/main/README.md github.com/sveltejs/svelte/commit/79e7c3bd346bec0… api.github.com paperless-ngx/paperless-ngx github.com/paperless-ngx/paperless-ngx/commit/14a… api.github.com sqlfluff/sqlfluff github.com/sqlfluff/sqlfluff/commit/8b68456e30eec… api.github.com NVIDIA/Megatron-LM github.com/NVIDIA/Megatron-LM/commit/9131593673d0… n8n-io/n8n neovim/neovim supabase/supabase astral-sh/ruff nestjs/nest docker/compose sveltejs/svelte Informational and educational purposes only. Not investment advice, product endorsement, or professional guidance.