2009–2026
1,416 posts
2026 77
October 2026
- Decoding base64 in Python at 10 gigabytes per second
- Redis now has compressed bitmaps (Roaring)
- Parsing JSON at tens of gigabytes per second… in Python
- WebSocket servers in JavaScript: Node.js, Bun and Deno in 2026
- Faster Python startup with lazy imports
- Mastering SIMD with Java Vector API
- Faster software linking with mold
- Ephemeral testing
- Research paper overload: submissions capped at two a month
- Google’s first orbital data center is in orbit
- Parsing compressed JSON at 40 GB/s
September 2026
- Transcoding UTF-8 to UTF-16 with replacement at gigabytes per second
- How do you deal with people who strongly disagree with your views?
- simdjson 5.0 is out
- How fast can you fix a UTF-16 string in C#?
- A thesis isn’t enough for a PhD
- How many strings can you create per second?
- If you don’t have the factories, you lose the expertise
- A summer of AI optimization
- More than a taken branch per cycle?
- The data does not show mass unemployment
- AI is breaking the academic sorting machine
- How did Apple Silicon get 50% faster in three years?
- Faster JSON parsing with SVE2 on ARM processors
- How did AMD Ryzen get 50% faster in two years?
- How fast is C++23’s std::flat_map?
- Subnormal floating-point numbers are expensive… on Intel processors
- The four-colour theorem was only the start
- Fear Is Not an Argument
- A quick overview of atomics in C
- AI programming: a layered model
- Python sets and dictionaries can have quadratic-time performance
August 2026
- The new Go JSON API: twice as fast, or 1.5x slower?
- Java’s String.indexOf can be slow (quadratic)
- Parsing IP addresses in C# at crazy speeds
- Go 1.27 will make some allocations cheaper
- AI programming : are you angry yet?
- Profile-guided optimization in Go
- How fast is C++26’s std::hive?
July 2026
- Memory-level parallelism: AMD is the king
- Does a PhD Pay Off?
- From Institutions to Individuals: the White House Report on Revitalizing U.S. Scientific Leadership
- Using AI to build your own software
- X just gave us an interface that AI agents can use. I pointed it at my own posts.
June 2026
- Chatting with an AI Won’t Make You a Top Programmer
- Parsing JSON at compile time with C++26 static reflection
- Sovereign
- How much do amd64 microarchitecture levels help in Go?
May 2026
- Embodied cognition and agentic AI
- Parsing IPv6 Addresses Crazily Fast with AVX-512
- Only 17% of all 64-bit Integers are products of two 32-bit integers
- SIMD-accelerated integer-to-string conversion
- Checking multiplication overflow
- Mapping Strings to Float Arrays in Go: How Fast Can We Go?
April 2026
- House prices and fertility
- You can beat the binary search
- The fastest way to match characters on ARM processors?
- A brief history of C/C++ programming languages
- Can your AI rewrite your code in assembly?
March 2026
- A Fast Immutable Map in Go
- JSON and C++26 compile-time reflection: a talk
- How many branches can your CPU predict?
- Prefix sums at tens of gigabytes per second with ARM NEON
- Text formats are everywhere. Why?
February 2026
- You can use newline characters in URLs
- How fast do browsers correct UTF-16 strings?
- How bad can Python stop-the-world pauses get?
- AI: Igniting the Spark to End Stagnation
- The cost of a function call
- Converting data to hexadecimal outputs quickly
- Converting floats to strings quickly
January 2026
2025 72
December 2025
- The culture war that we won
- By how much does your memory allocator overallocate?
- Freedom from incompetence
- Don’t be so eager to rewrite your code
- Parsing IP addresses quickly (portably, without SIMD magic)
- Performance trick : optimistic vs pessimistic checks
- JSON-complete data formats and programming languages
- Multiplying the Shuffle Speed in Go with Batched Shuffling
- Why speed matters
- We see something that works, and then we understand it
- Why don’t we get more scientific breakthroughs?
November 2025
- How fast can browsers process base64 data?
- Antifragile Programming and Why AI Won’t Steal Your Job
- How good are Chinese CPUs? Benchmarking the Loongson 3A6000
- AMD vs. Intel: a Unicode benchmark
- Automated Equality Checks in C++ with Reflection (C++26)
October 2025
- As smart as a PhD
- Flame Graphs in Go
- Thinking Clearly
- Speeding up C++ functions with a thread_local cache
- Research results are cultural artifacts, not public goods
- Speed of random number generators in Go
- Aesthetics matter
- std::ranges may not deliver the performance that you expect
- Beyond papers: rethinking science in the era of artificial intelligence
September 2025
- The smallest number that is infinite
- Hard work is a virtue
- Splitting a long string in lines efficiently
- Processors are getting wider
August 2025
- Debugging C++ with Visual Studio Code under macOS
- Predictable memory accesses are much faster
- Why do we even need SIMD instructions ?
July 2025
- Innovation starts with consumers, not academia
- Rebels on campus
- Dot product on misaligned data
- Why measuring productivity is hard
- Memory-level parallelism : Apple M2 vs Apple M4
- Just say no to broken JSON
- Base64 for compression
June 2025
- From code reuse to the impact of generative AI
- Discover C++26’s compile-time reflection
- Life expectancy of men in Canadian provinces
- Don’t argue: build
- Metcalfe’s Law against Brooks’ Law
- Let us bury the linear model of innovation
- Fast character classification with z3
May 2025
- Is the job market for software developers collapsing?
- Models and science
- Dividing an array into fair sized chunks
- Returning several values from a function in C++ (C++23 edition)
- Producing useful commands on the go using C++ and AI
- C++20 concepts for nicer compiler errors
April 2025
- Streamlined iteration: exploring keys and values in C++20
- Detect control characters, quotes and backslashes efficiently using ‘SWAR’
- How can really smart people appear totally incompetent?
- How helpful is AI?
- Faster shuffling in Go with batching
March 2025
- Mixing ARM NEON with SVE code for fun and profit
- Unsigned comparisons using signed types
- Speeding up C++ code with template lambdas
- An overview of parallel programming (Go edition)
- How fast can you open 1000 files?
February 2025
January 2025
- Programmer time and the pitfalls of wasteful work
- Regular expressions can blow up!
- Checking whether an ARM NEON register is zero
- The ivory tower’s drift: how academia’s preference for theory over empiricism fuels scientific stagnation
- JavaScript hashing speed comparison: MD5 versus SHA-256
- Counting the digits of 64-bit integers
- Artificial Intelligence as the Expert’s Lever: Elevating Human Expertise in the Age of AI
- How does your URL parser handle Unicode?
2024 64
December 2024
- Efficient In-Place UTF-16 Unicode Correction with ARM NEON
- Simpler and faster parsing code with std::views::split
- Accessing the attributes of a struct in C++ as array elements?
- Data structures as jigs for programmers (Go edition)
November 2024
- Parsing floats at over a gigabyte per second in C#
- Graduate degrees are overrated
- Having fun with modern C++
October 2024
- How fast can you parse a CSV file in C#?
- Table lookups are efficient
- From software to reality?
- Geoffrey Hinton, the Godfather of Deep Learning, wins Nobel Prize in Physics!
- Iterating through matched characters in modern C++
September 2024
- It is never too late to write your own C/C++ command-line utilities
- The PhD Paradox: A Journey into Academia’s Upside-Down World
- Replace strings by views when you can
- Compressing floating-point numbers quickly by converting them to brain floats
August 2024
- Parsing tiny and very large floating-point values: a programming-language comparison
- Faster random integer generation with batching
- Reflection-based JSON in C++ at Gigabytes per Second
- Converting ASCII strings to lower case at crazy speeds with AVX-512
July 2024
- Evolution of iPhone storage capacity
- Storage costs are plummeting
- How big are your docker images?
- How much of your binary executable is just ASCII text?
- Safer code in C++ with lifetime bounds
- Does C++ allow template specialization by concepts?
- Scan HTML even faster with SIMD instructions (C++ and C#)
- Benchmarking ARM processors: Graviton 4, Graviton 3 and Apple M2
- Scan HTML faster with SIMD instructions: .NET/C# Edition
June 2024
- How much memory does a call to ‘malloc’ allocate?
- Performance tip: avoid unnecessary copies
- Validating gigabytes of Unicode strings per second… in C#?
- Rolling your own fast matrix multiplication: loop order and vectorization
- Scan HTML faster with SIMD instructions: Chrome edition
May 2024
- Quickly checking whether a string needs escaping
- Never reason from the results of a sampling profiler
- Science and Technology links (May 25 2024)
- Learning from the object-oriented mania
- Forwarding references in C++
- Peer review is not the gold standard in science
- How fast can you construct a small list of strings in C for Python?
- Should Node.js be built with ClangCL under Windows?
April 2024
- Careful with Pair-of-Registers instructions on Apple Silicon
- Large language models (e.g., ChatGPT) as research assistants
- How do you recognize an expert?
- How quickly can you break a long string into lines?
- Science and Technology links (April 13 2024)
- Greatest common divisor, the extended Euclidean algorithm, and speed!
- A simple algorithm to compute the square root of an integer, byte by byte
- C++ web app with Crow: early scalability results
March 2024
- Science and Technology links (March 31 2024)
- Fast and concise probabilistic filters in Python
- Passing recursive C++ lambdas as function pointers
- Measuring your system’s performance using software (Go edition)
- How to read files quickly in JavaScript
- How many political parties rule Canada? Fun with statistics
February 2024
- Book review: Theft of Fire by Devon Eriksen
- Measuring energy usage: regular code vs. SIMD code
- JSON Parsing: Intel Sapphire Rapids versus AMD Zen 4
- How fast is rolling Karp-Rabin hashing?
January 2024
2023 82
December 2023
- Science and Technology links (December 30th 2023)
- Measuring the size of the cache line empirically
- Fast Buffer-to-String conversion in JavaScript with a Lookup Table
- How fast can you validate UTF-8 strings in JavaScript?
November 2023
- Parsing 8-bit integers quickly
- A simple WebSocket benchmark in Python
- A simple WebSocket benchmark in JavaScript: Node.js versus Bun
- Science and Technology links (November 12 2023)
- Generating arrays at compile-time in C++ with lambdas
October 2023
- Appending to an std::string character-by-character: how does the capacity grow?
- For processing strings, streams in C++ can be slow
- How many billions of transistors in your iPhone processor?
- Randomness in programming (with Go code)
- Web server ‘hello world’ benchmark : Go vs Node.js vs Nim vs Bun
September 2023
- Parsing integers quickly with AVX-512
- Transcoding Unicode strings at crazy speeds with AVX-512
- Locating ‘identifiers’ quickly (ARM NEON edition)
- Science and Technology links (September 2 2023)
August 2023
- Transcoding Latin 1 strings to UTF-8 strings at 18 GB/s using AVX-512
- How accurate is the birthday’s paradox formula?
- Transcoding UTF-8 strings to Latin 1 strings at 18 GB/s using AVX-512
- Coding of domain names to wire format at gigabytes per second
- Science and Technology links (August 6 2023)
July 2023
- Decoding base16 sequences quickly
- Science and Technology links (July 23 2023)
- Fast decoding of base32 strings
- Science and Technology links (July 16 2023)
- Recognizing string prefixes with SIMD instructions
- Stealth, not secrecy
- Packing a string of digits into an integer quickly
- Having fun with string literal suffixes in C++
- Parsing time stamps faster with SIMD instructions
June 2023
- Dynamic bit shuffle using AVX-512
- Science and Technology links (June 25 2023)
- Citogenesis in science and the importance of real problems
- Science and Technology links (June 11 2023)
- Parsing IP addresses crazily fast
- Science and Technogy links (June 3 2023)
- Peak credentialism
May 2023
- Expected performance of a Bloom filter
- The absurd cost of finalizers in Go
- Computing the UTF-8 size of a Latin 1 string quickly (ARM NEON edition)
- ARM instructions do “less work”?
- Science and Technology links (May 6 2023)
- Graviton 3, Apple M2 and Qualcomm 8cx 3rd gen: a URL parsing benchmark
- Under Linux, libSegFault and addr2line are underrated
April 2023
- Science and Technology links (April 29 2023)
- Hotspot performance engineering fails
- Vectorized trimming of line comments
- Science and Technology links (April 22 2023)
- Will emerging artificial intelligence boost research productivity?
- Defining interfaces in C++: concepts versus inheritance
- Defining interfaces in C++ with ‘concepts’ (C++20)
- Science and Technology links (April 15 2023)
- Interfaces are not free in Go
- 19 random digits is not enough to uniquely identify all human beings
- Consider using constexpr static function variables for performance in C++
- Science and Technology links (April 11 2023)
- Programming-language popularity by GitHub pull requests
- Are your memory-bound benchmarking timings normally distributed?
- What are we going to do about ChatGPT?
March 2023
- C++20: consteval and constexpr functions
- Can GPT pass my programming courses?
- Counting cycles and instructions on ARM-based Apple systems
- Runtime asserts are not free
- Precision, recall and why you shouldn’t crank up the warnings to 11
- Science and Technology links (March 11 2023)
- Trimming spaces from strings faster with SVE on an Amazon Graviton 3 processor
- Float-parsing benchmark: Regular Visual Studio, ClangCL and Linux GCC
- ARM vs Intel on Amazon’s cloud: A URL Parsing Benchmark
February 2023
- Regular Visual Studio versus ClangCL
- Computing the UTF-8 size of a Latin 1 string quickly (AVX edition)
- Science and Technology links (February 12 2023)
- Bit Hacking (with Go code)
- Serializing IPs quickly in C++
January 2023
- Move or copy your strings? Possible performance impacts
- International domain names: where does https://meßagefactory.ca lead you?
- Year 2022: Scientific progress
- Science and technology links (January 15 2023)
- Care is needed to use C++ std::optional with non-trivial objects
- Transcoding Unicode with AVX-512: AMD Zen 4 vs. Intel Ice Lake
- Emojis in domain names, punycode and performance
2022 58
December 2022
- Quickly checking that a string belongs to a small set
- Science and Technology links (December 25 2022)
- Fast base16 encoding
- The size of things in bytes
- Implementing ‘strlen’ using SVE
- Checking for the absence of a string, naive AVX-512 edition
- What is the memory usage of a small array in C++?
- Science and Technology links (December 11 2022)
- Fast midpoint between two integers without overflow
- Optimizing compilers reload vector constants needlessly
November 2022
- How big are your SVE registers ? (AWS Graviton)
- Generic number compression (zstd)
- Science and Technology links (November 26 2022)
- Making all your integers positive with zigzag encoding
- What is the size of a byte[] array in Java?
- Rounding modes: std::from_chars versus strtod/strtof
- A fast function to check your floating-point rounding mode
- Measuring the memory usage of your C++ program
- Modern vector programming with masked loads and stores
October 2022
- Book Review : Template Metaprogramming with C++
- Science and Technology links (October 16 2022)
- The number of comparisons needed to sort a shuffled array: qsort versus std::sort
September 2022
- A review of elementary data types : numbers and strings
- Optimizing compilers deduplicate strings and arrays
- Science and Technology links (September 16 2022)
- Escaping strings faster with AVX-512
- Science and Technology links (September 12 2022)
August 2022
- Catching sanitizer errors programmatically
- “Hello world” is slower in C++ than in C (Linux)
- Science and Technology links (August 7 2022)
July 2022
- Comparing strtod with from_chars (GCC 12)
- Round a direction vector to an 8-way compass
- Science and Technology links (July 23 2022)
- Negative incentives in academic research
- How quickly can you convert floats to doubles (and back)?
- Filtering numbers faster with SVE on Graviton 3 processors
- Go generics are not bad
June 2022
- Looking at assembly code with gdb
- Filtering numbers quickly with SVE on Amazon Graviton 3 processors
- Memory-level parallelism : Intel Ice Lake versus Amazon Graviton 3
- Data structure size and cache-line accesses
May 2022
- Parsing JSON faster with Intel AVX-512
- Avoid exception throwing in performance-sensitive code
- Faster bitset decoding using Intel AVX-512
- Fast bitset decoding using Intel AVX-512
April 2022
- Removing characters from strings faster with AVX-512
- An overview of version control in programming
- Floats have 15-digit accuracy in their normal range
- String representations are not unique: learn to normalize!
March 2022
- Converting integers to decimal strings faster with AVX-512
- Writing out large arrays in Go: binary.Write is inefficient for large arrays
February 2022
- Enforcement by software
- The Canadian Common CV and the captured academy
- How many digits in a product?
- The end of the monopolistic web?
January 2022
2021 66
December 2021
November 2021
- Can you safely parse a double when you need a float?
- Science and Technology links (Novembre 28th 2021)
- Are tenured professors more likely to speak freely?
- Converting integers to fix-digit representations quickly
- Science and Technology links (Novembre 13rd 2021)
- Checking simple equations or inequalities with z3
- Stop spending so much time being trolled by billionaire corporations!
October 2021
- Science and Technology (October 31st 2021)
- In C, how do you know if the dynamic allocation succeeded?
- In C++, is empty() faster than comparing the size with zero?
- Science and Technology links (October 23rd 2021)
- Converting binary floating-point numbers to integers
- Science and Technology links (October 16th 2021)
- Calling a dynamically compiled function from Go
- Science and Technology links (October 10th 2021)
- For software performance, can you always trust inlining?
- Working in virtual reality
- Science and Technology links (October 3rd 2021)
- Word-aligned Bloom filters
September 2021
- Science and Technology links (September 26th 2021)
- New release of the simdjson library: version 1.0
- Science and Technology links (September 18th 2021)
- Random identifiers are poorly compressible
- How I debate
August 2021
July 2021
- Science and Technology links (July 31st 2021)
- Measuring memory usage: virtual versus real memory
- Faster sorted array unions by reducing branches
- Science and Technology links (July 10th 2021)
June 2021
- Compressing JSON: gzip vs zstd
- Science and Technology links (June 26th 2021)
- How long should you work on a problem ?
- Science and Technology links (June 12th 2021)
- Computing the number of digits of an integer even faster
May 2021
- Computing the number of digits of an integer quickly
- All models are wrong
- Science and Technology links (May 22nd 2021)
- Counting the number of matching characters in two ASCII strings
- Converting binary integers to ASCII characters: Apple M1 vs AMD Zen2
- Science and Technology links (May 15th 2021)
- Constructing arrays of Boolean values in Java
- Science and Technology links (May 1st 2021)
April 2021
- Ideal divisors: when a division compiles down to just a multiplication
- Some useful regular expressions for programmers
- A trichotomy of intellectual activity
- Science and Technology links (April 17th 2021)
- How fast can you sort arrays of integers in Java?
- My programming setup
March 2021
- Science and Technology links (March 27th 2021)
- Counting cycles and instructions on the Apple M1 processor
- Apple’s M1 processor and the full 128-bit integer product
- Science and Technology links (March 6th 2021)
- How does your programming language handle “minus zero” (-0.0)?
February 2021
- Parsing floating-point numbers really fast in C#
- Science and Technology links (February 13th 2021)
- On the cost of converting ASCII to UTF-16
- Science and Technology links (February 6th 2021)
January 2021
2020 85
December 2020
- My Science and Technology review for 2020
- Science and Technology links (December 26th 2020)
- In 2011, I predicted that the iPhone would have 1TB of storage in 2020
- Science and Technology links (December 19th 2020)
- Cognitive biases
- Virtual reality… millions but not tens of millions… yet
- Converting floating-point numbers to integers while preserving order
- ARM MacBook vs Intel MacBook: a SIMD benchmark
- ARM MacBook vs Intel MacBook
- Science and Technology (December 5th 2020)
- Interview by Adam Gordon Bell
November 2020
- Java Buffer types versus native arrays: which is faster?
- Science and Technology links (November 28th 2020)
- How fast does interpolation search converge?
- The disagreeable scientist conjecture
- Programming is social
- Double-blind peer review is a bad idea
- Science and Technology links (November 14th 2020)
- Xbox Series X and PlayStation 5: early impressions
- Benchmarking theorem provers for programming tasks: yices vs. z3
- How will the pandemic impact software programming jobs?
October 2020
- Science and Technology links (October 31st 2020)
- What the heck is the value of “-n % n” in programming languages?
- Ridiculously fast unicode (UTF-8) validation
- Science and Technology links (October 17th 2020)
- Why is 0.1 + 0.2 not equal to 0.3?
- Science and Technology links (October 3rd 2020)
September 2020
- How expensive is integer-overflow trapping in C++?
- Science and Technology links (September 19th 2020)
- Parsing floats in C++: benchmarking strtod vs. from_chars
- Good students find questions, not answers
- Science and Technology links (September 5th 2020)
- Sentinels can be faster
August 2020
- Science and Technology links (August 29th 2020)
- Science and Technology links (August 9th 2020)
- Performance tip: constructing many non-trivial objects is slow
- Science and Technology links (August 1st 2020)
July 2020
- Science and Technology links (July 25th 2020)
- Avoid character-by-character processing when performance matters
- Downloading files faster by tweaking headers
- The cost of runtime dispatch
- Science is the belief in the ignorance of experts
- Science and Technology links (July 11th 2020)
June 2020
- GNU GCC on x86 does not round floating-point divisions to the nearest value
- Science and Technology links (June 20th 2020)
- Computational overhead due to Docker under macOS
- Reusing a thread in C++ for better performance
- Science and Technology links (June 6th 2020)
- How Innovation Works (book review)
- The Go compiler needs to be smarter
May 2020
- Science and Technology links (May 30th 2020)
- Mapping an interval of integers to the whole 64-bit range, fairly?
- Programming inside a container
- Science and Technology links (May 16th 2020)
- Encoding binary in ASCII very fast
- Science and Technology links (May 2nd 2020)
April 2020
- For case-insensitive string comparisons, avoid char-by-char functions
- Sampling efficiently from groups
- Science and Technology links (April 25th 2020)
- Rounding integers to even, efficiently
- Science and Technology links (April 11th 2020)
- Multiplying backward for profit
- Science and Technology links (April 4th 2020)
March 2020
- We released simdjson 0.3: the fastest JSON parser in the world is even better!
- Science and Technology links (March 28th 2020)
- Avoiding cache line overlap by replacing one 256-bit store with two 128-bit stores
- Number of atoms in the universe versus floating-point values
- Science and Technology links (March 14th 2020)
- Fast float parsing in practice
- Science and Technology links (March 7th 2020)
- Will calling “free” or “delete” in C/C++ release the memory to the system?
February 2020
- Science and Technology links (February 29th 2020)
- Fast divisionless computation of binomial coefficients
- Science and Technology links (February 22nd 2020)
- My thoughts on how research funding is attributed in Canada to Computer Science
- Science and Technology links (February 8th 2020)
- Research should not stop with the research paper
- Science and Technology links (February 1st 2020)
January 2020
- Cost of a thread in C++ under Linux
- Science and Technology links (January 25th 2020)
- Filling large arrays with zeroes quickly in C++
- Allocating large blocks of memory: bare-metal C++ speeds
- How fast can you allocate a large block of memory in C++?
- Science and Technology links (January 11th 2020)
- How I teach database design
2019 112
December 2019
- My Science and Technology review for 2019
- Science and Technology links (December 21st 2019)
- Xor Filters: Faster and Smaller Than Bloom Filters
- A look back to my 2010 predictions for 2020
- Science and Technology links (December 14th 2019)
- Are 64-bit random identifiers free from collision?
- Amazon’s new ARM servers: Graviton 2
- Science and Technology links (December 7th 2019)
- AMD Zen 2 and branch mispredictions
- Instructions per cycle: AMD Zen 2 versus Intel
November 2019
- Better computational complexity does not imply better speed
- Memory parallelism: AMD Rome versus Intel
- Cloud computing: a story of incentives
- Science and Technology links (November 16th 2019)
- Unrolling your loops can improve branch prediction
- Adding a (predictable) branch to existing code can increase branch mispredictions
October 2019
- Parsing numbers in C++: streams, strtod, from_chars
- Science and Technology links (October 26th 2019)
- How expensive is it to parse numbers from a string in C++?
- Benchmarking is hard: processors learn to predict branches
- Mispredicted branches can multiply your running times
- Science and Technology (October 12th 2019)
- The price of a MacBook Air worldwide
September 2019
- Science and Technology links (September 28th 2019)
- Doubling the speed of std::uniform_int_distribution in the GNU C++ library (libstdc++)
- Science and Technology links (September 21st 2019)
- My kindergarten story
- How far can you scale interleaved binary searches?
- Science and Technology links (September 14th 2019)
- Speeding up independent binary searches by interleaving them
- Science and Technology links (September 7th 2019)
- Passing integers by reference can be expensive…
August 2019
- Science and Technology links (August 31st 2019)
- How fast can scancount be?
- Science and Technology links (August 24th 2019)
- Science and Technology links (August 17th 2019)
- Faster threshold queries with cache-sensitive scancount
- Science and Technology links (August 10th 2019
- Science and Technology links (August 3rd 2019)
- JSON parsing: simdjson vs. JSON for Modern C++
- A new release of simdjson: runtime dispatching, 64-bit ARM support and more
July 2019
- Science and Technology links (July 27th 2019)
- How fast can a BufferedReader read lines in Java?
- Programming competition with $1000 in prizes: make my code readable!
- Arbitrary byte-to-byte maps using ARM NEON?
- Science and Technology links (July 20th 2019)
- Science and Technology links (July 13th 2019)
- Parsing JSON quickly on tiny chips (ARM Cortex-A72 edition)
- Parsing JSON using SIMD instructions on the Apple A12 processor
- Science and Technology links (July 6th, 2019)
- A fast 16-bit random number generator?
June 2019
- Science and Technology links (June 29th 2019)
- Bounding the cost of the intersection between a small array and a large array
- Science and Technology links (June 22nd 2019)
- How fast is getline in C++?
- What should we do with “legacy” Java 8 applications?
- Science and Technology links (June 15th 2019)
- Science and Technology links (June 7th 2019)
- Nearly Divisionless Random Integer Generation On Various Systems
- Science and Technology links (June 1st 2019)
May 2019
- Science and Technology links (May 25th 2019)
- Measuring the system clock frequency using loops (Intel and ARM)
- Science and Technology links (May 18th 2019)
- Building better software with better tools: sanitizers versus valgrind
- Bitset decoding on Apple’s A12
- Setting up a ROCKPro64 (powerful single-card computer)
- Science and Technology links (May 11th 2019)
- Almost picking N distinct numbers at random
- Science and Technology links (May 4th 2019)
- Really fast bitset decoding for “average” densities
April 2019
- Science and Technology links (April 27th 2019)
- Speeding up a random-access function?
- The shopper’s dilemma: wait for new technology or buy now?
- Science and Technology links (April 20th 2019)
- Parsing short hexadecimal strings efficiently
- Science and Technology links (April 13th 2019)
- Why are unrolled loops faster?
- Science and Technology links (April 6th 2019)
March 2019
- Science and Technology links (March 30th 2019)
- Java is not a safe language
- Hasty comparison: Skylark (ARM) versus Skylake (Intel)
- Technological aging
- Science and Technology links (March 23rd 2019)
- ARM and Intel have different performance characteristics: a case study in random number generation
- The fastest conventional random number generator that can pass Big Crush?
- Don’t read your data from a straw
- Science and Technology links (March 16th 2019)
- Age and the productivity of professors
- Multiplying by the inverse is not the same as the division
- Science and Technology links (March 9th 2019)
- Should our kids use pencils or keyboards?
- Science and Technology links (March 2nd, 2019)
- Parsing JSON quickly: early comparisons in the wild
February 2019
- Science and Technology links (February 24th, 2019)
- More fun with fast remainders when the divisor is a constant
- Science and Technology links (February 16th, 2019)
- My iPad Pro experiment: almost two years later
- Science and Technology links (February 9th, 2019)
- Faster remainders when the divisor is a constant: beating compilers and libdivide
- Science and Technology links (February 3rd, 2019)
- New Web host
- Web caching: what is the right time-to-live for cached pages?
January 2019
- My blog can’t keep up: 500 errors all over
- What is the space overhead of Base64 encoding?
- Data scientists need to learn about significant digits
- Rethinking Hamming’s questions
- Science and Technology links (January 26th, 2019)
- Science and Technology links (January 19th, 2019)
- Faster intersections between sorted arrays with shotgun
- Science and Technology links (January 12th, 2019)
- Science and Technology links (January 5th, 2019)
- Memory-level parallelism: Intel Skylake versus Intel Cannonlake
2018 122
December 2018
- Important science and technology findings in 2018
- Science and Technology links (December 29th, 2018)
- Science and Technology links (December 22nd 2018)
- Fast Bounded Random Numbers on GPUs
- Sorting strings properly is stupidly hard
- Science and Technology links (December 15th 2018)
- Science and Technology links (December 8th 2018)
- Asking the right question is more important than getting the right answer
- Science and Technology links (December 1st 2018)
November 2018
- Quickly sampling from two arrays (C++ edition)
- Science and Technology links (November 24th 2018)
- Science and Technology links (November 18th 2018)
- Simple table size estimates and 128-bit numbers (Java Edition)
- Memory-level parallelism: Intel Skylake versus Apple A12/A12X
- Science and Technology links (November 10th, 2018)
- Measuring the memory-level parallelism of a system using a small C++ program?
- Science and Technology links (November 3rd, 2018)
October 2018
- Science and Technology links (October 28th, 2018)
- Is WebAssembly faster than JavaScript?
- Science and Technology links (October 20th, 2018)
- Validating UTF-8 bytes using only 0.45 cycles per byte (AVX edition)
- Validating UTF-8 bytes (Java edition)
- Nobel-prize winner Romer on innovation and higher education
- Science and Technology links (October 13th, 2018)
- Smart bracelet: my experience with the Mi Band 3
- Science and Technology links (October 6th, 2018)
- Quickly parsing eight digits
September 2018
- Quickly identifying a sequence of digits in a string of characters
- Science and Technology links (September 30th, 2018)
- Science and Technology links (September 22nd, 2018)
- On the state of virtual-reality gaming
- Science and Technology links (September 15th, 2018)
- Science and Technology links (September 8th, 2018)
- AVX-512: when and how to use these new instructions
- Per-core frequency scaling and AVX-512: an experiment
- Science and Technology links (September 1st, 2018)
August 2018
- AVX-512 throttling: heavy instructions are maybe not so dangerous
- Science and Technology links (August 24th, 2018)
- Trying harder to make AVX-512 look bad: my quantified and reproducible results
- Performance of ranged accesses into arrays: modulo, multiply-shift and masks
- Science and Technology links (August 19th, 2018)
- The dangers of AVX-512 throttling: a 3% impact on Xeon Gold processors?
- Fast strongly universal 64-bit hashing everywhere!
- Science and Technology links (August 10th, 2018)
- Science and Technology links (August 4th, 2018)
July 2018
- Getting 4 bytes or a full cache line: same speed or not?
- Science and Technology links (July 27th, 2018)
- Writing about software and building software are different jobs
- It is more complicated than I thought: -mtune, -march in GCC
- Are vectorized random number generators actually useful?
- Science and Technology links (July 21st, 2018)
- Accelerating Conway’s Game of Life with SIMD instructions
- Science and Technology links (July 15th, 2018)
- Science and Technology links (July 15th, 2018)
- Are fungi making us sick?
- Science and Technology links (July 6th, 2018)
- How quickly can you compute the dot product between two large vectors?
- Income, wealth, intelligence and the fall of the American empire
- Predicting the truncated xorshift32* random number generator
June 2018
- Science and Technology links (June 29th, 2018)
- Data processing on modern hardware
- Science and Technology links (June 24th, 2018)
- Roaring Bitmaps in JavaScript
- Science and Technology links (June 15th, 2018)
- Emojis, Java and Strings
- Science and Technology links (June 9th, 2018)
- Vectorizing random number generators for greater speed: PCG and xorshift128+ (AVX-512 edition)
- Science and Technology links (June 2nd, 2018)
May 2018
- Greater speed in memory-bound graph algorithms with just straight C code
- Science and Technology links (May 26th, 2018)
- Gender and peer review
- Graph algorithms and software prefetching
- Science and Technology links (May 18th, 2018)
- Validating UTF-8 strings using as little as 0.7 cycles per byte
- Is research sick?
- Science and Technology links (May 11th, 2018)
- How quickly can you check that a string is valid unicode (UTF-8)?
- Science and Technology links (May 5th, 2018)
- How fast can you parse JSON?
April 2018
- Is software prefetching (__builtin_prefetch) useful for performance?
- Science and Technology links (April 29th, 2018)
- Why a touch of secrecy can help creative work
- Enough with the intrusive updates!
- Science and Technology links (April 22nd, 2018)
- Iterating in batches over data structures can be much faster…
- Introducing GapminderVR: Data Visualization in Virtual Reality
- Science and Technology links (April 13th, 2018)
- For greater speed, try batching your out-of-cache data accesses
- Science and Technology links (April 7th, 2018)
- Caching hash values for speed (Swift-language edition)
March 2018
- Science and Technology links (March 30th, 2018)
- Should you cache hash values even for trivial classes?
- When accessing hash tables, how much time is spent computing the hash functions?
- When shuffling large arrays, how much time can be attributed to random number generation?
- Science and Technology links (March 23rd, 2018)
- Science and Technology links (March 16th, 2018)
- Iterating over hash sets quickly in Java
- Science and Technology links (March 9th, 2018)
- Iterating over set bits quickly (SIMD edition)
- Science and Technology links (March 2nd, 2018)
February 2018
- Vectorized shifts: are immediates faster?
- Science and Technology links (February 24th, 2018)
- Iterating over set bits quickly
- Science and Technology links (February 16th, 2018)
- Science and Technology links (February 9th, 2018)
- Don’t underestimate the nerds
- Science and Technology links (February 2nd, 2018)
January 2018
- Picking distinct numbers at random: benchmarking a brilliant algorithm (JavaScript edition)
- Science and Technology links (January 26th, 2018)
- Initializing arrays quickly in Swift: be wary of Sadun’s initializers
- Microbenchmarking is hard: virtual machine edition
- Science and Technology links (January 19th, 2018)
- Ridiculously fast base64 encoding and decoding
- Microbenchmarking calls for idealized conditions
- Science and Technology links (January 12th, 2018)
- How fast can you bit-interleave 32-bit integers? (SIMD edition)
- How fast can you bit-interleave 32-bit integers?
- Science and Technology links (January 5th, 2018)
- Can 32-byte alignment alleviate 4K aliasing?
- Don’t make it appear like you are reading your own recent writes
- Year 2017: technological highlights
- Multicore versus SIMD instructions: the “fasta” case study
2017 132
December 2017
- Science and Technology links (December 29th, 2017)
- Personal reflections on 2017
- Science and Technology links (December 22nd, 2017)
- Science and Technology links (December 15th, 2017)
- If all your attributes are independent two-by-two… are all your attributes independent?
- No, a supercomputer won’t make your code run faster
- Science and Technology links (December 8th, 2017)
- Simplistic programming is underrated
- Science and Technology links (December 1st, 2017)
November 2017
- Bit hacking versus memoization: a Stream VByte example
- Science and Technology links (November 24th, 2017)
- How often do superior alternatives fail to catch on?
- You are your tools
- Do relational databases evolve toward rigidity?
- Science and Technology links (November 17th, 2017)
- Fast exact integer divisions using floating-point operations (ARM edition)
- Fast exact integer divisions using floating-point operations
- Fast software is a discipline, not a purpose
- China is catching to the USA, while Japan is being left behind
- Science and Technology links (November 11th, 2017)
- How should you build a high-performance column store for the 2020s?
- Should computer scientists keep the Lena picture?
- Are universities an egalitarian force?
- Science and Technology links (November 3rd, 2017)
- The dual-shotgun theorem of software engineering
October 2017
- A decade of using text-mining for citation function classification
- Synthesized hash functions in Swift 4.1 (and why Java programmers should be envious)
- Science and Technology links (October 27th, 2017)
- Fast integer compression with Stream VByte on ARM Neon processors
- Science and Technology links (October 20th, 2017)
- Why virtual reality (VR) might matter more than you think….
- The Harvey-Weinstein scientific model
- Science and Technology links (October 13th, 2017)
- Bee-level intelligence
- Post-Blade-Runner trauma: From Deep Learning to SQL and back
- On Blade Runner 2049
- Science and Technology links (October 6th, 2017)
- My iPad Pro experiment
September 2017
- Stream VByte: first independent assessment
- How smart is Swift with abstraction? A trivial experiment with protocols
- Science and Technology links (September 29th, 2017)
- Stream VByte: breaking new speed records for integer compression
- Runtime constants: Swift
- Runtime constants: Go vs. C++
- Benchmarking algorithms to visit all values in an array in random order
- Science and Technology links (September 22th, 2017)
- Swift as a low-level programming language?
- Visiting all values in an array exactly once in “random order”
- Computing the inverse of odd integers
- The Xorshift1024* random number generator fails BigCrush
- How fast are malloc_size and malloc_usable_size in C?
- Science and Technology links (September 15th, 2017)
- Scholarship is conservative, tinkering is progressive
- The Xorshift128+ random number generator fails BigCrush
- Science and Technology links (September 8th, 2017)
- Go does not inline functions when it should
- Science and Technology links (September 1st, 2017)
- DeepL is as good as human translators?
August 2017
- Parsing comma-separated integers in Java
- Quantifying the performance benefits of Go 1.9 on bitsets
- Science and Technology links (August 25th, 2017)
- Testing non-cryptographic random number generators: my results
- “Cracking” random number generators (xoroshiro128+)
- Science and Technology links (August 18th, 2017)
- On Melissa O’Neill’s PCG random number generator
- Bubbling up is lowering empathy at a civilization scale
- Optimizing polynomial hash functions (Java vs. Swift)
- Science and Technology links (August 11th, 2017)
- Science and Technology links (August 4th, 2017)
July 2017
- Science and Technology links (July 27th, 2017)
- Science and Technology links (July 21st, 2017)
- What is “modern” programming?
- Science and Technology links (July 14th, 2017)
- Pruning spaces faster on ARM processors with Vector Table Lookups
- Science and Technology links (July 7th, 2017)
- Are your strings immutable?
- Pruning spaces from strings quickly on ARM processors
June 2017
- Science and Technology links (July 1st, 2017)
- Video game review… Nier: Automata
- Science and Technology links (June 23rd, 2017)
- Top speed for top-k queries
- Science and Technology links (June 16th, 2017)
- QuickSelect versus binary heap for top-k queries
- Science and Technology links (June 9th, 2017)
- Quickly returning the top-k elements: computer science vs. the real world
- Science and Technology links (June 2nd, 2017)
May 2017
- Unsigned vs. signed integer arithmetic
- Science and Technology links (May 26th, 2017)
- Counting exactly the number of distinct elements: sorted arrays vs. hash sets?
- Science and Technology links (May 18th, 2017)
- Educational backgrounds of the CEOs of the top corporations in the US
- Has the Internet killed real estate agents yet?
- My review of Change Agent: A Novel (by Daniel Suarez)
- Science and Technology links (May 12th, 2017)
- Signed integer division by a power of two can be expensive!
- Science and Technology links (May 5th, 2017)
April 2017
- Science and Technology links (April 28th, 2017)
- Quickly pruning elements in SIMD vectors using the simdprune library
- The real lesson of the human genome project
- Science and Technology links (April 21st, 2017)
- “I have read all of your papers”
- Science and Technology links (April 14th, 2017)
- Removing duplicates from lists quickly
- Robots have not yet stolen our jobs
- Science and Technology links (April 7th, 2017)
- How much are elite universities worth?
- My review of ‘Ghost in the Shell’ (2017)
March 2017
- Compressed bitset libraries in C and C++
- Science and Technology links (March 30, 2017)
- Never reason from averages
- The technology of Mass Effect Andromeda
- Science and Technology links (March 24, 2017)
- Does software performance still matter?
- Science and Technology links (March 17, 2017)
- Stable Priority Queues?
- Science and Technology links (March 10, 2017)
- College and inequality
- The technology of Logan (2017 Wolverine movie set in 2029)
February 2017
- How many floating-point numbers are in the interval [0,1]?
- Tech jobs are already largely automated
- Thoughts on my new laptop (Dell XPS 13 with Windows 10)
- How fast can you count lines?
- Sorting sorted arrays in Swift
- Montreal researchers “prove” that aging is the result of a genetic program
January 2017
- Maps and sets can have quadratic-time performance
- How expensive are the union and intersection of two unordered_set in C++?
- Deep learning: the silver bullet?
- Resizing arrays can be slow in Swift
- How quickly can you remove spaces from a string?
- Best programming language for high performance (January 2017)?
- Predicting the future job market: the librarians
- Betting against techno-unemployment
2016 81
December 2016
- Can your C compiler vectorize a scalar product?
- The threat of technological unemployment
- Don’t let the experts define science!
- Performance overhead when calling assembly from Go
- What is a useful theory?
- Science and technology: what happened in 2016
- How to build robust systems
- Don’t assume that safety comes for free: a Swift case study
November 2016
- Getting a job in the software industry
- Software evolves by natural selection
- On metadata
- Framed in the past
October 2016
- My review of Deus Ex: Mankind Divided (video game)
- Who is keeping an eye on the tech companies?
- Update to my VR bet with Greg Linden
- Intel will add deep-learning instructions to its processors
- A case study in the performance cost of abstraction (C++’s std::shuffle)
- Variable-length strings can be expensive
September 2016
- Can Swift code call C code without overhead?
- Sorting already sorted arrays is much faster?
- Swift versus Java : the bitset performance test
- My thoughts on Swift
- The rise of dark circuits
- The memory usage of STL containers can be surprising
- The new C standards are worth it
- Starting high school in 2016
- Function signature: how do you order parameters?
- Are there too many people?
August 2016
- The rate-of-living theory is wrong
- Innovation as a Fringe Activity
- Faster dictionary decoding with SIMD instructions
- How many reversible integer operations do you know?
- Let us talk about the Luddite problem…
- Combine smart people with crazily hard projects
July 2016
- Common sense in artificial intelligence… by 2026?
- Accelerating PHP hashing by “unoptimizing” it
- Augmented reality becomes mainstream
- Virtual Reality: First impressions with the HTC Vive
June 2016
- Fast random shuffling
- A fast alternative to the modulo reduction
- I do not use a debugger
- How fast is tabulation-based hashing? The downsides of Zobrist…
- The strange case of the copyright of open-source software
- To be smart, work on problems you care about
May 2016
- Enough with the bogus medical studies!
- The surprising cleverness of modern compilers
- We are passing the Turing test right on schedule
- Professors intentionally slow down science to make themselves look better
- Email: how to be polite and efficient
April 2016
- Is software a neutral agent?
- We know a lot less than we think, especially about the future.
- How will you die? Cancer, Alzheimer’s, Stroke?
- The powerful hacker culture
- No more leaks with sanitize flags in gcc and clang
- How close are AI systems to human-level intelligence? The Allen AI challenge.
- Narrative illusions
- Being shallow is rational
- Could virtual-reality make us smarter?
- Setting up a “robust” Minecraft server (Java Edition) on a Raspberry Pi
March 2016
- What thirty years of technology looks like: the early high-school years
- Declarative programming is a dead-end for the lowly programmer
- What the heck is interesting research?
- Ranged random-number generation is slow in Python…
- Biology and computing are more alike than you think…
- Artificial intelligence is mostly a matter of engineering?
- Web plasticity
- It is easy to lose sight of why we do things…
- Statistics is overrated: the rise of data science
February 2016
- My next bet: VR is going to take off in the next 3 years…
- Lost my bet: the PC isn’t dead… yet
- Don’t beat them, make them irrelevant
- Things you have probably not seen coming…
- Cultivating weirdness
- Beyond the PC toward virtual and augmented reality
- Imagining the future trumps intelligence…
- Default random-number generators are slow
January 2016
2015 59
December 2015
- My most popular posts in 2015 (part II)
- My most popular posts in 2015… (part I)
- Your software should follow your hardware: the CLHash example
- The courage to face what we do not understand
- The virtuous circle of fantasy
- Amazing technologies from the year 2015…
- Are we really testing an anti-aging pill? And what does it mean?
- The mysterious aging of astronauts
November 2015
- Being ever more productive… is a duty
- Is peer review slowing down science and technology?
- Identifying influential citations: it works live today!
- Is artificial intelligence going to wipe us out in 30 years?
October 2015
- Crazily fast hashing with carry-less multiplications
- Faster hashing without effort
- On the memory usage of maps in Java
- Where are all the search trees?
- Secular stagnation: we are trimming down
- Predicting the near future is a crazy, impossible game
- JavaScript and fast data structures: some initial experiments
- Foolish enough to leave important tasks to a mere human brain?
September 2015
- Could big data and wearables help the fight against diseases?
- The “consensus” is sometimes wrong
- The hacker culture is winning
- Hackers vs. Academics: who is responsible for progress?
- Revisiting Vernor Vinge’s “predictions” for 2025
August 2015
- What a technology geek sees when traveling abroad
- Computing in 2025… what can we expect?
- The dystopia you should fear
- The exponential cost of progress
- My predictions for 2040
- Coping with accelerating progress: no more five-year plan
July 2015
- What ten years teaching a technical topic in college taught me…
- We need to go beyond the web
- Going beyond our limitations
- Simple techniques to improve your health in 2015
- Would an artificial intelligence “grow old”?
June 2015
May 2015
- Are you a techno-optimist? (A review of Tomorrowland)
- Putting the evil academic publishers in perspective
- Old people are not very sharp, are they?
- Do better written papers get more citations?
April 2015
- Basic email skills
- To be creative, work alone
- Was life better in the 1970s?
- Evil abbreviations in programming languages
March 2015
- Accelerating intersections with SIMD instructions
- Good ideas are overrated
- Other useless school trivia: the quadratic formula
- On rote memorization and antiquated skills
- The mathematics we teach our kids…
February 2015
- The hopeless ones become college professors
- Large well-funded laboratories…
- Lectures are the lazy person’s approach to education
- Your brain and its software patches
- How do you become an expert?
January 2015
2014 55
December 2014
- How to learn efficiently
- MOOCs are closed platforms… and probably doomed
- Optimizing polymorphic code in Java
- The Smartest Kids in the World: stories from Finland, Poland and South Korea
- Academia as an ‘anxiety machine’
- When bad ideas will not die: from classical AI to Linked Data
November 2014
- Perfectionism is not the same as having high standards
- Why competitive people are often dumb and boring
- The hubris of teachers
- Forcefully boring young people is necessary…
October 2014
- Bricolage by smart people
- Having your cat declawed means having its fingers amputated
- Coffee is probably not killing your productivity
September 2014
- The week-end freedom test
- Academia or industry?
- Referendums and sovereignty
- Transemployment: creating jobs out of thin air
- Paper books are the new vinyl records
August 2014
- Though unrefereed, arXiv has a better h-index than most journals…
- Expert performance and training: what we really know
- Should we train more people as programmers?
- A culture of envy
- The insanity of research grant proposals
July 2014
- Predicting your future performance
- Potentially bogus freelancing advice
- Extrinsic motivations are harmful…
- True success is more than winning a zero-sum game
June 2014
May 2014
- Books on my desk (May 2014)
- You shouldn’t use a spreadsheet for important work (I mean it)
- Why I still play video games
- Decoding over 4 billion integers per second in C
- Does moving to a better university make you a better researcher?
- Have Americans reached peak scholarship?
April 2014
- Seth Roberts and research
- How are the bees doing?
- Do you realize that you are using random hashing?
- Science: ideals vs. reality
- The financial value of open source software
- Probabilities and the C++ standard
- Don’t study latin if you want to become a better programmer
March 2014
February 2014
- Probabilities in computing: they may not mean what you think they mean
- The myth of the scientist as a disinterested individual
- Getting good performance in Go by rewriting parts in C?
- The rise to power of computer scientists
- Compression is never worth slowing down your code?
January 2014
2013 64
December 2013
- When delegating… consider quality, maintenance and learning
- Fastest way to compute the greatest common divisor
- On human intelligence… a perspective from computer science
- Even faster bitmap decoding
- The day I subscribed to a dozen porn sites…
- Do we need academic copyright? Some historical perspective
- Is programming as cool as basketball?
- If you are serious about climate change… stop attending conferences?
November 2013
- Are regular folks doomed?
- Not all citations are equal: identifying key citations automatically
- Life is short: pick good ideas!
- Who plays nice? Who plays rough?
- Infinite storage: we are almost there…
October 2013
- People who make you feel stupid…
- We need more than spam filters: we need bona fide assistants!
- Toward Star Trek economics
- What are the genuinely useful ideas in programming?
- The written word took over the world
September 2013
- Why can’t you find a job with a Stanford computer science PhD?
- What do computer scientists know about performance?
- To solve hard problems, you need to use bricolage
- Are 8-bit or 16-bit counters faster than 32-bit counters?
- To succeed, adopt the post-industrial view
August 2013
- Funding science: When bureaucrats get out of control
- Picking N distinct numbers at random: how to do it fast?
- Privacy and the Internet: Is Facebook evil?
July 2013
- Honey bees are not going extinct
- Big-O notation and real-world performance
- Should computer scientists run experiments?
- Fast integer compression in Java
June 2013
- Staying sharp requires “intellectual gardening”
- Hashing and the Birthday paradox: a cautionary tale
- Meetings are like sex
- Why I never give straight answers
May 2013
- Three questions about e-learning in college
- A criticism of computer science: models or modèles?
- How to be effective at open source: by programmers, for programmers
April 2013
- P equal to NP and all that
- You probably shouldn’t use a spreadsheet for important work
- Share your software early: the Reinhart-Rogoff case
- The irony of “we are the 99 percent”
- Do we lose intelligence and creativity as we grow older?
- We are sentenced to permanent cognitive stretching
- We need to get a lot better at imagining the future
March 2013
- Advanced tips for dealing with your email inbox
- We are getting smarter as a matter of survival
- Is genetically engineered intelligence worth it?
- Current Daylight saving time policies are insane
- Do NULL markers in SQL cause any harm?
- Where are the “big problem” jobs?
February 2013
- Does academic research cause economic growth?
- Peer review without journals or conferences
- What kind of researcher are you?
- We are publishing a lot more! How will we cope?
- The big-O notation is a teaching tool
- How fast should your dynamic arrays grow?
January 2013
2012 53
December 2012
- Why do students pay for the research professors do?
- A simple trick to get things done even when you are busy
November 2012
- Why I like the new C++
- What I do with my time
- The learning pill
- Fast sets of integers
- Should you follow the experts?
October 2012
- Is reading memory faster than writing on a PC?
- When is a bitmap faster than an integer list?
- You cannot scale creativity
- Will I get a job with this degree?
September 2012
- How well does peer review work?
- How to be happier while annoying your wife
- Fast integer compression: decoding billions of integers per second
- Will tablets kill PCs?
- Organizations would not pass the Turing test
- Your programming language does not know about elementary mathematics
August 2012
- To improve your intellectual productivity
- Does time fix all?
- On feeding your CPU with data
- A post-industrial point of view
July 2012
- The Internet is a product of the post-industrial age
- Is C++ worth it?
- Why we make up jobs out of thin air
- Bytes or octets?
June 2012
- Which is fastest: read, fread, ifstream or mmap?
- Do not waste time with STL vectors
- On the quality of academic software
May 2012
- Data alignment for speed: myth or reality?
- Creating incentives for better science
- Summer reading recommendations
April 2012
- Punk money: how you can print your own currency… legally
- Computer scientists need to learn about significant digits
- Let us abolish page limits in scientific publications
- How to manipulate the masses by language alone
- Bit packing is fast, but integer logarithm is slow
- It is what you do, not what you own
March 2012
- Publicly available large data sets for database research
- Do we need copyright?
- From counting citations to measuring usage (help needed!)
- How fast is bit packing?
- I’m an introvert. And that’s ok.
February 2012
- What happens when you get more Ph.D.s?
- Bitmaps are surprisingly efficient
- Effective compression using frame-of-reference and delta coding
January 2012
- Two rules for teaching in the XXIst century
- How to revise research papers after receiving harsh reviews
- Open access journals in Computer Science
- Should you boycott academic publishers?
- Use random hashing if you care about security?
- Open science: why is it so hard?
- Do we need patents?
- Are you a gold prospector, or a construction worker?
2011 64
December 2011
- My favorite posts from 2011
- Compressing document-oriented databases by rewriting your documents
- Dealing with harsh criticism
November 2011
- 3 surprising facts about the computation of scalar products
- Are Relational Databases good for anything anymore?
- Where do debt, credit and currencies come from?
- Real scientists never report fraud
- My favorite LaTeX editor for MacOS: Texpad
October 2011
- It is not where you work, but who you work with
- How database design fails us, and what to do about it
- True scientists are irreverent
- Why aren’t we getting richer? The scarring tissue theory
- Where does innovation come from?
September 2011
- Two 32-bit hash functions from a 64-bit hash function?
- Emerging knowledge is a private business
- You think that users are faceless objects? You are obsolete!
- Science is self-regulatory… really?
August 2011
- Why can’t hash tables preserve the order of keys?
- Linux and the financial crisis
- Better job ads
- The Web is killing database systems
- Fast computation of scalar products, and some lessons in optimization
- Usury and the collapse of empires
- Pick one: determinism or fairness
- Scientists and central planning
July 2011
- What the Internet wants me to read (summer 2011)
- Sentience is indescribable
- The myth of the unavoidable specialization
June 2011
- On being happy
- Probabilities are unnecessary mathematical artifacts
- The language interpreters are the new machines
- Is Wikipedia anti-intellectual?
- Why I still program
May 2011
- Automation will make you obsolete, no matter who you are
- The perils of filter-then-publish
- You cannot refuse to publish our paper because…
- Time-saving versus work-inducing software
- Scaling MongoDB
- Improve your impact with abundance-based design
April 2011
- Is science more art or industry?
- The case against double-blind peer review
- Ten things Computer Science tells us about bureaucrats
- The Open Java API for OLAP is growing up!
- How information technology is really built
- You can assess trends by the status of the participants
March 2011
- Social Web or Tempo Web?
- Know the biases of your operating system
- Governments should stop funding higher education?
- Breaking news: HTML+CSS is Turing complete
- Jobless recovery, the Luddite fallacy and the 4-hour workweek
February 2011
- Innovation and model boundaries
- Social Media is subversive, but maybe not how you think
- Taking scientific publishing to the next level
- China: the new scientific superpower?
January 2011
- Not even eventually consistent
- Turning vanity publishing on its head
- On the monetary value of an education, and bad statistics
- Book review: Statistical Analysis with R
- Innovating without permission
- Demarchy and probabilistic algorithms
- Our institutions are limited by the pre-digital technology
- So, you want to be a mad scientist?
- If human population grew at the pace of computer storage…
- Five surprising changes in 2010
2010 67
December 2010
- Make your own programmable digital thermometer in an hour
- For your in-memory databases, do you really need an index?
- The rise of scientific journalism
- A taxonomy for the suppression of dissent
- Who will need database administrators in 2020?
- Three of my all-time most popular blog posts
- Over-normalization is bad for you
November 2010
- Why do we need database joins?
- Remarkable scientists without a wikipedia page
- Why you may not like your job, even though everyone envies you
- You probably misunderstand XML
- Public funding for science?
- How do search engines handle special characters? Should you care?
October 2010
- Who is going to need a database engine in 2020?
- The future is already here: it’s just not very evenly distributed
- Can you trust fixed-bit computer arithmetic?
September 2010
August 2010
- Write a Twitter application in 5 minutes
- Manifesto for Half-Arsed Academic Research
- Counterintuitive factors determining research productivity
- Working long hours is stupid
- How to get everyone talking about your research!
July 2010
- Is multiplication slower than addition?
- General versus domain intelligence
- Summer reading: my recommendations (2010)
- The five most important algorithms?
June 2010
- NoSQL or NoJoin?
- The fallacy of absolute numbers
- Indexing XML
- Lack of steady trajectories and failure
- Academic publishing is archaic
- Maximizing your impact as a researcher (guest post)
- How do we choose research journals?
- Computer Science is shallow
May 2010
- Sorting is fast and useful
- Chinese researchers publish more research papers
- Acceptance rate versus impact
- Toward data-driven science
April 2010
- What is a good University?
- The mythical reproducibility of science
- On the design of design
- What I like about my job
- Are there too many Ph.D.’s?
- External-Memory Sorting in Java : the First Release
- External-Memory Sorting in Java
March 2010
- The paperless campus: still a long way to go
- Write good papers: my slides
- So, you know what’s important?
- External-memory shuffling in linear time?
- Which is faster: integer addition or XOR?
- Language, Mathematics and Programming
- Who the heck got Universities into the email business?
- Is programming “technical”?
February 2010
- Most common questions about recommender systems…
- The best software developers are great at Mathematics?
- Open Sourcing your software hurts your competitiveness as a researcher?
- Trading latency for quality in research
- Where to get your ebooks?
January 2010
- Getting serious about online teaching
- You know your research is original when…
- Writing tools to improve your research productivity
- The fundamental properties of computing
- The end of ‘mass universities’
- Actual programming with HTML and CSS (without javascript)
- Database Questions for 2010: What’s On My Mind
2009 103
December 2009
- My best blog posts (2009)
- Entropy-efficient Computing
- Run-length encoding (part 3)
- Why you should be a global warming skeptic
November 2009
- Run-length encoding (part 2)
- Run-length encoding (part I)
- More database compression means more speed? Right?
- Which should you pick: a bitmap index or a B-tree?
- Procrastination can be your friend
- Reading recommendation: Saturn’s children by Charles Stross
October 2009
- Top 25 Canadian Universities by Research Funding (2009)
- The secret behind radical innovation
- Become independent of peer review
- Open Access is the short-sighted fight
- How to win academic debates
- Working with industry helps researchers?
- Getting a Ph.D. for the money?
- What is more fundamental: Physics or Computer Science?
- Sensible hashing of variable-length strings is impossible
- A Simplified Open Publishing Manifesto
September 2009
- The most important Theoretical Computer Science problem is inconsequential
- Relational databases: are they obsolete?
- The hard truth about research grants
- How things change: Cheaters are Innovators
- Where do the best mathematicians come from?
- Changing your perspective: horizontal, vertical and hybrid data models
- Toward author-centric science
- Why I am not publishing in PLoS One, yet
August 2009
- Attributes of good research
- Trading compression for speed with vectorization
- To be smarter, ignore external rewards
- Scifi book recommendations from my summer list: Reynolds, Hamilton and Weber’s Safehold
- Open Access: just for articles!
- A recipe for interesting Computer Science research papers
- Scientists and their emotions
- Do hash tables work in constant time?
- Picking a web page at random on the Web
- A review of “Hello World: Computer Programming for Kids and Other Beginners”
- Why I hardly ever blog about my ongoing research
July 2009
- Netflix game gets exciting: BellKor’s Pragmatic Chaos is passed by The Ensemble
- Determinants of faculty research productivity
- A few things American academics should know
- What FriendFeed got wrong
- Pedagogy, innovation and convenience
- After Netflix? What next?
- Design a recommender system: they read your resume
- Column stores and row stores: should you care?
- Is collaboration correlated with productivity?
June 2009
- Netflix competition is over?
- Physical tools to improve research productivity
- Is Open Access publishing the solution? Really?
- Some shameful facts about myself
- Death to the 3-hour exam
- Why senior researchers and managers should analyze data themselves…
- The roots of plagiarism are deep
May 2009
- Stop generating metadata and access the full content!
- Make your research papers easy to skim
- A researcher’s garden
- Promoted to full professor
- Reinventing university education? Practical ideas…
- Research interests should be short-lived?
- How peer review is supposed to help you!
April 2009
- End the University as We Know It: My Commentary
- Quantum databases: what are they good for?
- How to initiate collaboration in science… with anyone!
- The primary and secondary benefits of e-networking
- e-Learning people: my top four
- Why are dynamic languages easier than static languages?
- Its official: the standard programming language for multidimensional databases is MDX
March 2009
- A taxonomy of Computer Science researchers
- Social Software… toys or productivity?
- Research productivity: some paths less travelled
- Gardening and research
- Are your research papers telling original stories?
- On academic branding…
- The missing research tool…
February 2009
- Are solo authors less cited?
- Students using podcasting and skipping class… do better!
- How to fund research properly
- If you could only write one more research paper…
- Solving new and difficult theory problems… without looping into oblivion
- Blogging is part of my day job
- What I have learned about life from war games
- Academic applied research is… unapplicable
- Honesty is charisma
- Skip the Ph.D., go straight to research
- Compressed bitmaps in Java
- One of the fathers of academic blogging is back
- Advice to upcoming Ph.D.s
January 2009
- Universities and the recession
- How to ask for a scholarship
- What comes first, theory or experiments?
- Why I write bad papers (sometimes)
- Emotions killing your intellectual productivity
- Turn your weaknesses into strengths
- The Claremont report on database research
- Must a professor grade his students?
- How do I automatically lock myself out of Google Mail?
- Finish this sequence of equalities…
- The purpose of peer review
- Progress is continuous by nature
- How many deleted sections do you write?
- Favorite posts for 2008