{"id":30,"date":"2025-11-09T20:45:37","date_gmt":"2025-11-09T20:45:37","guid":{"rendered":"https:\/\/demo.sidekick.be\/itenium\/?page_id=30"},"modified":"2026-01-08T01:47:54","modified_gmt":"2026-01-08T00:47:54","slug":"blog","status":"publish","type":"page","link":"https:\/\/demo.sidekick.be\/itenium\/blog\/","title":{"rendered":"Blog"},"content":{"rendered":"<section class=\"l-section wpb_row height_medium\"><div class=\"l-section-h i-cf\"><div class=\"g-cols vc_row via_flex valign_top type_default stacking_default\"><div class=\"vc_col-sm-12 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><div class=\"w-hwrapper valign_middle wrap align_justify\"><form class=\"w-filter for_list state_desktop us-field-style_1 us_custom_141f90b0 layout_ver items_1 mod_dropdown align_none elm_index_1 drop_on_click change_url_params faceted_filtering loading\" action style=\"--items-gap:0.5em;\" onsubmit=\"return false;\" onclick='return {&quot;mobileWidth&quot;:600,&quot;ajaxData&quot;:{&quot;action&quot;:&quot;us_list_filter_post_count&quot;}}'><div class=\"w-filter-list\"><div class=\"w-filter-list-title\">Filters<\/div><button class=\"w-filter-list-closer\" type=\"button\" title=\"Close\" aria-label=\"Close\"><\/button><div class=\"w-filter-item number_1 type_checkbox has_search_field\" data-name=\"category\"><button class=\"w-filter-item-title us-field-style_1\" type=\"button\">Categories<span><\/span><\/button><a class=\"w-filter-item-reset us-field-style_1\" href=\"#\" title=\"Reset\"><span>Reset<\/span><\/a><div class=\"w-filter-item-content\"><div class=\"w-filter-item-search\"><input name=\"search_values\" type=\"text\" autocomplete=\"off\" placeholder=\"Type to search...\"><i class=\"fas fa-search\"><\/i><\/div><div class=\"w-filter-item-values\"><div class=\"w-filter-item-value depth_1\" data-value=\"databases\" data-post-count=\"0\"><label><input type=\"checkbox\" value=\"databases\" name=\"category\"><span class=\"w-filter-item-value-label\">databases<\/span><span class=\"w-filter-item-value-amount\">0<\/span><\/label><\/div><div class=\"w-filter-item-value depth_1\" data-value=\"design\" data-post-count=\"0\"><label><input type=\"checkbox\" value=\"design\" name=\"category\"><span class=\"w-filter-item-value-label\">design<\/span><span class=\"w-filter-item-value-amount\">0<\/span><\/label><\/div><div class=\"w-filter-item-value depth_1\" data-value=\"dev-setup\" data-post-count=\"0\"><label><input type=\"checkbox\" value=\"dev-setup\" name=\"category\"><span class=\"w-filter-item-value-label\">dev-setup<\/span><span class=\"w-filter-item-value-amount\">0<\/span><\/label><\/div><div class=\"w-filter-item-value depth_1\" data-value=\"docker\" data-post-count=\"0\"><label><input type=\"checkbox\" value=\"docker\" name=\"category\"><span class=\"w-filter-item-value-label\">docker<\/span><span class=\"w-filter-item-value-amount\">0<\/span><\/label><\/div><div class=\"w-filter-item-value depth_1\" data-value=\"dotnet\" data-post-count=\"0\"><label><input type=\"checkbox\" value=\"dotnet\" name=\"category\"><span class=\"w-filter-item-value-label\">dotnet<\/span><span class=\"w-filter-item-value-amount\">0<\/span><\/label><\/div><div class=\"w-filter-item-value depth_1\" data-value=\"java\" data-post-count=\"0\"><label><input type=\"checkbox\" value=\"java\" name=\"category\"><span class=\"w-filter-item-value-label\">java<\/span><span class=\"w-filter-item-value-amount\">0<\/span><\/label><\/div><div class=\"w-filter-item-value depth_1\" data-value=\"javascript\" data-post-count=\"0\"><label><input type=\"checkbox\" value=\"javascript\" name=\"category\"><span class=\"w-filter-item-value-label\">javascript<\/span><span class=\"w-filter-item-value-amount\">0<\/span><\/label><\/div><div class=\"w-filter-item-value depth_1\" data-value=\"productivity\" data-post-count=\"0\"><label><input type=\"checkbox\" value=\"productivity\" name=\"category\"><span class=\"w-filter-item-value-label\">productivity<\/span><span class=\"w-filter-item-value-amount\">0<\/span><\/label><\/div><div class=\"w-filter-item-value depth_1\" data-value=\"ruby\" data-post-count=\"0\"><label><input type=\"checkbox\" value=\"ruby\" name=\"category\"><span class=\"w-filter-item-value-label\">ruby<\/span><span class=\"w-filter-item-value-amount\">0<\/span><\/label><\/div><div class=\"w-filter-item-value depth_1\" data-value=\"security\" data-post-count=\"0\"><label><input type=\"checkbox\" value=\"security\" name=\"category\"><span class=\"w-filter-item-value-label\">security<\/span><span class=\"w-filter-item-value-amount\">0<\/span><\/label><\/div><div class=\"w-filter-item-value depth_1\" data-value=\"trends\" data-post-count=\"0\"><label><input type=\"checkbox\" value=\"trends\" name=\"category\"><span class=\"w-filter-item-value-label\">trends<\/span><span class=\"w-filter-item-value-amount\">0<\/span><\/label><\/div><\/div><div class=\"w-filter-item-message hidden\">No results found.<\/div><\/div><\/div><\/div><div class=\"w-filter-list-panel\"><button class=\"w-btn w-filter-button-submit us-btn-style_1\" type=\"button\"><span class=\"w-btn-label\">Apply<\/span><\/button><\/div><style>@media( max-width:600px ){.w-filter.state_desktop.elm_index_1 .w-filter-list,.w-filter.elm_index_1 .w-filter-item-title>span{display:none!important}.w-filter.elm_index_1 .w-filter-opener{display:inline-block}}<\/style><button class=\"w-filter-opener icon_atleft\" type=\"button\" style=\"--badge-bg-color:#FFF;--badge-color:black;\"><i class=\"far fa-filter\"><\/i><span>Filters<\/span><\/button><\/form><div class=\"w-search for_list layout_simple us-field-style_1 us_custom_f88d13d0 iconpos_right live_search change_url_params\"><form class=\"w-form-row for_text\" role=\"search\" method=\"get\"><div class=\"w-form-row-field\"><input aria-label=\"Type here...\" name=\"list_search\" placeholder=\"Type here...\" type=\"text\" value\/><\/div><button class=\"w-search-reset\" type=\"button\" aria-label=\"Reset\"><\/button><button aria-label=\"Search\" class=\"w-search-form-btn w-btn\" type=\"submit\" style=\"--icon-size:18px;\"><i class=\"fas fa-search\"><\/i><\/button><\/form><div class=\"w-search-message hidden\"><\/div><\/div><\/div><div class=\"w-separator size_custom\" style=\"height:4rem\"><\/div><div class=\"w-grid us_post_list apply_url_params type_grid layout_415 cols_3 pagination_numbered preload_style_spinner\" id=\"us_post_list_q603\" style=\"--columns:3;--gap:0.625rem;\"><style>@media (max-width:1140px){#us_post_list_q603{--columns:2!important}}@media (max-width:900px){#us_post_list_q603{--columns:1!important}}.layout_415 .w-grid-item-h{}.layout_415 .usg_vwrapper_1{transition-duration:0.3s;transform-origin:50% 50%;transform:scale(1) translate(0%,0%)}.layout_415 .w-grid-item-h:focus-within .usg_vwrapper_1,.layout_415 .w-grid-item-h:hover .usg_vwrapper_1{transform:scale(1) translate(0%,0%);opacity:1;background:var(--color-primary-leaf-medium)!important}.layout_415 .usg_post_taxonomy_2{transition-duration:0.3s;transform-origin:50% 50%;transform:scale(1) translate(0%,0%)}.layout_415 .w-grid-item-h:focus-within .usg_post_taxonomy_2,.layout_415 .w-grid-item-h:hover .usg_post_taxonomy_2{transform:scale(1) translate(0%,0%);opacity:1;color:var(--color-neutrals-00)!important}.layout_415 .usg_vwrapper_1{margin-bottom:.75rem!important;border-radius:1rem!important;padding:0.5rem!important;background:var(--color-neutrals-00)!important;border:1px solid var(--color-neutrals-30)!important}.layout_415 .usg_vwrapper_2{height:100%!important;padding:1rem!important}.layout_415 .usg_post_title_1{font-size:2rem!important;line-height:1.25!important}.layout_415 .usg_btn_1{max-width:fit-content!important;margin-top:auto!important;padding-top:1rem!important}.layout_415 .usg_vwrapper_3{position:relative!important}.layout_415 .usg_post_image_1{border-radius:1rem!important;background:linear-gradient(180deg,transparent 0%,#000000 100%)!important}.layout_415 .usg_post_taxonomy_1{max-width:calc(100% - 1rem)!important;position:absolute!important;left:0.5rem!important;bottom:0.5rem!important;z-index:5!important}.layout_415 .usg_html_1{width:100%!important;height:100%!important;border-radius:1rem!important;position:absolute!important;left:0!important;top:0!important;z-index:3!important;background:linear-gradient(180deg,transparent 0%,rgba(0,0,0,0.7) 100%)!important}.layout_415 .usg_post_taxonomy_2{color:var(--color-primary-gold-rust)!important;font-family:IBM Plex Mono!important;margin-bottom:0!important}<\/style><div class=\"w-grid-list\">\t<article class=\"w-grid-item size_1x1 post-1291 post type-post status-publish format-standard has-post-thumbnail hentry category-trends tag-tech-talk tag-war-story\" data-id=\"1291\">\r\n\t\t<div class=\"w-grid-item-h\">\r\n\t\t\t\t\t\t<div class=\"w-vwrapper usg_vwrapper_1 align_none valign_top has-link\" style=\"--vwrapper-gap:1rem\"><div class=\"w-vwrapper usg_vwrapper_2 align_none valign_top\" style=\"--vwrapper-gap:1rem\"><div class=\"w-post-elm post_taxonomy usg_post_taxonomy_2 has_text_color style_simple color_link_inherit\"><span class=\"term-14 term-trends\">trends<\/span><\/div><h2 class=\"w-post-elm post_title usg_post_title_1 entry-title color_link_inherit\">Devoxx 2025<\/h2><div class=\"w-post-elm post_content usg_post_content_1\"><h1 class=\"hide-from-excerpt\" id=\"-highlights--trends\">\ud83c\udfac Highlights &amp; Trends<\/h1>\n<p>Devoxx Belgium 2025 is a wrap, and it was an edition to remember, with an unmistakable focus on the next evolution in software: <strong>AI Agents<\/strong> and the modern <strong>Java 25<\/strong> ecosystem. It is a real treat that the organization put the talks online so quickly, allowing us to dive straight into popular and pressing topics like the <strong>Model Context Protocol (MCP)<\/strong>, <strong>Stable Values<\/strong>, and <strong>Structured Concurrency<\/strong>. I\u2019ve since done a deep-dive into the talks, and after some necessary wrestling, this is my top five. This certainly doesn\u2019t take away from the other talks; as always, the quality was amazing.<\/p>\n<\/div><a class=\"w-btn us-btn-style_3 usg_btn_1\" href=\"https:\/\/demo.sidekick.be\/itenium\/blog\/trends\/devoxx-2025\/\"><span class=\"w-btn-label\">Read more<\/span><\/a><\/div><div class=\"w-vwrapper usg_vwrapper_3 align_none valign_top\" style=\"--vwrapper-gap:0rem\"><div class=\"w-post-elm post_image usg_post_image_1 has_ratio\"><a href=\"https:\/\/demo.sidekick.be\/itenium\/blog\/trends\/devoxx-2025\/\" aria-label=\"Devoxx 2025\"><img loading=\"lazy\" decoding=\"async\" width=\"360\" height=\"300\" src=\"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/11\/devoxx-2025.png\" class=\"attachment-us_600_400 size-us_600_400 wp-post-image\" alt=\"A futuristic coffee cup emitting holographic AI agents made of glowing code lines, symbolizing Java powering intelligent systems. Neon blues and oranges, ultra-clean tech aesthetic. --ar 6:5\" \/><\/a><div style=\"padding-bottom:50%\"><\/div><\/div><div class=\"w-post-elm post_taxonomy usg_post_taxonomy_1 style_badge color_link_inherit\"><div class=\"w-post-elm-list\"><a class=\"w-btn us-btn-style_6 backdrop term-15 term-tech-talk\" href=\"https:\/\/demo.sidekick.be\/itenium\/tag\/tech-talk\/\"><span class=\"w-btn-label\">tech-talk<\/span><\/a><a class=\"w-btn us-btn-style_6 backdrop term-10 term-war-story\" href=\"https:\/\/demo.sidekick.be\/itenium\/tag\/war-story\/\"><span class=\"w-btn-label\">war-story<\/span><\/a><\/div><\/div><div class=\"w-html usg_html_1\"><\/div><\/div><a href=\"https:\/\/demo.sidekick.be\/itenium\/blog\/trends\/devoxx-2025\/\" class=\"w-vwrapper-link smooth-scroll\" aria-label=\"Link\"><\/a><\/div>\t\t<\/div>\r\n\t\t\t<\/article>\r\n\t<article class=\"w-grid-item size_1x1 post-1295 post type-post status-publish format-standard has-post-thumbnail hentry category-javascript tag-product\" data-id=\"1295\">\r\n\t\t<div class=\"w-grid-item-h\">\r\n\t\t\t\t\t\t<div class=\"w-vwrapper usg_vwrapper_1 align_none valign_top has-link\" style=\"--vwrapper-gap:1rem\"><div class=\"w-vwrapper usg_vwrapper_2 align_none valign_top\" style=\"--vwrapper-gap:1rem\"><div class=\"w-post-elm post_taxonomy usg_post_taxonomy_2 has_text_color style_simple color_link_inherit\"><span class=\"term-3 term-javascript\">javascript<\/span><\/div><h2 class=\"w-post-elm post_title usg_post_title_1 entry-title color_link_inherit\">Chrome Extension: Starify Links<\/h2><div class=\"w-post-elm post_content usg_post_content_1\"><p>Back in 2019 I created a Chrome Extension called \u201c<a href=\"\/blog\/javascript\/starify-github-links\/\">Starify Github Links<\/a>\u201d.<\/p>\n<p>I probably just discovered <a href=\"https:\/\/github.com\/sindresorhus\/awesome\">sindresorhus awesome<\/a> lists. And while awesome lists are, well, awesome, the problem is that while it has so many truly excellent links, some random guy that created a really niche thing easily ends up in there as well.<\/p>\n<p>So how do you know what to spend your time on, GitHub stars, obviously!<\/p>\n<\/div><a class=\"w-btn us-btn-style_3 usg_btn_1\" href=\"https:\/\/demo.sidekick.be\/itenium\/blog\/javascript\/starify-links\/\"><span class=\"w-btn-label\">Read more<\/span><\/a><\/div><div class=\"w-vwrapper usg_vwrapper_3 align_none valign_top\" style=\"--vwrapper-gap:0rem\"><div class=\"w-post-elm post_image usg_post_image_1 has_ratio\"><a href=\"https:\/\/demo.sidekick.be\/itenium\/blog\/javascript\/starify-links\/\" aria-label=\"Chrome Extension: Starify Links\"><img loading=\"lazy\" decoding=\"async\" width=\"360\" height=\"300\" src=\"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/11\/starify-links.png\" class=\"attachment-us_600_400 size-us_600_400 wp-post-image\" alt=\"Retro 1980s movie poster &#039;Starify Links&#039; neon typography, chrome reflections, GitHub stars exploding in the background like supernovas\" \/><\/a><div style=\"padding-bottom:50%\"><\/div><\/div><div class=\"w-post-elm post_taxonomy usg_post_taxonomy_1 style_badge color_link_inherit\"><a class=\"w-btn us-btn-style_6 backdrop term-4 term-product\" href=\"https:\/\/demo.sidekick.be\/itenium\/tag\/product\/\"><span class=\"w-btn-label\">product<\/span><\/a><\/div><div class=\"w-html usg_html_1\"><\/div><\/div><a href=\"https:\/\/demo.sidekick.be\/itenium\/blog\/javascript\/starify-links\/\" class=\"w-vwrapper-link smooth-scroll\" aria-label=\"Link\"><\/a><\/div>\t\t<\/div>\r\n\t\t\t<\/article>\r\n\t<article class=\"w-grid-item size_1x1 post-1638 post type-post status-publish format-standard has-post-thumbnail hentry category-dev-setup tag-git tag-powershell tag-product\" data-id=\"1638\">\r\n\t\t<div class=\"w-grid-item-h\">\r\n\t\t\t\t\t\t<div class=\"w-vwrapper usg_vwrapper_1 align_none valign_top has-link\" style=\"--vwrapper-gap:1rem\"><div class=\"w-vwrapper usg_vwrapper_2 align_none valign_top\" style=\"--vwrapper-gap:1rem\"><div class=\"w-post-elm post_taxonomy usg_post_taxonomy_2 has_text_color style_simple color_link_inherit\"><span class=\"term-5 term-dev-setup\">dev-setup<\/span><\/div><h2 class=\"w-post-elm post_title usg_post_title_1 entry-title color_link_inherit\">Git-NumberedAdd for PowerShell<\/h2><div class=\"w-post-elm post_content usg_post_content_1\"><p class=\"notice--info\"><strong>\ud83c\udf89\ud83c\udf89 October 2025 update: v1.2<\/strong><br \/> There have been changes in both git (v2.26+) and PowerShell (v7+) that broke <code>Git-NumberedAdd<\/code>, it has been a long time coming but, the fixes are finally available in the PSGallery \ud83d\ude05<\/p>\n<p><\/p>\n<p>After copying file paths from <code>git status<\/code> output and pasting them after a <code>git add<\/code> quite a few times by now, I\u2019ve written a small <a href=\"https:\/\/github.com\/itenium-be\/Git-NumberedAdd\">PowerShell script<\/a> to manipulate the working directory and staging area with fabricated indexes.<\/p>\n<\/div><a class=\"w-btn us-btn-style_3 usg_btn_1\" href=\"https:\/\/demo.sidekick.be\/itenium\/blog\/dev-setup\/git-numbered-add-for-powershell\/\"><span class=\"w-btn-label\">Read more<\/span><\/a><\/div><div class=\"w-vwrapper usg_vwrapper_3 align_none valign_top\" style=\"--vwrapper-gap:0rem\"><div class=\"w-post-elm post_image usg_post_image_1 has_ratio\"><a href=\"https:\/\/demo.sidekick.be\/itenium\/blog\/dev-setup\/git-numbered-add-for-powershell\/\" aria-label=\"Git-NumberedAdd for PowerShell\"><img loading=\"lazy\" decoding=\"async\" width=\"360\" height=\"300\" src=\"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/11\/git-add-numbered-add.jpg\" class=\"attachment-us_600_400 size-us_600_400 wp-post-image\" alt=\"\" \/><\/a><div style=\"padding-bottom:50%\"><\/div><\/div><div class=\"w-post-elm post_taxonomy usg_post_taxonomy_1 style_badge color_link_inherit\"><div class=\"w-post-elm-list\"><a class=\"w-btn us-btn-style_6 backdrop term-26 term-git\" href=\"https:\/\/demo.sidekick.be\/itenium\/tag\/git\/\"><span class=\"w-btn-label\">git<\/span><\/a><a class=\"w-btn us-btn-style_6 backdrop term-9 term-powershell\" href=\"https:\/\/demo.sidekick.be\/itenium\/tag\/powershell\/\"><span class=\"w-btn-label\">powershell<\/span><\/a><a class=\"w-btn us-btn-style_6 backdrop term-4 term-product\" href=\"https:\/\/demo.sidekick.be\/itenium\/tag\/product\/\"><span class=\"w-btn-label\">product<\/span><\/a><\/div><\/div><div class=\"w-html usg_html_1\"><\/div><\/div><a href=\"https:\/\/demo.sidekick.be\/itenium\/blog\/dev-setup\/git-numbered-add-for-powershell\/\" class=\"w-vwrapper-link smooth-scroll\" aria-label=\"Link\"><\/a><\/div>\t\t<\/div>\r\n\t\t\t<\/article>\r\n\t<article class=\"w-grid-item size_1x1 post-1299 post type-post status-publish format-standard has-post-thumbnail hentry category-dev-setup tag-tutorial tag-windows\" data-id=\"1299\">\r\n\t\t<div class=\"w-grid-item-h\">\r\n\t\t\t\t\t\t<div class=\"w-vwrapper usg_vwrapper_1 align_none valign_top has-link\" style=\"--vwrapper-gap:1rem\"><div class=\"w-vwrapper usg_vwrapper_2 align_none valign_top\" style=\"--vwrapper-gap:1rem\"><div class=\"w-post-elm post_taxonomy usg_post_taxonomy_2 has_text_color style_simple color_link_inherit\"><span class=\"term-5 term-dev-setup\">dev-setup<\/span><\/div><h2 class=\"w-post-elm post_title usg_post_title_1 entry-title color_link_inherit\">Git Large File Storage<\/h2><div class=\"w-post-elm post_content usg_post_content_1\"><p>Needed to get around installing <code>git lfs<\/code> because I\u2019m adding large media files to <a href=\"https:\/\/obsidian.md\/\">Obsidian<\/a> which I\u2019m syncing with a private github repository.<\/p>\n<p><a href=\"https:\/\/github.com\/git-lfs\/git-lfs\" class=\"github\"><img decoding=\"async\" src=\"https:\/\/img.shields.io\/github\/stars\/git-lfs\/git-lfs.svg?style=social&amp;label=Star\" \/><\/a><a href=\"https:\/\/github.com\/git-lfs\/git-lfs\">git-lfs\/git-lfs<\/a>: Git extension for versioning large files<\/p>\n<p>It stores your large files on a separate server and works seamlessly with your normal git workflow.<\/p>\n<h1 class=\"hide-from-excerpt\" id=\"install\">Install<\/h1>\n<pre><code class=\"language-ps1\">choco install git-lfs -y\ngit lfs install\n<\/code><\/pre>\n<\/div><a class=\"w-btn us-btn-style_3 usg_btn_1\" href=\"https:\/\/demo.sidekick.be\/itenium\/blog\/dev-setup\/git-lfs\/\"><span class=\"w-btn-label\">Read more<\/span><\/a><\/div><div class=\"w-vwrapper usg_vwrapper_3 align_none valign_top\" style=\"--vwrapper-gap:0rem\"><div class=\"w-post-elm post_image usg_post_image_1 has_ratio\"><a href=\"https:\/\/demo.sidekick.be\/itenium\/blog\/dev-setup\/git-lfs\/\" aria-label=\"Git Large File Storage\"><img loading=\"lazy\" decoding=\"async\" width=\"360\" height=\"300\" src=\"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/11\/git-lfs.png\" class=\"attachment-us_600_400 size-us_600_400 wp-post-image\" alt=\"programmer trying to push a giant file boulder up a hill like Sisyphus, cartoon style, funny developer struggle --ar 6:5\" \/><\/a><div style=\"padding-bottom:50%\"><\/div><\/div><div class=\"w-post-elm post_taxonomy usg_post_taxonomy_1 style_badge color_link_inherit\"><div class=\"w-post-elm-list\"><a class=\"w-btn us-btn-style_6 backdrop term-6 term-tutorial\" href=\"https:\/\/demo.sidekick.be\/itenium\/tag\/tutorial\/\"><span class=\"w-btn-label\">tutorial<\/span><\/a><a class=\"w-btn us-btn-style_6 backdrop term-7 term-windows\" href=\"https:\/\/demo.sidekick.be\/itenium\/tag\/windows\/\"><span class=\"w-btn-label\">windows<\/span><\/a><\/div><\/div><div class=\"w-html usg_html_1\"><\/div><\/div><a href=\"https:\/\/demo.sidekick.be\/itenium\/blog\/dev-setup\/git-lfs\/\" class=\"w-vwrapper-link smooth-scroll\" aria-label=\"Link\"><\/a><\/div>\t\t<\/div>\r\n\t\t\t<\/article>\r\n\t<article class=\"w-grid-item size_1x1 post-1303 post type-post status-publish format-standard has-post-thumbnail hentry category-ruby tag-powershell tag-war-story tag-windows\" data-id=\"1303\">\r\n\t\t<div class=\"w-grid-item-h\">\r\n\t\t\t\t\t\t<div class=\"w-vwrapper usg_vwrapper_1 align_none valign_top has-link\" style=\"--vwrapper-gap:1rem\"><div class=\"w-vwrapper usg_vwrapper_2 align_none valign_top\" style=\"--vwrapper-gap:1rem\"><div class=\"w-post-elm post_taxonomy usg_post_taxonomy_2 has_text_color style_simple color_link_inherit\"><span class=\"term-8 term-ruby\">ruby<\/span><\/div><h2 class=\"w-post-elm post_title usg_post_title_1 entry-title color_link_inherit\">Performance optimization for &#8216;bundle exec jekyll serve&#8217;<\/h2><div class=\"w-post-elm post_content usg_post_content_1\"><p>Every change to a blog post on this website took a whopping 20 second delay before I could see the result.<\/p>\n<p>The <a href=\"https:\/\/talk.jekyllrb.com\/t\/exclude-jekyll-feed-in-development-environment\/2681\/4\">solution<\/a> was really simple, really. And was committed in the README as a TODO over 3 years ago.<\/p>\n<\/div><a class=\"w-btn us-btn-style_3 usg_btn_1\" href=\"https:\/\/demo.sidekick.be\/itenium\/blog\/ruby\/jekyll-serve-performance\/\"><span class=\"w-btn-label\">Read more<\/span><\/a><\/div><div class=\"w-vwrapper usg_vwrapper_3 align_none valign_top\" style=\"--vwrapper-gap:0rem\"><div class=\"w-post-elm post_image usg_post_image_1 has_ratio\"><a href=\"https:\/\/demo.sidekick.be\/itenium\/blog\/ruby\/jekyll-serve-performance\/\" aria-label=\"Performance optimization for &#8216;bundle exec jekyll serve&#8217;\"><img loading=\"lazy\" decoding=\"async\" width=\"360\" height=\"300\" src=\"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/11\/jekyll-performance.png\" class=\"attachment-us_600_400 size-us_600_400 wp-post-image\" alt=\"Dr Jekyll (from Mr Hyde) serving websites at light speed, silver tray with holographic sites materializing instantly, Victorian steampunk aesthetic mixed with cyberpunk technology, gears turning at impossible velocities --ar 6:5\" \/><\/a><div style=\"padding-bottom:50%\"><\/div><\/div><div class=\"w-post-elm post_taxonomy usg_post_taxonomy_1 style_badge color_link_inherit\"><div class=\"w-post-elm-list\"><a class=\"w-btn us-btn-style_6 backdrop term-9 term-powershell\" href=\"https:\/\/demo.sidekick.be\/itenium\/tag\/powershell\/\"><span class=\"w-btn-label\">powershell<\/span><\/a><a class=\"w-btn us-btn-style_6 backdrop term-10 term-war-story\" href=\"https:\/\/demo.sidekick.be\/itenium\/tag\/war-story\/\"><span class=\"w-btn-label\">war-story<\/span><\/a><a class=\"w-btn us-btn-style_6 backdrop term-7 term-windows\" href=\"https:\/\/demo.sidekick.be\/itenium\/tag\/windows\/\"><span class=\"w-btn-label\">windows<\/span><\/a><\/div><\/div><div class=\"w-html usg_html_1\"><\/div><\/div><a href=\"https:\/\/demo.sidekick.be\/itenium\/blog\/ruby\/jekyll-serve-performance\/\" class=\"w-vwrapper-link smooth-scroll\" aria-label=\"Link\"><\/a><\/div>\t\t<\/div>\r\n\t\t\t<\/article>\r\n\t<article class=\"w-grid-item size_1x1 post-1307 post type-post status-publish format-standard has-post-thumbnail hentry category-dotnet tag-cheat-sheet tag-excel\" data-id=\"1307\">\r\n\t\t<div class=\"w-grid-item-h\">\r\n\t\t\t\t\t\t<div class=\"w-vwrapper usg_vwrapper_1 align_none valign_top has-link\" style=\"--vwrapper-gap:1rem\"><div class=\"w-vwrapper usg_vwrapper_2 align_none valign_top\" style=\"--vwrapper-gap:1rem\"><div class=\"w-post-elm post_taxonomy usg_post_taxonomy_2 has_text_color style_simple color_link_inherit\"><span class=\"term-11 term-dotnet\">dotnet<\/span><\/div><h2 class=\"w-post-elm post_title usg_post_title_1 entry-title color_link_inherit\">Excel formulas cheat sheet<\/h2><div class=\"w-post-elm post_content usg_post_content_1\"><p>Companion to the ClosedXML series, specifically to Part 2: Formulas.<br \/> Covering the ClosedXML syntax and implemented functions.<\/p>\n<p>See the <a href=\"https:\/\/github.com\/itenium-be\/ClosedXMLTutorial\">ClosedXML example code<\/a> for of all the functions as UnitTests.<\/p>\n<\/div><a class=\"w-btn us-btn-style_3 usg_btn_1\" href=\"https:\/\/demo.sidekick.be\/itenium\/blog\/dotnet\/excel-formulas-cheat-sheet-closedxml\/\"><span class=\"w-btn-label\">Read more<\/span><\/a><\/div><div class=\"w-vwrapper usg_vwrapper_3 align_none valign_top\" style=\"--vwrapper-gap:0rem\"><div class=\"w-post-elm post_image usg_post_image_1 has_ratio\"><a href=\"https:\/\/demo.sidekick.be\/itenium\/blog\/dotnet\/excel-formulas-cheat-sheet-closedxml\/\" aria-label=\"Excel formulas cheat sheet\"><img loading=\"lazy\" decoding=\"async\" width=\"360\" height=\"300\" src=\"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/11\/closedxml-functions2.png\" class=\"attachment-us_600_400 size-us_600_400 wp-post-image\" alt=\"a wizard casting glowing spells in the shape of formulas IF, DATE, COUNTIF, floating symbols swirling around, fantasy illustration, dramatic lighting --ar 6:5\" \/><\/a><div style=\"padding-bottom:50%\"><\/div><\/div><div class=\"w-post-elm post_taxonomy usg_post_taxonomy_1 style_badge color_link_inherit\"><div class=\"w-post-elm-list\"><a class=\"w-btn us-btn-style_6 backdrop term-13 term-cheat-sheet\" href=\"https:\/\/demo.sidekick.be\/itenium\/tag\/cheat-sheet\/\"><span class=\"w-btn-label\">cheat-sheet<\/span><\/a><a class=\"w-btn us-btn-style_6 backdrop term-12 term-excel\" href=\"https:\/\/demo.sidekick.be\/itenium\/tag\/excel\/\"><span class=\"w-btn-label\">excel<\/span><\/a><\/div><\/div><div class=\"w-html usg_html_1\"><\/div><\/div><a href=\"https:\/\/demo.sidekick.be\/itenium\/blog\/dotnet\/excel-formulas-cheat-sheet-closedxml\/\" class=\"w-vwrapper-link smooth-scroll\" aria-label=\"Link\"><\/a><\/div>\t\t<\/div>\r\n\t\t\t<\/article>\r\n\t<article class=\"w-grid-item size_1x1 post-1311 post type-post status-publish format-standard has-post-thumbnail hentry category-dotnet tag-excel tag-tutorial\" data-id=\"1311\">\r\n\t\t<div class=\"w-grid-item-h\">\r\n\t\t\t\t\t\t<div class=\"w-vwrapper usg_vwrapper_1 align_none valign_top has-link\" style=\"--vwrapper-gap:1rem\"><div class=\"w-vwrapper usg_vwrapper_2 align_none valign_top\" style=\"--vwrapper-gap:1rem\"><div class=\"w-post-elm post_taxonomy usg_post_taxonomy_2 has_text_color style_simple color_link_inherit\"><span class=\"term-11 term-dotnet\">dotnet<\/span><\/div><h2 class=\"w-post-elm post_title usg_post_title_1 entry-title color_link_inherit\">Create Excels with C# and ClosedXML: Miscellaneous<\/h2><div class=\"w-post-elm post_content usg_post_content_1\"><h1 class=\"hide-from-excerpt\" id=\"miscellaneous-features\">Miscellaneous features<\/h1>\n<p>ClosedXML can do a whole lot more for you. This post covers some interesting stuff that didn\u2019t really fit anywhere else.<\/p>\n<\/div><a class=\"w-btn us-btn-style_3 usg_btn_1\" href=\"https:\/\/demo.sidekick.be\/itenium\/blog\/dotnet\/create-xlsx-excel-with-closedxml-csharp-miscellaneous\/\"><span class=\"w-btn-label\">Read more<\/span><\/a><\/div><div class=\"w-vwrapper usg_vwrapper_3 align_none valign_top\" style=\"--vwrapper-gap:0rem\"><div class=\"w-post-elm post_image usg_post_image_1 has_ratio\"><a href=\"https:\/\/demo.sidekick.be\/itenium\/blog\/dotnet\/create-xlsx-excel-with-closedxml-csharp-miscellaneous\/\" aria-label=\"Create Excels with C# and ClosedXML: Miscellaneous\"><img loading=\"lazy\" decoding=\"async\" width=\"360\" height=\"300\" src=\"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/11\/closedxml-misc.png\" class=\"attachment-us_600_400 size-us_600_400 wp-post-image\" alt=\"spreadsheet cells with colorful speech bubbles hovering above them, playful vector illustration, modern flat design --ar 6:5\" \/><\/a><div style=\"padding-bottom:50%\"><\/div><\/div><div class=\"w-post-elm post_taxonomy usg_post_taxonomy_1 style_badge color_link_inherit\"><div class=\"w-post-elm-list\"><a class=\"w-btn us-btn-style_6 backdrop term-12 term-excel\" href=\"https:\/\/demo.sidekick.be\/itenium\/tag\/excel\/\"><span class=\"w-btn-label\">excel<\/span><\/a><a class=\"w-btn us-btn-style_6 backdrop term-6 term-tutorial\" href=\"https:\/\/demo.sidekick.be\/itenium\/tag\/tutorial\/\"><span class=\"w-btn-label\">tutorial<\/span><\/a><\/div><\/div><div class=\"w-html usg_html_1\"><\/div><\/div><a href=\"https:\/\/demo.sidekick.be\/itenium\/blog\/dotnet\/create-xlsx-excel-with-closedxml-csharp-miscellaneous\/\" class=\"w-vwrapper-link smooth-scroll\" aria-label=\"Link\"><\/a><\/div>\t\t<\/div>\r\n\t\t\t<\/article>\r\n\t<article class=\"w-grid-item size_1x1 post-1315 post type-post status-publish format-standard has-post-thumbnail hentry category-dotnet tag-excel tag-tutorial\" data-id=\"1315\">\r\n\t\t<div class=\"w-grid-item-h\">\r\n\t\t\t\t\t\t<div class=\"w-vwrapper usg_vwrapper_1 align_none valign_top has-link\" style=\"--vwrapper-gap:1rem\"><div class=\"w-vwrapper usg_vwrapper_2 align_none valign_top\" style=\"--vwrapper-gap:1rem\"><div class=\"w-post-elm post_taxonomy usg_post_taxonomy_2 has_text_color style_simple color_link_inherit\"><span class=\"term-11 term-dotnet\">dotnet<\/span><\/div><h2 class=\"w-post-elm post_title usg_post_title_1 entry-title color_link_inherit\">Create Excels with C# and ClosedXML: Formulas &#038; DataValidation<\/h2><div class=\"w-post-elm post_content usg_post_content_1\"><p>In case your users want to continue working with the Excels after generation.<\/p>\n<p>Not a problem for ClosedXML. Instead of calculating values and writing them to an excel, leverage the power of Excel formulas.<\/p>\n<\/div><a class=\"w-btn us-btn-style_3 usg_btn_1\" href=\"https:\/\/demo.sidekick.be\/itenium\/blog\/dotnet\/create-xlsx-excel-with-closedxml-csharp-formulas-and-datavalidation\/\"><span class=\"w-btn-label\">Read more<\/span><\/a><\/div><div class=\"w-vwrapper usg_vwrapper_3 align_none valign_top\" style=\"--vwrapper-gap:0rem\"><div class=\"w-post-elm post_image usg_post_image_1 has_ratio\"><a href=\"https:\/\/demo.sidekick.be\/itenium\/blog\/dotnet\/create-xlsx-excel-with-closedxml-csharp-formulas-and-datavalidation\/\" aria-label=\"Create Excels with C# and ClosedXML: Formulas &#038; DataValidation\"><img loading=\"lazy\" decoding=\"async\" width=\"360\" height=\"300\" src=\"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/11\/closedxml-formulas.png\" class=\"attachment-us_600_400 size-us_600_400 wp-post-image\" alt=\"a glowing formula etched into glass, surrounded by checkmarks and red crosses symbolizing validation, modern minimalistic style, high contrast, elegant illustration\" \/><\/a><div style=\"padding-bottom:50%\"><\/div><\/div><div class=\"w-post-elm post_taxonomy usg_post_taxonomy_1 style_badge color_link_inherit\"><div class=\"w-post-elm-list\"><a class=\"w-btn us-btn-style_6 backdrop term-12 term-excel\" href=\"https:\/\/demo.sidekick.be\/itenium\/tag\/excel\/\"><span class=\"w-btn-label\">excel<\/span><\/a><a class=\"w-btn us-btn-style_6 backdrop term-6 term-tutorial\" href=\"https:\/\/demo.sidekick.be\/itenium\/tag\/tutorial\/\"><span class=\"w-btn-label\">tutorial<\/span><\/a><\/div><\/div><div class=\"w-html usg_html_1\"><\/div><\/div><a href=\"https:\/\/demo.sidekick.be\/itenium\/blog\/dotnet\/create-xlsx-excel-with-closedxml-csharp-formulas-and-datavalidation\/\" class=\"w-vwrapper-link smooth-scroll\" aria-label=\"Link\"><\/a><\/div>\t\t<\/div>\r\n\t\t\t<\/article>\r\n\t<article class=\"w-grid-item size_1x1 post-1319 post type-post status-publish format-standard has-post-thumbnail hentry category-dotnet tag-excel tag-tutorial\" data-id=\"1319\">\r\n\t\t<div class=\"w-grid-item-h\">\r\n\t\t\t\t\t\t<div class=\"w-vwrapper usg_vwrapper_1 align_none valign_top has-link\" style=\"--vwrapper-gap:1rem\"><div class=\"w-vwrapper usg_vwrapper_2 align_none valign_top\" style=\"--vwrapper-gap:1rem\"><div class=\"w-post-elm post_taxonomy usg_post_taxonomy_2 has_text_color style_simple color_link_inherit\"><span class=\"term-11 term-dotnet\">dotnet<\/span><\/div><h2 class=\"w-post-elm post_title usg_post_title_1 entry-title color_link_inherit\">Create Excels with C# and ClosedXML: A tutorial<\/h2><div class=\"w-post-elm post_content usg_post_content_1\"><p>Quick tutorial about creating xlsx Excels with C# and the <a href=\"https:\/\/github.com\/ClosedXML\/ClosedXML\">ClosedXML nuget package<\/a>.<\/p>\n<p>The blog posts only covers the most important functionality. <a href=\"https:\/\/github.com\/itenium-be\/ClosedXMLTutorial\">More extensive code examples<\/a> can be found in the GitHub project.<\/p>\n<\/div><a class=\"w-btn us-btn-style_3 usg_btn_1\" href=\"https:\/\/demo.sidekick.be\/itenium\/blog\/dotnet\/create-xlsx-excel-with-closedxml-csharp\/\"><span class=\"w-btn-label\">Read more<\/span><\/a><\/div><div class=\"w-vwrapper usg_vwrapper_3 align_none valign_top\" style=\"--vwrapper-gap:0rem\"><div class=\"w-post-elm post_image usg_post_image_1 has_ratio\"><a href=\"https:\/\/demo.sidekick.be\/itenium\/blog\/dotnet\/create-xlsx-excel-with-closedxml-csharp\/\" aria-label=\"Create Excels with C# and ClosedXML: A tutorial\"><img loading=\"lazy\" decoding=\"async\" width=\"360\" height=\"300\" src=\"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/11\/closedxml.png\" class=\"attachment-us_600_400 size-us_600_400 wp-post-image\" alt=\"computer graveyard, cracked tombstone engraved EPPlus, beside it a shining crystal monument glowing with the word ClosedXML, surreal digital illustration, moody atmosphere, high detail\" \/><\/a><div style=\"padding-bottom:50%\"><\/div><\/div><div class=\"w-post-elm post_taxonomy usg_post_taxonomy_1 style_badge color_link_inherit\"><div class=\"w-post-elm-list\"><a class=\"w-btn us-btn-style_6 backdrop term-12 term-excel\" href=\"https:\/\/demo.sidekick.be\/itenium\/tag\/excel\/\"><span class=\"w-btn-label\">excel<\/span><\/a><a class=\"w-btn us-btn-style_6 backdrop term-6 term-tutorial\" href=\"https:\/\/demo.sidekick.be\/itenium\/tag\/tutorial\/\"><span class=\"w-btn-label\">tutorial<\/span><\/a><\/div><\/div><div class=\"w-html usg_html_1\"><\/div><\/div><a href=\"https:\/\/demo.sidekick.be\/itenium\/blog\/dotnet\/create-xlsx-excel-with-closedxml-csharp\/\" class=\"w-vwrapper-link smooth-scroll\" aria-label=\"Link\"><\/a><\/div>\t\t<\/div>\r\n\t\t\t<\/article>\r\n\t<article class=\"w-grid-item size_1x1 post-1323 post type-post status-publish format-standard has-post-thumbnail hentry category-trends tag-tech-talk tag-war-story\" data-id=\"1323\">\r\n\t\t<div class=\"w-grid-item-h\">\r\n\t\t\t\t\t\t<div class=\"w-vwrapper usg_vwrapper_1 align_none valign_top has-link\" style=\"--vwrapper-gap:1rem\"><div class=\"w-vwrapper usg_vwrapper_2 align_none valign_top\" style=\"--vwrapper-gap:1rem\"><div class=\"w-post-elm post_taxonomy usg_post_taxonomy_2 has_text_color style_simple color_link_inherit\"><span class=\"term-14 term-trends\">trends<\/span><\/div><h2 class=\"w-post-elm post_title usg_post_title_1 entry-title color_link_inherit\">DDD Europe 2025<\/h2><div class=\"w-post-elm post_content usg_post_content_1\"><p>Last month, I had the opportunity to attend <strong>DDD Europe 2025<\/strong> in the Queen Elisabeth Hall in Antwerp \u2014 a few inspiring days full of insights, ideas, and engaging discussions around Domain-Driven Design, software quality, and architecture. Here are some of my key takeaways:<\/p>\n<\/div><a class=\"w-btn us-btn-style_3 usg_btn_1\" href=\"https:\/\/demo.sidekick.be\/itenium\/blog\/trends\/ddd-europe-2025\/\"><span class=\"w-btn-label\">Read more<\/span><\/a><\/div><div class=\"w-vwrapper usg_vwrapper_3 align_none valign_top\" style=\"--vwrapper-gap:0rem\"><div class=\"w-post-elm post_image usg_post_image_1 has_ratio\"><a href=\"https:\/\/demo.sidekick.be\/itenium\/blog\/trends\/ddd-europe-2025\/\" aria-label=\"DDD Europe 2025\"><img loading=\"lazy\" decoding=\"async\" width=\"360\" height=\"300\" src=\"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/11\/ddd-europe-2025.png\" class=\"attachment-us_600_400 size-us_600_400 wp-post-image\" alt=\"\" \/><\/a><div style=\"padding-bottom:50%\"><\/div><\/div><div class=\"w-post-elm post_taxonomy usg_post_taxonomy_1 style_badge color_link_inherit\"><div class=\"w-post-elm-list\"><a class=\"w-btn us-btn-style_6 backdrop term-15 term-tech-talk\" href=\"https:\/\/demo.sidekick.be\/itenium\/tag\/tech-talk\/\"><span class=\"w-btn-label\">tech-talk<\/span><\/a><a class=\"w-btn us-btn-style_6 backdrop term-10 term-war-story\" href=\"https:\/\/demo.sidekick.be\/itenium\/tag\/war-story\/\"><span class=\"w-btn-label\">war-story<\/span><\/a><\/div><\/div><div class=\"w-html usg_html_1\"><\/div><\/div><a href=\"https:\/\/demo.sidekick.be\/itenium\/blog\/trends\/ddd-europe-2025\/\" class=\"w-vwrapper-link smooth-scroll\" aria-label=\"Link\"><\/a><\/div>\t\t<\/div>\r\n\t\t\t<\/article>\r\n\t<article class=\"w-grid-item size_1x1 post-1327 post type-post status-publish format-standard has-post-thumbnail hentry category-docker tag-synology\" data-id=\"1327\">\r\n\t\t<div class=\"w-grid-item-h\">\r\n\t\t\t\t\t\t<div class=\"w-vwrapper usg_vwrapper_1 align_none valign_top has-link\" style=\"--vwrapper-gap:1rem\"><div class=\"w-vwrapper usg_vwrapper_2 align_none valign_top\" style=\"--vwrapper-gap:1rem\"><div class=\"w-post-elm post_taxonomy usg_post_taxonomy_2 has_text_color style_simple color_link_inherit\"><span class=\"term-16 term-docker\">docker<\/span><\/div><h2 class=\"w-post-elm post_title usg_post_title_1 entry-title color_link_inherit\">Serving a Dockerized web app over https on Synology<\/h2><div class=\"w-post-elm post_content usg_post_content_1\"><p>You\u2019ve developed the most fancy application and are running it on your Synology in a Docker container.<\/p>\n<p>But you really don\u2019t want that ugly \u201cNot secure\u201d when opening it. This series goes over your options, starting with the easiest one to setup: using the Synology nginx.<\/p>\n<\/div><a class=\"w-btn us-btn-style_3 usg_btn_1\" href=\"https:\/\/demo.sidekick.be\/itenium\/blog\/docker\/reverse-proxy-for-synology-container\/\"><span class=\"w-btn-label\">Read more<\/span><\/a><\/div><div class=\"w-vwrapper usg_vwrapper_3 align_none valign_top\" style=\"--vwrapper-gap:0rem\"><div class=\"w-post-elm post_image usg_post_image_1 has_ratio\"><a href=\"https:\/\/demo.sidekick.be\/itenium\/blog\/docker\/reverse-proxy-for-synology-container\/\" aria-label=\"Serving a Dockerized web app over https on Synology\"><img loading=\"lazy\" decoding=\"async\" width=\"360\" height=\"300\" src=\"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/11\/synology-https.png\" class=\"attachment-us_600_400 size-us_600_400 wp-post-image\" alt=\"Cartoon-style illustration of a smiling Synology NAS wearing sunglasses, sending HTTPS traffic through a glowing reverse proxy tunnel into a happy Docker whale. Bright, playful colors, comic-style outlines, fun and approachable vibe\" \/><\/a><div style=\"padding-bottom:50%\"><\/div><\/div><div class=\"w-post-elm post_taxonomy usg_post_taxonomy_1 style_badge color_link_inherit\"><a class=\"w-btn us-btn-style_6 backdrop term-17 term-synology\" href=\"https:\/\/demo.sidekick.be\/itenium\/tag\/synology\/\"><span class=\"w-btn-label\">synology<\/span><\/a><\/div><div class=\"w-html usg_html_1\"><\/div><\/div><a href=\"https:\/\/demo.sidekick.be\/itenium\/blog\/docker\/reverse-proxy-for-synology-container\/\" class=\"w-vwrapper-link smooth-scroll\" aria-label=\"Link\"><\/a><\/div>\t\t<\/div>\r\n\t\t\t<\/article>\r\n\t<article class=\"w-grid-item size_1x1 post-1331 post type-post status-publish format-standard has-post-thumbnail hentry category-docker tag-net tag-synology tag-war-story\" data-id=\"1331\">\r\n\t\t<div class=\"w-grid-item-h\">\r\n\t\t\t\t\t\t<div class=\"w-vwrapper usg_vwrapper_1 align_none valign_top has-link\" style=\"--vwrapper-gap:1rem\"><div class=\"w-vwrapper usg_vwrapper_2 align_none valign_top\" style=\"--vwrapper-gap:1rem\"><div class=\"w-post-elm post_taxonomy usg_post_taxonomy_2 has_text_color style_simple color_link_inherit\"><span class=\"term-16 term-docker\">docker<\/span><\/div><h2 class=\"w-post-elm post_title usg_post_title_1 entry-title color_link_inherit\">Training with ML.NET and LightGBM on Synology with Docker<\/h2><div class=\"w-post-elm post_content usg_post_content_1\"><p><a href=\"https:\/\/github.com\/dotnet\/machinelearning\" class=\"github\"><img decoding=\"async\" src=\"https:\/\/img.shields.io\/github\/stars\/dotnet\/machinelearning.svg?style=social&amp;label=Star\" \/><\/a><a href=\"https:\/\/github.com\/dotnet\/machinelearning\">dotnet\/machinelearning<\/a>: ML.NET is an open source and cross-platform machine learning framework for .NET. <a href=\"https:\/\/github.com\/microsoft\/LightGBM\" class=\"github\"><img decoding=\"async\" src=\"https:\/\/img.shields.io\/github\/stars\/microsoft\/LightGBM.svg?style=social&amp;label=Star\" \/><\/a><a href=\"https:\/\/github.com\/microsoft\/LightGBM\">microsoft\/LightGBM<\/a>: A fast, distributed, high performance gradient boosting (GBT, GBDT, GBRT, GBM or MART) framework based on decision tree algorithms, used for ranking, classification and many other machine learning tasks.<\/p>\n<p>After writing some code to fetch and mold the data, I was ready to train \u201cmy\u201d AI, dubbed \u201cPongRank\u201d which was easy enough and all was good until I added a small WebApi to automate future syncing, retraining and predictions.<\/p>\n<\/div><a class=\"w-btn us-btn-style_3 usg_btn_1\" href=\"https:\/\/demo.sidekick.be\/itenium\/blog\/docker\/ml-net-lightgbm-docker\/\"><span class=\"w-btn-label\">Read more<\/span><\/a><\/div><div class=\"w-vwrapper usg_vwrapper_3 align_none valign_top\" style=\"--vwrapper-gap:0rem\"><div class=\"w-post-elm post_image usg_post_image_1 has_ratio\"><a href=\"https:\/\/demo.sidekick.be\/itenium\/blog\/docker\/ml-net-lightgbm-docker\/\" aria-label=\"Training with ML.NET and LightGBM on Synology with Docker\"><img loading=\"lazy\" decoding=\"async\" width=\"360\" height=\"300\" src=\"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/11\/ml-net-lightgbm.png\" class=\"attachment-us_600_400 size-us_600_400 wp-post-image\" alt=\"A heroic Linux penguin wielding a keyboard sword, battling giant digital dragons labeled &#039;lib_lightgbm.so&#039; and &#039;libgomp.so.1&#039;, inside a dark futuristic server cave, glowing error messages flying through the air, Docker container shields, epic fantasy-tech crossover, humorous tone, digital fantasy art, high detail, vibrant lighting\" \/><\/a><div style=\"padding-bottom:50%\"><\/div><\/div><div class=\"w-post-elm post_taxonomy usg_post_taxonomy_1 style_badge color_link_inherit\"><div class=\"w-post-elm-list\"><a class=\"w-btn us-btn-style_6 backdrop term-18 term-net\" href=\"https:\/\/demo.sidekick.be\/itenium\/tag\/net\/\"><span class=\"w-btn-label\">net<\/span><\/a><a class=\"w-btn us-btn-style_6 backdrop term-17 term-synology\" href=\"https:\/\/demo.sidekick.be\/itenium\/tag\/synology\/\"><span class=\"w-btn-label\">synology<\/span><\/a><a class=\"w-btn us-btn-style_6 backdrop term-10 term-war-story\" href=\"https:\/\/demo.sidekick.be\/itenium\/tag\/war-story\/\"><span class=\"w-btn-label\">war-story<\/span><\/a><\/div><\/div><div class=\"w-html usg_html_1\"><\/div><\/div><a href=\"https:\/\/demo.sidekick.be\/itenium\/blog\/docker\/ml-net-lightgbm-docker\/\" class=\"w-vwrapper-link smooth-scroll\" aria-label=\"Link\"><\/a><\/div>\t\t<\/div>\r\n\t\t\t<\/article>\r\n<\/div><nav class=\"pagination navigation\" role=\"navigation\"><div class=\"nav-links\"><span aria-current=\"page\" class=\"page-numbers current\"><span>1<\/span><\/span>\n<a class=\"page-numbers\" href=\"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/pages\/30\/page\/2\/\"><span>2<\/span><\/a>\n<a class=\"page-numbers\" href=\"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/pages\/30\/page\/3\/\"><span>3<\/span><\/a>\n<a class=\"page-numbers\" href=\"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/pages\/30\/page\/4\/\"><span>4<\/span><\/a>\n<span class=\"page-numbers dots\">&hellip;<\/span>\n<a class=\"page-numbers\" href=\"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/pages\/30\/page\/10\/\"><span>10<\/span><\/a>\n<a class=\"next page-numbers\" href=\"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/pages\/30\/page\/2\/\"><span>Next<\/span><\/a><\/div><\/nav><div class=\"g-loadmore\"><div class=\"g-preloader type_1\"><div><\/div><\/div><\/div><div class=\"w-grid-list-json hidden\" onclick='return {&quot;max_num_pages&quot;:10,&quot;paginationBase&quot;:&quot;page&quot;,&quot;pagination&quot;:&quot;numbered&quot;,&quot;paged&quot;:1,&quot;ajaxData&quot;:{&quot;action&quot;:&quot;us_ajax_post_list&quot;,&quot;meta_type&quot;:&quot;post&quot;,&quot;object_id&quot;:0,&quot;template_vars&quot;:{&quot;shortcode_base&quot;:&quot;us_post_list&quot;,&quot;paged&quot;:1,&quot;max_num_pages&quot;:10,&quot;no_results&quot;:false,&quot;us_post_content_design_css&quot;:[],&quot;found_posts&quot;:118,&quot;items_count&quot;:12,&quot;source&quot;:&quot;all&quot;,&quot;custom_field_name&quot;:&quot;&quot;,&quot;ids&quot;:&quot;&quot;,&quot;post_type&quot;:&quot;post&quot;,&quot;attachment_ids&quot;:null,&quot;include_post_thumbnail&quot;:0,&quot;post_author&quot;:&quot;any&quot;,&quot;post_author_ids&quot;:&quot;&quot;,&quot;apply_url_params&quot;:&quot;1&quot;,&quot;exclude_children&quot;:0,&quot;exclude_current_post&quot;:1,&quot;exclude_prev_posts&quot;:0,&quot;enable_items_offset&quot;:0,&quot;items_offset&quot;:&quot;1&quot;,&quot;tax_query_relation&quot;:&quot;none&quot;,&quot;tax_query&quot;:[{&quot;operator&quot;:&quot;IN&quot;,&quot;taxonomy&quot;:&quot;category&quot;,&quot;terms&quot;:&quot;&quot;,&quot;include_children&quot;:0}],&quot;meta_query_relation&quot;:&quot;none&quot;,&quot;meta_query&quot;:[{&quot;key&quot;:&quot;custom_field_name&quot;,&quot;compare&quot;:&quot;=&quot;,&quot;value&quot;:&quot;&quot;}],&quot;orderby&quot;:&quot;date&quot;,&quot;orderby_custom_field&quot;:&quot;&quot;,&quot;orderby_custom_type&quot;:0,&quot;order_invert&quot;:&quot;1&quot;,&quot;show_all&quot;:0,&quot;quantity&quot;:&quot;12&quot;,&quot;posts_per_archive_page&quot;:0,&quot;no_items_action&quot;:&quot;message&quot;,&quot;no_items_message&quot;:&quot;No results found.&quot;,&quot;no_items_page_block&quot;:&quot;&quot;,&quot;pagination&quot;:&quot;numbered&quot;,&quot;pagination_style&quot;:&quot;&quot;,&quot;pagination_btn_text&quot;:&quot;Load More&quot;,&quot;pagination_btn_size&quot;:&quot;&quot;,&quot;pagination_btn_style&quot;:&quot;1&quot;,&quot;pagination_btn_fullwidth&quot;:0,&quot;items_layout&quot;:&quot;415&quot;,&quot;type&quot;:&quot;grid&quot;,&quot;items_valign&quot;:0,&quot;ignore_items_size&quot;:0,&quot;columns&quot;:&quot;3&quot;,&quot;items_gap&quot;:&quot;0.625rem&quot;,&quot;load_animation&quot;:&quot;none&quot;,&quot;items_preload_style&quot;:&quot;spinner&quot;,&quot;img_size&quot;:&quot;default&quot;,&quot;title_size&quot;:&quot;&quot;,&quot;items_ratio&quot;:&quot;default&quot;,&quot;items_ratio_width&quot;:&quot;21&quot;,&quot;items_ratio_height&quot;:&quot;9&quot;,&quot;overriding_link&quot;:&quot;%7B%22url%22%3A%22%22%7D&quot;,&quot;popup_page_template&quot;:&quot;0&quot;,&quot;popup_width&quot;:&quot;&quot;,&quot;popup_arrows&quot;:1,&quot;breakpoint_1_width&quot;:&quot;1441px&quot;,&quot;breakpoint_1_cols&quot;:&quot;default&quot;,&quot;breakpoint_1_quantity&quot;:&quot;&quot;,&quot;breakpoint_1_gap&quot;:&quot;&quot;,&quot;breakpoint_2_width&quot;:&quot;1141px&quot;,&quot;breakpoint_2_cols&quot;:&quot;2&quot;,&quot;breakpoint_2_quantity&quot;:&quot;&quot;,&quot;breakpoint_2_gap&quot;:&quot;&quot;,&quot;breakpoint_3_width&quot;:&quot;901px&quot;,&quot;breakpoint_3_cols&quot;:&quot;1&quot;,&quot;breakpoint_3_quantity&quot;:&quot;&quot;,&quot;breakpoint_3_gap&quot;:&quot;&quot;,&quot;conditions_operator&quot;:&quot;always&quot;,&quot;conditions&quot;:[],&quot;css&quot;:null,&quot;el_class&quot;:&quot;&quot;,&quot;el_id&quot;:&quot;&quot;,&quot;enable_custom_html_atts&quot;:0,&quot;custom_html_atts&quot;:null,&quot;hide_on_states&quot;:&quot;&quot;,&quot;hide_for_sticky&quot;:0,&quot;hide_for_not_sticky&quot;:0,&quot;hide_below&quot;:&quot;0px&quot;,&quot;hide_above&quot;:&quot;0px&quot;,&quot;classes&quot;:&quot;&quot;},&quot;list_filters&quot;:&quot;[]&quot;},&quot;facetedFilter&quot;:{&quot;query_args&quot;:&quot;{\\&quot;ignore_sticky_posts\\&quot;:true,\\&quot;post__not_in\\&quot;:[],\\&quot;tax_query\\&quot;:[],\\&quot;meta_query\\&quot;:[],\\&quot;posts_per_page\\&quot;:12,\\&quot;paged\\&quot;:1,\\&quot;apply_list_url_params\\&quot;:true,\\&quot;post_type\\&quot;:[\\&quot;post\\&quot;],\\&quot;post_status\\&quot;:\\&quot;publish\\&quot;}&quot;}}'><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/section>\n","protected":false},"excerpt":{"rendered":"Docker TrainingAs, once deployed, training failed with:System.DllNotFoundException: Unable to load shared library \u2018lib_lightgbm\u2019 or one of its dependencies. In order to help diagnose loading problems, consider using a tool like strace. If you\u2019re using glibc, consider setting the LD_DEBUG environment variable: libgomp.so.1: cannot open shared object file: No such file or directory \/app\/lib_lightgbm.so: cannot open...","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":4,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"class_list":["post-30","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Itenium Blog | Behind-the-Scenes &amp; Deep Tech Insights<\/title>\n<meta name=\"description\" content=\"Curious about life at Itenium or hungry for a proper tech update? Dive into our blog for behind-the-scenes stories, expert tips, and in-depth articles packed with IT know-how.\" \/>\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Itenium Blog | Behind-the-Scenes &amp; Deep Tech Insights\" \/>\n<meta property=\"og:description\" content=\"Curious about life at Itenium or hungry for a proper tech update? Dive into our blog for behind-the-scenes stories, expert tips, and in-depth articles packed with IT know-how.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/demo.sidekick.be\/itenium\/blog\/\" \/>\n<meta property=\"og:site_name\" content=\"Itenium\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-08T00:47:54+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/blog\/\",\"url\":\"https:\/\/demo.sidekick.be\/itenium\/blog\/\",\"name\":\"Itenium Blog | Behind-the-Scenes & Deep Tech Insights\",\"isPartOf\":{\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/#website\"},\"datePublished\":\"2025-11-09T20:45:37+00:00\",\"dateModified\":\"2026-01-08T00:47:54+00:00\",\"description\":\"Curious about life at Itenium or hungry for a proper tech update? Dive into our blog for behind-the-scenes stories, expert tips, and in-depth articles packed with IT know-how.\",\"breadcrumb\":{\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/blog\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/demo.sidekick.be\/itenium\/blog\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/blog\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/demo.sidekick.be\/itenium\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/#website\",\"url\":\"https:\/\/demo.sidekick.be\/itenium\/\",\"name\":\"Itenium\",\"description\":\"We build software. We build careers.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/demo.sidekick.be\/itenium\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Itenium Blog | Behind-the-Scenes & Deep Tech Insights","description":"Curious about life at Itenium or hungry for a proper tech update? Dive into our blog for behind-the-scenes stories, expert tips, and in-depth articles packed with IT know-how.","robots":{"index":"noindex","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"en_US","og_type":"article","og_title":"Itenium Blog | Behind-the-Scenes & Deep Tech Insights","og_description":"Curious about life at Itenium or hungry for a proper tech update? Dive into our blog for behind-the-scenes stories, expert tips, and in-depth articles packed with IT know-how.","og_url":"https:\/\/demo.sidekick.be\/itenium\/blog\/","og_site_name":"Itenium","article_modified_time":"2026-01-08T00:47:54+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/demo.sidekick.be\/itenium\/blog\/","url":"https:\/\/demo.sidekick.be\/itenium\/blog\/","name":"Itenium Blog | Behind-the-Scenes & Deep Tech Insights","isPartOf":{"@id":"https:\/\/demo.sidekick.be\/itenium\/#website"},"datePublished":"2025-11-09T20:45:37+00:00","dateModified":"2026-01-08T00:47:54+00:00","description":"Curious about life at Itenium or hungry for a proper tech update? Dive into our blog for behind-the-scenes stories, expert tips, and in-depth articles packed with IT know-how.","breadcrumb":{"@id":"https:\/\/demo.sidekick.be\/itenium\/blog\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/demo.sidekick.be\/itenium\/blog\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/demo.sidekick.be\/itenium\/blog\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/demo.sidekick.be\/itenium\/"},{"@type":"ListItem","position":2,"name":"Blog"}]},{"@type":"WebSite","@id":"https:\/\/demo.sidekick.be\/itenium\/#website","url":"https:\/\/demo.sidekick.be\/itenium\/","name":"Itenium","description":"We build software. We build careers.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/demo.sidekick.be\/itenium\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/pages\/30","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/comments?post=30"}],"version-history":[{"count":20,"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/pages\/30\/revisions"}],"predecessor-version":[{"id":395,"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/pages\/30\/revisions\/395"}],"wp:attachment":[{"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/media?parent=30"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}