Loading...
Loading...
Hi, my name is Marco. Working as a Senior Software Architect at Philips. I'm an Open Source Maintainer and Contributor.
If you like my work, consider to sponsor my work.
I wrote my first blog March 2011. Mostly I'm writing on software development. In total I wrote 75 articles in 8 categories. Use search below to filter by title or click a category or tag to filter by category or tag.
Hi, my name is Marco. Working as a Senior Software Architect at Philips. I'm an Open Source Maintainer and Contributor.
If you like my work, consider to sponsor my work.
I wrote my first blog March 2011. Mostly I'm writing on software development. In total I wrote 75 articles in 8 categories. Use search below to filter by title or click a category or tag to filter by category or tag.
Marco Franssen
Explore spiffe-vault for secretless Vault authentication, using SPIFFE workload identities and Vault-managed signing keys to sign container images with Cosign.
Marco Franssen
Explore a 2022 approach to storing, signing, and discovering package SBOMs and build provenance in an OCI registry with cosign, fatt, and sget.
Marco Franssen
Sign Docker images and attest SBOMs and build provenance with Sigstore in GitHub Actions, applying SLSA requirements to your release workflow.
Marco Franssen
Automatically choose work or personal Git commit email addresses with conditional includes in your global Git configuration and a folder-based setup.
Marco Franssen
Build enum-like types in Go with iota, generate String methods with stringer, and marshal and unmarshal named values as JSON strings.
Marco Franssen
Why I'm moving my blog from Hexo to Next.js, how I'm migrating Markdown posts and React components, and what's ready in the new blog preview.
Marco Franssen
Use Lego and the ACME DNS-01 challenge to request a Let's Encrypt TLS certificate for local development without exposing your web server to the internet.
Marco Franssen
Build a Go HTTP/2 web server with TLS, self-signed certificates for offline development, and Let's Encrypt certificates managed by the autocert package.
Marco Franssen
Fix React Router refresh errors with Nginx in Docker, then explore TLS and HTTP/2 server push in this historical 2020 React deployment tutorial.
Marco Franssen
Explore Krypton's phone-based SSH and PGP setup, pairing a laptop with a mobile device to approve server logins and sign Git commits.
Marco Franssen
Manage Go development tools with Go modules using a tools.go file, build constraints, and a Makefile to keep local and CI tool versions aligned.
Marco Franssen
Create reusable Go web server boilerplate with chi routing, structured zap request logs, and graceful shutdown that lets active requests finish.
Marco Franssen
Build a Go API with the Elasticsearch 7 client, run a local cluster with Docker Compose, and add index creation and search to a practical demo.
Marco Franssen
Build a small Go Docker image with a multi-stage build, run it with Docker Compose, and use Traefik 1.7 to route requests and scale your local web service.
Marco Franssen
Build a Go HTTP server that handles interrupt signals, gives active requests time to finish, and coordinates graceful shutdown with goroutines and channels.
Marco Franssen
Explore implicit interfaces and type assertions in Go, with practical examples of custom error types, cleaner tests and type switches.
Marco Franssen
Learn Go test and benchmark conventions with a JSON example, then explore code coverage, Testify assertions and options for comparing performance.
Marco Franssen
Explore Go concurrency with practical goroutine and channel examples, including buffered channels, GOMAXPROCS, and the difference between concurrency and parallelism.
Marco Franssen
Explore Go's defer with practical examples of execution order, panic and recover, recursive calls, and closing a file after reading its contents.
Marco Franssen
Set up your first Go project on Windows, learn basic syntax, write and run tests, and cross-compile a simple application for Linux and Raspberry Pi.
Marco Franssen
Combine separate Git repositories into a multi-module Gradle project while preserving commit history, then consolidate build and CI configuration.
Marco Franssen
Explore responsive and adaptive web design, progressive web apps and how I improved my blog with a static site, caching, manifests and service workers.
Marco Franssen
Learn how to use Docker Compose to build and run a multi-container application, connect services, and organize development with Git submodules.
Marco Franssen
Package a static Angular app in an Nginx Docker image, build it, and run it with port and log volume mappings in this historical 2016 walkthrough.
Marco Franssen
Set up a Docker development environment on Windows or Mac using Docker Machine and VirtualBox, then configure your shell and run a test container.
Marco Franssen
Learn how to replace Node.js error-first callbacks with Promises, flatten nested asynchronous code, and wrap callback APIs with practical examples.
Marco Franssen
Set up separate Windows 10 boot profiles with bcdedit to switch between Hyper-V for the Windows Phone emulator and VirtualBox for Linux development.
Marco Franssen
Compare Jasmine 2.4 and Mocha 2.3, including test structure, Chai assertions, Sinon spies and asynchronous testing with callbacks and promises.
Marco Franssen
Use Gulp.js to automate PHP linting, PHPUnit tests, coding standards, documentation, and static analysis, with watch tasks for immediate feedback.
Marco Franssen
Write synchronous and asynchronous Node.js tests with Mocha, Chai assertions and Sinon spies, stubs and fake timers, then run them with Grunt.
Marco Franssen
Automate development and CI tasks with Grunt: configure a Gruntfile, run task targets, combine tasks, and watch files to rerun jobs when they change.
Marco Franssen
Learn how to initialize, install, update, and publish Node.js packages with npm in this 2013 walkthrough, including development dependencies and private packages.
Marco Franssen
Build a simple Node.js web server with Express, use npm packages and nodemon during development, and serve an HTML page from a static public folder.
Marco Franssen
Connect a .NET MSBuild CI script to Jenkins, trigger builds from GitHub, configure repository access, and publish MSpec and code coverage reports.
Marco Franssen
Extend a .NET MSBuild CI script with MSpec tests, OpenCover code coverage, and ReportGenerator reports that you can later publish through Jenkins.
Marco Franssen
Add Clean and LoadNuGetPackages targets to a .NET MSBuild script so your CI build clears previous output and restores missing NuGet packages before compiling.
Marco Franssen
Start a .NET continuous integration build with an MSBuild script and a Windows batch file, then choose Debug or Release builds from the command line.
Marco Franssen
A personal look back at my 2012 blog posts, favorite technical articles and starred GitHub projects, covering JavaScript, .NET, CQRS and Windows.
Marco Franssen
Explore the Knockout.js mapping plugin to turn JSON into observable view models, customize property mappings, and build nested employee models.
Marco Franssen
Use Windows Phone 8 accent colors in your apps with a C# helper for hexadecimal color values and a SolidColorBrush property for MVVM binding.
Marco Franssen
Reduce repetitive C# equality comparer classes with a delegate-based IEqualityComparer and LINQ Distinct extension methods for property comparisons.
Marco Franssen
Write modular JavaScript with the module pattern, private functions, and a shared namespace to avoid global name collisions and organize dependencies.
Marco Franssen
See how I wrapped the Ncqrs command service to retry commands after concurrency exceptions, with results from a simple asynchronous JavaScript test.
Marco Franssen
Use jQuery events and a mediator to connect independent JavaScript modules, keeping a product dialog and grid separate while they communicate.
Marco Franssen
Build country, state, and city dropdowns with Knockout.js observables and jQuery JSON requests, with an ASP.NET MVC 3 server-side example.
Marco Franssen
How the order of FakeItEasy call configurations affected my CQRS domain tests when aggregate roots prepared the event store before an edit.
Marco Franssen
Lessons from applying DDD and CQRS in a Scrum project: bounded contexts, aggregate roots, domain services, guard methods, and command-based tests.
Marco Franssen
Configure Castle Windsor dependency injection in ASP.NET MVC 3 with an installer, controller factory, constructor injection, and repository disposal.
Marco Franssen
My notes from Greg Young's DDD/CQRS course on aggregates, entities, value objects, command-query separation, and consistency through event merging.