41554 blogs · [ { "id": "01a08c56-f344-714f-951c-f1576dc8a15a", "title": "My 2025 Year in Books", "url": "https://tomaugspurger.net/posts/books-2025/", "published_at": "2025-12-28T21:00:24+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824cebd6895", "title": "GPU-Accelerated Zarr", "url": "https://tomaugspurger.net/posts/gpu-accelerated-zarr/", "published_at": "2025-12-11T14:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824cf8c43e9", "title": "Gone Sailing", "url": "https://tomaugspurger.net/posts/gone-sailing/", "published_at": "2025-10-18T12:40:38+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824cfd515a9", "title": "Cloud Native Geospatial Conference (2025)", "url": "https://tomaugspurger.net/posts/cng-forum-2025/", "published_at": "2025-05-04T06:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824d03534a3", "title": "High Performance Remote IO", "url": "https://tomaugspurger.net/posts/high-performance-remote-io/", "published_at": "2025-02-28T21:18:34+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824d108082a", "title": "Iowa's Proposed State Science Standards", "url": "https://tomaugspurger.net/posts/iowa-academic-standards-2025/", "published_at": "2025-02-01T18:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824d1d69897", "title": "Dask Geopandas Spatial Shuffle", "url": "https://tomaugspurger.net/posts/dask-geopandas-spatial-shuffle/", "published_at": "2024-12-18T16:33:34+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824d22b580a", "title": "My 2024 Year in Books", "url": "https://tomaugspurger.net/posts/books-2024/", "published_at": "2024-12-11T14:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824d2c25142", "title": "Serializing Dataclasses", "url": "https://tomaugspurger.net/posts/serializing-dataclasses/", "published_at": "2024-08-31T17:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824d33d49ce", "title": "stac-geoparquet", "url": "https://tomaugspurger.net/posts/stac-geoparquet/", "published_at": "2024-08-30T01:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824d34b9319", "title": "What's Next? (2024 edition)", "url": "https://tomaugspurger.net/posts/leaving-microsoft/", "published_at": "2024-08-12T12:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824d3d7ee29", "title": "My Real-World Match / Case", "url": "https://tomaugspurger.net/posts/my-real-world-match/", "published_at": "2023-12-14T03:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824d4b0d70d", "title": "STAC Updates I'm Excited About", "url": "https://tomaugspurger.net/posts/stac-updates/", "published_at": "2023-10-15T17:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824d53baa8a", "title": "Gone Rafting", "url": "https://tomaugspurger.net/posts/gone-rafting/", "published_at": "2023-08-13T19:30:19+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824d556c5ad", "title": "National Water Model on Azure", "url": "https://tomaugspurger.net/posts/noaa-nwm/", "published_at": "2023-05-25T17:04:06+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824d5daef30", "title": "Jupyter, STAC, and Tool Building", "url": "https://tomaugspurger.net/posts/jupyter-stac-browser/", "published_at": "2023-04-15T13:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824d658f5dc", "title": "py-spy in Azure Batch", "url": "https://tomaugspurger.net/posts/azure-batch-pyspy/", "published_at": "2023-02-22T21:11:37+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824d6f0e886", "title": "Planetary Computer Release: January 2023", "url": "https://tomaugspurger.net/posts/pc-january-2023/", "published_at": "2023-02-09T00:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824d74cc796", "title": "Cloud Optimized Vibes", "url": "https://tomaugspurger.net/posts/cloud-optimized-quandary/", "published_at": "2023-01-14T22:16:11+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824d766fdbc", "title": "Queues in the News", "url": "https://tomaugspurger.net/posts/queues/", "published_at": "2022-12-26T19:35:24+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824d836affb", "title": "My 2022 Year in Books", "url": "https://tomaugspurger.net/posts/books-2022/", "published_at": "2022-12-21T13:25:47+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824d9321f4a", "title": "Podcast: Revolutions", "url": "https://tomaugspurger.net/posts/revolutions/", "published_at": "2022-12-20T22:56:57+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824d9d2cf40", "title": "Rebooting", "url": "https://tomaugspurger.net/posts/rebooting/", "published_at": "2022-12-18T22:51:46+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824dad1c04a", "title": "What's Next?", "url": "https://tomaugspurger.net/posts/whats-next/", "published_at": "2020-11-11T00:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824db84565d", "title": "Maintaining Performance", "url": "https://tomaugspurger.net/posts/performance-regressions/", "published_at": "2020-04-01T00:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824dbdddef0", "title": "Compatibility Code", "url": "https://tomaugspurger.net/posts/compatibility/", "published_at": "2019-12-12T00:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824dc2e4e3a", "title": "Dask Workshop", "url": "https://tomaugspurger.net/posts/dask-workshop/", "published_at": "2019-12-12T00:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824dcf90bd7", "title": "pandas + binder", "url": "https://tomaugspurger.net/posts/pandas-binder/", "published_at": "2019-07-21T00:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824dddaf7ef", "title": "A Confluence of Extension", "url": "https://tomaugspurger.net/posts/confluence-extension/", "published_at": "2019-06-18T00:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824debf9dd3", "title": "Tabular Data in Scikit-Learn and Dask-ML", "url": "https://tomaugspurger.net/posts/sklearn-dask-tabular/", "published_at": "2018-09-17T00:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824df6148df", "title": "Distributed Auto-ML with TPOT with Dask", "url": "https://tomaugspurger.net/posts/distributed-tpot/", "published_at": "2018-08-30T00:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824e0205a29", "title": "Moral Philosophy for pandas or: What is `.values`?", "url": "https://tomaugspurger.net/posts/pandas-moral-philosophy/", "published_at": "2018-08-14T00:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824e0a74d23", "title": "Modern Pandas (Part 8): Scaling", "url": "https://tomaugspurger.net/posts/modern-8-scaling/", "published_at": "2018-04-23T00:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824e1866eb2", "title": "dask-ml 0.4.1 Released", "url": "https://tomaugspurger.net/posts/dask-ml-041/", "published_at": "2018-02-13T00:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824e27f779c", "title": "Extension Arrays for Pandas", "url": "https://tomaugspurger.net/posts/pandas-extension-arrays/", "published_at": "2018-02-12T00:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824e3615df1", "title": "Easy distributed training with Joblib and dask", "url": "https://tomaugspurger.net/posts/distributed-joblib/", "published_at": "2018-02-05T00:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824e424ee4b", "title": "Rewriting scikit-learn for big data, in under 9 hours.", "url": "https://tomaugspurger.net/posts/dask-ml-iid/", "published_at": "2018-01-28T00:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824e4a54e90", "title": "dask-ml", "url": "https://tomaugspurger.net/posts/dask-ml-announce/", "published_at": "2017-10-26T00:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824e5a0f7cc", "title": "Scalable Machine Learning (Part 3): Parallel", "url": "https://tomaugspurger.net/posts/scalable-ml-03/", "published_at": "2017-09-16T00:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824e6a0a244", "title": "Scalable Machine Learning (Part 2): Partial Fit", "url": "https://tomaugspurger.net/posts/scalable-ml-02/", "published_at": "2017-09-15T00:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824e75dcf47", "title": "Scalable Machine Learning (Part 1)", "url": "https://tomaugspurger.net/posts/scalable-ml-01/", "published_at": "2017-09-11T00:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824e8416b1b", "title": "Dask Performace Trip", "url": "https://tomaugspurger.net/posts/dask-performance-story/", "published_at": "2016-09-06T00:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824e849e1d8", "title": "Introducing Stitch", "url": "https://tomaugspurger.net/posts/intro-stitch/", "published_at": "2016-08-30T00:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824e9212b4b", "title": "Modern Pandas (Part 7): Timeseries", "url": "https://tomaugspurger.net/posts/modern-7-timeseries/", "published_at": "2016-05-13T00:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824e9a80421", "title": "Modern Pandas (Part 6): Visualization", "url": "https://tomaugspurger.net/posts/modern-6-visualization/", "published_at": "2016-04-28T00:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824e9c67a6d", "title": "Modern Pandas (Part 5): Tidy Data", "url": "https://tomaugspurger.net/posts/modern-5-tidy/", "published_at": "2016-04-22T00:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824e9e1ef1a", "title": "Modern Panadas (Part 3): Indexes", "url": "https://tomaugspurger.net/posts/modern-3-indexes/", "published_at": "2016-04-11T00:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824ea6bc13e", "title": "Modern Pandas (Part 4): Performance", "url": "https://tomaugspurger.net/posts/modern-4-performance/", "published_at": "2016-04-08T00:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824eadeda9b", "title": "Modern Pandas (Part 2): Method Chaining", "url": "https://tomaugspurger.net/posts/method-chaining/", "published_at": "2016-04-04T00:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824eb955846", "title": "Modern Pandas (Part 1)", "url": "https://tomaugspurger.net/posts/modern-1-intro/", "published_at": "2016-03-21T00:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824ec4f65d3", "title": "dplyr and pandas", "url": "https://tomaugspurger.net/posts/dplyr-pandas/", "published_at": "2014-10-16T07:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824ed06d69a", "title": "Practical Pandas Part 3 - Exploratory Data Analysis", "url": "https://tomaugspurger.net/posts/pp03/", "published_at": "2014-09-16T00:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824ed32d548", "title": "Practical Pandas Part 2 - More Tidying, More Data, and Merging", "url": "https://tomaugspurger.net/posts/pp02/", "published_at": "2014-09-04T00:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824ee0c719c", "title": "Practical Pandas Part 1 - Reading the Data", "url": "https://tomaugspurger.net/posts/pp01/", "published_at": "2014-08-26T00:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824ee3237a4", "title": "Using Python to tackle the CPS (Part 4)", "url": "https://tomaugspurger.net/posts/tackling-the-cps-4/", "published_at": "2014-05-19T12:01:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824eeefe0d6", "title": "Using Python to tackle the CPS (Part 3)", "url": "https://tomaugspurger.net/posts/tackling-the-cps-3/", "published_at": "2014-05-19T12:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824ef843df3", "title": "Tidy Data in Action", "url": "https://tomaugspurger.net/posts/tidy-data-in-action/", "published_at": "2014-03-27T00:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824eff0ac7c", "title": "Organizing Papers", "url": "https://tomaugspurger.net/posts/organizing-papers/", "published_at": "2014-02-13T00:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824f0db2f25", "title": "Using Python to tackle the CPS (Part 2)", "url": "https://tomaugspurger.net/posts/tackling-the-cps-2/", "published_at": "2014-02-04T12:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824f1362980", "title": "Using Python to tackle the CPS", "url": "https://tomaugspurger.net/posts/tackling-the-cps/", "published_at": "2014-01-27T00:00:00+00:00" }, { "id": "01a08c56-f345-71a4-a514-f824f1c721d4", "title": "About", "url": "https://tomaugspurger.net/about/", "published_at": null } ] posts Claim your blog
Back to tomaugspurger.net
Blog · corpus.blog/blogs/tomaugspurger.net/posts

tomaugspurger.net

tomaugspurger.net

2025

2024

2023

2022

2020

2019

2018

2017

2016

2014

Undated