41554 blogs · [ { "id": "01a087a1-a9e5-70c8-bc96-c35fe7e379cb", "title": "Compound Interest Calculator", "url": "https://mattbutton.com/calculators/compound-interest/", "published_at": "2026-03-31T00:00:00+00:00" }, { "id": "01a087a1-a9e5-70c8-bc96-c35fe7e8af91", "title": "Mortgage Repayment Calculator", "url": "https://mattbutton.com/calculators/mortgage-repayment/", "published_at": "2026-03-31T00:00:00+00:00" }, { "id": "01a087a1-a9e5-70c8-bc96-c35fe87bf8c6", "title": "Jetbrains Rider vs Webstorm", "url": "https://mattbutton.com/jetbrains-rider-vs-webstorm/", "published_at": "2025-03-11T00:00:00+00:00" }, { "id": "01a087a1-a9e5-70c8-bc96-c35fe893b068", "title": "How to use Minimal APIs in .NET 8 without cluttering Program.cs", "url": "https://mattbutton.com/minimal-apis-dotnet/", "published_at": "2024-07-05T00:00:00+00:00" }, { "id": "01a087a1-a9e5-70c8-bc96-c35fe8c0574a", "title": "How to fix Balena Etcher errors 5@0101000F and 1B1@0101000F / Balena Etcher killed my USB stick", "url": "https://mattbutton.com/how-to-fix-balena-etcher-errors/", "published_at": "2024-06-09T00:00:00+00:00" }, { "id": "01a087a1-a9e5-70c8-bc96-c35fe905830c", "title": "Self hosting for freelancers", "url": "https://mattbutton.com/self-hosting-for-freelancers/", "published_at": "2024-03-08T00:00:00+00:00" }, { "id": "01a087a1-a9e5-70c8-bc96-c35fe9e0c9b8", "title": "Ten programming books that can be read passively", "url": "https://mattbutton.com/ten-programming-books-that-can-be-read-passively/", "published_at": "2024-02-22T00:00:00+00:00" }, { "id": "01a087a1-a9e5-70c8-bc96-c35fea1b0283", "title": "Top useEffect mistakes made by React Developers", "url": "https://mattbutton.com/top-useeffect-mistakes/", "published_at": "2023-06-13T00:00:00+00:00" }, { "id": "01a087a1-a9e5-70c8-bc96-c35fea1d7792", "title": "Scaling yourself by Scott Hanselman", "url": "https://mattbutton.com/scaling-yourself/", "published_at": "2020-05-11T00:00:00+00:00" }, { "id": "01a087a1-a9e5-70c8-bc96-c35fea58c07e", "title": "Using Docker for local web development", "url": "https://mattbutton.com/docker-for-web-developers/", "published_at": "2020-04-23T00:00:00+00:00" }, { "id": "01a087a1-a9e5-70c8-bc96-c35feb2c39e9", "title": "Redux made easy with Redux Toolkit and Typescript", "url": "https://mattbutton.com/redux-made-easy-with-redux-toolkit-and-typescript/", "published_at": "2020-01-20T00:00:00+00:00" }, { "id": "01a087a1-a9e5-70c8-bc96-c35feb80c3cc", "title": "How to scrape stock upgrades and downgrades from Yahoo Finance", "url": "https://mattbutton.com/how-to-scrape-stock-upgrades-and-downgrades-from-yahoo-finance/", "published_at": "2019-12-02T00:00:00+00:00" }, { "id": "01a087a1-a9e5-70c8-bc96-c35febd8ca40", "title": "Accelerate - Building and Scaling High Performing Technology Organisations", "url": "https://mattbutton.com/accelerate-building-and-scaling-high-performing-technology-organisations/", "published_at": "2019-09-19T00:00:00+00:00" }, { "id": "01a087a1-a9e5-70c8-bc96-c35fecc83724", "title": "5 things that you need to consider before becoming a mentor", "url": "https://mattbutton.com/5-things-that-you-need-to-consider-before-becoming-a-mentor/", "published_at": "2019-08-03T00:00:00+00:00" }, { "id": "01a087a1-a9e5-70c8-bc96-c35fedc01d68", "title": "This Week: Ryan Holiday's 32 Thoughts From a 32-Year-Old", "url": "https://mattbutton.com/2019/07/20/this-week-ryan-holidays-32-thoughts-from-a-32-year-old/", "published_at": "2019-07-20T00:00:00+00:00" }, { "id": "01a087a1-a9e5-70c8-bc96-c35fee810075", "title": "13 years ago we were rallying against nested HTML tables - Notes from Webstock 2019", "url": "https://mattbutton.com/notes-from-webstock-2019/", "published_at": "2019-06-29T00:00:00+00:00" }, { "id": "01a087a1-a9e5-70c8-bc96-c35feefef3ef", "title": "How to fix font rendering in Chrome when using RDP", "url": "https://mattbutton.com/how-to-fix-font-rendering-in-chrome-when-using-rdp/", "published_at": "2019-05-15T00:00:00+00:00" }, { "id": "01a087a1-a9e5-70c8-bc96-c35fefbd212d", "title": "Chrome breakpoints don't work when using create-react-app", "url": "https://mattbutton.com/2019/04/27/chrome-breakpoints-dont-work-when-using-create-react-app/", "published_at": "2019-04-27T00:00:00+00:00" }, { "id": "01a087a1-a9e5-70c8-bc96-c35ff0255229", "title": "This Week: I've been playing The Witness, and Webstock is back!", "url": "https://mattbutton.com/2019/04/13/this-week-ive-been-playing-the-witness-and-webstock-is-back/", "published_at": "2019-04-13T00:00:00+00:00" }, { "id": "01a087a1-a9e5-70c8-bc96-c35ff0746ad1", "title": "Using Git on Windows", "url": "https://mattbutton.com/2019/03/24/using-git-on-windows/", "published_at": "2019-03-24T00:00:00+00:00" }, { "id": "01a087a1-a9e5-70c8-bc96-c35ff0a0c97a", "title": "Impromptu speaking techniques", "url": "https://mattbutton.com/2019/02/23/impromptu-speaking-techniques/", "published_at": "2019-02-23T00:00:00+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a6c0a7408", "title": "Enabling HTTPS on Elastic Beanstalk without a load balancer", "url": "https://mattbutton.com/2019/02/12/enabling-https-on-elastic-beanstalk-without-a-load-balancer/", "published_at": "2019-02-12T00:00:00+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a6c84837f", "title": "This Week: Startups that are hiring remotely in 2019", "url": "https://mattbutton.com/2019/02/01/this-week-startups-that-are-hiring-remotely-in-2019/", "published_at": "2019-02-01T00:00:00+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a6c99d09d", "title": "How to scrape Yahoo Finance and extract fundamental stock market data using Python, LXML, and Pandas", "url": "https://mattbutton.com/2019/01/24/how-to-scrape-yahoo-finance-and-extract-fundamental-stock-market-data-using-python-lxml-and-pandas/", "published_at": "2019-01-24T00:00:00+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a6d2bce3b", "title": "Are we there yet? Insights on how to lead by design - by Sam Bucolo", "url": "https://mattbutton.com/2019/01/14/are-we-there-yet-insights-on-how-to-lead-by-design-by-sam-bucolo/", "published_at": "2019-01-14T00:00:00+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a6d443d63", "title": "How to rename categories in Hugo", "url": "https://mattbutton.com/2019/01/13/how-to-rename-categories-in-hugo/", "published_at": "2019-01-13T00:00:00+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a6da4ada3", "title": "This Week: The Story of ConvertKit - From $0 to $968,000 in Monthly Revenue", "url": "https://mattbutton.com/2019/01/11/this-week-the-story-of-convertkit-from-0-to-968000-in-monthly-revenue/", "published_at": "2019-01-11T00:00:00+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a6e38d4f4", "title": "Google Authentication with Python and Flask", "url": "https://mattbutton.com/2019/01/05/google-authentication-with-python-and-flask/", "published_at": "2019-01-05T00:00:00+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a6eb894b2", "title": "This week: management is doing things right. Leadership is doing the right things", "url": "https://mattbutton.com/2019/01/04/this-week-management-is-doing-things-right.-leadership-is-doing-the-right-things/", "published_at": "2019-01-04T00:00:00+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a6ee614f2", "title": "Tony Alexander Presentation Notes - things which affected the NZ housing market over the decades", "url": "https://mattbutton.com/2019/01/02/tony-alexander-presentation-notes-things-which-affected-the-nz-housing-market-over-the-decades/", "published_at": "2019-01-01T23:00:22+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a6efaa060", "title": "InvalidCypherTextException when reading an encrypted DynamoDB table which has been restored from a backup", "url": "https://mattbutton.com/2018/12/05/invalidcyphertextexception-when-reading-an-encrypted-dynamodb-table-which-has-been-restored-from-a-backup/", "published_at": "2018-12-04T23:00:22+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a6fda4891", "title": "Enabling HTTPS on Elastic Beanstalk without a load balancer", "url": "https://mattbutton.com/2018/08/06/enabling-https-on-elastic-beanstalk-without-a-load-balancer/", "published_at": "2018-08-06T00:00:00+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a7069bd00", "title": "Using CKEditor 5 with React via create-react-app", "url": "https://mattbutton.com/2018/05/20/using-ckeditor-5-with-react-via-create-react-app/", "published_at": "2018-05-20T00:00:00+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a708d8dcc", "title": "Book Recommendations", "url": "https://mattbutton.com/book-recommendations/", "published_at": "2018-01-02T04:37:23+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a70a4d9c2", "title": "Products that I recommend", "url": "https://mattbutton.com/products/", "published_at": "2018-01-02T04:37:23+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a70ee54cc", "title": "AWS Solutions Architect Associate Exam Notes", "url": "https://mattbutton.com/2017/11/11/aws-solutions-architect-associate-exam-notes/", "published_at": "2017-11-11T00:00:00+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a71e2ec29", "title": "How I host and update www.mattbutton.com on AWS with CloudFlare and Amazon S3 Static Website Hosting", "url": "https://mattbutton.com/2017/11/04/how-i-host-and-update-www.mattbutton.com-on-aws-with-cloudflare-and-amazon-s3-static-website-hosting/", "published_at": "2017-11-04T00:00:00+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a728988ab", "title": "AWS Certified Solution Architect Associate Exam Tips", "url": "https://mattbutton.com/2017/11/02/aws-certified-solution-architect-associate-exam-tips/", "published_at": "2017-11-02T00:00:00+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a7380116e", "title": "Wellington Spearfishing", "url": "https://mattbutton.com/wellington-spearfishing/", "published_at": "2017-11-01T00:00:00+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a739a947b", "title": "AWS Solution Architect Associate Exam Study Notes: Application Services", "url": "https://mattbutton.com/2017/10/21/aws-solution-architect-associate-exam-study-notes-application-services/", "published_at": "2017-10-21T00:00:00+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a73c3f431", "title": "AWS Solution Architect Associate Exam Study Notes: AWS Databases", "url": "https://mattbutton.com/2017/10/16/aws-solution-architect-associate-exam-study-notes-aws-databases/", "published_at": "2017-10-16T00:00:00+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a745ff26c", "title": "AWS Solution Architect Associate Exam Study Notes: Route 53", "url": "https://mattbutton.com/2017/10/15/aws-solution-architect-associate-exam-study-notes-route-53/", "published_at": "2017-10-15T00:00:00+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a754e7c44", "title": "AWS Solution Architect Associate Exam Study Notes: EC2 (Elastic Compute Cloud), and Lambda", "url": "https://mattbutton.com/2017/10/12/aws-solution-architect-associate-exam-study-notes-ec2-elastic-compute-cloud-and-lambda/", "published_at": "2017-10-12T00:00:00+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a756d19a1", "title": "AWS Solution Architect Associate Exam Study Notes: VPC (Virtual Private Cloud)", "url": "https://mattbutton.com/2017/10/10/aws-solution-architect-associate-exam-study-notes-vpc-virtual-private-cloud/", "published_at": "2017-10-10T00:00:00+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a75ee1cfa", "title": "AWS Solution Architect Associate Exam Study Notes: S3 (Simple Storage Service), CloudFront and Storage Gateway", "url": "https://mattbutton.com/2017/10/08/aws-solution-architect-associate-exam-study-notes-s3-simple-storage-service-cloudfront-and-storage-gateway/", "published_at": "2017-10-08T00:00:00+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a769bc59e", "title": "AWS Solution Architect Associate Exam Study Notes: IAM (Identity and Access Management)", "url": "https://mattbutton.com/2017/10/02/aws-solution-architect-associate-exam-study-notes-iam-identity-and-access-management/", "published_at": "2017-10-02T09:32:17+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a7713e63c", "title": "AWS Solution Architect Associate Exam Study Notes: 10,000 Foot Overview", "url": "https://mattbutton.com/2017/09/24/aws-solution-architect-associate-exam-study-notes-10000-foot-overview/", "published_at": "2017-09-24T09:32:17+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a7767165d", "title": "Setting web.config defaultProxy with Powershell for debugging .NET web services", "url": "https://mattbutton.com/2017/08/07/setting-web.config-defaultproxy-with-powershell-for-debugging-.net-web-services/", "published_at": "2017-08-07T09:32:17+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a777eb76f", "title": "dotnet new causing segmentation fault on Debian Linux", "url": "https://mattbutton.com/2017/07/10/dotnet-new-causing-segmentation-fault-on-debian-linux/", "published_at": "2017-07-10T10:16:01+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a78044109", "title": "Writing a method that takes an integer, and returns it's factorial", "url": "https://mattbutton.com/2017/05/20/writing-a-method-that-takes-an-integer-and-returns-its-factorial/", "published_at": "2017-05-20T06:20:06+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a788b5c48", "title": "CloudFlare S3 Website Error: 502 - Bad Gateway", "url": "https://mattbutton.com/2017/04/29/cloudflare-s3-website-error-502-bad-gateway/", "published_at": "2017-04-29T20:39:33+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a78a5e214", "title": "Toastmasters Role Templates", "url": "https://mattbutton.com/2017/02/25/toastmasters-role-templates/", "published_at": "2017-02-25T15:15:04+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a79548132", "title": "Who is Matt Button and what is this site about?", "url": "https://mattbutton.com/about/", "published_at": "2017-01-01T04:37:23+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a797658c5", "title": "Searching for Whale Sharks in Koh Tao, Thailand", "url": "https://mattbutton.com/2016/11/02/searching-for-whale-sharks-in-koh-tao-thailand/", "published_at": "2016-11-02T15:15:04+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a79956668", "title": "Where I say goodbye to New Zealand, hello to Japan, and hello to Pocari Sweat", "url": "https://mattbutton.com/2016/10/15/where-i-say-goodbye-to-new-zealand-hello-to-japan-and-hello-to-pocari-sweat/", "published_at": "2016-10-15T12:11:04+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a7a4678d4", "title": "Traveling light on a six week trip around Japan and Thailand, in 2016", "url": "https://mattbutton.com/2016/10/01/traveling-light-on-a-six-week-trip-around-japan-and-thailand-in-2016/", "published_at": "2016-10-01T12:11:04+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a7a7dde20", "title": "Creating comparison charts for stocks with FSharp Charting, Deedle and Yahoo Finance", "url": "https://mattbutton.com/2014/06/29/creating-comparison-charts-for-stocks-with-fsharp-charting-deedle-and-yahoo-finance/", "published_at": "2014-06-29T04:52:30+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a7afb1bd6", "title": "A Basic Stock Trading Backtesting System for F# using Ta-Lib and FSharp.Data", "url": "https://mattbutton.com/2014/03/09/a-basic-stock-trading-backtesting-system-for-fsharp-using-ta-lib-and-fsharp-data/", "published_at": "2014-03-08T23:23:07+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a7ba34018", "title": "NullReferenceException when model binding strings after upgrading from ASP.NET MVC 1 to ASP.NET MVC 2", "url": "https://mattbutton.com/2013/03/18/nullreferenceexception-when-model-binding-strings-after-upgrading-from-mvc1-to-mvc/", "published_at": "2013-03-18T08:00:48+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a7c32ec7b", "title": "ASP.NET MVC - issues with binding a non-sequential list with the default model binder", "url": "https://mattbutton.com/2013/03/02/asp-net-mvc-issues-withbinding-a-non-sequential-list-with-the-default-model-binde/", "published_at": "2013-03-02T05:59:41+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a7cbd0772", "title": "Database version management and figuring out which scripts need to be run when deploying the latest version of your web app", "url": "https://mattbutton.com/2013/01/05/database-version-management-and-figuring-out-which-scripts-need-to-be-run-when-deploying-the-latest-version-of-your-web-app/", "published_at": "2013-01-05T07:23:58+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a7d9990f4", "title": "A JIRA issue tracking FAQ for a small team", "url": "https://mattbutton.com/2012/10/25/a-jira-issue-tracking-faq-for-a-small-team/", "published_at": "2012-10-25T08:25:24+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a7dc4bb22", "title": "The Visual Studio 2012 Open File Dialog Doesn't Work", "url": "https://mattbutton.com/2012/09/26/the-visual-studio-2012-open-file-dialog-doesnt-work/", "published_at": "2012-09-26T05:41:58+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a7e5a92aa", "title": "Using Mercurial with a SVN repository in a production environment without any drama", "url": "https://mattbutton.com/2012/04/05/using-mercurial-with-a-svn-repository-in-a-production-environment-without-any-drama/", "published_at": "2012-04-05T04:17:57+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a7eafd8a1", "title": "SQL Profiler templates missing", "url": "https://mattbutton.com/2011/06/01/sql-profiler-templates-missing/", "published_at": "2011-06-01T09:06:55+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a7f2bdff5", "title": "Loading jQuery via HTTP or HTTPS depending on the request protocol without document.write", "url": "https://mattbutton.com/2011/05/20/loading-jquery-via-http-or-https-depending-on-the-request-protocol-without-document-write/", "published_at": "2011-05-20T08:49:36+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a800c1121", "title": "How to include the Fluent NHibernate discriminator column in a composite key", "url": "https://mattbutton.com/2011/02/10/how-to-include-the-fluent-nhibernate-discriminator-column-in-a-composite-key/", "published_at": "2011-02-09T12:22:25+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a806c58de", "title": "ASP.NET MVC - Multiple parameterised form submit buttons without Javascript", "url": "https://mattbutton.com/2011/01/25/asp-net-mvc-multiple-parameterised-form-submit-buttons-without-javascript/", "published_at": "2011-01-24T12:44:20+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a80c1a7d1", "title": "Installing Sketchables for Sketchflow", "url": "https://mattbutton.com/2011/01/23/installing-sketchables-for-sketchflow/", "published_at": "2011-01-22T13:18:17+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a8153fa67", "title": "Bitbucket - wrong user on commit", "url": "https://mattbutton.com/2011/01/22/bitbucket-wrong-user-on-commit/", "published_at": "2011-01-21T15:07:52+00:00" }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a8233a4c0", "title": null, "url": "https://mattbutton.com/archive/", "published_at": null }, { "id": "01a087a1-a9e6-70df-8ea2-2e1a82a52718", "title": null, "url": "https://mattbutton.com/newfp/", "published_at": null } ] posts Claim your blog
Back to mattbutton.com
Blog · corpus.blog/blogs/mattbutton.com/posts

mattbutton.com

mattbutton.com

2026

2025

2024

2023

2020

2019

2018

2017

2016

2014

2013

2012

2011

Undated