<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Mateusz Haligowski</title><description>Notes, projects, and technical writing from Mateusz Haligowski.</description><link>https://mhlg.io/</link><item><title>Personal blog</title><link>https://mhlg.io/projects/personal-blog/</link><guid isPermaLink="true">https://mhlg.io/projects/personal-blog/</guid><description>An Astro-powered home for notes, projects, and technical writing.</description><pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate></item><item><title>Today I Learned: It’s Not Easy Writing a Title</title><link>https://mhlg.io/blog/its-not-easy-writing-a-title/</link><guid isPermaLink="true">https://mhlg.io/blog/its-not-easy-writing-a-title/</guid><description>Investigating title case rules while trying to generate better blog post titles from filenames.</description><pubDate>Mon, 27 Feb 2023 00:00:00 GMT</pubDate></item><item><title>Quick Intro To Visual Studio Code Snippets</title><link>https://mhlg.io/blog/visual-studio-code-snippets/</link><guid isPermaLink="true">https://mhlg.io/blog/visual-studio-code-snippets/</guid><description>Creating Visual Studio Code snippets to make drafting new Markdown blog posts easier.</description><pubDate>Sun, 26 Feb 2023 00:00:00 GMT</pubDate></item><item><title>css formatting in jekyll</title><link>https://mhlg.io/blog/css-formatting-in-jekyll/</link><guid isPermaLink="true">https://mhlg.io/blog/css-formatting-in-jekyll/</guid><description>Using kramdown attributes in Jekyll to add Semantic UI classes to Markdown-generated elements.</description><pubDate>Thu, 16 Feb 2023 00:00:00 GMT</pubDate></item><item><title>Playing with Alfred workflows</title><link>https://mhlg.io/blog/playing-with-alfred-workflows/</link><guid isPermaLink="true">https://mhlg.io/blog/playing-with-alfred-workflows/</guid><description>Building an Alfred workflow for focus sessions, including timers and macOS background sounds.</description><pubDate>Sat, 11 Feb 2023 00:00:00 GMT</pubDate></item><item><title>Free webhosting with GitHub</title><link>https://mhlg.io/blog/hosting-statics-on-github/</link><guid isPermaLink="true">https://mhlg.io/blog/hosting-statics-on-github/</guid><description>Hosting static websites for free with GitHub Pages and connecting them to a simple custom workflow.</description><pubDate>Tue, 09 Mar 2021 00:00:00 GMT</pubDate></item><item><title>Top 5 tools for rapid web app development</title><link>https://mhlg.io/blog/top5-tools-for-rapid-web-app-development/</link><guid isPermaLink="true">https://mhlg.io/blog/top5-tools-for-rapid-web-app-development/</guid><description>A personal toolkit for quickly building and testing early web app ideas without spending much time or money.</description><pubDate>Fri, 16 Jun 2017 00:00:00 GMT</pubDate></item><item><title>AssertJ and collections cookbook</title><link>https://mhlg.io/blog/assertj_collections_cookbook/</link><guid isPermaLink="true">https://mhlg.io/blog/assertj_collections_cookbook/</guid><description>A practical cookbook for testing Java collections with AssertJ, including ordering, containment, and object extraction cases.</description><pubDate>Thu, 01 Jun 2017 00:00:00 GMT</pubDate></item><item><title>Scheduled executions of Google Cloud Functions</title><link>https://mhlg.io/blog/scheduled-cloud-function-execution/</link><guid isPermaLink="true">https://mhlg.io/blog/scheduled-cloud-function-execution/</guid><description>Scheduling Google Cloud Functions by combining App Engine cron jobs, Pub/Sub, and serverless handlers.</description><pubDate>Thu, 25 May 2017 00:00:00 GMT</pubDate></item><item><title>Mixing Google Cloud Functions and Express</title><link>https://mhlg.io/blog/serving-functions-express/</link><guid isPermaLink="true">https://mhlg.io/blog/serving-functions-express/</guid><description>Showing how HTTP Google Cloud Functions can be shared with or migrated from an Express application.</description><pubDate>Mon, 15 May 2017 00:00:00 GMT</pubDate></item><item><title>Exceptions testing in Java and AssertJ</title><link>https://mhlg.io/blog/java-assertj-exceptions-testing/</link><guid isPermaLink="true">https://mhlg.io/blog/java-assertj-exceptions-testing/</guid><description>Testing Java exceptions cleanly with AssertJ and avoiding brittle patterns around thrown errors.</description><pubDate>Mon, 08 May 2017 00:00:00 GMT</pubDate></item><item><title>Make life easier with Guice Private Modules</title><link>https://mhlg.io/blog/demonstation-of-private-modules/</link><guid isPermaLink="true">https://mhlg.io/blog/demonstation-of-private-modules/</guid><description>A follow-up on Guice private modules that shows how to reduce repeated binding code with a reusable helper.</description><pubDate>Thu, 04 May 2017 00:00:00 GMT</pubDate></item><item><title>Hello, Google Cloud Functions</title><link>https://mhlg.io/blog/hello-cloud-functions/</link><guid isPermaLink="true">https://mhlg.io/blog/hello-cloud-functions/</guid><description>A first hands-on walkthrough of Google Cloud Functions and the serverless programming model.</description><pubDate>Wed, 19 Apr 2017 00:00:00 GMT</pubDate></item><item><title>Encapsulation in Guice with Private Modules</title><link>https://mhlg.io/blog/guice-private-modules/</link><guid isPermaLink="true">https://mhlg.io/blog/guice-private-modules/</guid><description>Using Google Guice private modules to encapsulate dependency bindings and make Java modules easier to reuse.</description><pubDate>Thu, 13 Apr 2017 00:00:00 GMT</pubDate></item><item><title>Template for running React app in Google AppEngine</title><link>https://mhlg.io/blog/template-for-react-application/</link><guid isPermaLink="true">https://mhlg.io/blog/template-for-react-application/</guid><description>Creating a React and Express template for serving a frontend application from Google App Engine.</description><pubDate>Wed, 05 Apr 2017 00:00:00 GMT</pubDate></item><item><title>Package Principles I: Reuse/Release Principle</title><link>https://mhlg.io/blog/reuse-release-principle/</link><guid isPermaLink="true">https://mhlg.io/blog/reuse-release-principle/</guid><description>Introducing the Reuse/Release Principle and its implications for packaging, versioning, and reusable code.</description><pubDate>Wed, 29 Mar 2017 00:00:00 GMT</pubDate></item><item><title>Cloud Functions template</title><link>https://mhlg.io/blog/cloud-functions-template/</link><guid isPermaLink="true">https://mhlg.io/blog/cloud-functions-template/</guid><description>Introducing a reusable Google Cloud Functions project template with Gulp tasks for testing and deployment.</description><pubDate>Wed, 22 Mar 2017 00:00:00 GMT</pubDate></item><item><title>Introduction to Google Guice scopes</title><link>https://mhlg.io/blog/intro-to-guice-scopes/</link><guid isPermaLink="true">https://mhlg.io/blog/intro-to-guice-scopes/</guid><description>An introduction to Google Guice scopes and how dependency lifetimes work in Java applications.</description><pubDate>Wed, 15 Mar 2017 00:00:00 GMT</pubDate></item><item><title>Handling CORS in Google Cloud Functions</title><link>https://mhlg.io/blog/cors-in-cloud-functions/</link><guid isPermaLink="true">https://mhlg.io/blog/cors-in-cloud-functions/</guid><description>Solving CORS errors in HTTP-triggered Google Cloud Functions by handling preflight requests and response headers.</description><pubDate>Fri, 10 Mar 2017 00:00:00 GMT</pubDate></item><item><title>On serving JavaScript applications</title><link>https://mhlg.io/blog/on-serving-js-applications/</link><guid isPermaLink="true">https://mhlg.io/blog/on-serving-js-applications/</guid><description>Thinking through the tradeoffs of serving JavaScript applications from cloud storage, App Engine, and similar platforms.</description><pubDate>Tue, 07 Mar 2017 00:00:00 GMT</pubDate></item><item><title>Handling dependencies between AppEngine applications in Go</title><link>https://mhlg.io/blog/appengine-and-go-dependencies/</link><guid isPermaLink="true">https://mhlg.io/blog/appengine-and-go-dependencies/</guid><description>Exploring how to organize dependencies between multiple Go services running on Google App Engine.</description><pubDate>Wed, 01 Mar 2017 00:00:00 GMT</pubDate></item><item><title>Dependency Inversion in Go</title><link>https://mhlg.io/blog/dependency-inversion-in-go/</link><guid isPermaLink="true">https://mhlg.io/blog/dependency-inversion-in-go/</guid><description>Applying the dependency inversion principle in Go with interfaces, package structure, and testable boundaries.</description><pubDate>Wed, 22 Feb 2017 00:00:00 GMT</pubDate></item><item><title>Integrating Google App Engine services with task queues</title><link>https://mhlg.io/blog/task-queues/</link><guid isPermaLink="true">https://mhlg.io/blog/task-queues/</guid><description>Using Google App Engine task queues to coordinate work between services and handle asynchronous processing.</description><pubDate>Mon, 06 Feb 2017 00:00:00 GMT</pubDate></item><item><title>A new way of extracting values in AssertJ collections assertions</title><link>https://mhlg.io/blog/new-extracting/</link><guid isPermaLink="true">https://mhlg.io/blog/new-extracting/</guid><description>Trying AssertJ collection extraction features to make Java assertions clearer and less repetitive.</description><pubDate>Sat, 13 Sep 2014 00:00:00 GMT</pubDate></item><item><title>Programmer, know thy tools!</title><link>https://mhlg.io/blog/programmer-know-thy-tools/</link><guid isPermaLink="true">https://mhlg.io/blog/programmer-know-thy-tools/</guid><description>A reflection on the everyday tools programmers should master, from keyboards and IDEs to libraries and build systems.</description><pubDate>Sun, 07 Sep 2014 00:00:00 GMT</pubDate></item><item><title>Rakefile for Asciidoctor</title><link>https://mhlg.io/blog/rakefile-for-asciidoctor/</link><guid isPermaLink="true">https://mhlg.io/blog/rakefile-for-asciidoctor/</guid><description>A short Rakefile setup for generating Asciidoctor output with a simple Ruby-based workflow.</description><pubDate>Tue, 01 Jul 2014 00:00:00 GMT</pubDate></item><item><title>Mockito and constructor + field injection</title><link>https://mhlg.io/blog/mockito-with-both-constructor-and-field-injection/</link><guid isPermaLink="true">https://mhlg.io/blog/mockito-with-both-constructor-and-field-injection/</guid><description>Working through Mockito injection behavior when constructor and field injection appear in the same tested class.</description><pubDate>Fri, 30 May 2014 00:00:00 GMT</pubDate></item><item><title>Unexpected mock verification in Spock</title><link>https://mhlg.io/blog/mock-verification-in-spock/</link><guid isPermaLink="true">https://mhlg.io/blog/mock-verification-in-spock/</guid><description>A note on surprising mock verification behavior in Spock compared with familiar Mockito patterns.</description><pubDate>Tue, 06 May 2014 00:00:00 GMT</pubDate></item><item><title>Developing Grunt plugin</title><link>https://mhlg.io/blog/developing-grunt-plugin/</link><guid isPermaLink="true">https://mhlg.io/blog/developing-grunt-plugin/</guid><description>Building a custom Grunt plugin to fix an AngularJS distribution workflow and automate project-specific build steps.</description><pubDate>Sun, 02 Mar 2014 00:00:00 GMT</pubDate></item><item><title>A curious case of dependency injection in Angular JS</title><link>https://mhlg.io/blog/a-curious-case-of-angular-js-injection/</link><guid isPermaLink="true">https://mhlg.io/blog/a-curious-case-of-angular-js-injection/</guid><description>Debugging an AngularJS unknown provider error caused by filename casing and minification during deployment.</description><pubDate>Mon, 03 Feb 2014 00:00:00 GMT</pubDate></item><item><title>Book review: The Well-Grounded Java Developer</title><link>https://mhlg.io/blog/book-review-well-grounded-java-developer/</link><guid isPermaLink="true">https://mhlg.io/blog/book-review-well-grounded-java-developer/</guid><description>A review of The Well-Grounded Java Developer and its coverage of Java 7, concurrency, bytecode, and JVM languages.</description><pubDate>Fri, 17 Jan 2014 00:00:00 GMT</pubDate></item><item><title>GNU Make: not your grandpa&apos;s automation</title><link>https://mhlg.io/blog/gnu-makefile-not-your-grandpas-build-automation/</link><guid isPermaLink="true">https://mhlg.io/blog/gnu-makefile-not-your-grandpas-build-automation/</guid><description>A draft look at GNU Make as a flexible automation tool beyond traditional compile-time build scripts.</description><pubDate>Wed, 08 Jan 2014 00:00:00 GMT</pubDate></item></channel></rss>