lukax
lukax on Hacker News
And now they can train on everything this community does. And with new models this community won't be needed anymore.
OpenCode checks model name and registers the appropriate tools.
const usePatch =
model.modelID.includes("gpt-") &&
!model.modelID.includes("oss") &&
!model.modelID.includes("gpt-4")
Pi uses its own tools, like Armin wrote in the linked article.
What matters more is that you use the tools that the target model was fine-tuned on.
E.g. for editing files with Claude models you should use Edit(file_path, old_string, new_string, replace_all) but with GPT models you should use apply_patch_call(patch) (where patch is a custom patch string with custom grammar).
It appears newer models are better at narive harness tool calls and worse at custom tools that look similar to default tools.
https://lucumr.pocoo.org/2026/7/4/better-models-worse-tools/
This is only a problem with OpenAI Chat Completions API. With OpenAI Responses API and Anthropic Messages API a tool output can be text, image or file.
DeepSeek-V4-Flash
Input (Cache Miss)
Previous: $0.14
New - Off-Peak: $0.22 (approx. 1.57x)
New - Peak: $0.44 (approx. 3.14x)
Input (Cache Hit)
Previous: $0.0028
New - Off-Peak: $0.007 (2.5x)
New - Peak: $0.014 (5x)
Output
Previous: $0.28
New - Off-Peak: $0.66 (approx. 2.35x)
New - Peak: $1.32 (approx. 4.71x)
---
DeepSeek-V4-Pro
Input (Cache Miss)
Previous: $0.435
New - Off-Peak: $0.66 (approx. 1.51x)
New - Peak: $1.32 (approx. 3.03x)
Input (Cache Hit)
Previous: $0.003625
New - Off-Peak: $0.022 (approx. 6.07x)
New - Peak: $0.044 (approx. 12.14x)
Output
Previous: $0.87
New - Off-Peak: $1.98 (approx. 2.27x)
New - Peak: $3.96 (approx. 4.55x)
Posted by
lukax on Thursday August 13, 2026 @09:37AM
from the xcancel.com dept.
Also for WASM? It's just not really there compared to Rust's wasm bindgen.
I can highly recommend Rust for this. The same Rust engine powering web app (WASM + React), iOS (SwiftUI), Android (Kotlin Compose) and desktop (Tauri).
https://github.com/koofr/vault
Could it be that users of Pi are more senior and know better how to prompt and that's why the pass rate is higher?
It's refreshing to see a tech article that isn't about AI. It feels like 5 years ago.
NUMA can cause really crappy performance. We deployed a Go based LLM gateway in Kubernetes deployed on a server with hundreds of CPU cores. We didn't explicitly set GOMAXPROCS so Go runtime scheduled goroutines over different CPUs and it constantly used 200% CPU and GC was causing latency spikes. Then we set GOMAXPROCS 8 and all performance issues went away. Until recently Kubernetes didn't work well with NUMA.
Well, that's how data for training LLMs is scraped.
Zero data retention policies.
There is also Retrotick.
https://retrotick.com/
It simulates x86 (win32 and win16) and implements Windows APIs in javascript and renders window frames with DOM and contents with canvas (e.g. GDI translates to browser canvas operations). A lot of programs run already but a lot of APIs are not yet implemented.
I successfullt spent a few days extending it to run a Click & Create based game from my childhood.
Huawei Ascend AI Accellerators. DeepSeek V4 model architecture was optimized for Chinese hardware.
That's just not true. Let's say you have a form validation library with a public api that supports custom validators Validate(name string, value string) bool. Then you decide that your validator now needs to make an HTTP request. This request needs context so that tracing is propagated and needs to return (bool, error) so that error is propagated up instead of silently ignoring it or logging it and returning false. This is coloring. You can use context.Background the same way you can use blocking in other languages. It just doesn't feel right and it breaks things.
I wonder what would happen if they used Kimi 2.5 directly instead of Cursor Composer 2.5. Composer is a fine tune of Kimi. Probably they didn't want to test "Chinese" models.
They are migrating from their own datacenters to Azure
You generally want both relative and absolute tolerances. Relative handles scale, absolute handles values near zero (raw EPSILON isn’t a universal threshold per IEEE 754).
The usual pattern is abs(a - b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol) to avoid both large-value and near-zero pitfalls.
Do you really need to roll your own NIO HTTP server? You could just use Jetty with virtual threads (still uses NIO under the hood though) and enjoy the synchronous code style (same as Go)
Rust wasm ecosystem also needs a lot of crates to do anything useful, a lot of them unmaintained.