Bookmarks

Bookmarks

49822 bookmarks
Custom sorting
Static search trees: 40x faster than binary search
Static search trees: 40x faster than binary search
Table of Contents 1 Introduction 1.1 Problem statement 1.2 Motivation 1.3 Recommended reading 1.4 Binary search and Eytzinger layout 1.5 Hugepages 1.6 A note on benchmarking 1.7 Cache lines 1.8 S-trees and B-trees 2 Optimizing find 2.1 Linear 2.2 Auto-vectorization 2.3 Trailing zeros 2.4 Popcount 2.5 Manual SIMD 3 Optimizing the search 3.1 Batching 3.2 Prefetching 3.3 Pointer arithmetic 3.3.1 Up-front splat 3.3.2 Byte-based pointers 3.3.3 The final version 3.4 Skip prefetch 3.5 Interleave 4 Optimizing the tree layout 4.1 Left-tree 4.2 Memory layouts 4.3 Node size \(B=15\) 4.3.1 Data structure size 4.4 Summary 5 Prefix partitioning 5.1 Full layout 5.2 Compact subtrees 5.3 The best of both: compact first level 5.4 Overlapping trees 5.5 Human data 5.6 Prefix map 5.7 Summary 6 Multi-threaded comparison 7 Conclusion 7.1 Future work 7.1.1 Branchy search 7.1.2 Interpolation search 7.1.3 Packing data smaller 7.1.4 Returning indices in original data 7.1.5 Range queries 7.1.6 Sorting queries 7.1.7 Suffix array searching In this post, we will implement a static search tree (S+ tree) for high-throughput searching of sorted data, as introduced on Algorithmica. We’ll mostly take the code presented there as a starting point, and optimize it to its limits. For a large part, I’m simply taking the ‘future work’ ideas of that post and implementing them. And then there will be a bunch of looking at assembly code to shave off all the instructions we can. Lastly, there will be one big addition to optimize throughput: batching.
·curiouscoding.nl·
Static search trees: 40x faster than binary search
Write Your Own json.Unmarshal
Write Your Own json.Unmarshal
Deep dive into how we can build something similar to json.Unmarshal in golang using reflection.
·stuff.narf.zone·
Write Your Own json.Unmarshal
Writing & Testing a Paginated API Iterator in Go
Writing & Testing a Paginated API Iterator in Go
Writing and unit-testing Go 1.23 iterators can be tricky. This article shows a full-featured example using GitHub's public API.
·blog.thibaut-rousseau.com·
Writing & Testing a Paginated API Iterator in Go
Docker on MacOS is still slow?
Docker on MacOS is still slow?
Info 06/01/2025 Update: Many readers requested the inclusion of OrbStack in the benchmarks. This update introduces OrbStack’s performance data, along with updated insights and comparisons. TLDR Link to heading Two years after my first analysis of Docker performance on MacOS, things have improved significantly. VirtioFS is now much faster (bind mounts are only 3x slower instead of 5-6x), and we have new solutions in the ecosystem. Lima (open-source) performs well and sometimes better than Docker Desktop, while Docker’s new file synchronization feature offers impressive speed improvements (59% faster) but requires a paid subscription. Additionally, OrbStack has emerged as a strong contender, offering excellent performance with bind mounts and native operations. For the most stable performance, the hybrid approach (combining bind mounts with volumes) remains the best practice. Choose your setup based on your needs:
·paolomainardi.com·
Docker on MacOS is still slow?
Why Go Should Sometimes Be a No-Go
Why Go Should Sometimes Be a No-Go
As I will be switching clients next year, I will also be switching programming languages, from Go …
·brainbaking.com·
Why Go Should Sometimes Be a No-Go
Rust vs Go in 2025 — Bitfield Consulting
Rust vs Go in 2025 — Bitfield Consulting
Which is a better choice, Rust or Go? Which language should you choose for your next project, and why? How do the two compare in areas like performance, simplicity, safety, features, scale, and concurrency?
·bitfieldconsulting.com·
Rust vs Go in 2025 — Bitfield Consulting
estruyf/vscode-front-matter: Front Matter is a CMS running straight in Visual Studio Code. Can be used with static site generators like Hugo, Jekyll, Hexo, NextJs, Gatsby, and many more...
estruyf/vscode-front-matter: Front Matter is a CMS running straight in Visual Studio Code. Can be used with static site generators like Hugo, Jekyll, Hexo, NextJs, Gatsby, and many more...
Front Matter is a CMS running straight in Visual Studio Code. Can be used with static site generators like Hugo, Jekyll, Hexo, NextJs, Gatsby, and many more... - estruyf/vscode-front-matter
·github.com·
estruyf/vscode-front-matter: Front Matter is a CMS running straight in Visual Studio Code. Can be used with static site generators like Hugo, Jekyll, Hexo, NextJs, Gatsby, and many more...
ProseMirror
ProseMirror
In-browser structured text editing component
·prosemirror.net·
ProseMirror
Repomix
Repomix
Pack your codebase into AI-friendly formats
·repomix.com·
Repomix
yamadashy/repomix: 📦 Repomix (formerly Repopack) is a powerful tool that packs your entire repository into a single, AI-friendly file. Perfect for when you need to feed your codebase to Large Language Models (LLMs) or other AI tools like Claude, ChatGPT, and Gemini.
yamadashy/repomix: 📦 Repomix (formerly Repopack) is a powerful tool that packs your entire repository into a single, AI-friendly file. Perfect for when you need to feed your codebase to Large Language Models (LLMs) or other AI tools like Claude, ChatGPT, and Gemini.
📦 Repomix (formerly Repopack) is a powerful tool that packs your entire repository into a single, AI-friendly file. Perfect for when you need to feed your codebase to Large Language Models (LLMs) o...
·github.com·
yamadashy/repomix: 📦 Repomix (formerly Repopack) is a powerful tool that packs your entire repository into a single, AI-friendly file. Perfect for when you need to feed your codebase to Large Language Models (LLMs) or other AI tools like Claude, ChatGPT, and Gemini.
バグの再現率の報告について
バグの再現率の報告について
バグの報告の仕方、というのはたぶん多くの人は新人研修で習う類の事だし、習わなかった人も世の中には「こう書け」という記事はたくさんあるのでググって読めば十分にも思う。 自分はそれらの記事を読んでないがたぶん十分良く書けていると思うし、別段何かを追加する必要も無いとは思っている。
·karino2.github.io·
バグの再現率の報告について
10年後、プログラムを動かし続けるために。伊藤淳一が考える「良いコミット、悪いコミット」 | レバテックラボ(レバテックLAB)
10年後、プログラムを動かし続けるために。伊藤淳一が考える「良いコミット、悪いコミット」 | レバテックラボ(レバテックLAB)
コミットする目的や「良いコミット」の条件について伊藤淳一氏がユースケースごとに解説します。
·levtech.jp·
10年後、プログラムを動かし続けるために。伊藤淳一が考える「良いコミット、悪いコミット」 | レバテックラボ(レバテックLAB)
GlitchTip
GlitchTip
GlitchTip is an open source, Sentry API compatible error tracking platform.
·glitchtip.com·
GlitchTip
Wipr 2
Wipr 2
Enjoy a cleaner web.
·kaylees.site·
Wipr 2
ECMAScript feature: import attributes
ECMAScript feature: import attributes
The ECMAScript feature “Import Attributes” (by Sven Sauleau, Daniel Ehrenberg, Myles Borins, Dan Clark and Nicolò Ribaudo) helps with importing artifacts other than JavaScript modules. In this blog post, we examine what that looks like and why it’s useful. Import attributes reached stage 4 in October 2024 and will probably be part of ECMAScript 2025.
·2ality.com·
ECMAScript feature: import attributes
Cursor vs Windsurf vs GitHub Copilot
Cursor vs Windsurf vs GitHub Copilot
Comparing Cursor, Windsurf, and GitHub Copilot AI coding assistants. Analysis of features, capabilities, and pricing reveals Cursor as the current frontrunner.
·builder.io·
Cursor vs Windsurf vs GitHub Copilot