41554 blogs · [ { "id": "01a087d6-35eb-72e8-92d1-5292ef73c06e", "title": "Data Science in the Age of AI", "url": "https://www.robinlinacre.com/data_science_age_ai/", "published_at": "2026-08-30T00:00:00+00:00" }, { "id": "01a087d6-35eb-72e8-92d1-5292ef7bff00", "title": "letterpaths: or how LLMs can be good even when they're bad", "url": "https://www.robinlinacre.com/letterpaths_llms_good_even_when_bad/", "published_at": "2026-06-15T00:00:00+00:00" }, { "id": "01a087d6-35eb-72e8-92d1-5292efc25723", "title": "Optimising DuckDB performance on large EC2 instances", "url": "https://www.robinlinacre.com/optimising_duckdb_performance_large_ec2_instances/", "published_at": "2026-05-18T00:00:00+00:00" }, { "id": "01a087d6-35eb-72e8-92d1-5292efd0325d", "title": "Letterpaths - a free library for teaching cursive writing", "url": "https://www.robinlinacre.com/letterpaths_blog/", "published_at": "2026-04-19T00:00:00+00:00" }, { "id": "01a087d6-35eb-72e8-92d1-5292f02d04b7", "title": "Splink or Swim: The Benefits of Being Small Enough To Fail", "url": "https://www.robinlinacre.com/splink_or_swim/", "published_at": "2026-02-24T00:00:00+00:00" }, { "id": "01a087d6-35eb-72e8-92d1-5292f08a46a3", "title": "Respectful use of AI in software development teams", "url": "https://www.robinlinacre.com/respectful_use_of_ai/", "published_at": "2026-01-12T00:00:00+00:00" }, { "id": "01a087d6-35eb-72e8-92d1-5292f1403c71", "title": "Measuring the accuracy of record linkage", "url": "https://www.robinlinacre.com/measuring_data_linking_accuracy/", "published_at": "2025-11-18T00:00:00+00:00" }, { "id": "01a087d6-35eb-72e8-92d1-5292f17bc7cd", "title": "Using a fault tolerant trie for address matching", "url": "https://www.robinlinacre.com/fault_tolerant_trie/", "published_at": "2025-09-23T00:00:00+00:00" }, { "id": "01a087d6-35eb-72e8-92d1-5292f1d79809", "title": "Building Accurate Address Matching Systems", "url": "https://www.robinlinacre.com/address_matching/", "published_at": "2025-06-29T00:00:00+00:00" }, { "id": "01a087d6-35eb-72e8-92d1-5292f2cac62e", "title": "Putting Scaffolding Around Vibe Coding to Build More Complex Apps", "url": "https://www.robinlinacre.com/structured_vibe_coding/", "published_at": "2025-05-18T00:00:00+00:00" }, { "id": "01a087d6-35eb-72e8-92d1-5292f2f79e25", "title": "Why DuckDB is my first choice for data processing", "url": "https://www.robinlinacre.com/recommend_duckdb/", "published_at": "2025-03-16T00:00:00+00:00" }, { "id": "01a087d6-35eb-72e8-92d1-5292f3620101", "title": "An alternative way to think about predicted probabilities in the Fellegi Sunter model", "url": "https://www.robinlinacre.com/alternative_prob_random_match/", "published_at": "2025-02-18T00:00:00+00:00" }, { "id": "01a087d6-35eb-72e8-92d1-5292f3bd1f0e", "title": "Live DuckDB WASM Splink model", "url": "https://www.robinlinacre.com/live_splink/", "published_at": "2025-02-03T00:00:00+00:00" }, { "id": "01a087d6-35eb-72e8-92d1-5292f4593e0e", "title": "Graph editor for illustrating clustering concepts (graph playground)", "url": "https://www.robinlinacre.com/graph_playground_iframe/", "published_at": "2025-01-31T00:00:00+00:00" }, { "id": "01a087d6-35eb-72e8-92d1-5292f4f3ba4f", "title": "AI probably won't replace me in 2025", "url": "https://www.robinlinacre.com/llms_in_2025/", "published_at": "2025-01-01T00:00:00+00:00" }, { "id": "01a087d6-35eb-72e8-92d1-5292f5d68f65", "title": "The emerging impact of LLMs on my productivity", "url": "https://www.robinlinacre.com/two_years_of_llms/", "published_at": "2024-12-08T00:00:00+00:00" }, { "id": "01a087d6-35eb-72e8-92d1-5292f63175e1", "title": "Splink: Transforming data linking through open source collaboration", "url": "https://www.robinlinacre.com/transforming_data_linking_open_source/", "published_at": "2024-10-02T00:00:00+00:00" }, { "id": "01a087d6-35eb-72e8-92d1-5292f6e48a85", "title": "Connected components visualisation", "url": "https://www.robinlinacre.com/connected_components/", "published_at": "2024-09-21T00:00:00+00:00" }, { "id": "01a087d6-35eb-72e8-92d1-5292f7212e6b", "title": "Match weight calculator", "url": "https://www.robinlinacre.com/match_weight_calculator/", "published_at": "2024-09-02T00:00:00+00:00" }, { "id": "01a087d6-35eb-72e8-92d1-5292f73987aa", "title": "Super-fast deduplication of large datasets using Splink and DuckDB", "url": "https://www.robinlinacre.com/fast_deduplication/", "published_at": "2024-01-18T00:00:00+00:00" }, { "id": "01a087d6-35eb-72e8-92d1-5292f775cd94", "title": "Why Probabilistic Linkage is More Accurate than Fuzzy Matching For Data Deduplication", "url": "https://www.robinlinacre.com/fellegi_sunter_accuracy/", "published_at": "2023-10-24T00:00:00+00:00" }, { "id": "01a087d6-35eb-72e8-92d1-5292f78852c0", "title": "Thoughts and questions about the short term impact of LLMs on knowledge workers", "url": "https://www.robinlinacre.com/llm_short_term_thoughts_questions/", "published_at": "2023-10-19T00:00:00+00:00" }, { "id": "01a087d6-35eb-72e8-92d1-5292f833e1aa", "title": "Visualising updating a prior", "url": "https://www.robinlinacre.com/posterior_treemap/", "published_at": "2023-10-18T00:00:00+00:00" }, { "id": "01a087d6-35eb-72e8-92d1-5292f8c1e190", "title": "Computing the Fellegi Sunter model", "url": "https://www.robinlinacre.com/computing_fellegi_sunter/", "published_at": "2023-10-02T00:00:00+00:00" }, { "id": "01a087d6-35eb-72e8-92d1-5292f97501e0", "title": "m and u values in the Fellegi-Sunter model", "url": "https://www.robinlinacre.com/m_and_u_values/", "published_at": "2023-09-22T00:00:00+00:00" }, { "id": "01a087d6-35eb-72e8-92d1-5292fa437a5f", "title": "Partial match weights", "url": "https://www.robinlinacre.com/partial_match_weights/", "published_at": "2023-09-20T00:00:00+00:00" }, { "id": "01a087d6-35eb-72e8-92d1-5292faca2c03", "title": "The relationship between probabilities, match weights and Bayes factors", "url": "https://www.robinlinacre.com/prob_bf_mw/", "published_at": "2023-07-07T00:00:00+00:00" }, { "id": "01a087d6-35eb-72e8-92d1-5292fbb9ab8d", "title": "Splink and the Open Source Dividend", "url": "https://www.robinlinacre.com/open_source_dividend/", "published_at": "2023-03-09T00:00:00+00:00" }, { "id": "01a087d6-35eb-72e8-92d1-5292fbd1d394", "title": "SQL should be the default choice for data transformation logic", "url": "https://www.robinlinacre.com/recommend_sql/", "published_at": "2023-01-30T00:00:00+00:00" }, { "id": "01a087d6-35eb-72e8-92d1-5292fc607bd6", "title": "Why parquet files are my preferred API for bulk open data", "url": "https://www.robinlinacre.com/parquet_api/", "published_at": "2023-01-09T00:00:00+00:00" }, { "id": "01a087d6-35eb-72e8-92d1-5292fc7ddf79", "title": "Why don't you just", "url": "https://www.robinlinacre.com/just/", "published_at": "2022-11-11T00:00:00+00:00" }, { "id": "01a087d6-35eb-72e8-92d1-5292fd370a0a", "title": "The Intuition Behind the Use of Expectation Maximisation to Train Record Linkage Models", "url": "https://www.robinlinacre.com/em_intuition/", "published_at": "2022-10-14T00:00:00+00:00" }, { "id": "01a087d6-35eb-72e8-92d1-5292fdc6747f", "title": "Splink 3: Fast, accurate and scalable linkage in Python", "url": "https://www.robinlinacre.com/splink_3/", "published_at": "2022-08-05T00:00:00+00:00" }, { "id": "01a087d6-35eb-72e8-92d1-5292fdd26f24", "title": "m and u probability generator with starting values", "url": "https://www.robinlinacre.com/m_u_generator_starting/", "published_at": "2021-11-15T00:00:00+00:00" }, { "id": "01a087d6-35eb-72e8-92d1-5292fe680d68", "title": "Are more complex probabilistic linkage models more accurate? Part 2, unsupervised learning", "url": "https://www.robinlinacre.com/comparing_splink_models_unsupervised/", "published_at": "2021-11-05T00:00:00+00:00" }, { "id": "01a087d6-35eb-72e8-92d1-5292ff046f23", "title": "Are more complex probabilistic linkage models more accurate? Part 1, supervised learning", "url": "https://www.robinlinacre.com/comparing_splink_models/", "published_at": "2021-11-01T00:00:00+00:00" }, { "id": "01a087d6-35eb-72e8-92d1-5292ff46f158", "title": "The Thorniest Problem of Building an Analytical Platform", "url": "https://www.robinlinacre.com/thorniest_problem_of_analytical_platforms/", "published_at": "2021-10-29T00:00:00+00:00" }, { "id": "01a087d6-35eb-72e8-92d1-5292ff60a9ad", "title": "The carbon impact of switiching to an electric car", "url": "https://www.robinlinacre.com/carbon_electric_car/", "published_at": "2021-09-03T00:00:00+00:00" }, { "id": "01a087d6-35eb-72e8-92d1-5293001578ad", "title": "m and u probability generator", "url": "https://www.robinlinacre.com/m_u_generator/", "published_at": "2021-06-10T00:00:00+00:00" }, { "id": "01a087d6-35eb-72e8-92d1-529300b16e7d", "title": "Dependencies between match weights", "url": "https://www.robinlinacre.com/match_weight_dependencies/", "published_at": "2021-06-10T00:00:00+00:00" }, { "id": "01a087d6-35eb-72e8-92d1-529300ce9889", "title": "Understanding match weights in the Fellegi Sunter model", "url": "https://www.robinlinacre.com/understanding_match_weights/", "published_at": "2021-05-23T00:00:00+00:00" }, { "id": "01a087d6-35ec-72ab-8409-51d5cfd84291", "title": "Visualising the Fellegi Sunter model", "url": "https://www.robinlinacre.com/visualising_fellegi_sunter/", "published_at": "2021-05-22T00:00:00+00:00" }, { "id": "01a087d6-35ec-72ab-8409-51d5d064020d", "title": "Maths of Fellegi Sunter (old version)", "url": "https://www.robinlinacre.com/archived_maths_fellegi_sunter/", "published_at": "2021-05-21T00:00:00+00:00" }, { "id": "01a087d6-35ec-72ab-8409-51d5d112ace4", "title": "The mathematics of the Fellegi Sunter model", "url": "https://www.robinlinacre.com/maths_of_fellegi_sunter/", "published_at": "2021-05-21T00:00:00+00:00" }, { "id": "01a087d6-35ec-72ab-8409-51d5d180dfb9", "title": "An Interactive Introduction to Record Linkage (Data Deduplication) in the Fellegi-Sunter framework", "url": "https://www.robinlinacre.com/intro_to_probabilistic_linkage/", "published_at": "2021-05-20T00:00:00+00:00" }, { "id": "01a087d6-35ec-72ab-8409-51d5d2367859", "title": "The Downfall of Command and Control Data Leadership", "url": "https://www.robinlinacre.com/command_control/", "published_at": "2020-11-07T00:00:00+00:00" }, { "id": "01a087d6-35ec-72ab-8409-51d5d2e8524c", "title": "Demystifying Apache Arrow", "url": "https://www.robinlinacre.com/demystifying_arrow/", "published_at": "2020-10-22T00:00:00+00:00" }, { "id": "01a087d6-35ec-72ab-8409-51d5d3bccaed", "title": "Birdsong quiz", "url": "https://www.robinlinacre.com/bird_quiz/", "published_at": "2020-04-26T00:00:00+00:00" }, { "id": "01a087d6-35ec-72ab-8409-51d5d43e5652", "title": "Birdsong recording finder", "url": "https://www.robinlinacre.com/birdsong/", "published_at": "2020-04-25T00:00:00+00:00" }, { "id": "01a087d6-35ec-72ab-8409-51d5d4ea98e4", "title": "Comparing energy usage across countries", "url": "https://www.robinlinacre.com/country_energy_usage/", "published_at": "2020-04-17T00:00:00+00:00" }, { "id": "01a087d6-35ec-72ab-8409-51d5d59a00fb", "title": "Filling the country with solar panels", "url": "https://www.robinlinacre.com/fill_country_solar/", "published_at": "2020-04-17T00:00:00+00:00" }, { "id": "01a087d6-35ec-72ab-8409-51d5d5f81ecd", "title": "Fuzzy Matching and Deduplicating Hundreds of Millions of Records with Splink", "url": "https://www.robinlinacre.com/introducing_splink/", "published_at": "2020-04-16T00:00:00+00:00" }, { "id": "01a087d6-35ec-72ab-8409-51d5d66f3dd8", "title": "Why you should open source your analytical work", "url": "https://www.robinlinacre.com/open_sourcing_analytical_work/", "published_at": "2020-02-22T00:00:00+00:00" }, { "id": "01a087d6-35ec-72ab-8409-51d5d72122c7", "title": "Understanding the Spark UI by example: sorting data", "url": "https://www.robinlinacre.com/spark_sort/", "published_at": "2019-12-08T00:00:00+00:00" }, { "id": "01a087d6-35ec-72ab-8409-51d5d7ff3dc7", "title": "Understanding the Spark UI by example: the Left Join", "url": "https://www.robinlinacre.com/left_join/", "published_at": "2019-12-01T00:00:00+00:00" }, { "id": "01a087d6-35ec-72ab-8409-51d5d8d758b3", "title": "Spark UI SQL detailed annotator", "url": "https://www.robinlinacre.com/spark_explain/", "published_at": "2019-11-15T00:00:00+00:00" }, { "id": "01a087d6-35ec-72ab-8409-51d5d94396b0", "title": "Unsupervised probabalistic data matching using the Expectation Maximisation algorithm", "url": "https://www.robinlinacre.com/em_algorithm_interactive/", "published_at": "2019-11-03T00:00:00+00:00" }, { "id": "01a087d6-35ec-72ab-8409-51d5d944f366", "title": "Carbon offsetting vs. the cost of renewable energy", "url": "https://www.robinlinacre.com/offsetting_renewables/", "published_at": "2019-10-13T00:00:00+00:00" }, { "id": "01a087d6-35ec-72ab-8409-51d5d9905d7d", "title": "Interactive blogging with Observable Notebooks and gatsby.js", "url": "https://www.robinlinacre.com/interactive_blogging/", "published_at": "2019-10-11T00:00:00+00:00" }, { "id": "01a087d6-35ec-72ab-8409-51d5da2f7d0c", "title": "Flight distance calculator", "url": "https://www.robinlinacre.com/flight_distance/", "published_at": "2019-10-09T00:00:00+00:00" }, { "id": "01a087d6-35ec-72ab-8409-51d5da68d9ba", "title": "Energy usage ready reckoner", "url": "https://www.robinlinacre.com/energy_usage/", "published_at": "2019-10-05T00:00:00+00:00" }, { "id": "01a087d6-35ec-72ab-8409-51d5db4e2562", "title": "My flights", "url": "https://www.robinlinacre.com/flights/", "published_at": "2019-10-05T00:00:00+00:00" }, { "id": "01a087d6-35ec-72ab-8409-51d5dc3b13a3", "title": "Effective testing of analytical models using automated sense checks", "url": "https://www.robinlinacre.com/effective_testing/", "published_at": "2019-08-26T00:00:00+00:00" }, { "id": "01a087d6-35ec-72ab-8409-51d5dc4b9151", "title": "Questions Senior Leaders Should Ask Their Data Delivery Teams", "url": "https://www.robinlinacre.com/questions_senior_leaders/", "published_at": "2019-03-14T00:00:00+00:00" }, { "id": "01a087d6-35ec-72ab-8409-51d5dd270606", "title": "Why I’m backing Vega-Lite as our default tool for data visualisation", "url": "https://www.robinlinacre.com/backing_vega_lite/", "published_at": "2018-08-22T00:00:00+00:00" }, { "id": "01a087d6-35ec-72ab-8409-51d5ddfc7049", "title": "Transforming analytical functions by mainstreaming data science", "url": "https://www.robinlinacre.com/transforming_analytical_functions/", "published_at": "2018-08-11T00:00:00+00:00" }, { "id": "01a087d6-35ec-72ab-8409-51d5deca119e", "title": "Pushing the boundaries of data science with the MOJ Analytical Platform", "url": "https://www.robinlinacre.com/pushing_boundaries_data_science_analytical_platform/", "published_at": "2018-04-05T00:00:00+00:00" } ] posts Claim your blog
Back to Robin Linacre's blog: Post list
Blog · corpus.blog/blogs/robinlinacre.com/posts

Robin Linacre's blog: Post list

robinlinacre.com

2026

2025

2024

2023

2022

2021

2020

2019

2018